The Samba-Bugzilla – Attachment 3323 Details for
Bug 5504
winbind children dying delete the winbindd socket.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for 3.2
look (text/plain), 1.74 KB, created by
Jeremy Allison
on 2008-05-30 19:46:11 UTC
(
hide
)
Description:
Patch for 3.2
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2008-05-30 19:46:11 UTC
Size:
1.74 KB
patch
obsolete
>diff --git a/source/winbindd/winbindd.c b/source/winbindd/winbindd.c >index 57eee20..c017916 100644 >--- a/source/winbindd/winbindd.c >+++ b/source/winbindd/winbindd.c >@@ -131,15 +131,20 @@ static void flush_caches(void) > > /* Handle the signal by unlinking socket and exiting */ > >-static void terminate(void) >+static void terminate(bool is_parent) > { >- char *path = NULL; >- >- /* Remove socket file */ >- if (asprintf(&path, "%s/%s", >+ if (is_parent) { >+ /* When parent goes away we should >+ * remove the socket file. Not so >+ * when children terminate. >+ */ >+ char *path = NULL; >+ >+ if (asprintf(&path, "%s/%s", > get_winbind_pipe_dir(), WINBINDD_SOCKET_NAME) > 0) { >- unlink(path); >- SAFE_FREE(path); >+ unlink(path); >+ SAFE_FREE(path); >+ } > } > > idmap_close(); >@@ -810,10 +815,10 @@ void winbind_check_sighup(void) > } > > /* check if TERM has been received */ >-void winbind_check_sigterm(void) >+void winbind_check_sigterm(bool is_parent) > { > if (do_sigterm) >- terminate(); >+ terminate(is_parent); > } > > /* Process incoming clients on listen_sock. We use a tricky non-blocking, >@@ -975,7 +980,7 @@ static void process_loop(void) > > /* Check signal handling things */ > >- winbind_check_sigterm(); >+ winbind_check_sigterm(true); > winbind_check_sighup(); > > if (do_sigusr2) { >diff --git a/source/winbindd/winbindd_dual.c b/source/winbindd/winbindd_dual.c >index d465801..81d67f6 100644 >--- a/source/winbindd/winbindd_dual.c >+++ b/source/winbindd/winbindd_dual.c >@@ -1106,7 +1106,7 @@ static bool fork_domain_child(struct winbindd_child *child) > TALLOC_CTX *frame = talloc_stackframe(); > > /* check for signals */ >- winbind_check_sigterm(); >+ winbind_check_sigterm(false); > winbind_check_sighup(); > > run_events(winbind_event_context(), 0, NULL, NULL);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 5504
:
3322
| 3323