diff options
author | Stefan Metzmacher <metze@samba.org> | 2006-01-17 17:15:07 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:51:14 -0500 |
commit | e88285db2df8790c5ee9f42285fa2c27c9b155ed (patch) | |
tree | 19ee1463da39156e5be0124d80acbafdfd452b70 /source4/librpc/idl | |
parent | 8641271e6540107e5dcacb4273fc775919d065c1 (diff) | |
download | samba-e88285db2df8790c5ee9f42285fa2c27c9b155ed.tar.gz samba-e88285db2df8790c5ee9f42285fa2c27c9b155ed.tar.bz2 samba-e88285db2df8790c5ee9f42285fa2c27c9b155ed.zip |
r12982: fix parsing of LDAP DIRSYNC cookies
metze
(This used to be commit 31d2bf3ca15842ff3f7a74aa35e3753fadba6177)
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r-- | source4/librpc/idl/drsblobs.idl | 28 |
1 files changed, 21 insertions, 7 deletions
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 { |