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/libnet/libnet_samsync.c

    r414 r745  
    2323
    2424#include "includes.h"
    25 #include "libnet/libnet.h"
    26 #include "../lib/crypto/crypto.h"
     25#include "libnet/libnet_samsync.h"
    2726#include "../libcli/samsync/samsync.h"
    2827#include "../libcli/auth/libcli_auth.h"
    29 #include "../librpc/gen_ndr/cli_netlogon.h"
     28#include "rpc_client/rpc_client.h"
     29#include "../librpc/gen_ndr/ndr_netlogon.h"
     30#include "../librpc/gen_ndr/ndr_netlogon_c.h"
     31#include "../libcli/security/security.h"
     32#include "messages.h"
    3033
    3134/**
     
    7275
    7376        if (domain_sid) {
    74                 ctx->domain_sid = sid_dup_talloc(mem_ctx, domain_sid);
     77                ctx->domain_sid = dom_sid_dup(mem_ctx, domain_sid);
    7578                NT_STATUS_HAVE_NO_MEMORY(ctx->domain_sid);
    7679
     
    7881                NT_STATUS_HAVE_NO_MEMORY(ctx->domain_sid_str);
    7982        }
     83
     84        ctx->msg_ctx = messaging_init(ctx, procid_self(),
     85                                      event_context_init(ctx));
     86        NT_STATUS_HAVE_NO_MEMORY(ctx->msg_ctx);
    8087
    8188        *ctx_p = ctx;
     
    194201                                     struct netr_ChangeLogEntry *e)
    195202{
    196         NTSTATUS result;
     203        NTSTATUS result, status;
    197204        NTSTATUS callback_status;
    198205        const char *logon_server = ctx->cli->desthost;
     
    202209        uint16_t restart_state = 0;
    203210        uint32_t sync_context = 0;
     211        struct dcerpc_binding_handle *b = ctx->cli->binding_handle;
    204212
    205213        ZERO_STRUCT(return_authenticator);
     
    212220                if (ctx->single_object_replication &&
    213221                    !ctx->force_full_replication) {
    214                         result = rpccli_netr_DatabaseRedo(ctx->cli, mem_ctx,
     222                        status = dcerpc_netr_DatabaseRedo(b, mem_ctx,
    215223                                                          logon_server,
    216224                                                          computername,
     
    219227                                                          *e,
    220228                                                          0,
    221                                                           &delta_enum_array);
     229                                                          &delta_enum_array,
     230                                                          &result);
    222231                } else if (!ctx->force_full_replication &&
    223232                           sequence_num && (*sequence_num > 0)) {
    224                         result = rpccli_netr_DatabaseDeltas(ctx->cli, mem_ctx,
     233                        status = dcerpc_netr_DatabaseDeltas(b, mem_ctx,
    225234                                                            logon_server,
    226235                                                            computername,
     
    230239                                                            sequence_num,
    231240                                                            &delta_enum_array,
    232                                                             0xffff);
     241                                                            0xffff,
     242                                                            &result);
    233243                } else {
    234                         result = rpccli_netr_DatabaseSync2(ctx->cli, mem_ctx,
     244                        status = dcerpc_netr_DatabaseSync2(b, mem_ctx,
    235245                                                           logon_server,
    236246                                                           computername,
     
    241251                                                           &sync_context,
    242252                                                           &delta_enum_array,
    243                                                            0xffff);
    244                 }
    245 
    246                 if (NT_STATUS_EQUAL(result, NT_STATUS_NOT_SUPPORTED)) {
    247                         return result;
     253                                                           0xffff,
     254                                                           &result);
     255                }
     256
     257                if (!NT_STATUS_IS_OK(status)) {
     258                        return status;
    248259                }
    249260
     
    253264                        DEBUG(0,("credentials chain check failed\n"));
    254265                        return NT_STATUS_ACCESS_DENIED;
     266                }
     267
     268                if (NT_STATUS_EQUAL(result, NT_STATUS_NOT_SUPPORTED)) {
     269                        return result;
    255270                }
    256271
     
    397412        blob = data_blob_const(r->array, r->length);
    398413
    399         ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, NULL, str,
     414        ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, str,
    400415                       (ndr_pull_flags_fn_t)ndr_pull_netr_AcctLockStr);
    401416
Note: See TracChangeset for help on using the changeset viewer.