summaryrefslogtreecommitdiff
path: root/source4/dsdb/repl/drepl_out_pull.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2009-09-09 18:04:07 +1000
committerAndrew Tridgell <tridge@samba.org>2009-09-09 18:04:07 +1000
commit8640293fabb0fd0fe92b814411577dcdb449100d (patch)
treee9c67e1a8c115525e8dd351d3ee61386d42c3111 /source4/dsdb/repl/drepl_out_pull.c
parent939b936d1af9a5221922864ad579bf50157b957b (diff)
downloadsamba-8640293fabb0fd0fe92b814411577dcdb449100d.tar.gz
samba-8640293fabb0fd0fe92b814411577dcdb449100d.tar.bz2
samba-8640293fabb0fd0fe92b814411577dcdb449100d.zip
s4/repl: implement DsReplicaSync
This patch implements DsReplicaSync by passing the call via irpc to the repl server task. The repl server then triggers an immediate replication of the specified partition. This means we no longer need to set a small value for dreplsrv:periodic_interval to force frequent DRS replication. We can now wait for the DC to send us a ReplicaSync msg for any partition that changes, and we immediately sync that partition.
Diffstat (limited to 'source4/dsdb/repl/drepl_out_pull.c')
-rw-r--r--source4/dsdb/repl/drepl_out_pull.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/source4/dsdb/repl/drepl_out_pull.c b/source4/dsdb/repl/drepl_out_pull.c
index c66c5bbd19..54dbd29730 100644
--- a/source4/dsdb/repl/drepl_out_pull.c
+++ b/source4/dsdb/repl/drepl_out_pull.c
@@ -79,6 +79,22 @@ WERROR dreplsrv_schedule_pull_replication(struct dreplsrv_service *s, TALLOC_CTX
return WERR_OK;
}
+
+/* force an immediate of the specified partition by GUID */
+WERROR dreplsrv_schedule_partition_pull_by_guid(struct dreplsrv_service *s, TALLOC_CTX *mem_ctx,
+ struct GUID *guid)
+{
+ struct dreplsrv_partition *p;
+
+ for (p = s->partitions; p; p = p->next) {
+ if (GUID_compare(&p->nc.guid, guid) == 0) {
+ return dreplsrv_schedule_partition_pull(s, p, mem_ctx);
+ }
+ }
+
+ return WERR_NOT_FOUND;
+}
+
static void dreplsrv_pending_op_callback(struct dreplsrv_out_operation *op)
{
struct repsFromTo1 *rf = op->source_dsa->repsFrom1;