summaryrefslogtreecommitdiff
path: root/source3/libnet/libnet_samsync.c
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2011-01-12 11:21:18 +0100
committerAndreas Schneider <asn@samba.org>2011-01-13 12:22:28 +0100
commitf3eb5c234e3c4e07c9839c940c4558a169087dbf (patch)
tree62c2d10f0e1fc53c907f120c44ee37b0c902ce52 /source3/libnet/libnet_samsync.c
parent425753ebe3e85e1e7ea939937269c10bc5f7fd73 (diff)
downloadsamba-f3eb5c234e3c4e07c9839c940c4558a169087dbf.tar.gz
samba-f3eb5c234e3c4e07c9839c940c4558a169087dbf.tar.bz2
samba-f3eb5c234e3c4e07c9839c940c4558a169087dbf.zip
s3-libnet: prefer dcerpc_netr_X functions.
Guenther Signed-off-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'source3/libnet/libnet_samsync.c')
-rw-r--r--source3/libnet/libnet_samsync.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/source3/libnet/libnet_samsync.c b/source3/libnet/libnet_samsync.c
index a464a004ab..3ae4baa3c3 100644
--- a/source3/libnet/libnet_samsync.c
+++ b/source3/libnet/libnet_samsync.c
@@ -27,7 +27,7 @@
#include "../libcli/samsync/samsync.h"
#include "../libcli/auth/libcli_auth.h"
#include "../librpc/gen_ndr/ndr_netlogon.h"
-#include "../librpc/gen_ndr/cli_netlogon.h"
+#include "../librpc/gen_ndr/ndr_netlogon_c.h"
#include "../libcli/security/security.h"
/**
@@ -199,7 +199,7 @@ static NTSTATUS libnet_samsync_delta(TALLOC_CTX *mem_ctx,
struct samsync_context *ctx,
struct netr_ChangeLogEntry *e)
{
- NTSTATUS result;
+ NTSTATUS result, status;
NTSTATUS callback_status;
const char *logon_server = ctx->cli->desthost;
const char *computername = global_myname();
@@ -207,6 +207,7 @@ static NTSTATUS libnet_samsync_delta(TALLOC_CTX *mem_ctx,
struct netr_Authenticator return_authenticator;
uint16_t restart_state = 0;
uint32_t sync_context = 0;
+ struct dcerpc_binding_handle *b = ctx->cli->binding_handle;
ZERO_STRUCT(return_authenticator);
@@ -217,17 +218,18 @@ static NTSTATUS libnet_samsync_delta(TALLOC_CTX *mem_ctx,
if (ctx->single_object_replication &&
!ctx->force_full_replication) {
- result = rpccli_netr_DatabaseRedo(ctx->cli, mem_ctx,
+ status = dcerpc_netr_DatabaseRedo(b, mem_ctx,
logon_server,
computername,
&credential,
&return_authenticator,
*e,
0,
- &delta_enum_array);
+ &delta_enum_array,
+ &result);
} else if (!ctx->force_full_replication &&
sequence_num && (*sequence_num > 0)) {
- result = rpccli_netr_DatabaseDeltas(ctx->cli, mem_ctx,
+ status = dcerpc_netr_DatabaseDeltas(b, mem_ctx,
logon_server,
computername,
&credential,
@@ -235,9 +237,10 @@ static NTSTATUS libnet_samsync_delta(TALLOC_CTX *mem_ctx,
database_id,
sequence_num,
&delta_enum_array,
- 0xffff);
+ 0xffff,
+ &result);
} else {
- result = rpccli_netr_DatabaseSync2(ctx->cli, mem_ctx,
+ status = dcerpc_netr_DatabaseSync2(b, mem_ctx,
logon_server,
computername,
&credential,
@@ -246,11 +249,12 @@ static NTSTATUS libnet_samsync_delta(TALLOC_CTX *mem_ctx,
restart_state,
&sync_context,
&delta_enum_array,
- 0xffff);
+ 0xffff,
+ &result);
}
- if (NT_STATUS_EQUAL(result, NT_STATUS_NOT_SUPPORTED)) {
- return result;
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
}
/* Check returned credentials. */
@@ -260,6 +264,10 @@ static NTSTATUS libnet_samsync_delta(TALLOC_CTX *mem_ctx,
return NT_STATUS_ACCESS_DENIED;
}
+ if (NT_STATUS_EQUAL(result, NT_STATUS_NOT_SUPPORTED)) {
+ return result;
+ }
+
if (NT_STATUS_IS_ERR(result)) {
break;
}