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 <tri...@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 <tri...@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