r20079: the 2nd guid is the source_dsa invocation_id not the objectGUID,
authorStefan Metzmacher <metze@samba.org>
Fri, 8 Dec 2006 17:34:15 +0000 (17:34 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:29:01 +0000 (14:29 -0500)
this wasn't noticed because on the 1st dc in the forest both have the
same value

metze
(This used to be commit 527bd9a0a361e19606e25e885b92da316e740bf9)

source4/libnet/libnet_become_dc.c
source4/librpc/idl/drsuapi.idl
source4/torture/rpc/drsuapi.c
source4/torture/rpc/dssync.c

index 491e32806ce28ad8439e3847428df673034ed09f..c9ffe30df30e2723361b67bc61c828b8d51f94fb 100644 (file)
@@ -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;
index 4cd89b75d3f3b1491951b044842fc3d0388c42e2..6a7fc21d3e226b73ff12089b5f43f0e0a7962724 100644 (file)
@@ -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;
index 29b6b0633bd4def3870942905b8525321b6aa16f..ea7cf8d8bd96d33a12d879f5888bf7531cd72147 100644 (file)
@@ -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;
index e00033154ebd31706107f9fac85f883ebbcd86e3..f07df0f7ad0a2dc19d3dcdcdd04b2177513f4255 100644 (file)
@@ -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;