Move signal setting into service_loop()
authorH. Peter Anvin <hpa@smyrno.hos.anvin.org>
Fri, 30 Sep 2005 18:01:57 +0000 (11:01 -0700)
committerH. Peter Anvin <hpa@smyrno.hos.anvin.org>
Fri, 30 Sep 2005 18:01:57 +0000 (11:01 -0700)
daemon.c

index fc5e1c3..f285a8c 100644 (file)
--- a/daemon.c
+++ b/daemon.c
@@ -480,6 +480,8 @@ static int service_loop(int socknum, int *socklist)
                pfd[i].fd = socklist[i];
                pfd[i].events = POLLIN;
        }
+
+       signal(SIGCHLD, child_handler);
        
        for (;;) {
                int i;
@@ -518,8 +520,6 @@ static int serve(int port)
 {
        int socknum, *socklist;
        
-       signal(SIGCHLD, child_handler);
-       
        socknum = socksetup(port, &socklist);
        if (socknum == 0)
                die("unable to allocate any listen sockets on port %u", port);