Author: metze Date: 2006-01-17 17:15:07 +0000 (Tue, 17 Jan 2006) New Revision: 12982
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12982 Log: fix parsing of LDAP DIRSYNC cookies metze Modified: branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl Changeset: Modified: branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl =================================================================== --- branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl 2006-01-17 16:00:48 UTC (rev 12981) +++ branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl 2006-01-17 17:15:07 UTC (rev 12982) @@ -119,21 +119,35 @@ [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 {
