[SCM] Samba Shared Repository - branch master updated

Andrew Tridgell tridge at samba.org
Mon Apr 26 03:07:36 MDT 2010


The branch, master has been updated
       via  5ce1dbf... s4-ddb: don't create partitions with the UNINSTANT flag set
       via  a31c711... s4-drs: allow getncchanges requests to non WRIT_REP partitions for extended ops
       via  6ee1c50... s4-drs: don't send uninstantiated objects in getncchanges
       via  159de40... s4-drepl: don't send an UpdateRefs unless its a plain replication
       via  f66fcd9... build: cope with realname for install of non-python libs
       via  267e0b3... s4-drs: make links to foreign partitions non-fatal
      from  0a47bf5... build: automatically run autogen-waf.sh when needed

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 5ce1dbf2e328b8bf9987746bbd9ea10e6db58760
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Apr 26 15:46:37 2010 +1000

    s4-ddb: don't create partitions with the UNINSTANT flag set
    
    these partitions and not on the server we are replicating from. Also
    check for deleted partitions.
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>

commit a31c711ba7dcd7516fd7b4de8c602a2fc30672db
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Apr 26 16:44:44 2010 +1000

    s4-drs: allow getncchanges requests to non WRIT_REP partitions for extended ops
    
    Needed for RID allocation
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>

commit 6ee1c503bf90abbea137ce789ce5a8a54b437629
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Apr 26 17:02:25 2010 +1000

    s4-drs: don't send uninstantiated objects in getncchanges
    
    This includes deleted partitions
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>

commit 159de40b0b5c2c3efc7bd4de83a15dc63299b730
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Apr 26 18:43:46 2010 +1000

    s4-drepl: don't send an UpdateRefs unless its a plain replication
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>

commit f66fcd96087fc0a65a214c0fa62b03048ff0c6d9
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Apr 26 19:04:33 2010 +1000

    build: cope with realname for install of non-python libs
    
    this fixes the install of mit_samba.so

commit 267e0b361693a94be258a21b2b305c5a97de3dda
Author: Andrew Tridgell <tridge at samba.org>
Date:   Mon Apr 26 14:39:15 2010 +1000

    s4-drs: make links to foreign partitions non-fatal
    
    DN links outside the set of partitions we are replication should be
    allowed.
    
    Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 buildtools/wafsamba/samba_install.py            |    5 ++++-
 buildtools/wafsamba/wafsamba.py                 |    5 ++++-
 source4/dsdb/repl/drepl_out_helpers.c           |    7 +++++--
 source4/dsdb/samdb/ldb_modules/new_partition.c  |   15 ++++++++++++++-
 source4/dsdb/samdb/ldb_modules/repl_meta_data.c |   14 ++++++--------
 source4/rpc_server/drsuapi/getncchanges.c       |    5 +++++
 6 files changed, 38 insertions(+), 13 deletions(-)


Changeset truncated at 500 lines:

diff --git a/buildtools/wafsamba/samba_install.py b/buildtools/wafsamba/samba_install.py
index e2db589..55aab26 100644
--- a/buildtools/wafsamba/samba_install.py
+++ b/buildtools/wafsamba/samba_install.py
@@ -87,7 +87,10 @@ def install_library(self):
     if self.samba_realname:
         install_name = self.samba_realname
         install_link = None
