diff --git a/src/piler-smtp.c b/src/piler-smtp.c index 370edb9..edb6875 100644 --- a/src/piler-smtp.c +++ b/src/piler-smtp.c @@ -52,9 +52,11 @@ } -void p_clean_exit(){ +void p_clean_exit(int sig){ int i; + syslog(LOG_PRIORITY, "got signal: %d, %s", sig, strsignal(sig)); + if(listenerfd != -1) close(listenerfd); if(sessions){ @@ -75,33 +77,9 @@ } -void p_term_exit(){ - syslog(LOG_PRIORITY, "got signal: SIGTERM"); - p_clean_exit(); -} - - -void p_kill_exit(){ - syslog(LOG_PRIORITY, "got signal: SIGKILL"); - p_clean_exit(); -} - - -void p_stop_exit() { - syslog(LOG_PRIORITY, "got signal: SIGSTOP"); - p_clean_exit(); -} - - -void p_segv_exit(){ - syslog(LOG_PRIORITY, "got signal: SIGSEGV"); - p_clean_exit(); -} - - void fatal(char *s){ syslog(LOG_PRIORITY, "%s", s); - p_clean_exit(); + p_clean_exit(0); } @@ -211,11 +189,11 @@ } set_signal_handler(SIGINT, p_clean_exit); - set_signal_handler(SIGTERM, p_term_exit); + set_signal_handler(SIGTERM, p_clean_exit); - set_signal_handler(SIGKILL, p_kill_exit); - set_signal_handler(SIGSEGV, p_segv_exit); - set_signal_handler(SIGSTOP, p_stop_exit); + set_signal_handler(SIGKILL, p_clean_exit); + set_signal_handler(SIGSEGV, p_clean_exit); + set_signal_handler(SIGSTOP, p_clean_exit); set_signal_handler(SIGALRM, check_for_client_timeout); set_signal_handler(SIGHUP, initialise_configuration); diff --git a/src/piler.c b/src/piler.c index 16c59dc..04b7301 100644 --- a/src/piler.c +++ b/src/piler.c @@ -41,6 +41,9 @@ struct child children[MAXCHILDREN]; +void p_clean_exit(); + + void usage(){ printf("\nusage: piler\n\n"); printf(" -c Config file to use if not the default\n"); diff --git a/src/piler.h b/src/piler.h index 9b1367c..d12a08e 100644 --- a/src/piler.h +++ b/src/piler.h @@ -80,7 +80,6 @@ pid_t child_make(struct child *ptr); int search_slot_by_pid(pid_t pid); void kill_children(int sig); -void p_clean_exit(); void fatal(char *s); void initialise_configuration();