diff options
-rw-r--r-- | source3/winbindd/winbindd.c | 23 | ||||
-rw-r--r-- | source3/winbindd/winbindd_cache.c | 14 |
2 files changed, 17 insertions, 20 deletions
diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c index 25ceeeb321..dbfd397f8b 100644 --- a/source3/winbindd/winbindd.c +++ b/source3/winbindd/winbindd.c @@ -123,19 +123,7 @@ static void flush_caches(void) if (!wcache_invalidate_cache()) { DEBUG(0, ("invalidating the cache failed; revalidate the cache\n")); - /* Close the cache to be able to valdite the cache */ - close_winbindd_cache(); - /* - * Ensure all cache and idmap caches are consistent - * before we initialize the cache again. - */ - if (winbindd_validate_cache() < 0) { - DEBUG(0, ("winbindd cache tdb corrupt and no backup " - "could be restore.\n")); - } - - /* Initialize cache again. */ - if (!initialize_winbindd_cache()) { + if (!winbindd_cache_validate_and_initialize()) { exit(1); } } @@ -1194,14 +1182,9 @@ int main(int argc, char **argv, char **envp) /* * Ensure all cache and idmap caches are consistent - * before we startup. + * and initialized before we startup. */ - if (winbindd_validate_cache() < 0) { - DEBUG(0, ("corrupted tdb found, trying to restore backup\n")); - } - - /* Initialize cache (ensure version is correct). */ - if (!initialize_winbindd_cache()) { + if (!winbindd_cache_validate_and_initialize()) { exit(1); } diff --git a/source3/winbindd/winbindd_cache.c b/source3/winbindd/winbindd_cache.c index e4b0a53d5d..ddb0ab317e 100644 --- a/source3/winbindd/winbindd_cache.c +++ b/source3/winbindd/winbindd_cache.c @@ -3476,6 +3476,20 @@ int winbindd_validate_cache_nobackup(void) return ret; } +bool winbindd_cache_validate_and_initialize(void) +{ + close_winbindd_cache(); + + if (lp_winbind_offline_logon()) { + if (winbindd_validate_cache() < 0) { + DEBUG(0, ("winbindd cache tdb corrupt and no backup " + "could be restored.\n")); + } + } + + return initialize_winbindd_cache(); +} + /********************************************************************* ********************************************************************/ |