mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
r5998: I was wrong with the highwater mark...
I think I now understand how it works:-)
metze
(This used to be commit f8add2e66a
)
This commit is contained in:
parent
b8f395cf78
commit
01ab1128ce
@ -9,6 +9,7 @@
|
||||
]
|
||||
interface drsblobs {
|
||||
declare bitmap drsuapi_DsReplicaSyncOptions;
|
||||
declare bitmap drsuapi_DsReplicaNeighbourFlags;
|
||||
declare [v1_enum] enum drsuapi_DsAttributeId;
|
||||
|
||||
/*
|
||||
@ -95,10 +96,10 @@ interface drsblobs {
|
||||
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 @@ interface drsblobs {
|
||||
uint32 u2;
|
||||
uint32 u3;
|
||||
uint32 u4;
|
||||
drsuapi_DsReplicaUsnCtr replication_state;
|
||||
drsuapi_DsReplicaHighWaterMark highwatermark;
|
||||
GUID guid1;
|
||||
hyper h4;
|
||||
replUpToDateVectorCtr1 uptodateness_vector;
|
||||
|
@ -172,7 +172,7 @@ interface drsuapi
|
||||
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 @@ interface drsuapi
|
||||
[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 @@ interface drsuapi
|
||||
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 @@ interface drsuapi
|
||||
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 @@ interface drsuapi
|
||||
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 @@ interface drsuapi
|
||||
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;
|
||||
|
@ -902,7 +902,7 @@ static BOOL test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
|
||||
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 @@ static BOOL test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
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 @@ static BOOL test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user