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

Fix session channel unthrottling in psusan and Uppity.

I ran 'ls /usr/share/doc' in a psusan session the other day and the
output hung part way through the long directory listing. This turned
out to be because the ssh-connection channel window had run out
temporarily, and PuTTY had sent a WINDOW_ADJUST extending it again,
which the connection layer acted on by calling chan_set_input_wanted
... which sesschan was ignoring with a comment saying /* I don't think
we need to do anything here */.

Well, turns out we do need to. Implemented the simplest possible
unblocking action.
This commit is contained in:
Simon Tatham 2022-08-21 12:58:01 +01:00
parent fb41eec4c1
commit 55d19f6295

View File

@ -292,7 +292,11 @@ static char *sesschan_log_close_msg(Channel *chan)
static void sesschan_set_input_wanted(Channel *chan, bool wanted)
{
/* I don't think we need to do anything here */
sesschan *sess = container_of(chan, sesschan, chan);
/* Request the back end to resume sending input, if it had become
* throttled by the channel window shortening */
if (wanted && sess->backend)
backend_unthrottle(sess->backend, 0);
}
static void sesschan_start_backend(sesschan *sess, const char *cmd)