diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c index 07895402..0bcbe3ed 100644 --- a/src/ngircd/irc-login.c +++ b/src/ngircd/irc-login.c @@ -785,7 +785,6 @@ Hello_User(CLIENT * Client) return CONNECTED; } else { /* Sub process */ - signal(SIGTERM, Proc_GenericSignalHandler); Log_Init_Subprocess("Auth"); if (Conf_NoPAM) { result = (Client_Password(Client)[0] == '\0'); diff --git a/src/ngircd/proc.c b/src/ngircd/proc.c index f5438834..11cb0396 100644 --- a/src/ngircd/proc.c +++ b/src/ngircd/proc.c @@ -66,6 +66,7 @@ Proc_Fork(PROC_STAT *proc, int *pipefds, void (*cbfunc)(int, short)) return -1; case 0: /* New child process: */ + signal(SIGTERM, Proc_GenericSignalHandler); close(pipefds[0]); return 0; } diff --git a/src/ngircd/resolve.c b/src/ngircd/resolve.c index 808ce53f..b88ec11c 100644 --- a/src/ngircd/resolve.c +++ b/src/ngircd/resolve.c @@ -42,7 +42,6 @@ #include "io.h" -static void Init_Subprocess PARAMS(( void )); static void Do_ResolveAddr PARAMS(( const ng_ipaddr_t *Addr, int Sock, int w_fd )); static void Do_ResolveName PARAMS(( const char *Host, int w_fd )); @@ -70,7 +69,7 @@ Resolve_Addr(PROC_STAT * s, const ng_ipaddr_t *Addr, int identsock, return true; } else if( pid == 0 ) { /* Sub process */ - Init_Subprocess(); + Log_Init_Subprocess("Resolver"); Do_ResolveAddr( Addr, identsock, pipefd[1]); Log_Exit_Subprocess("Resolver"); exit(0); @@ -99,7 +98,7 @@ Resolve_Name( PROC_STAT *s, const char *Host, void (*cbfunc)(int, short)) return true; } else if( pid == 0 ) { /* Sub process */ - Init_Subprocess(); + Log_Init_Subprocess("Resolver"); Do_ResolveName(Host, pipefd[1]); Log_Exit_Subprocess("Resolver"); exit(0); @@ -108,17 +107,6 @@ Resolve_Name( PROC_STAT *s, const char *Host, void (*cbfunc)(int, short)) } /* Resolve_Name */ -/** - * Initialize forked resolver subprocess. - */ -static void -Init_Subprocess(void) -{ - signal(SIGTERM, Proc_GenericSignalHandler); - Log_Init_Subprocess("Resolver"); -} - - #if !defined(HAVE_GETADDRINFO) || !defined(HAVE_GETNAMEINFO) #if !defined(WANT_IPV6) && defined(h_errno) static char *