зеркало из https://github.com/github/putty.git
Call sshfwd_unclean_close() in the event of a local socket error on a
forwarded X connection. (I somehow forgot to do this in r9364, despite
making the identical change in portfwd.c.)
[originally from svn r9470]
[r9364 == 49927f6c4d
]
This commit is contained in:
Родитель
3225f3743e
Коммит
76a27757e6
24
x11fwd.c
24
x11fwd.c
|
@ -503,16 +503,20 @@ static int x11_closing(Plug plug, const char *error_msg, int error_code,
|
|||
{
|
||||
struct X11Private *pr = (struct X11Private *) plug;
|
||||
|
||||
/*
|
||||
* We have no way to communicate down the forwarded connection,
|
||||
* so if an error occurred on the socket, we just ignore it
|
||||
* and treat it like a proper close.
|
||||
*
|
||||
* FIXME: except we could initiate a full close here instead of
|
||||
* just an outgoing EOF? ssh.c currently has no API for that, but
|
||||
* it could.
|
||||
*/
|
||||
sshfwd_write_eof(pr->c);
|
||||
if (error_msg) {
|
||||
/*
|
||||
* Socket error. Slam the connection instantly shut.
|
||||
*/
|
||||
sshfwd_unclean_close(pr->c);
|
||||
} else {
|
||||
/*
|
||||
* Ordinary EOF received on socket. Send an EOF on the SSH
|
||||
* channel.
|
||||
*/
|
||||
if (pr->c)
|
||||
sshfwd_write_eof(pr->c);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче