summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2015-02-20 17:55:49 +1300
committerAndrew Bartlett <abartlet@samba.org>2015-03-16 03:00:07 +0100
commit288117507f6ba0faa25bc83df532cdd254738e00 (patch)
tree5a09cb2c88815f38a20e7bf9e112ffed48b54316 /source4
parentb5be45c453bd51373bade26c29828b500ba586ec (diff)
downloadsamba-288117507f6ba0faa25bc83df532cdd254738e00.tar.gz
dsdb-repl: Always set DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING when we are an RODC
Unless we are using DRSUAPI_EXOP_REPL_SECRET, always remove DRSUAPI_DRS_WRIT_REP and always set DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING Otherwise, we will not work as an RODC, because replication will fail with access denied errors. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Jelmer Vernooij <jelmer@samba.org>
Diffstat (limited to 'source4')
-rw-r--r--source4/dsdb/repl/drepl_out_helpers.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c
index c8a28ac998c..a0478813681 100644
--- a/source4/dsdb/repl/drepl_out_helpers.c
+++ b/source4/dsdb/repl/drepl_out_helpers.c
@@ -476,8 +476,11 @@ static void dreplsrv_op_pull_source_get_changes_trigger(struct tevent_req *req)
DEBUG(0,(__location__ ": Failed to construct RODC partial attribute set : %s\n", nt_errstr(status)));
return;
}
+ replica_flags &= ~DRSUAPI_DRS_WRIT_REP;
if (state->op->extended_op == DRSUAPI_EXOP_REPL_SECRET) {
replica_flags &= ~DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING;
+ } else {
+ replica_flags |= DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING;
}
}
if (state->op->extended_op != DRSUAPI_EXOP_NONE) {