From: Andrew Tridgell Date: Mon, 14 Feb 2011 02:22:27 +0000 (+1100) Subject: s4-dsdb: cope with broken exchange schema with single valued backlinks X-Git-Tag: tevent-0.9.11~681 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a6af1efb422e10bb66524fdceb2babaa8ca1bffe;p=thirdparty%2Fsamba.git s4-dsdb: cope with broken exchange schema with single valued backlinks Pair-Programmed-With: Andrew Bartlett Autobuild-User: Andrew Tridgell Autobuild-Date: Mon Feb 14 08:45:51 CET 2011 on sn-devel-104 --- diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c index 87327e5760e..53d53d9021b 100644 --- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c +++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c @@ -247,6 +247,13 @@ static int replmd_process_backlink(struct ldb_module *module, struct la_backlink } msg->elements[0].flags = bl->active?LDB_FLAG_MOD_ADD:LDB_FLAG_MOD_DELETE; + /* a backlink should never be single valued. Unfortunately the + exchange schema has a attribute + msExchBridgeheadedLocalConnectorsDNBL which is single + valued and a backlink. We need to cope with that by + ignoring the single value flag */ + msg->elements[0].flags |= LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK; + ret = dsdb_module_modify(module, msg, DSDB_FLAG_NEXT_MODULE, parent); if (ret != LDB_SUCCESS) { ldb_asprintf_errstring(ldb, "Failed to %s backlink from %s to %s - %s",