summaryrefslogtreecommitdiff
path: root/source3/winbindd/winbindd_cache.c
diff options
context:
space:
mode:
authorBo Yang <boyang@samba.org>2010-02-09 16:35:40 +0800
committerBo Yang <boyang@samba.org>2010-02-09 17:06:14 +0800
commit9fed9011ffcd76c5a5dbf16f7d5e657b94f9fa50 (patch)
treee93279836fd01bf6fe0719fc1928e90b5806c0db /source3/winbindd/winbindd_cache.c
parent8c8bb51de1ac2baa46ac0736fae12c034288e5d4 (diff)
downloadsamba-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.c27
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) {