-        inst_name    = t.target + '.so'
+        if getattr(self, 'samba_type', None) == 'PYTHON':
+            inst_name    = '%s.so' % t.target
+        else:
+            inst_name    = 'lib%s.so' % t.target
     elif self.vnum:
         vnum_base    = self.vnum.split('.')[0]
         install_name = 'lib%s.so.%s' % (self.target, self.vnum)
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index 36f8777..6d6416b 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -161,7 +161,7 @@ def SAMBA_LIBRARY(bld, libname, source,
     deps = TO_LIST(deps)
     deps.append(obj_target)
 
-    if target_type == 'PYTHON':
+    if target_type == 'PYTHON' or realname:
         bundled_name = libname
     else:
         bundled_name = BUNDLED_NAME(bld, libname, bundled_extension)
@@ -197,6 +197,9 @@ def SAMBA_LIBRARY(bld, libname, source,
         abi_match       = abi_match
         )
 
+    if realname and not link_name:
+        link_name = 'shared/%s' % realname
+
     if link_name:
         t.link_name = link_name
 
diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c
index 60dccff..52b519c 100644
--- a/source4/dsdb/repl/drepl_out_helpers.c
+++ b/source4/dsdb/repl/drepl_out_helpers.c
@@ -272,7 +272,8 @@ static void dreplsrv_op_pull_source_get_changes_trigger(struct tevent_req *req)
 	struct drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;
 	struct tevent_req *subreq;
 
-	if ((rf1->replica_flags & DRSUAPI_DRS_WRIT_REP) == 0) {
+	if ((rf1->replica_flags & DRSUAPI_DRS_WRIT_REP) == 0 &&
+	    state->op->extended_op == DRSUAPI_EXOP_NONE) {
 		return;
 	}
 
@@ -527,7 +528,9 @@ static void dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req
 	   we join the domain, but they quickly expire.  We do it here
 	   so we can use the already established DRSUAPI pipe
 	*/
-	dreplsrv_update_refs_trigger(req);
+	if (state->op->extended_op == DRSUAPI_EXOP_NONE) {
+		dreplsrv_update_refs_trigger(req);
+	}
 }
 
 static void dreplsrv_update_refs_done(struct tevent_req *subreq);
diff --git a/source4/dsdb/samdb/ldb_modules/new_partition.c b/source4/dsdb/samdb/ldb_modules/new_partition.c
index 47394f4..a7de846 100644
--- a/source4/dsdb/samdb/ldb_modules/new_partition.c
+++ b/source4/dsdb/samdb/ldb_modules/new_partition.c
@@ -154,7 +154,20 @@ static int new_partition_add(struct ldb_module *module, struct ldb_request *req)
 		/* This needs to be 'static' to ensure it does not move, and is not on the stack */
 		static const char *no_attrs[] = { NULL };
 		unsigned int instanceType = ldb_msg_find_attr_as_uint(req->op.add.message, "instanceType", 0);
-		if (!(instanceType & INSTANCE_TYPE_IS_NC_HEAD)) {
+		if (!(instanceType & INSTANCE_TYPE_IS_NC_HEAD) ||
+		    (instanceType & INSTANCE_TYPE_UNINSTANT)) {
+			return ldb_next_request(module, req);
+		}
+
+		if (instanceType & INSTANCE_TYPE_UNINSTANT) {
+			DEBUG(0,(__location__ ": Skipping uninstantiated partition %s\n",
+				 ldb_dn_get_linearized(req->op.add.message->dn)));
+			return ldb_next_request(module, req);
+		}
+
+		if (ldb_msg_find_attr_as_bool(req->op.add.message, "isDeleted", false)) {
+			DEBUG(0,(__location__ ": Skipping deleted partition %s\n",
+				 ldb_dn_get_linearized(req->op.add.message->dn)));
 			return ldb_next_request(module, req);		
 		}
 
diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
index efb44bf..9dcf24a 100644
--- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
+++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
@@ -213,10 +213,9 @@ static int replmd_process_backlink(struct ldb_module *module, struct la_backlink
 	 */
 	ret = dsdb_module_dn_by_guid(module, tmp_ctx, &bl->target_guid, &target_dn);
 	if (ret != LDB_SUCCESS) {
-		ldb_asprintf_errstring(ldb, "Failed to find target DN for linked attribute with GUID %s\n",
-				       GUID_string(bl, &bl->target_guid));
-		talloc_free(tmp_ctx);
-		return ret;
+		DEBUG(2,(__location__ ": WARNING: Failed to find target DN for linked attribute with GUID %s\n",
+			 GUID_string(bl, &bl->target_guid)));
+		return LDB_SUCCESS;
 	}
 
 	ret = dsdb_module_dn_by_guid(module, tmp_ctx, &bl->forward_guid, &source_dn);
@@ -3720,10 +3719,9 @@ linked_attributes[0]:
 	   old DN value */
 	ret = dsdb_module_dn_by_guid(module, dsdb_dn, &guid, &dsdb_dn->dn);
 	if (ret != LDB_SUCCESS) {
-		ldb_asprintf_errstring(ldb, __location__ ": Failed to re-resolve GUID %s",
-				       GUID_string(tmp_ctx, &guid));
-		talloc_free(tmp_ctx);
-		return ret;
+		DEBUG(2,(__location__ ": WARNING: Failed to re-resolve GUID %s - using %s",
+			 GUID_string(tmp_ctx, &guid),
+			 ldb_dn_get_linearized(dsdb_dn->dn)));
 	}
 
 	/* see if this link already exists */
diff --git a/source4/rpc_server/drsuapi/getncchanges.c b/source4/rpc_server/drsuapi/getncchanges.c
index 6a8ab3b..90407a3 100644
--- a/source4/rpc_server/drsuapi/getncchanges.c
+++ b/source4/rpc_server/drsuapi/getncchanges.c
@@ -132,6 +132,11 @@ static WERROR get_nc_changes_build_object(struct drsuapi_DsReplicaObjectListItem
 		return WERR_OK;
 	}
 
+	if (instanceType & INSTANCE_TYPE_UNINSTANT) {
+		/* don't send uninstantiated objects */
+		return WERR_OK;
+	}
+
 	ndr_err = ndr_pull_struct_blob(md_value, obj,
 				       lp_iconv_convenience(ldb_get_opaque(sam_ctx, "loadparm")), &md,
 				       (ndr_pull_flags_fn_t)ndr_pull_replPropertyMetaDataBlob);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list