Some introductory blurb in the docs
[sgt/putty] / ssh.c
diff --git a/ssh.c b/ssh.c
index dba040b..8d310e1 100644 (file)
--- a/ssh.c
+++ b/ssh.c
@@ -1128,7 +1128,9 @@ static void ssh_detect_bugs(char *vstring) {
     char *imp;                         /* pointer to implementation part */
     imp = vstring;
     imp += strcspn(imp, "-");
+    if (*imp) imp++;
     imp += strcspn(imp, "-");
+    if (*imp) imp++;
 
     ssh_remote_bugs = 0;
 
@@ -2245,7 +2247,8 @@ static void ssh1_protocol(unsigned char *in, int inlen, int ispkt) {
                 if (c) {
                     int closetype;
                     closetype = (pktin.type == SSH1_MSG_CHANNEL_CLOSE ? 1 : 2);
-                    send_packet(pktin.type, PKT_INT, c->remoteid, PKT_END);
+                    if (!(c->closes & closetype))
+                        send_packet(pktin.type, PKT_INT, c->remoteid, PKT_END);
                    if ((c->closes == 0) && (c->type == CHAN_X11)) {
                        logevent("X11 connection closed");
                        assert(c->u.x11.s != NULL);