diff options
author | Michael Adam <obnox@samba.org> | 2008-07-16 17:12:04 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-08-01 16:04:39 +0200 |
commit | 16c2190b149a2232aa49a16a41e570410edd2eaf (patch) | |
tree | c8e4c451fa4966586a2ff2825bd1dd810b4df402 /source3/libnet/libnet_dssync.c | |
parent | b0fbdbc1bfdc69e116551f75f2fd5eb85a14ecdd (diff) | |
download | samba-16c2190b149a2232aa49a16a41e570410edd2eaf.tar.gz |
dssync: replace the processing_fn by startup/process/finish ops.
This remove static a variable for the keytab context in the keytab
processing function and simplifies the signature. The keytab context
is instead in the new private data member of the dssync_context struct.
This is in preparation of adding support for keeping track of the
up-to-date-ness vector, in order to be able to sync diffs instead
of the whole database.
Michael
(This used to be commit c51c3339f35e3bd921080d2e226e2422fc23e1e6)
Diffstat (limited to 'source3/libnet/libnet_dssync.c')
-rw-r--r-- | source3/libnet/libnet_dssync.c | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/source3/libnet/libnet_dssync.c b/source3/libnet/libnet_dssync.c index b55e6d1906c..f33369ee4b8 100644 --- a/source3/libnet/libnet_dssync.c +++ b/source3/libnet/libnet_dssync.c @@ -355,6 +355,14 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx, nc.guid = GUID_zero(); nc.sid = null_sid; + status = ctx->ops->startup(ctx, mem_ctx); + if (!NT_STATUS_IS_OK(status)) { + ctx->error_message = talloc_asprintf(mem_ctx, + "Failed to call startup operation: %s", + nt_errstr(status)); + goto out; + } + req.req8.naming_context = &nc; req.req8.replica_flags = DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE | DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP | @@ -423,12 +431,10 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx, last_query = false; } - if (ctx->processing_fn) { - status = ctx->processing_fn(mem_ctx, - ctr1->first_object, - &ctr1->mapping_ctr, - last_query, - ctx); + if (ctx->ops->process_objects) { + status = ctx->ops->process_objects(ctx, mem_ctx, + ctr1->first_object, + &ctr1->mapping_ctr); if (!NT_STATUS_IS_OK(status)) { ctx->error_message = talloc_asprintf(mem_ctx, "Failed to call processing function: %s", @@ -466,12 +472,10 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx, last_query = false; } - if (ctx->processing_fn) { - status = ctx->processing_fn(mem_ctx, - ctr6->first_object, - &ctr6->mapping_ctr, - last_query, - ctx); + if (ctx->ops->process_objects) { + status = ctx->ops->process_objects(ctx, mem_ctx, + ctr6->first_object, + &ctr6->mapping_ctr); if (!NT_STATUS_IS_OK(status)) { ctx->error_message = talloc_asprintf(mem_ctx, "Failed to call processing function: %s", @@ -485,6 +489,14 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx, } } + status = ctx->ops->finish(ctx, mem_ctx); + if (!NT_STATUS_IS_OK(status)) { + ctx->error_message = talloc_asprintf(mem_ctx, + "Failed to call finishing operation: %s", + nt_errstr(status)); + goto out; + } + break; } |