svn commit: samba r12982 - in branches/SAMBA_4_0/source/librpc/idl: .

metze at samba.org metze at samba.org
Tue Jan 17 17:15:07 GMT 2006


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 {



More information about the samba-cvs mailing list