1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-12-12 18:00:28 +00:00

New function Proc_GenericSignalHandler()

This commit is contained in:
Alexander Barton 2010-07-01 00:39:35 +02:00
parent 0db9a31e50
commit 4cc4c29e38
3 changed files with 19 additions and 17 deletions

View File

@ -18,6 +18,7 @@
#include <errno.h>
#include <signal.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include "log.h"
@ -99,4 +100,19 @@ Proc_Kill(PROC_STAT *proc)
Proc_InitStruct(proc);
}
/**
* Generic signal handler for forked child processes.
*/
GLOBAL void
Proc_GenericSignalHandler(int Signal)
{
switch(Signal) {
case SIGTERM:
#ifdef DEBUG
Log_Subprocess(LOG_DEBUG, "Child got TERM signal, exiting.");
#endif
exit(1);
}
}
/* -eof- */

View File

@ -30,6 +30,8 @@ GLOBAL pid_t Proc_Fork PARAMS((PROC_STAT *proc, int *pipefds,
GLOBAL void Proc_Kill PARAMS((PROC_STAT *proc));
GLOBAL void Proc_GenericSignalHandler PARAMS((int Signal));
#endif
/* -eof- */

View File

@ -108,29 +108,13 @@ Resolve_Name( PROC_STAT *s, const char *Host, void (*cbfunc)(int, short))
} /* Resolve_Name */
/**
* Signal handler for the forked resolver subprocess.
*/
static void
Signal_Handler(int Signal)
{
switch(Signal) {
case SIGTERM:
#ifdef DEBUG
Log_Subprocess(LOG_DEBUG, "Resolver: Got TERM signal, exiting.");
#endif
exit(1);
}
}
/**
* Initialize forked resolver subprocess.
*/
static void
Init_Subprocess(void)
{
signal(SIGTERM, Signal_Handler);
signal(SIGTERM, Proc_GenericSignalHandler);
Log_Init_Subprocess("Resolver");
}