summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/winbindd/winbindd.c23
-rw-r--r--source3/winbindd/winbindd_cache.c14
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();
+}
+
/*********************************************************************
********************************************************************/