summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorSamuel Cabrero <scabrero@zentyal.com>2014-07-04 12:45:59 +0200
committerKarolin Seeger <kseeger@samba.org>2015-01-11 14:03:09 +0100
commitdb5d42280f28a9a6dade157683f674b8f157dc46 (patch)
tree7aa8882ab62cfbe675619954f62a5377d003ac39 /source3
parente3e0c5e1b5f0307f74737b0a5f7584da387d1fa3 (diff)
downloadsamba-db5d42280f28a9a6dade157683f674b8f157dc46.tar.gz
idl:drsuapi: Manage all possible lengths of drsuapi_DsBindInfo
Signed-off-by: Samuel Cabrero <scabrero@zentyal.com> Reviewed-by: Kamen Mazdrashki <kamenim@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Kamen Mazdrashki <kamenim@samba.org> (cherry picked from commit d747372d28273542298f86530e715e8faaf907f2)
Diffstat (limited to 'source3')
-rw-r--r--source3/libnet/libnet_dssync.c21
-rw-r--r--source3/rpcclient/cmd_drsuapi.c4
2 files changed, 24 insertions, 1 deletions
diff --git a/source3/libnet/libnet_dssync.c b/source3/libnet/libnet_dssync.c
index a8431066ef..94f06285a8 100644
--- a/source3/libnet/libnet_dssync.c
+++ b/source3/libnet/libnet_dssync.c
@@ -195,9 +195,19 @@ static NTSTATUS libnet_dssync_bind(TALLOC_CTX *mem_ctx,
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;
@@ -207,6 +217,15 @@ static NTSTATUS libnet_dssync_bind(TALLOC_CTX *mem_ctx,
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));
diff --git a/source3/rpcclient/cmd_drsuapi.c b/source3/rpcclient/cmd_drsuapi.c
index 0c281cf8d1..6a1fac7bfa 100644
--- a/source3/rpcclient/cmd_drsuapi.c
+++ b/source3/rpcclient/cmd_drsuapi.c
@@ -420,8 +420,12 @@ static WERROR cmd_drsuapi_getncchanges(struct rpc_pipe_client *cli,
supported_extensions = bind_info.info.info24.supported_extensions;
} else if (bind_info.length == 28) {
supported_extensions = bind_info.info.info28.supported_extensions;
+ } else if (bind_info.length == 32) {
+ supported_extensions = bind_info.info.info32.supported_extensions;
} else if (bind_info.length == 48) {
supported_extensions = bind_info.info.info48.supported_extensions;
+ } else if (bind_info.length == 52) {
+ supported_extensions = bind_info.info.info52.supported_extensions;
}
if (!nc_dn) {