forwarded X connection. (I somehow forgot to do this in r9364, despite
making the identical change in portfwd.c.)
git-svn-id: svn://svn.tartarus.org/sgt/putty@9470
cda61777-01e9-0310-a592-
d414129be87e
{
struct X11Private *pr = (struct X11Private *) plug;
{
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);
+ }
+