Ignore:
Timestamp:
Nov 27, 2012, 4:43:17 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: updated trunk to 3.6.0

Location:
trunk/server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/server

  • trunk/server/source3/lib/netapi/samr.c

    r414 r745  
    2121#include "lib/netapi/netapi.h"
    2222#include "lib/netapi/netapi_private.h"
    23 #include "../librpc/gen_ndr/cli_samr.h"
     23#include "rpc_client/rpc_client.h"
     24#include "../librpc/gen_ndr/ndr_samr_c.h"
     25#include "rpc_client/cli_samr.h"
     26#include "rpc_client/init_lsa.h"
     27#include "../libcli/security/security.h"
    2428
    2529/****************************************************************
     
    3438                                  struct dom_sid2 **domain_sid)
    3539{
    36         NTSTATUS status;
     40        NTSTATUS status, result;
    3741        WERROR werr;
    3842        struct libnetapi_private_ctx *priv;
     
    4448        bool domain_found = true;
    4549        int i;
     50        struct dcerpc_binding_handle *b = pipe_cli->binding_handle;
    4651
    4752        priv = talloc_get_type_abort(mem_ctx->private_data,
     
    7883
    7984        if (!is_valid_policy_hnd(connect_handle)) {
    80                 status = rpccli_try_samr_connects(pipe_cli, mem_ctx,
     85                status = dcerpc_try_samr_connects(pipe_cli->binding_handle, mem_ctx,
     86                                                  pipe_cli->srv_name_slash,
    8187                                                  connect_mask,
    82                                                   connect_handle);
     88                                                  connect_handle,
     89                                                  &result);
    8390                if (!NT_STATUS_IS_OK(status)) {
    8491                        werr = ntstatus_to_werror(status);
    8592                        goto done;
    8693                }
    87         }
    88 
    89         status = rpccli_samr_EnumDomains(pipe_cli, mem_ctx,
     94                if (!NT_STATUS_IS_OK(result)) {
     95                        werr = ntstatus_to_werror(result);
     96                        goto done;
     97                }
     98        }
     99
     100        status = dcerpc_samr_EnumDomains(b, mem_ctx,
    90101                                         connect_handle,
    91102                                         &resume_handle,
    92103                                         &sam,
    93104                                         0xffffffff,
    94                                          &num_entries);
     105                                         &num_entries,
     106                                         &result);
    95107        if (!NT_STATUS_IS_OK(status)) {
    96108                werr = ntstatus_to_werror(status);
    97109                goto done;
    98110        }
     111        if (!NT_STATUS_IS_OK(result)) {
     112                werr = ntstatus_to_werror(result);
     113                goto done;
     114        }
    99115
    100116        for (i=0; i<num_entries; i++) {
     
    117133        init_lsa_String(&lsa_domain_name, domain_name);
    118134
    119         status = rpccli_samr_LookupDomain(pipe_cli, mem_ctx,
     135        status = dcerpc_samr_LookupDomain(b, mem_ctx,
    120136                                          connect_handle,
    121137                                          &lsa_domain_name,
    122                                           domain_sid);
     138                                          domain_sid,
     139                                          &result);
    123140        if (!NT_STATUS_IS_OK(status)) {
    124141                werr = ntstatus_to_werror(status);
    125142                goto done;
    126143        }
    127 
    128         status = rpccli_samr_OpenDomain(pipe_cli, mem_ctx,
     144        if (!NT_STATUS_IS_OK(result)) {
     145                werr = ntstatus_to_werror(result);
     146                goto done;
     147        }
     148
     149        status = dcerpc_samr_OpenDomain(b, mem_ctx,
    129150                                        connect_handle,
    130151                                        domain_mask,
    131152                                        *domain_sid,
    132                                         domain_handle);
     153                                        domain_handle,
     154                                        &result);
    133155        if (!NT_STATUS_IS_OK(status)) {
    134156                werr = ntstatus_to_werror(status);
     157                goto done;
     158        }
     159        if (!NT_STATUS_IS_OK(result)) {
     160                werr = ntstatus_to_werror(result);
    135161                goto done;
    136162        }
     
    163189                                          struct policy_handle *builtin_handle)
    164190{
    165         NTSTATUS status;
     191        NTSTATUS status, result;
    166192        WERROR werr;
    167193        struct libnetapi_private_ctx *priv;
     194        struct dcerpc_binding_handle *b = pipe_cli->binding_handle;
    168195
    169196        priv = talloc_get_type_abort(mem_ctx->private_data,
     
    196223
    197224        if (!is_valid_policy_hnd(connect_handle)) {
    198                 status = rpccli_try_samr_connects(pipe_cli, mem_ctx,
     225                status = dcerpc_try_samr_connects(pipe_cli->binding_handle, mem_ctx,
     226                                                  pipe_cli->srv_name_slash,
    199227                                                  connect_mask,
    200                                                   connect_handle);
     228                                                  connect_handle,
     229                                                  &result);
    201230                if (!NT_STATUS_IS_OK(status)) {
    202231                        werr = ntstatus_to_werror(status);
    203232                        goto done;
    204233                }
    205         }
    206 
    207         status = rpccli_samr_OpenDomain(pipe_cli, mem_ctx,
     234                if (!NT_STATUS_IS_OK(result)) {
     235                        werr = ntstatus_to_werror(result);
     236                        goto done;
     237                }
     238        }
     239
     240        status = dcerpc_samr_OpenDomain(b, mem_ctx,
    208241                                        connect_handle,
    209242                                        builtin_mask,
    210                                         CONST_DISCARD(DOM_SID *, &global_sid_Builtin),
    211                                         builtin_handle);
     243                                        CONST_DISCARD(struct dom_sid *, &global_sid_Builtin),
     244                                        builtin_handle,
     245                                        &result);
    212246        if (!NT_STATUS_IS_OK(status)) {
    213247                werr = ntstatus_to_werror(status);
    214248                goto done;
    215249        }
     250        if (!NT_STATUS_IS_OK(result)) {
     251                werr = ntstatus_to_werror(result);
     252                goto done;
     253        }
    216254
    217255        priv->samr.cli                  = pipe_cli;
     
    236274{
    237275        struct libnetapi_private_ctx *priv;
     276        struct dcerpc_binding_handle *b;
     277        NTSTATUS result;
    238278
    239279        if (!is_valid_policy_hnd(handle)) {
     
    244284                struct libnetapi_private_ctx);
    245285
    246         if (!policy_hnd_equal(handle, &priv->samr.domain_handle)) {
    247                 return;
    248         }
    249 
    250         rpccli_samr_Close(priv->samr.cli, ctx, handle);
     286        if (!policy_handle_equal(handle, &priv->samr.domain_handle)) {
     287                return;
     288        }
     289
     290        b = priv->samr.cli->binding_handle;
     291
     292        dcerpc_samr_Close(b, ctx, handle, &result);
    251293
    252294        ZERO_STRUCT(priv->samr.domain_handle);
     
    260302{
    261303        struct libnetapi_private_ctx *priv;
     304        struct dcerpc_binding_handle *b;
     305        NTSTATUS result;
    262306
    263307        if (!is_valid_policy_hnd(handle)) {
     
    268312                struct libnetapi_private_ctx);
    269313
    270         if (!policy_hnd_equal(handle, &priv->samr.builtin_handle)) {
    271                 return;
    272         }
    273 
    274         rpccli_samr_Close(priv->samr.cli, ctx, handle);
     314        if (!policy_handle_equal(handle, &priv->samr.builtin_handle)) {
     315                return;
     316        }
     317
     318        b = priv->samr.cli->binding_handle;
     319
     320        dcerpc_samr_Close(b, ctx, handle, &result);
    275321
    276322        ZERO_STRUCT(priv->samr.builtin_handle);
     
    284330{
    285331        struct libnetapi_private_ctx *priv;
     332        struct dcerpc_binding_handle *b;
     333        NTSTATUS result;
    286334
    287335        if (!is_valid_policy_hnd(handle)) {
     
    292340                struct libnetapi_private_ctx);
    293341
    294         if (!policy_hnd_equal(handle, &priv->samr.connect_handle)) {
    295                 return;
    296         }
    297 
    298         rpccli_samr_Close(priv->samr.cli, ctx, handle);
     342        if (!policy_handle_equal(handle, &priv->samr.connect_handle)) {
     343                return;
     344        }
     345
     346        b = priv->samr.cli->binding_handle;
     347
     348        dcerpc_samr_Close(b, ctx, handle, &result);
    299349
    300350        ZERO_STRUCT(priv->samr.connect_handle);
Note: See TracChangeset for help on using the changeset viewer.