svn commit: samba r3984 - in branches/SAMBA_4_0/source/librpc: idl ndr

metze at samba.org metze at samba.org
Sat Nov 27 15:10:57 GMT 2004


Author: metze
Date: 2004-11-27 15:10:57 +0000 (Sat, 27 Nov 2004)
New Revision: 3984

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=3984

Log:
success full parse the repsFrom/repsTo LDAP fields

metze

Modified:
   branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl
   branches/SAMBA_4_0/source/librpc/ndr/libndr.h


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl	2004-11-27 00:28:03 UTC (rev 3983)
+++ branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl	2004-11-27 15:10:57 UTC (rev 3984)
@@ -21,9 +21,8 @@
 	} replPropertyMetaData1;
 
 	typedef struct {
-		uint32 unknown1;
 		uint32 count;
-		uint32 unknown2;
+		uint32 reserved;
 		replPropertyMetaData1 array[count];
 	} replPropertyMetaDataCtr1;
 
@@ -33,6 +32,7 @@
 	
 	typedef [public] struct {
 		uint32 version;
+		uint32 reserved;
 		[switch_is(version)] replPropertyMetaDataCtr ctr;
 	} replPropertyMetaDataBlob;
 
@@ -46,27 +46,25 @@
 	 * w2k3 uses version 2
 	 */
 	typedef struct {
-		GUID dsa;
-		uint64 usn;
+		GUID invocation_id_guid;
+		uint64 highest_usn; /* updated after a full replication cycle */
 	} replUpToDateVector1;
 
 	typedef struct {
-		uint32 unknown1;
 		uint32 count;
-		uint32 unknown2;
+		uint32 reserved;
 		replUpToDateVector1 array[count];
 	} replUpToDateVectorCtr1;
 
 	typedef struct {
-		GUID dsa;
-		uint64 usn;
-		NTTIME_1sec time;
+		GUID invocation_id_guid;
+		uint64 highest_usn; /* updated after a full replication cycle */
+		NTTIME_1sec last_success;
 	} replUpToDateVector2;
 
 	typedef struct {
-		uint32 unknown1;
 		uint32 count;
-		uint32 unknown2;
+		uint32 reserved;
 		replUpToDateVector2 array[count];
 	} replUpToDateVectorCtr2;
 
@@ -77,6 +75,7 @@
 
 	typedef [public] struct {
 		uint32 version;
+		uint32 reserved;
 		[switch_is(version)] replUpToDateVectorCtr ctr;
 	} replUpToDateVectorBlob;
 
@@ -89,31 +88,37 @@
 	 * w2k  uses version 1
 	 * w2k3 uses version 1
 	 */
-	typedef [flag(NDR_PAHEX)] struct {
-		NTTIME_1sec time1;
-		NTTIME_1sec time2;
-		uint32 unknown1[4];
-		uint8 unknown2[84];
-		uint32 unknown3;
-		uint64 usn1;
-		uint32 unknown4;
-		uint32 unknown5;
-		uint64 usn2;
-		GUID guid1;
-		GUID guid2;
-		uint32 unknown6[4];
+	typedef [gensize] struct {
 		asclstr dns_name;
+	} repsFromTo1OtherInfo;
+
+	typedef [gensize,flag(NDR_PAHEX)] struct {
+		/* this includes the 8 bytes of the repsFromToBlob header */
+		[value(ndr_size_repsFromTo1(8, r, ndr->flags))] uint32 blobsize;
+		uint32 consecutive_failures;
+		NTTIME_1sec last_success;
+		NTTIME_1sec last_attempt;
+		WERROR result_last_attempt;
+		[relative,length_is(other_info_length)] repsFromTo1OtherInfo *other_info;
+		[value(ndr_size_repsFromTo1OtherInfo(0, r->other_info, ndr->flags))] uint32 other_info_length;
+		uint32 replica_flags;
+		uint8 schedule[84];
+		uint32 reserved;
+		uint64 tmp_highest_usn; /* updated after each object update */
+		uint64 reserved_usn;
+		uint64 highest_usn; /* updated after a full replication cycle */
+		GUID dsa_guid;
+		GUID invocation_id_guid;
+		GUID transport_guid;
 	} repsFromTo1;
 
 	typedef [nodiscriminant] union {
 		[case(1)] repsFromTo1 ctr1;
 	} repsFromTo;
 
-	typedef [public,gensize] struct {
+	typedef [public] struct {
 		uint32 version;
-		uint32 unknown1;
-		[value(ndr_size_repsFromToBlob(0, r, ndr->flags))] uint32 blobsize;
-		uint32 unknown2;
+		uint32 reserved;
 		[switch_is(version)] repsFromTo ctr;
 	} repsFromToBlob;
 

Modified: branches/SAMBA_4_0/source/librpc/ndr/libndr.h
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/libndr.h	2004-11-27 00:28:03 UTC (rev 3983)
+++ branches/SAMBA_4_0/source/librpc/ndr/libndr.h	2004-11-27 15:10:57 UTC (rev 3984)
@@ -207,6 +207,9 @@
 #define ndr_size_NTTIME(t, p, flags) ndr_size_uint64(t, p, flags)
 #define ndr_size_NTTIME_1sec(t, p, flags) ndr_size_NTTIME(t, p, flags)
 
+#define ndr_size_WERROR(t, p, flags) ndr_size_uint32(t, p, flags)
+#define ndr_size_NTSTATUS(t, p, flags) ndr_size_uint32(t, p, flags)
+
 /* these are used to make the error checking on each element in libndr
    less tedious, hopefully making the code more readable */
 #define NDR_CHECK(call) do { NTSTATUS _status; \



More information about the samba-cvs mailing list