1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00

Enable winbind child processes to do something with signals,

in particular closing and reopening logs on SIGHUP.

Conflicts:

	source/winbindd/winbindd.c
This commit is contained in:
Jim McDonough 2008-05-13 16:57:01 -04:00
parent 31614cd5e0
commit 0f7b11acce
2 changed files with 27 additions and 12 deletions

View File

@ -795,6 +795,27 @@ static bool remove_idle_client(void)
return False;
}
/* check if HUP has been received and reload files */
void winbind_check_sighup(void)
{
if (do_sighup) {
DEBUG(3, ("got SIGHUP\n"));
flush_caches();
reload_services_file();
do_sighup = False;
}
}
/* check if TERM has been received */
void winbind_check_sigterm(void)
{
if (do_sigterm)
terminate();
}
/* Process incoming clients on listen_sock. We use a tricky non-blocking,
non-forking, non-threaded model which allows us to handle many
simultaneous connections while remaining impervious to many denial of
@ -954,18 +975,8 @@ static void process_loop(void)
/* Check signal handling things */
if (do_sigterm)
terminate();
if (do_sighup) {
DEBUG(3, ("got SIGHUP\n"));
flush_caches();
reload_services_file();
do_sighup = False;
}
winbind_check_sigterm();
winbind_check_sighup();
if (do_sigusr2) {
print_winbindd_status();

View File

@ -1105,6 +1105,10 @@ static bool fork_domain_child(struct winbindd_child *child)
struct timeval now;
TALLOC_CTX *frame = talloc_stackframe();
/* check for signals */
winbind_check_sigterm();
winbind_check_sighup();
run_events(winbind_event_context(), 0, NULL, NULL);
GetTimeOfDay(&now);