]> git.dolda2000.com Git - ashd.git/commitdiff
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 5965b5fbbf1d0147c3253fc7e08260a6842555aa..fc51009767e71c9933ddd440acf860789b336c44 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 f8ac25a9c5c0fa4b081ff96503020da0ab36c5da..31920e625e717bab485ae6e56a6058c003674fd3 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 04b7a1058b3cb0dc00cac4889a59778a06a5cf23..83944062966c65a25f84e6abb8b2b5437ea5f378 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 8493f487bf4bbf9e77fb0d82a30fd38880ab1cbf..cfd313cbb9ed650f8996f319ee815adddebd3aec 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)