1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00

ssh2 conn: don't set mainchan_eof_sent when we didn't.

In mainchan_send_eof, which is the Channel method that gets called
when EOF has been received from the SSH server and is now being passed
on to the local endpoint, we decide whether or not to respond to the
server-side EOF with a client-side EOF based on application
preference. But I was doing the followup admin _outside_ that if
statement, so if the server sent EOF and we _didn't_ want to send EOF
in response, we still set the flag that said we'd sent it, and stopped
reading from standard input. Result: if you use 'plink -nc' to talk to
a remote network socket, and the server sends EOF first, Plink will
never send EOF in the other direction, because it'll stop reading from
standard input and never actually see the EOF that needs to be sent.
This commit is contained in:
Simon Tatham 2018-10-03 20:55:01 +01:00
parent 72a8c8c471
commit bf61af1919

View File

@ -2267,9 +2267,9 @@ static void mainchan_send_eof(Channel *chan)
*/ */
sshfwd_write_eof(mc->sc); sshfwd_write_eof(mc->sc);
ppl_logevent(("Sent EOF message")); ppl_logevent(("Sent EOF message"));
s->mainchan_eof_sent = TRUE;
s->want_user_input = FALSE; /* now stop reading from stdin */
} }
s->mainchan_eof_sent = TRUE;
s->want_user_input = FALSE; /* now stop reading from stdin */
} }
static void mainchan_set_input_wanted(Channel *chan, int wanted) static void mainchan_set_input_wanted(Channel *chan, int wanted)