]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4-dsdb: cope with broken exchange schema with single valued backlinks
authorAndrew Tridgell <tridge@samba.org>
Mon, 14 Feb 2011 02:22:27 +0000 (13:22 +1100)
committerAndrew Tridgell <tridge@samba.org>
Mon, 14 Feb 2011 07:45:51 +0000 (08:45 +0100)
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Mon Feb 14 08:45:51 CET 2011 on sn-devel-104

source4/dsdb/samdb/ldb_modules/repl_meta_data.c

index 87327e5760e770de81dca02e32ecd628831f79d5..53d53d9021b94a0c989f70d9c5171214dd06a715 100644 (file)
@@ -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",