diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/dsdb/repl/drepl_service.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/source4/dsdb/repl/drepl_service.c b/source4/dsdb/repl/drepl_service.c index 3ed588566f..4196f94234 100644 --- a/source4/dsdb/repl/drepl_service.c +++ b/source4/dsdb/repl/drepl_service.c @@ -193,14 +193,17 @@ static void dreplsrv_task_init(struct task_server *task) return; } - service->notify.interval = lp_parm_int(task->lp_ctx, NULL, "dreplsrv", - "notify_interval", 5); /* in seconds */ - status = dreplsrv_notify_schedule(service, service->notify.interval); - if (!W_ERROR_IS_OK(status)) { - task_server_terminate(task, talloc_asprintf(task, - "dreplsrv: Failed to setup notify schedule: %s\n", - win_errstr(status)), true); - return; + /* if we are a RODC then we do not send DSReplicaSync*/ + if (!samdb_rodc(service->samdb)) { + service->notify.interval = lp_parm_int(task->lp_ctx, NULL, "dreplsrv", + "notify_interval", 5); /* in seconds */ + status = dreplsrv_notify_schedule(service, service->notify.interval); + if (!W_ERROR_IS_OK(status)) { + task_server_terminate(task, talloc_asprintf(task, + "dreplsrv: Failed to setup notify schedule: %s\n", + win_errstr(status)), true); + return; + } } irpc_add_name(task->msg_ctx, "dreplsrv"); |