From 66ea8dc1b94401dfa60abdb26918026f3230baaa Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Thu, 8 Dec 2011 19:15:52 +0000 Subject: [PATCH] Block SIGPIPE in Unix plink. In a port-forwarding run we may have lots of local sockets and pipes all open at once, and if one of them is uncleanly closed from the remote end we don't want the whole application to die - we want to close that socket's SSH channel and continue with the rest of the run. [originally from svn r9359] --- unix/uxplink.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/unix/uxplink.c b/unix/uxplink.c index 37c8533e..b3e5679d 100644 --- a/unix/uxplink.c +++ b/unix/uxplink.c @@ -885,6 +885,12 @@ int main(int argc, char **argv) if (portnumber != -1) conf_set_int(conf, CONF_port, portnumber); + /* + * Block SIGPIPE, so that we'll get EPIPE individually on + * particular network connections that go wrong. + */ + putty_signal(SIGPIPE, SIG_IGN); + /* * Set up the pipe we'll use to tell us about SIGWINCH. */