X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=server.c;h=17ff7cb408ae62e551b8e0ce754fe4a1e667c901;hp=80cc8f46e36a6e70be2ed13da7bfcce6f5d5a27d;hb=741dc05a35312034c8f1e20c5c08a6755812ba67;hpb=7a0852896a75d852dbd2ac848ec5c0be3b5dea71 diff --git a/server.c b/server.c index 80cc8f46..17ff7cb4 100644 --- a/server.c +++ b/server.c @@ -166,7 +166,7 @@ void para_log(int ll, const char* fmt,...) fprintf(outfd, "%i: ", ll); mypid = getpid(); if (conf.loglevel_arg <= INFO) - fprintf(outfd, "(%d) ", mypid); + fprintf(outfd, "(%d) ", (int)mypid); va_start(argp, fmt); vfprintf(outfd, fmt, argp); va_end(argp); @@ -283,22 +283,26 @@ out: static void setup_signal_handling(void) { - int ret = 0; - - signal_pipe = para_signal_init(); + signal_pipe = para_signal_init(); /* always successful */ PARA_NOTICE_LOG("setting up signal handlers\n"); - ret += para_install_sighandler(SIGINT); - ret += para_install_sighandler(SIGTERM); - ret += para_install_sighandler(SIGHUP); - ret += para_install_sighandler(SIGCHLD); - ret += para_install_sighandler(SIGUSR1); - signal(SIGPIPE, SIG_IGN); - if (ret != 5) { - PARA_EMERG_LOG("%s", "could not install signal handlers\n"); - exit(EXIT_FAILURE); - } + if (para_install_sighandler(SIGINT) < 0) + goto err; + if (para_install_sighandler(SIGTERM) < 0) + goto err; + if (para_install_sighandler(SIGHUP) < 0) + goto err; + if (para_install_sighandler(SIGCHLD) < 0) + goto err; + if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) + goto err; + if (signal(SIGUSR1, SIG_IGN) == SIG_ERR) + goto err; add_close_on_fork_list(signal_pipe); + return; +err: + PARA_EMERG_LOG("could not install signal handlers\n"); + exit(EXIT_FAILURE); } static unsigned init_network(void)