summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rw-r--r--source4/dsdb/repl/drepl_service.c19
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");