Merge branch 'jn/web'
[gitweb.git] / daemon.c
index bdfe80d2e4f4fc13ad45bd35aeeeb3ec71422a4f..1ba4d669da346abb5dab86ea7842a7ad4d3e1cde 100644 (file)
--- a/daemon.c
+++ b/daemon.c
@@ -673,6 +673,11 @@ int main(int argc, char **argv)
        int inetd_mode = 0;
        int i;
 
+       /* Without this we cannot rely on waitpid() to tell
+        * what happened to our children.
+        */
+       signal(SIGCHLD, SIG_DFL);
+
        for (i = 1; i < argc; i++) {
                char *arg = argv[i];
 
@@ -757,7 +762,7 @@ int main(int argc, char **argv)
                struct sockaddr *peer = (struct sockaddr *)&ss;
                socklen_t slen = sizeof(ss);
 
-               fclose(stderr); //FIXME: workaround
+               freopen("/dev/null", "w", stderr);
 
                if (getpeername(0, peer, &slen))
                        peer = NULL;