git.samba.org
/
kamenim
/
samba.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
658a0f9
)
s4:drepl_out_helpers: don't return NT_STATUS_OK, if an extended operation doesn't...
author
Stefan Metzmacher
<metze@samba.org>
Thu, 8 Jul 2010 14:18:21 +0000
(16:18 +0200)
committer
Stefan Metzmacher
<metze@samba.org>
Fri, 9 Jul 2010 07:27:16 +0000
(09:27 +0200)
metze
source4/dsdb/repl/drepl_out_helpers.c
patch
|
blob
|
history
diff --git
a/source4/dsdb/repl/drepl_out_helpers.c
b/source4/dsdb/repl/drepl_out_helpers.c
index 56e12579876892a12263e50e1e1f910aa981037d..d8e5b76fb79ee45e25f15ddb8b2a605b0ae70a86 100644
(file)
--- a/
source4/dsdb/repl/drepl_out_helpers.c
+++ b/
source4/dsdb/repl/drepl_out_helpers.c
@@
-365,7
+365,7
@@
static void dreplsrv_op_pull_source_get_changes_done(struct tevent_req *subreq)
uint32_t ctr_level = 0;
struct drsuapi_DsGetNCChangesCtr1 *ctr1 = NULL;
struct drsuapi_DsGetNCChangesCtr6 *ctr6 = NULL;
uint32_t ctr_level = 0;
struct drsuapi_DsGetNCChangesCtr1 *ctr1 = NULL;
struct drsuapi_DsGetNCChangesCtr6 *ctr6 = NULL;
-
+ enum drsuapi_DsExtendedError extended_ret;
state->ndr_struct_ptr = NULL;
status = dcerpc_drsuapi_DsGetNCChanges_r_recv(subreq, r);
state->ndr_struct_ptr = NULL;
status = dcerpc_drsuapi_DsGetNCChanges_r_recv(subreq, r);
@@
-420,6
+420,19
@@
static void dreplsrv_op_pull_source_get_changes_done(struct tevent_req *subreq)
tevent_req_nterror(req, status);
return;
}
tevent_req_nterror(req, status);
return;
}
+ extended_ret = ctr6->extended_ret;
+ }
+
+ if (ctr_level == 1) {
+ extended_ret = ctr1->extended_ret;
+ }
+
+ if (state->op->extended_op != DRSUAPI_EXOP_NONE) {
+ if (extended_ret != DRSUAPI_EXOP_ERR_SUCCESS) {
+ status = NT_STATUS_UNSUCCESSFUL;
+ tevent_req_nterror(req, status);
+ return;
+ }
}
dreplsrv_op_pull_source_apply_changes_trigger(req, r, ctr_level, ctr1, ctr6);
}
dreplsrv_op_pull_source_apply_changes_trigger(req, r, ctr_level, ctr1, ctr6);