Ensure all backends _remember_ the connection has closed after
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 26 Jan 2001 12:22:16 +0000 (12:22 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 26 Jan 2001 12:22:16 +0000 (12:22 +0000)
receiving a network error. Should prevent the cascading-error-box
bug.

git-svn-id: svn://svn.tartarus.org/sgt/putty@900 cda61777-01e9-0310-a592-d414129be87e

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

diff --git a/raw.c b/raw.c
index 2abc0a8..27af2c4 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 20296a0..e0552f2 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 44075a7..2ef8ac4 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 3e65cd4..cd70d9b 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;
     }