[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-1084-ga0df109

Andrew Tridgell tridge at samba.org
Tue Aug 18 23:57:27 MDT 2009


The branch, master has been updated
       via  a0df109d663e76e6ab47a5c68bb68eb30c9ba4b0 (commit)
       via  e38f38fe484dda2db871b7c83d8132fd10f0cabd (commit)
      from  8d0345e5a097fc4a0d297c089539bcd3702d4431 (commit)

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


- Log -----------------------------------------------------------------
commit a0df109d663e76e6ab47a5c68bb68eb30c9ba4b0
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Aug 19 15:53:19 2009 +1000

    added basic support for rename in DRS replication
    
    Added simple DRS rename support in replication. This should be done
    async, and I'm not sure if we should also do any repl data updates to
    indicate the rename. I'm still learning how this stuff works, but at
    least this allows a rename on a DC to propogate correctly

commit e38f38fe484dda2db871b7c83d8132fd10f0cabd
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Aug 19 15:51:07 2009 +1000

    we need the Deleted Objects container for replication
    
    When objects are deleted they get renamed to this container. The
    container needs to exist when we provision

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

Summary of changes:
 source4/dsdb/samdb/ldb_modules/repl_meta_data.c |   14 +++++++++-----
 source4/setup/provision_configuration.ldif      |    6 ++++++
 2 files changed, 15 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
index 53d6d07..5d4c486 100644
--- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
+++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
@@ -751,15 +751,19 @@ static int replmd_replicated_apply_merge(struct replmd_replicated_request *ar)
 	omd.version = 1;
 
 	/*
-	 * TODO: add rename conflict handling
+	 * TODO: check repl data is correct after a rename
 	 */
 	if (ldb_dn_compare(msg->dn, ar->search_msg->dn) != 0) {
-		ldb_debug_set(ldb, LDB_DEBUG_FATAL, "replmd_replicated_apply_merge[%u]: rename not supported",
-			      ar->index_current);
-		ldb_debug(ldb, LDB_DEBUG_FATAL, "%s => %s\n",
+		ldb_debug(ldb, LDB_DEBUG_TRACE, "replmd_replicated_request rename %s => %s\n",
 			  ldb_dn_get_linearized(ar->search_msg->dn),
 			  ldb_dn_get_linearized(msg->dn));
-		return replmd_replicated_request_werror(ar, WERR_NOT_SUPPORTED);
+		if (ldb_rename(ldb, ar->search_msg->dn, msg->dn) != LDB_SUCCESS) {
+			ldb_debug(ldb, LDB_DEBUG_FATAL, "replmd_replicated_request rename %s => %s failed - %s\n",
+				  ldb_dn_get_linearized(ar->search_msg->dn),
+				  ldb_dn_get_linearized(msg->dn),
+				  ldb_errstring(ldb));
+			return replmd_replicated_request_werror(ar, WERR_DS_DRA_DB_ERROR);
+		}
 	}
 
 	ret = ldb_sequence_number(ldb, LDB_SEQ_NEXT, &seq_num);
diff --git a/source4/setup/provision_configuration.ldif b/source4/setup/provision_configuration.ldif
index 4e0cc71..b3e0d83 100644
--- a/source4/setup/provision_configuration.ldif
+++ b/source4/setup/provision_configuration.ldif
@@ -687,6 +687,12 @@ objectClass: locality
 objectClass: physicalLocation
 l: Physical Locations tree root
 
+dn: CN=Deleted Objects,${CONFIGDN}
+objectClass: top
+objectClass: container
+description: Container for deleted objects
+isDeleted: TRUE
+
 # Schema located in "ad-schema/*.txt"
 
 dn: CN=Services,${CONFIGDN}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list