diff options
-rw-r--r-- | source4/libnet/libnet_become_dc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source4/libnet/libnet_become_dc.c b/source4/libnet/libnet_become_dc.c index 2d35b40cfa..9ba801bb6f 100644 --- a/source4/libnet/libnet_become_dc.c +++ b/source4/libnet/libnet_become_dc.c @@ -2767,8 +2767,12 @@ static void becomeDC_drsuapi_update_refs_send(struct libnet_BecomeDC_state *s, r->in.req.req1.dest_dsa_dns_name= ntds_dns_name; r->in.req.req1.dest_dsa_guid = s->dest_dsa.ntds_guid; r->in.req.req1.options = DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE - | DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE - | DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE; + | DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE; + + /* I think this is how we mark ourselves as a RODC */ + if (!lp_parm_bool(s->libnet->lp_ctx, NULL, "repl", "RODC", false)) { + r->in.req.req1.options |= DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE; + } req = dcerpc_drsuapi_DsReplicaUpdateRefs_send(drsuapi->pipe, r, r); composite_continue_rpc(c, req, recv_fn, s); |