summaryrefslogtreecommitdiff
path: root/source3/winbindd/winbindd.c
diff options
context:
space:
mode:
authorAndreas Schneider <anschneider@suse.de>2007-11-23 10:54:48 +0100
committerMichael Adam <obnox@samba.org>2007-12-12 13:51:13 +0100
commitd818a93d073f5c15ffbb3b769348d25e49bc9848 (patch)
treeb3a4914bb4c21665ec971adb7562c1e90e751096 /source3/winbindd/winbindd.c
parent38f8d32d10f7486ee570275aff185994697203f3 (diff)
downloadsamba-d818a93d073f5c15ffbb3b769348d25e49bc9848.tar.gz
samba-d818a93d073f5c15ffbb3b769348d25e49bc9848.tar.bz2
samba-d818a93d073f5c15ffbb3b769348d25e49bc9848.zip
Don't restart winbind if a corrupted tdb is found during initialization.
The tdb is validated before it gets initialized. Since then sighandlers changed a restart isn't needed anymore. (This used to be commit aabe9b33fcaed8af98b1ed6b736253e196d87d48)
Diffstat (limited to 'source3/winbindd/winbindd.c')
-rw-r--r--source3/winbindd/winbindd.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c
index b695c2e95e..07cf22618e 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -1157,20 +1157,6 @@ int main(int argc, char **argv, char **envp)
pidfile_create("winbindd");
- /* Ensure all cache and idmap caches are consistent
- before we startup. */
-
- if (winbindd_validate_cache()) {
- /* We have a bad cache, but luckily we
- just deleted it. Restart ourselves */
- int i;
- /* Ensure we have no open low fd's. */
- for (i = 3; i < 100; i++) {
- close(i);
- }
- return execve(argv[0], argv, envp);
- }
-
#if HAVE_SETPGID
/*
* If we're interactive we want to set our own process group for
@@ -1188,7 +1174,15 @@ int main(int argc, char **argv, char **envp)
DEBUG(0, ("unable to initialize messaging system\n"));
exit(1);
}
-
+
+ /*
+ * Ensure all cache and idmap caches are consistent
+ * 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()) {
exit(1);