From a32bdcb06acf0428b4babe6f8342a3f962fd5b39 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Sat, 22 May 2021 04:27:43 +0000 Subject: bugfix: tcpserver should unignore SIGPIPE --- src/conn-tools/s6-tcpserver4d.c | 3 ++- 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) ; } -- cgit v1.2.3