s4-dsdb: if the provision control is specified, update replication metadata even...
authorMatthieu Patou <mat@matws.net>
Wed, 6 Jul 2011 20:27:44 +0000 (00:27 +0400)
committerAndrew Tridgell <tridge@samba.org>
Mon, 11 Jul 2011 04:32:44 +0000 (14:32 +1000)
Signed-off-by: Andrew Tridgell <tridge@samba.org>
source4/dsdb/samdb/ldb_modules/repl_meta_data.c

index f201ce3b89447eedba11903ef85e1f7680e00dbe..a76b88ecbc81814a18c1664246a43e599b571dea 100644 (file)
@@ -1068,7 +1068,13 @@ static int replmd_update_rpmd_element(struct ldb_context *ldb,
 
        /* if the attribute's value haven't changed then return LDB_SUCCESS     */
        if (old_el != NULL && ldb_msg_element_compare(el, old_el) == 0) {
-               return LDB_SUCCESS;
+               if (!ldb_request_get_control(req, LDB_CONTROL_PROVISION_OID)) {
+                       /*
+                        * allow this to make it possible for dbcheck
+                        * to rebuild broken metadata
+                        */
+                       return LDB_SUCCESS;
+               }
        }
 
        for (i=0; i<omd->ctr.ctr1.count; i++) {