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:
parent
31614cd5e0
commit
0f7b11acce
@ -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();
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user