From e88285db2df8790c5ee9f42285fa2c27c9b155ed Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 17 Jan 2006 17:15:07 +0000 Subject: r12982: fix parsing of LDAP DIRSYNC cookies metze (This used to be commit 31d2bf3ca15842ff3f7a74aa35e3753fadba6177) --- source4/librpc/idl/drsblobs.idl | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) (limited to 'source4') diff --git a/source4/librpc/idl/drsblobs.idl b/source4/librpc/idl/drsblobs.idl index c83ce8c799..464bdb0d83 100644 --- a/source4/librpc/idl/drsblobs.idl +++ b/source4/librpc/idl/drsblobs.idl @@ -119,21 +119,35 @@ interface drsblobs { [in] repsFromToBlob blob ); - typedef [public,gensize] struct { - [value(ndr_size_ldapControlDirSyncBlob(r, ndr->flags))] uint32 blobsize; /* just a guess! --metze */ - uint32 u1; + typedef struct { + hyper h4; + replUpToDateVectorCtr1 uptodateness_vector; + } ldapControlDirSyncExtraData; + + typedef [nodiscriminant,gensize] union { + [case(0)]; + [default] ldapControlDirSyncExtraData data; + } ldapControlDirSyncExtra; + + typedef struct { + [value(3)] uint32 u1; NTTIME time; uint32 u2; uint32 u3; - uint32 u4; + [value(ndr_size_ldapControlDirSyncExtra(&r->extra, r->extra.data.uptodateness_vector.count, 0))] + uint32 extra_length; drsuapi_DsReplicaHighWaterMark highwatermark; GUID guid1; - hyper h4; - replUpToDateVectorCtr1 uptodateness_vector; + [switch_is(extra_length)] ldapControlDirSyncExtra extra; } ldapControlDirSyncBlob; + typedef [public,relative_base] struct { + [string,charset(DOS),value("MSDS")] uint8 msds[4]; + [subcontext(0)] ldapControlDirSyncBlob blob; + } ldapControlDirSyncCookie; + void decode_ldapControlDirSync( - [in] ldapControlDirSyncBlob blob + [in] ldapControlDirSyncCookie cookie ); typedef [public] struct { -- cgit