summaryrefslogtreecommitdiff
path: root/source4/dsdb/repl/drepl_out_pull.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-01-06 14:54:12 +1100
committerAndrew Tridgell <tridge@samba.org>2010-01-08 13:03:00 +1100
commit19e515aac7a6e5ce85cfd6905a1cc773277047a9 (patch)
tree867fe810c9f72c216eb5a157de50c7d0ea34c4ed /source4/dsdb/repl/drepl_out_pull.c
parent8cd2bedee74ae8dfb3a19f9bdde4a568de4b44cd (diff)
downloadsamba-19e515aac7a6e5ce85cfd6905a1cc773277047a9.tar.gz
samba-19e515aac7a6e5ce85cfd6905a1cc773277047a9.tar.bz2
samba-19e515aac7a6e5ce85cfd6905a1cc773277047a9.zip
s4-repl: added request for RID allocation in drepl task
The drepl task now checks to see if our rIDAllocationPool is exhausted, and if it is then we queue a extended operation DsGetNCChanges call to ask the RID Manager to give us a new allocation pool. Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/dsdb/repl/drepl_out_pull.c')
-rw-r--r--source4/dsdb/repl/drepl_out_pull.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/source4/dsdb/repl/drepl_out_pull.c b/source4/dsdb/repl/drepl_out_pull.c
index 2793eec8b4..ceec61848d 100644
--- a/source4/dsdb/repl/drepl_out_pull.c
+++ b/source4/dsdb/repl/drepl_out_pull.c
@@ -33,21 +33,21 @@
#include "librpc/gen_ndr/ndr_drsblobs.h"
#include "libcli/composite/composite.h"
-static WERROR dreplsrv_schedule_partition_pull_source(struct dreplsrv_service *s,
- struct dreplsrv_partition *p,
- struct dreplsrv_partition_source_dsa *source,
- TALLOC_CTX *mem_ctx)
+WERROR dreplsrv_schedule_partition_pull_source(struct dreplsrv_service *s,
+ struct dreplsrv_partition_source_dsa *source,
+ enum drsuapi_DsExtendedOperation extended_op)
{
struct dreplsrv_out_operation *op;
- op = talloc_zero(mem_ctx, struct dreplsrv_out_operation);
+ op = talloc_zero(s, struct dreplsrv_out_operation);
W_ERROR_HAVE_NO_MEMORY(op);
op->service = s;
op->source_dsa = source;
+ op->extended_op = extended_op;
DLIST_ADD_END(s->ops.pending, op, struct dreplsrv_out_operation *);
- talloc_steal(s, op);
+
return WERR_OK;
}
@@ -59,7 +59,7 @@ static WERROR dreplsrv_schedule_partition_pull(struct dreplsrv_service *s,
struct dreplsrv_partition_source_dsa *cur;
for (cur = p->sources; cur; cur = cur->next) {
- status = dreplsrv_schedule_partition_pull_source(s, p, cur, mem_ctx);
+ status = dreplsrv_schedule_partition_pull_source(s, cur, DRSUAPI_EXOP_NONE);
W_ERROR_NOT_OK_RETURN(status);
}