Block SIGPIPE in Unix plink. In a port-forwarding run we may have lots
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Thu, 8 Dec 2011 19:15:52 +0000 (19:15 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
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.

git-svn-id: svn://svn.tartarus.org/sgt/putty@9359 cda61777-01e9-0310-a592-d414129be87e

unix/uxplink.c

index 37c8533..b3e5679 100644 (file)
@@ -886,6 +886,12 @@ int main(int argc, char **argv)
        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.
      */
     if (pipe(signalpipe) < 0) {