From 264b28ec0962c355ee90f9ac67fcf07cd84c5c7b Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Wed, 1 Apr 2009 16:55:53 +0200 Subject: s3-libnet: only call libnet_dssync_process() startup and shutdown callbacks when filled in. Guenther --- source3/libnet/libnet_dssync.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'source3/libnet/libnet_dssync.c') diff --git a/source3/libnet/libnet_dssync.c b/source3/libnet/libnet_dssync.c index 81866c85ba..746b09635d 100644 --- a/source3/libnet/libnet_dssync.c +++ b/source3/libnet/libnet_dssync.c @@ -649,12 +649,14 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx, uint32_t dn_count; uint32_t count; - status = ctx->ops->startup(ctx, mem_ctx, &old_utdv); - if (!NT_STATUS_IS_OK(status)) { - ctx->error_message = talloc_asprintf(ctx, - "Failed to call startup operation: %s", - nt_errstr(status)); - goto out; + if (ctx->ops->startup) { + status = ctx->ops->startup(ctx, mem_ctx, &old_utdv); + if (!NT_STATUS_IS_OK(status)) { + ctx->error_message = talloc_asprintf(ctx, + "Failed to call startup operation: %s", + nt_errstr(status)); + goto out; + } } if (ctx->single_object_replication && ctx->object_dns) { @@ -684,12 +686,14 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx, } } - status = ctx->ops->finish(ctx, mem_ctx, pnew_utdv); - if (!NT_STATUS_IS_OK(status)) { - ctx->error_message = talloc_asprintf(ctx, - "Failed to call finishing operation: %s", - nt_errstr(status)); - goto out; + if (ctx->ops->finish) { + status = ctx->ops->finish(ctx, mem_ctx, pnew_utdv); + if (!NT_STATUS_IS_OK(status)) { + ctx->error_message = talloc_asprintf(ctx, + "Failed to call finishing operation: %s", + nt_errstr(status)); + goto out; + } } out: -- cgit