summaryrefslogtreecommitdiff
path: root/source4/libnet/libnet_become_dc.c
diff options
context:
space:
mode:
authorSamuel Cabrero <scabrero@zentyal.com>2014-07-04 12:45:59 +0200
committerAndrew Bartlett <abartlet@samba.org>2014-07-07 05:22:33 +0200
commitd747372d28273542298f86530e715e8faaf907f2 (patch)
tree15d7e4fbf16e25ad085b9d0d08cb11c62a7d1670 /source4/libnet/libnet_become_dc.c
parent331fb7fc64c0a4f64c28001a1644a2a6a923be75 (diff)
downloadsamba-d747372d28273542298f86530e715e8faaf907f2.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>
Diffstat (limited to 'source4/libnet/libnet_become_dc.c')
-rw-r--r--source4/libnet/libnet_become_dc.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/source4/libnet/libnet_become_dc.c b/source4/libnet/libnet_become_dc.c
index 6d00fcc37b1..55ac48cfdb2 100644
--- a/source4/libnet/libnet_become_dc.c
+++ b/source4/libnet/libnet_become_dc.c
@@ -1712,10 +1712,33 @@ static WERROR becomeDC_drsuapi_bind_recv(struct libnet_BecomeDC_state *s,
drsuapi->remote_info28.repl_epoch = info48->repl_epoch;
break;
}
- case 28:
+ case 28: {
drsuapi->remote_info28 = drsuapi->bind_r.out.bind_info->info.info28;
break;
}
+ case 32: {
+ struct drsuapi_DsBindInfo32 *info32;
+ info32 = &drsuapi->bind_r.out.bind_info->info.info32;
+ drsuapi->remote_info28.supported_extensions = info32->supported_extensions;
+ drsuapi->remote_info28.site_guid = info32->site_guid;
+ drsuapi->remote_info28.pid = info32->pid;
+ drsuapi->remote_info28.repl_epoch = info32->repl_epoch;
+ break;
+ }
+ case 52: {
+ struct drsuapi_DsBindInfo52 *info52;
+ info52 = &drsuapi->bind_r.out.bind_info->info.info52;
+ drsuapi->remote_info28.supported_extensions = info52->supported_extensions;
+ drsuapi->remote_info28.site_guid = info52->site_guid;
+ drsuapi->remote_info28.pid = info52->pid;
+ drsuapi->remote_info28.repl_epoch = info52->repl_epoch;
+ break;
+ }
+ default:
+ DEBUG(1, ("Warning: invalid info length in bind info: %d\n",
+ drsuapi->bind_r.out.bind_info->length));
+ break;
+ }
}
return WERR_OK;