From: Willy Tarreau Date: Thu, 5 Oct 2017 04:31:10 +0000 (+0200) Subject: CONTRIB: tcploop: add a shutr command X-Git-Tag: v2.4-dev15~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c3890e5a2d2ec0b0243e6e36173f71a9eab9655d;p=thirdparty%2Fhaproxy.git CONTRIB: tcploop: add a shutr command Usually this has limited effect except for listening sockets, but at least it helps compare behaviors with and without. --- diff --git a/contrib/tcploop/tcploop.c b/contrib/tcploop/tcploop.c index 0571a6dfd7..c7cec6f68c 100644 --- a/contrib/tcploop/tcploop.c +++ b/contrib/tcploop/tcploop.c @@ -118,6 +118,7 @@ __attribute__((noreturn)) void usage(int code, const char *arg0) " I : wait for Input data to be present (POLLIN)\n" " O : wait for Output queue to be empty (POLLOUT + TIOCOUTQ)\n" " F : FIN : shutdown(SHUT_WR)\n" + " r : shutr : shutdown(SHUT_RD) (pauses a listener or ends recv)\n" " N : fork New process, limited to concurrent (default 1)\n" " X[i|o|e]* ** : execvp() next args passing socket as stdin/stdout/stderr.\n" " If i/o/e present, only stdin/out/err are mapped to socket.\n" @@ -897,7 +898,14 @@ int main(int argc, char **argv) /* ignore errors on shutdown() as they are common */ if (sock >= 0) shutdown(sock, SHUT_WR); - dolog("shutdown\n"); + dolog("shutdown(w)\n"); + break; + + case 'r': + /* ignore errors on shutdown() as they are common */ + if (sock >= 0) + shutdown(sock, SHUT_RD); + dolog("shutdown(r)\n"); break; case 'N':