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 {

Reply via email to