]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - x11fwd.c
Improve socket error handling so that a socket error isn't an
[PuTTY.git] / x11fwd.c
index b4fecd9a56b492733f5b1eb9460075be5bc543c7..7e9952395a0d3fafc63036cbda8b92f1ea688dab 100644 (file)
--- a/x11fwd.c
+++ b/x11fwd.c
@@ -106,6 +106,14 @@ static int x11_verify(char *proto, unsigned char *data, int dlen) {
 static int x11_receive (Socket s, int urgent, char *data, int len) {
     struct X11Private *pr = (struct X11Private *)sk_get_private_ptr(s);
 
+    if (urgent==3) {
+        /*
+         * A socket error has occurred. We have no way to
+         * communicate this down the forwarded connection, so we'll
+         * just treat it like a proper close.
+         */
+        len = 0;
+    }
     if (!len) {
        /* Connection has closed. */
         sshfwd_close(pr->c);