From: Andrew Bartlett Date: Fri, 9 Oct 2009 22:14:37 +0000 (+1100) Subject: s4:ldb Reload the 'ltdb_cache' when @OPTIONS changes X-Git-Tag: talloc-2.0.1~41^2~13 X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=554791c49f9ca8be3c1974918f0e8335e76972d7;hp=93ac2cdb5490c0f6e4aa7c70d1ac88c03fb9fe84;p=samba.git s4:ldb Reload the 'ltdb_cache' when @OPTIONS changes (Otherwise setting the check base on search option is not applied until after a reload). Andrew Bartlett --- diff --git a/source4/lib/ldb/ldb_tdb/ldb_tdb.c b/source4/lib/ldb/ldb_tdb/ldb_tdb.c index 7693ffeb81c..b7eec40e9a5 100644 --- a/source4/lib/ldb/ldb_tdb/ldb_tdb.c +++ b/source4/lib/ldb/ldb_tdb/ldb_tdb.c @@ -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; }