diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-09-12 10:06:39 +1000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-09-15 15:39:34 +1000 |
commit | 13a8745cae2b38c8071b182a4c020305c76e62b8 (patch) | |
tree | d0ab513cd0367dbc9c4f7bd65663883791a9d6f0 /source4/dsdb | |
parent | f6d85be52830d17dbf6e7b01bf854a49dccbc7f8 (diff) | |
download | samba-13a8745cae2b38c8071b182a4c020305c76e62b8.tar.gz samba-13a8745cae2b38c8071b182a4c020305c76e62b8.tar.bz2 samba-13a8745cae2b38c8071b182a4c020305c76e62b8.zip |
s4-rodc: add a trigger message for REPL_SECRET to auth_sam
when an RODC tries to authenticate against an account and the account
has no password information it needs to send a message to the drepl
server to tell it to try and replicate the secret information from
a writeable DC
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/dsdb')
-rw-r--r-- | source4/dsdb/repl/drepl_service.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/source4/dsdb/repl/drepl_service.c b/source4/dsdb/repl/drepl_service.c index 2c436172f1..9a353b0c1f 100644 --- a/source4/dsdb/repl/drepl_service.c +++ b/source4/dsdb/repl/drepl_service.c @@ -351,6 +351,19 @@ static NTSTATUS drepl_take_FSMO_role(struct irpc_message *msg, return NT_STATUS_OK; } +/** + * Called when the auth code wants us to try and replicate + * a users secrets + */ +static NTSTATUS drepl_trigger_repl_secret(struct irpc_message *msg, + struct drepl_trigger_repl_secret *r) +{ + /* we are not going to be sending a reply to this request */ + msg->no_reply = true; + DEBUG(0,(__location__ ": got drepl_trigger_repl_secret with %s\n", r->in.user_dn)); + return NT_STATUS_OK; +} + /* startup the dsdb replicator service task */ @@ -441,6 +454,7 @@ static void dreplsrv_task_init(struct task_server *task) IRPC_REGISTER(task->msg_ctx, irpc, DREPLSRV_REFRESH, dreplsrv_refresh, service); IRPC_REGISTER(task->msg_ctx, drsuapi, DRSUAPI_DSREPLICASYNC, drepl_replica_sync, service); IRPC_REGISTER(task->msg_ctx, irpc, DREPL_TAKEFSMOROLE, drepl_take_FSMO_role, service); + IRPC_REGISTER(task->msg_ctx, irpc, DREPL_TRIGGER_REPL_SECRET, drepl_trigger_repl_secret, service); messaging_register(task->msg_ctx, service, MSG_DREPL_ALLOCATE_RID, dreplsrv_allocate_rid); } |