s4:ldb Reload the 'ltdb_cache' when @OPTIONS changes
authorAndrew Bartlett <abartlet@samba.org>
Fri, 9 Oct 2009 22:14:37 +0000 (09:14 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 12 Oct 2009 05:51:03 +0000 (16:51 +1100)
(Otherwise setting the check base on search option is not applied
until after a reload).

Andrew Bartlett

source4/lib/ldb/ldb_tdb/ldb_tdb.c

index 7693ffeb81c566769d70b394982e5116a2d5de0b..b7eec40e9a5663b62be0c38489adb7d231f1a071 100644 (file)
@@ -205,12 +205,19 @@ static int ltdb_modified(struct ldb_module *module, struct ldb_dn *dn)
                ret = ltdb_reindex(module);
        }
 
+       /* If the modify was to a normal record, or any special except @BASEINFO, update the seq number */
        if (ret == LDB_SUCCESS &&
            !(ldb_dn_is_special(dn) &&
              ldb_dn_check_special(dn, LTDB_BASEINFO)) ) {
                ret = ltdb_increase_sequence_number(module);
        }
 
+       /* If the modify was to @OPTIONS, reload the cache */
+       if (ldb_dn_is_special(dn) &&
+           (ldb_dn_check_special(dn, LTDB_OPTIONS)) ) {
+               ret = ltdb_cache_reload(module);
+       }
+
        return ret;
 }