simon-git: putty (master): Simon Tatham
Commits to Tartarus hosted VCS
tartarus-commits at lists.tartarus.org
Sun Feb 17 20:32:31 GMT 2019
TL;DR:
5bc6db4b Call ssh_check_frozen when BPP consumes input.
5dadbdf5 ssh_sftp_do_select: don't fail if a callback is pending.
Repository: https://git.tartarus.org/simon/putty.git
On the web: https://git.tartarus.org/?p=simon/putty.git
Branch updated: master
Committer: Simon Tatham <anakin at pobox.com>
Date: 2019-02-17 20:32:31
commit 5bc6db4b9651424600834503e0986e8943f6b9f9
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=5bc6db4b9651424600834503e0986e8943f6b9f9;hp=85550641d76f4f0d40bdf3656b7798296a6eca6c
Author: Simon Tatham <anakin at pobox.com>
Date: Sun Feb 17 19:06:03 2019 +0000
Call ssh_check_frozen when BPP consumes input.
In commit 0f405ae8a, I arranged to stop reading from the SSH
connection if the in_raw bufchain got too big. But in at least some
tools (this bit me just now with PSCP), nothing actually calls
ssh_check_frozen again when the bufchain clears, so it stays frozen.
Now ssh_check_frozen is non-static, and all the BPP implementations
call it whenever they consume data from ssh->in_raw.
ssh.c | 2 +-
ssh.h | 1 +
ssh1bpp.c | 1 +
ssh2bpp-bare.c | 1 +
ssh2bpp.c | 1 +
sshserver.c | 1 +
sshverstring.c | 4 ++++
7 files changed, 10 insertions(+), 1 deletion(-)
commit 5dadbdf55657f9cc5e15e9fae5c30142b7fdbf45
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=5dadbdf55657f9cc5e15e9fae5c30142b7fdbf45;hp=5bc6db4b9651424600834503e0986e8943f6b9f9
Author: Simon Tatham <anakin at pobox.com>
Date: Sun Feb 17 19:09:38 2019 +0000
ssh_sftp_do_select: don't fail if a callback is pending.
ssh_sftp_loop_iteration() used to return failure if no file handle was
in use for the select loop, on the basis that that means select would
just loop forever. But if there's a toplevel callback pending - in
particular, if it's going to do something like emptying ssh->in_raw
which will put an fd _back into_ the next iteration of the select loop
- then that's not a good enough reason to return permanent failure.
Just go round the loop, run the callback, and try again.
unix/uxsftp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
More information about the tartarus-commits
mailing list