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]
This commit is contained in:
Simon Tatham 2011-12-08 19:15:52 +00:00
Родитель bb542eaeff
Коммит 66ea8dc1b9
1 изменённых файлов: 6 добавлений и 0 удалений

Просмотреть файл

@ -885,6 +885,12 @@ int main(int argc, char **argv)
if (portnumber != -1) if (portnumber != -1)
conf_set_int(conf, CONF_port, portnumber); 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. * Set up the pipe we'll use to tell us about SIGWINCH.
*/ */