diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2021-05-22 04:27:43 +0000 |
---|---|---|
committer | Laurent Bercot <ska-skaware@skarnet.org> | 2021-05-22 04:27:43 +0000 |
commit | a32bdcb06acf0428b4babe6f8342a3f962fd5b39 (patch) | |
tree | e2ad69f391b3119133102af8a1c046f09ad9eba8 | |
parent | b7c8979175f313314acec906577c54d48a8c6688 (diff) | |
download | s6-networking-a32bdcb06acf0428b4babe6f8342a3f962fd5b39.tar.xz |
bugfix: tcpserver should unignore SIGPIPE
-rw-r--r-- | src/conn-tools/s6-tcpserver4d.c | 3 | ||||
-rw-r--r-- | src/conn-tools/s6-tcpserver6d.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/conn-tools/s6-tcpserver4d.c b/src/conn-tools/s6-tcpserver4d.c index 6165d2f..ace550a 100644 --- a/src/conn-tools/s6-tcpserver4d.c +++ b/src/conn-tools/s6-tcpserver4d.c @@ -222,7 +222,7 @@ static inline void run_child (int s, uint32_t ip, uint16_t port, unsigned int nu { char fmt[74] ; size_t n = 0 ; - PROG = "s6-tcpserver (child)" ; + PROG = "s6-tcpserver4d (child)" ; if ((fd_move(1, s) < 0) || (fd_copy(0, 1) < 0)) strerr_diefu1sys(111, "move fds") ; memcpy(fmt+n, "PROTO=TCP\0TCPREMOTEIP=", 22) ; n += 22 ; @@ -253,6 +253,7 @@ static inline void new_connection (int s, uint32_t ip, uint16_t port, char const else if (!pid) { selfpipe_finish() ; + sig_restore(SIGPIPE) ; run_child(s, ip, port, num+1, argv) ; } diff --git a/src/conn-tools/s6-tcpserver6d.c b/src/conn-tools/s6-tcpserver6d.c index 57b4a9b..7f0135b 100644 --- a/src/conn-tools/s6-tcpserver6d.c +++ b/src/conn-tools/s6-tcpserver6d.c @@ -228,7 +228,7 @@ static inline void run_child (int s, char const *ip, uint16_t port, unsigned int { char fmt[98] ; size_t n = 0 ; - PROG = "s6-tcpserver6 (child)" ; + PROG = "s6-tcpserver6d (child)" ; if ((fd_move(1, s) < 0) || (fd_copy(0, 1) < 0)) strerr_diefu1sys(111, "move fds") ; memcpy(fmt+n, "PROTO=TCP\0TCPREMOTEIP=", 22) ; n += 22 ; @@ -259,6 +259,7 @@ static inline void new_connection (int s, char const *ip, uint16_t port, char co else if (!pid) { selfpipe_finish() ; + sig_restore(SIGPIPE) ; run_child(s, ip, port, num+1, argv) ; } |