ctx->remote_info28.repl_epoch = 0;
break;
}
- case 28:
+ case 28: {
ctx->remote_info28 = bind_info.info.info28;
break;
+ }
+ case 32: {
+ struct drsuapi_DsBindInfo32 *info32;
+ info32 = &bind_info.info.info32;
+ ctx->remote_info28.site_guid = info32->site_guid;
+ ctx->remote_info28.supported_extensions = info32->supported_extensions;
+ ctx->remote_info28.pid = info32->pid;
+ ctx->remote_info28.repl_epoch = info32->repl_epoch;
+ break;
+ }
case 48: {
struct drsuapi_DsBindInfo48 *info48;
info48 = &bind_info.info.info48;
ctx->remote_info28.repl_epoch = info48->repl_epoch;
break;
}
+ case 52: {
+ struct drsuapi_DsBindInfo52 *info52;
+ info52 = &bind_info.info.info52;
+ ctx->remote_info28.site_guid = info52->site_guid;
+ ctx->remote_info28.supported_extensions = info52->supported_extensions;
+ ctx->remote_info28.pid = info52->pid;
+ ctx->remote_info28.repl_epoch = info52->repl_epoch;
+ break;
+ }
default:
DEBUG(1, ("Warning: invalid info length in bind info: %d\n",
bind_info.length));
status = libnet_dssync_getncchanges(mem_ctx, ctx, level, &req,
&pnew_utdv);
if (!NT_STATUS_IS_OK(status)) {
- ctx->error_message = talloc_asprintf(ctx,
- "Failed to call DsGetNCCHanges: %s",
- nt_errstr(status));
+ if (!ctx->error_message) {
+ ctx->error_message = talloc_asprintf(ctx,
+ "Failed to call DsGetNCCHanges: %s",
+ nt_errstr(status));
+ }
goto out;
}
}