X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=server.c;h=73986f6df3bf00d080bd7b9e2f12f4efa2e9a5f1;hp=93de8cc35d26c4e9f0e2277a236f47de905d5a6a;hb=db0e72763ac5660b01c8c2db75901f4efa2c44cc;hpb=b46dd218f90646441998f975c9b5515a5521c9d5 diff --git a/server.c b/server.c index 93de8cc3..73986f6d 100644 --- a/server.c +++ b/server.c @@ -204,7 +204,7 @@ static void shm_init(void) mmd->sender_cmd_data.cmd_num = -1; return; err_out: - PARA_EMERG_LOG("%s", PARA_STRERROR(-ret)); + PARA_EMERG_LOG("%s", para_strerror(-ret)); exit(EXIT_FAILURE); } @@ -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); - signal(SIGPIPE, SIG_IGN); - signal(SIGUSR1, SIG_IGN); - if (ret != 4) { - 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) @@ -314,7 +318,7 @@ static unsigned init_network(void) add_close_on_fork_list(fd); /* child doesn't need the listener */ return fd; err: - PARA_EMERG_LOG("%s\n", PARA_STRERROR(-ret)); + PARA_EMERG_LOG("%s\n", para_strerror(-ret)); exit(EXIT_FAILURE); }