]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
Merge commit 'remotes/fml/master'
authorAndre Noll <maan@systemlinux.org>
Tue, 11 Dec 2007 16:40:50 +0000 (17:40 +0100)
committerAndre Noll <maan@systemlinux.org>
Tue, 11 Dec 2007 16:40:50 +0000 (17:40 +0100)
command.c
server.c

index aed9e6a0a34ab94ea6fce7b5708ac0b6e228efd2..68cc5ab55f7c8da0362bb1ae9aa018014a97ede9 100644 (file)
--- a/command.c
+++ b/command.c
@@ -696,7 +696,6 @@ int handle_connect(int fd, const char *peername)
        signal(SIGINT, SIG_DFL);
        signal(SIGTERM, SIG_DFL);
        signal(SIGHUP, SIG_DFL);
-       signal(SIGUSR1, SIG_IGN);
 
        /* we need a blocking fd here as recv() might return EAGAIN otherwise. */
        ret = mark_fd_blocking(fd);
index d48a0c91e391e7238c551602dacc56a0f378899b..17ff7cb408ae62e551b8e0ce754fe4a1e667c901 100644 (file)
--- a/server.c
+++ b/server.c
@@ -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)