diff options
author | Bo Yang <boyang@samba.org> | 2010-02-09 16:35:40 +0800 |
---|---|---|
committer | Bo Yang <boyang@samba.org> | 2010-02-09 17:06:14 +0800 |
commit | 9fed9011ffcd76c5a5dbf16f7d5e657b94f9fa50 (patch) | |
tree | e93279836fd01bf6fe0719fc1928e90b5806c0db /source3/winbindd/winbindd_cache.c | |
parent | 8c8bb51de1ac2baa46ac0736fae12c034288e5d4 (diff) | |
download | samba-9fed9011ffcd76c5a5dbf16f7d5e657b94f9fa50.tar.gz samba-9fed9011ffcd76c5a5dbf16f7d5e657b94f9fa50.tar.bz2 samba-9fed9011ffcd76c5a5dbf16f7d5e657b94f9fa50.zip |
s3: Don't invalidate cache for uninitialized domains.
Signed-off-by: Bo Yang <boyang@samba.org>
Diffstat (limited to 'source3/winbindd/winbindd_cache.c')
-rw-r--r-- | source3/winbindd/winbindd_cache.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/source3/winbindd/winbindd_cache.c b/source3/winbindd/winbindd_cache.c index a9690aea1c..0e17253b7d 100644 --- a/source3/winbindd/winbindd_cache.c +++ b/source3/winbindd/winbindd_cache.c @@ -3023,6 +3023,33 @@ bool wcache_invalidate_cache(void) return true; } +bool wcache_invalidate_cache_noinit(void) +{ + struct winbindd_domain *domain; + + for (domain = domain_list(); domain; domain = domain->next) { + struct winbind_cache *cache; + + /* Skip uninitialized domains. */ + if (!domain->initialized && !domain->internal) { + continue; + } + + cache = get_cache(domain); + + DEBUG(10, ("wcache_invalidate_cache: invalidating cache " + "entries for %s\n", domain->name)); + if (cache) { + if (cache->tdb) { + tdb_traverse(cache->tdb, traverse_fn, NULL); + } else { + return false; + } + } + } + return true; +} + bool init_wcache(void) { if (wcache == NULL) { |