summaryrefslogtreecommitdiff
path: root/source4/dsdb/repl/drepl_out_helpers.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2016-03-21 15:49:33 +1300
committerAndrew Bartlett <abartlet@samba.org>2016-06-06 08:50:09 +0200
commit65a35acbf33dd6dfd6ba6b2fb76580126829b597 (patch)
tree156239cd3b6c59b846e1e56300342fbb4dde7be9 /source4/dsdb/repl/drepl_out_helpers.c
parent5967852aa085cd13784b4f994122a78d2ab64845 (diff)
downloadsamba-65a35acbf33dd6dfd6ba6b2fb76580126829b597.tar.gz
repl: Pass in the full partition DN to dsdb_replicated_objects_convert()
When we were processing an EXOP, we would pass in a DN specific to that operation, but this stopped repl_meta_data from finding the parent object Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Diffstat (limited to 'source4/dsdb/repl/drepl_out_helpers.c')
-rw-r--r--source4/dsdb/repl/drepl_out_helpers.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c
index a1e8dcbb244..a217e833e73 100644
--- a/source4/dsdb/repl/drepl_out_helpers.c
+++ b/source4/dsdb/repl/drepl_out_helpers.c
@@ -671,6 +671,8 @@ static void dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req
WERROR status;
NTSTATUS nt_status;
uint32_t dsdb_repl_flags = 0;
+ struct ldb_dn *nc_root = NULL;
+ int ret;
switch (ctr_level) {
case 1:
@@ -744,9 +746,22 @@ static void dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req
dsdb_repl_flags |= DSDB_REPL_FLAG_EXPECT_NO_SECRETS;
}
+ if (state->op->extended_op != DRSUAPI_EXOP_NONE) {
+ ret = dsdb_find_nc_root(service->samdb, partition,
+ partition->dn, &nc_root);
+ if (ret != LDB_SUCCESS) {
+ DEBUG(0,(__location__ ": Failed to find nc_root for %s\n",
+ ldb_dn_get_linearized(partition->dn)));
+ tevent_req_nterror(req, NT_STATUS_INTERNAL_ERROR);
+ return;
+ }
+ } else {
+ nc_root = partition->dn;
+ }
+
status = dsdb_replicated_objects_convert(service->samdb,
working_schema ? working_schema : schema,
- partition->nc.dn,
+ nc_root,
mapping_ctr,
object_count,
first_object,