summaryrefslogtreecommitdiff
path: root/source4/dsdb/repl/drepl_out_pull.c
diff options
context:
space:
mode:
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;