]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Ensure all backends _remember_ the connection has closed after
authorSimon Tatham <anakin@pobox.com>
Fri, 26 Jan 2001 12:22:16 +0000 (12:22 +0000)
committerSimon Tatham <anakin@pobox.com>
Fri, 26 Jan 2001 12:22:16 +0000 (12:22 +0000)
receiving a network error. Should prevent the cascading-error-box
bug.

[originally from svn r900]

raw.c
rlogin.c
ssh.c
telnet.c

diff --git a/raw.c b/raw.c
index 2abc0a8d5748b08e543822e00effaa681d83360e..27af2c4e01b8c1b9e4286e577639fae1fd4ec769 100644 (file)
--- a/raw.c
+++ b/raw.c
@@ -24,9 +24,10 @@ static void c_write (char *buf, int len) {
     from_backend(0, buf, len);
 }
 
-static int raw_receive (Socket s, int urgent, char *data, int len) {
+static int raw_receive (Socket skt, int urgent, char *data, int len) {
     if (urgent==3) {
         /* A socket error has occurred. */
+        s = NULL;
         connection_fatal(data);
         len = 0;
     }
index 20296a0b6a4569d95e19644dae0070274f221d16..e0552f25b598daaa83886283f4efd1b236d191e0 100644 (file)
--- a/rlogin.c
+++ b/rlogin.c
@@ -24,9 +24,10 @@ static void c_write (char *buf, int len) {
     from_backend(0, buf, len);
 }
 
-static int rlogin_receive (Socket s, int urgent, char *data, int len) {
+static int rlogin_receive (Socket skt, int urgent, char *data, int len) {
     if (urgent==3) {
         /* A socket error has occurred. */
+        s = NULL;
         connection_fatal(data);
         len = 0;
     }
diff --git a/ssh.c b/ssh.c
index 44075a7e839795f743a03e0ada5cc73362dd2068..2ef8ac4dd0be03e38648e4477d4aba7940d34a56 100644 (file)
--- a/ssh.c
+++ b/ssh.c
@@ -1151,6 +1151,8 @@ static void ssh_gotdata(unsigned char *data, int datalen)
 static int ssh_receive(Socket skt, int urgent, char *data, int len) {
     if (urgent==3) {
         /* A socket error has occurred. */
+        ssh_state = SSH_STATE_CLOSED;
+        s = NULL;
         connection_fatal(data);
         len = 0;
     }
index 3e65cd4191b08c252efd96986ec24b7d9a004745..cd70d9b8a06e6e8373dc8341df231ca6834f0ead 100644 (file)
--- a/telnet.c
+++ b/telnet.c
@@ -465,9 +465,10 @@ static void do_telnet_read (char *buf, int len) {
     }
 }
 
-static int telnet_receive(Socket s, int urgent, char *data, int len) {
+static int telnet_receive(Socket skt, int urgent, char *data, int len) {
     if (urgent==3) {
         /* A socket error has occurred. */
+        s = NULL;
         connection_fatal(data);
         len = 0;
     }