From: Vishwa Pravin Date: Mon, 3 Apr 2023 06:46:33 +0000 (+0530) Subject: Ignore SIGPIPE if client closes connection abruptly X-Git-Tag: openssl-3.2.0-alpha1~1026 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f309b3f6087db6c83126f8f227f1fc4984cf24b1;p=thirdparty%2Fopenssl.git Ignore SIGPIPE if client closes connection abruptly Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/20678) --- diff --git a/demos/sslecho/main.c b/demos/sslecho/main.c index 0233794c4e4..ca430046c49 100644 --- a/demos/sslecho/main.c +++ b/demos/sslecho/main.c @@ -14,6 +14,7 @@ #include #include #include +#include static const int server_port = 4433; @@ -151,6 +152,9 @@ int main(int argc, char **argv) struct sockaddr_in addr; unsigned int addr_len = sizeof(addr); + /* ignore SIGPIPE so that server can continue running when client pipe closes abruptly */ + signal(SIGPIPE, SIG_IGN); + /* Splash */ printf("\nsslecho : Simple Echo Client/Server (OpenSSL 3.0.1-dev) : %s : %s\n\n", __DATE__, __TIME__); @@ -218,6 +222,8 @@ int main(int argc, char **argv) if ((rxlen = SSL_read(ssl, rxbuf, rxcap)) <= 0) { if (rxlen == 0) { printf("Client closed connection\n"); + } else { + printf("SSL_read returned %d\n", rxlen); } ERR_print_errors_fp(stderr); break;