main.c: remove set_signal_handler code duplication
This commit is contained in:
parent
8ba0ac4e86
commit
95b1a8ea06
35
src/main.c
35
src/main.c
@ -271,6 +271,15 @@ done:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void setup_sig(int sig, signal_func *sigh,
|
||||||
|
const char* signame, const char* argv0) {
|
||||||
|
if (set_signal_handler (sig, sigh) == SIG_ERR) {
|
||||||
|
fprintf (stderr, "%s: Could not set the \"%s\" signal.\n",
|
||||||
|
argv0, signame);
|
||||||
|
exit (EX_OSERR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char **argv)
|
main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
@ -338,11 +347,7 @@ main (int argc, char **argv)
|
|||||||
makedaemon ();
|
makedaemon ();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (set_signal_handler (SIGPIPE, SIG_IGN) == SIG_ERR) {
|
setup_sig(SIGPIPE, SIG_IGN, "SIGPIPE", argv[0]);
|
||||||
fprintf (stderr, "%s: Could not set the \"SIGPIPE\" signal.\n",
|
|
||||||
argv[0]);
|
|
||||||
exit (EX_OSERR);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef FILTER_ENABLE
|
#ifdef FILTER_ENABLE
|
||||||
if (config->filter)
|
if (config->filter)
|
||||||
@ -380,23 +385,9 @@ main (int argc, char **argv)
|
|||||||
/* These signals are only for the parent process. */
|
/* These signals are only for the parent process. */
|
||||||
log_message (LOG_INFO, "Setting the various signals.");
|
log_message (LOG_INFO, "Setting the various signals.");
|
||||||
|
|
||||||
if (set_signal_handler (SIGCHLD, takesig) == SIG_ERR) {
|
setup_sig (SIGCHLD, takesig, "SIGCHLD", argv[0]);
|
||||||
fprintf (stderr, "%s: Could not set the \"SIGCHLD\" signal.\n",
|
setup_sig (SIGTERM, takesig, "SIGTERM", argv[0]);
|
||||||
argv[0]);
|
if (daemonized) setup_sig (SIGHUP, takesig, "SIGHUP", argv[0]);
|
||||||
exit (EX_OSERR);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (set_signal_handler (SIGTERM, takesig) == SIG_ERR) {
|
|
||||||
fprintf (stderr, "%s: Could not set the \"SIGTERM\" signal.\n",
|
|
||||||
argv[0]);
|
|
||||||
exit (EX_OSERR);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (daemonized && set_signal_handler (SIGHUP, takesig) == SIG_ERR) {
|
|
||||||
fprintf (stderr, "%s: Could not set the \"SIGHUP\" signal.\n",
|
|
||||||
argv[0]);
|
|
||||||
exit (EX_OSERR);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Start the main loop */
|
/* Start the main loop */
|
||||||
log_message (LOG_INFO, "Starting main loop. Accepting connections.");
|
log_message (LOG_INFO, "Starting main loop. Accepting connections.");
|
||||||
|
Loading…
Reference in New Issue
Block a user