summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-12-08 17:34:15 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:29:01 -0500
commitd3c9737e5b8da23165d65b42d37e16549a80ce70 (patch)
treec54e1aa975695ee5248cd3a5e67b6af615f7f9ac
parentc9291facd4d4f0dea226407f8e7b6436d7b3d7bd (diff)
downloadsamba-d3c9737e5b8da23165d65b42d37e16549a80ce70.tar.gz
samba-d3c9737e5b8da23165d65b42d37e16549a80ce70.tar.bz2
samba-d3c9737e5b8da23165d65b42d37e16549a80ce70.zip
r20079: the 2nd guid is the source_dsa invocation_id not the objectGUID,
this wasn't noticed because on the 1st dc in the forest both have the same value metze (This used to be commit 527bd9a0a361e19606e25e885b92da316e740bf9)
-rw-r--r--source4/libnet/libnet_become_dc.c5
-rw-r--r--source4/librpc/idl/drsuapi.idl4
-rw-r--r--source4/torture/rpc/drsuapi.c4
-rw-r--r--source4/torture/rpc/dssync.c4
4 files changed, 9 insertions, 8 deletions
diff --git a/source4/libnet/libnet_become_dc.c b/source4/libnet/libnet_become_dc.c
index 491e32806c..c9ffe30df3 100644
--- a/source4/libnet/libnet_become_dc.c
+++ b/source4/libnet/libnet_become_dc.c
@@ -118,6 +118,7 @@ struct libnet_BecomeDC_state {
struct drsuapi_DsReplicaObjectIdentifier nc;
struct GUID destination_dsa_guid;
struct GUID source_dsa_guid;
+ struct GUID source_dsa_invocation_id;
struct drsuapi_DsReplicaHighWaterMark highwatermark;
struct drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector;
uint32_t replica_flags;
@@ -1555,7 +1556,7 @@ static void becomeDC_drsuapi_pull_partition_send(struct libnet_BecomeDC_state *s
if (drsuapi_h->remote_info28.supported_extensions & DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8) {
r->in.level = 8;
r->in.req.req8.destination_dsa_guid = partition->destination_dsa_guid;
- r->in.req.req8.source_dsa_guid = partition->source_dsa_guid;
+ r->in.req.req8.source_dsa_invocation_id = partition->source_dsa_invocation_id;
r->in.req.req8.naming_context = &partition->nc;
r->in.req.req8.highwatermark = partition->highwatermark;
r->in.req.req8.uptodateness_vector = partition->uptodateness_vector;
@@ -1571,7 +1572,7 @@ static void becomeDC_drsuapi_pull_partition_send(struct libnet_BecomeDC_state *s
} else {
r->in.level = 5;
r->in.req.req5.destination_dsa_guid = partition->destination_dsa_guid;
- r->in.req.req5.source_dsa_guid = partition->source_dsa_guid;
+ r->in.req.req5.source_dsa_invocation_id = partition->source_dsa_invocation_id;
r->in.req.req5.naming_context = &partition->nc;
r->in.req.req5.highwatermark = partition->highwatermark;
r->in.req.req5.uptodateness_vector = partition->uptodateness_vector;
diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl
index 4cd89b75d3..6a7fc21d3e 100644
--- a/source4/librpc/idl/drsuapi.idl
+++ b/source4/librpc/idl/drsuapi.idl
@@ -230,7 +230,7 @@ interface drsuapi
typedef struct {
GUID destination_dsa_guid;
- GUID source_dsa_guid;
+ GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */
[ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
drsuapi_DsReplicaHighWaterMark highwatermark;
drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector;
@@ -258,7 +258,7 @@ interface drsuapi
typedef struct {
GUID destination_dsa_guid;
- GUID source_dsa_guid;
+ GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */
[ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
drsuapi_DsReplicaHighWaterMark highwatermark;
drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector;
diff --git a/source4/torture/rpc/drsuapi.c b/source4/torture/rpc/drsuapi.c
index 29b6b0633b..ea7cf8d8bd 100644
--- a/source4/torture/rpc/drsuapi.c
+++ b/source4/torture/rpc/drsuapi.c
@@ -553,7 +553,7 @@ static BOOL test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
nc.dn = priv->domain_obj_dn?priv->domain_obj_dn:"";
r.in.req.req5.destination_dsa_guid = GUID_random();
- r.in.req.req5.source_dsa_guid = null_guid;
+ r.in.req.req5.source_dsa_invocation_id = null_guid;
r.in.req.req5.naming_context = &nc;
r.in.req.req5.highwatermark.tmp_highest_usn = 0;
r.in.req.req5.highwatermark.reserved_usn = 0;
@@ -575,7 +575,7 @@ static BOOL test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
nc.dn = priv->domain_obj_dn?priv->domain_obj_dn:"";
r.in.req.req8.destination_dsa_guid = GUID_random();
- r.in.req.req8.source_dsa_guid = null_guid;
+ r.in.req.req8.source_dsa_invocation_id = null_guid;
r.in.req.req8.naming_context = &nc;
r.in.req.req8.highwatermark.tmp_highest_usn = 0;
r.in.req.req8.highwatermark.reserved_usn = 0;
diff --git a/source4/torture/rpc/dssync.c b/source4/torture/rpc/dssync.c
index e00033154e..f07df0f7ad 100644
--- a/source4/torture/rpc/dssync.c
+++ b/source4/torture/rpc/dssync.c
@@ -421,7 +421,7 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
nc.dn = partition;
r.in.req.req5.destination_dsa_guid = ctx->new_dc.invocation_id;
- r.in.req.req5.source_dsa_guid = null_guid;
+ r.in.req.req5.source_dsa_invocation_id = null_guid;
r.in.req.req5.naming_context = &nc;
r.in.req.req5.highwatermark.tmp_highest_usn = highest_usn;
r.in.req.req5.highwatermark.reserved_usn = 0;
@@ -452,7 +452,7 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
/* nc.dn can be set to any other ad partition */
r.in.req.req8.destination_dsa_guid = ctx->new_dc.invocation_id;
- r.in.req.req8.source_dsa_guid = null_guid;
+ r.in.req.req8.source_dsa_invocation_id = null_guid;
r.in.req.req8.naming_context = &nc;
r.in.req.req8.highwatermark.tmp_highest_usn = highest_usn;
r.in.req.req8.highwatermark.reserved_usn = 0;