]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Block SIGPIPE in Unix plink. In a port-forwarding run we may have lots
authorSimon Tatham <anakin@pobox.com>
Thu, 8 Dec 2011 19:15:52 +0000 (19:15 +0000)
committerSimon Tatham <anakin@pobox.com>
Thu, 8 Dec 2011 19:15:52 +0000 (19:15 +0000)
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

index 37c8533e453924c2903b523dc64bbb9594f87227..b3e5679d8de377d81575691d46d9ad37aa8fc291 100644 (file)
@@ -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.
      */