svn commit: samba r5998 - in branches/SAMBA_4_0/source: librpc/idl torture/rpc

metze at samba.org metze at samba.org
Wed Mar 23 18:54:06 GMT 2005


Author: metze
Date: 2005-03-23 18:54:06 +0000 (Wed, 23 Mar 2005)
New Revision: 5998

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

Log:
I was wrong with the highwater mark...

I think I now understand how it works:-)

metze

Modified:
   branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl
   branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
   branches/SAMBA_4_0/source/torture/rpc/drsuapi.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl	2005-03-23 18:23:55 UTC (rev 5997)
+++ branches/SAMBA_4_0/source/librpc/idl/drsblobs.idl	2005-03-23 18:54:06 UTC (rev 5998)
@@ -9,6 +9,7 @@
 ]
 interface drsblobs {
 	declare bitmap drsuapi_DsReplicaSyncOptions;
+	declare bitmap drsuapi_DsReplicaNeighbourFlags;
 	declare [v1_enum] enum drsuapi_DsAttributeId;
 
 	/*
@@ -95,10 +96,10 @@
 		WERROR result_last_attempt;
 		[relative] repsFromTo1OtherInfo *other_info;
 		[value(ndr_size_repsFromTo1OtherInfo(r->other_info, ndr->flags))] uint32 other_info_length;
-		drsuapi_DsReplicaSyncOptions replica_flags;
+		drsuapi_DsReplicaNeighbourFlags replica_flags;
 		uint8 schedule[84];
 		uint32 reserved;
-		drsuapi_DsReplicaUsnCtr replication_state;
+		drsuapi_DsReplicaHighWaterMark highwatermark;
 		GUID source_dsa_obj_guid; /* the 'objectGuid' field of the CN=NTDS Settings object */
 		GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */
 		GUID transport_guid;
@@ -125,7 +126,7 @@
 		uint32 u2;
 		uint32 u3;
 		uint32 u4;
-		drsuapi_DsReplicaUsnCtr replication_state;
+		drsuapi_DsReplicaHighWaterMark highwatermark;
 		GUID guid1;
 		hyper h4;
 		replUpToDateVectorCtr1 uptodateness_vector;

Modified: branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl	2005-03-23 18:23:55 UTC (rev 5997)
+++ branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl	2005-03-23 18:54:06 UTC (rev 5998)
@@ -172,7 +172,7 @@
 		hyper tmp_highest_usn; /* updated after each object update */
 		hyper reserved_usn;
 		hyper highest_usn; /* updated after a full replication cycle */
-	} drsuapi_DsReplicaUsnCtr;
+	} drsuapi_DsReplicaHighWaterMark;
 
 	typedef [public] struct {
 		GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */
@@ -187,13 +187,31 @@
 		[size_is(count)] drsuapi_DsReplicaCoursor coursors[];
 	} drsuapi_DsReplicaCoursor05Ctr;
 
