Ignore SIGPIPE (non-inheritably) in dirplex, patplex, userplex and callscgi.
authorFredrik Tolf <fredrik@dolda2000.com>
Mon, 20 Sep 2010 17:30:48 +0000 (19:30 +0200)
committerFredrik Tolf <fredrik@dolda2000.com>
Mon, 20 Sep 2010 17:30:48 +0000 (19:30 +0200)
src/callscgi.c
src/dirplex/dirplex.c
src/patplex.c
src/userplex.c

index 5965b5f..fc51009 100644 (file)
@@ -578,6 +578,10 @@ static void listenloop(struct muth *muth, va_list args)
     }
 }
 
+static void sigign(int sig)
+{
+}
+
 static void sigexit(int sig)
 {
     exit(0);
@@ -620,6 +624,7 @@ int main(int argc, char **argv)
        exit(1);
     }
     signal(SIGCHLD, SIG_IGN);
+    signal(SIGPIPE, sigign);
     signal(SIGINT, sigexit);
     signal(SIGTERM, sigexit);
     mustart(listenloop, 0);
index f8ac25a..31920e6 100644 (file)
@@ -296,6 +296,10 @@ static void serve(struct hthead *req, int fd)
        simpleerror(fd, 404, "Not Found", "The requested URL has no corresponding resource.");
 }
 
+static void sighandler(int sig)
+{
+}
+
 static void usage(FILE *out)
 {
     fprintf(out, "usage: dirplex [-hN] [-c CONFIG] DIR\n");
@@ -356,6 +360,7 @@ int main(int argc, char **argv)
        exit(1);
     }
     signal(SIGCHLD, SIG_IGN);
+    signal(SIGPIPE, sighandler);
     while(1) {
        if((fd = recvreq(0, &req)) < 0) {
            if(errno != 0)
index 04b7a10..8394406 100644 (file)
@@ -513,6 +513,7 @@ int main(int argc, char **argv)
     }
     signal(SIGCHLD, SIG_IGN);
     signal(SIGHUP, sighandler);
+    signal(SIGPIPE, sighandler);
     while(1) {
        if(reload) {
            reloadconf(argv[optind]);
index 8493f48..cfd313c 100644 (file)
@@ -230,6 +230,10 @@ out:
     free(usrnm);
 }
 
+static void sighandler(int sig)
+{
+}
+
 static void usage(FILE *out)
 {
     fprintf(out, "usage: userplex [-hI] [-g GROUP] [-m MIN-UID] [-d PUB-DIR] [PROGRAM ARGS...]\n");
@@ -279,6 +283,7 @@ int main(int argc, char **argv)
        childspec = csbuf.b;
     }
     signal(SIGCHLD, SIG_IGN);
+    signal(SIGPIPE, sighandler);
     while(1) {
        if((fd = recvreq(0, &req)) < 0) {
            if(errno != 0)