From 406864e0875058f9533c861eaf65d956902bdb96 Mon Sep 17 00:00:00 2001 From: Luke Bratch Date: Sun, 15 Sep 2019 17:33:26 +0100 Subject: Use global signal(SIGPIPE, SIG_IGN) instead of the send() flag MSG_NOSIGNAL since we can't pass MSG_NOSIGNAL to OpenSSL's SSL_write when using TLS connections. --- blabouncer.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'blabouncer.c') diff --git a/blabouncer.c b/blabouncer.c index d6df294..d692d19 100644 --- a/blabouncer.c +++ b/blabouncer.c @@ -482,6 +482,9 @@ void dochat(int *serversockfd, int *clientsockfd, struct settings *settings) { sigaddset(&sigset, SIGTERM); sigprocmask(SIG_BLOCK, &sigset, &oldset); + // Extra signal handling to ignore SIGPIPE so failing send() and/or SSL_write() doesn't terminate blabouncer with SIGPIPE + signal(SIGPIPE, SIG_IGN); + while (1) { debugprint(DEBUG_FULL, "top of loop, fdmax %d.\n", fdmax); FD_ZERO(&rfds); // clear entries from fd set -- cgit v1.2.3