+	typedef [public] bitmap {
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE				= 0x00000010,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP			= 0x00000020,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS			= 0x00000040,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT	= 0x00000080,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC			= 0x00000200,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS		= 0x00000800,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS			= 0x00010000,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_NEXT_PACKET			= 0x00020000,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED			= 0x00200000,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED				= 0x01000000,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS	= 0x04000000,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC		= 0x08000000,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES			= 0x10000000,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS		= 0x20000000,
+		DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET		= 0x40000000
+	} drsuapi_DsReplicaNeighbourFlags;
+
 	typedef struct {
 		GUID destination_dsa_guid;
 		GUID source_dsa_guid;
 		[ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
-		drsuapi_DsReplicaUsnCtr replication_state;
-		drsuapi_DsReplicaCoursor05Ctr *highwatermark_vector;
-		uint32 unknown1;
+		drsuapi_DsReplicaHighWaterMark highwatermark;
+		drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector;
+		drsuapi_DsReplicaNeighbourFlags replica_flags;
 		uint32 unknown2;
 		uint32 unknown3;
 		uint32 unknown4;
@@ -219,9 +237,9 @@
 		GUID destination_dsa_guid;
 		GUID source_dsa_guid;
 		[ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
-		drsuapi_DsReplicaUsnCtr replication_state;
-		drsuapi_DsReplicaCoursor05Ctr *highwatermark_vector;
-		uint32 unknown1;
+		drsuapi_DsReplicaHighWaterMark highwatermark;
+		drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector;
+		drsuapi_DsReplicaNeighbourFlags replica_flags;
 		uint32 unknown2;
 		uint32 unknown3;
 		uint32 unknown4;
@@ -448,17 +466,18 @@
 		drsuapi_DsReplicaMetaDataCtr *meta_data_ctr;
 	} drsuapi_DsReplicaObjectListItemEx;
 
-	typedef struct {
+	typedef [gensize] struct {
 		GUID guid1;
 		GUID guid2;
 		drsuapi_DsReplicaObjectIdentifier *naming_context;
-		drsuapi_DsReplicaUsnCtr old_replication_state;
-		drsuapi_DsReplicaUsnCtr new_replication_state;
+		drsuapi_DsReplicaHighWaterMark old_highwatermark;
+		drsuapi_DsReplicaHighWaterMark new_highwatermark;
 		drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector;
 		drsuapi_DsGetNCChangesRequest_Ctr12 ctr12;
 		uint32 unknown1;
-		uint32 unknown2;
-		uint32 unknown3;
+		uint32 object_count;
+		/* this +55 is sometimes +56, so I don't know where this comes from... --metze */
+		[value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] uint32 __ndr_size;
 		drsuapi_DsReplicaObjectListItemEx *first_object;
 		uint32 unknown4;
 	} drsuapi_DsGetNCChangesCtr1;
@@ -477,8 +496,8 @@
 		GUID guid1;
 		GUID guid2;
 		drsuapi_DsReplicaObjectIdentifier *naming_context;
-		drsuapi_DsReplicaUsnCtr old_replication_state;
-		drsuapi_DsReplicaUsnCtr new_replication_state;
+		drsuapi_DsReplicaHighWaterMark old_highwatermark;
+		drsuapi_DsReplicaHighWaterMark new_highwatermark;
 		drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector;
 		drsuapi_DsGetNCChangesRequest_Ctr12 ctr12;
 		uint32 unknown1;
@@ -889,7 +908,7 @@
 		unistr *source_dsa_obj_dn;
 		unistr *source_dsa_address;
 		unistr *transport_obj_dn;
-		uint32 replica_flags;
+		drsuapi_DsReplicaNeighbourFlags replica_flags;
 		uint32 reserved;
 		GUID naming_context_obj_guid;
 		GUID source_dsa_obj_guid;

Modified: branches/SAMBA_4_0/source/torture/rpc/drsuapi.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/drsuapi.c	2005-03-23 18:23:55 UTC (rev 5997)
+++ branches/SAMBA_4_0/source/torture/rpc/drsuapi.c	2005-03-23 18:54:06 UTC (rev 5998)
@@ -902,7 +902,7 @@
 
 	ZERO_STRUCT(null_guid);
 	ZERO_STRUCT(null_sid);
-	
+
 	for (i=0; i < ARRAY_SIZE(array); i++) {
 		printf("testing DsGetNCChanges level %d\n",
 			array[i].level);
@@ -919,13 +919,13 @@
 			r.in.req.req5.destination_dsa_guid		= GUID_random();
 			r.in.req.req5.source_dsa_guid			= null_guid;
 			r.in.req.req5.naming_context			= &nc;
-			r.in.req.req5.replication_state.tmp_highest_usn	= 0;
-			r.in.req.req5.replication_state.reserved_usn	= 0;
-			r.in.req.req5.replication_state.highest_usn	= 0;
-			r.in.req.req5.highwatermark_vector		= NULL;
-			r.in.req.req5.unknown1				= 0;/*0x10201C70;*/
-			r.in.req.req5.unknown2				= 402;
-			r.in.req.req5.unknown3				= 402116;
+			r.in.req.req5.highwatermark.tmp_highest_usn	= 167997;
+			r.in.req.req5.highwatermark.reserved_usn	= 0;
+			r.in.req.req5.highwatermark.highest_usn		= 0;
+			r.in.req.req5.uptodateness_vector		= NULL;
+			r.in.req.req5.replica_flags			= 0;
+			r.in.req.req5.unknown2				= 0;
+			r.in.req.req5.unknown3				= 0;
 			r.in.req.req5.unknown4				= 0;
 			r.in.req.req5.h1				= 0;
 
@@ -938,11 +938,18 @@
 			r.in.req.req8.destination_dsa_guid		= GUID_random();
 			r.in.req.req8.source_dsa_guid			= null_guid;
 			r.in.req.req8.naming_context			= &nc;
-			r.in.req.req8.replication_state.tmp_highest_usn	= 0;
-			r.in.req.req8.replication_state.reserved_usn	= 0;
-			r.in.req.req8.replication_state.highest_usn	= 0;
-			r.in.req.req8.highwatermark_vector		= NULL;
-			r.in.req.req8.unknown1				= 0x10201C70;
+			r.in.req.req8.highwatermark.tmp_highest_usn	= 0;
+			r.in.req.req8.highwatermark.reserved_usn	= 0;
+			r.in.req.req8.highwatermark.highest_usn		= 0;
+			r.in.req.req8.uptodateness_vector		= NULL;
+			r.in.req.req8.replica_flags			= 0
+									| DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE
+									| DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP
+									| DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS
+									| DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS
+									| DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED
+									| DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES
+									;
 			r.in.req.req8.unknown2				= 402;
 			r.in.req.req8.unknown3				= 402116;
 			r.in.req.req8.unknown4				= 0;



More information about the samba-cvs mailing list