curl-library
[PATCH] ssh: improve the logic for detecting blocking direction
From: Kamil Dudka <kdudka_at_redhat.com>
Date: Mon, 7 Oct 2013 16:07:50 +0200
Date: Mon, 7 Oct 2013 16:07:50 +0200
This fixes a regression introduced by commit 0feeab78 limiting the speed
of SCP upload to 16384 B/s on a fast connection (such as localhost).
--- RELEASE-NOTES | 1 + lib/ssh.c | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index ab59159..8dc2eb3 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -59,6 +59,7 @@ This release includes the following bugfixes: o win32: fix Visual Studio 2010 build with WINVER >= 0x600 [22] o configure: use icc options without space [21] o test1112: Increase the timeout from 7s to 16s [20] + o SCP: upload speed on a fast connection limited to 16384 B/s This release includes the following known bugs: diff --git a/lib/ssh.c b/lib/ssh.c index b1921cd..c213225 100644 --- a/lib/ssh.c +++ b/lib/ssh.c @@ -2288,6 +2288,10 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) sshc->actualcode = result; } else { + /* store this original bitmask setup to use later on if we can't + figure out a "real" bitmask */ + sshc->orig_waitfor = data->req.keepon; + /* we want to use the _sending_ function even when the socket turns out readable as the underlying libssh2 scp send function will deal with both accordingly */ @@ -2604,9 +2608,7 @@ static void ssh_block2waitfor(struct connectdata *conn, bool block) { struct ssh_conn *sshc = &conn->proto.sshc; int dir; - if(!block) - conn->waitfor = 0; - else if((dir = libssh2_session_block_directions(sshc->ssh_session))) { + if(block && (dir = libssh2_session_block_directions(sshc->ssh_session))) { /* translate the libssh2 define bits into our own bit defines */ conn->waitfor = ((dir&LIBSSH2_SESSION_BLOCK_INBOUND)?KEEP_RECV:0) | ((dir&LIBSSH2_SESSION_BLOCK_OUTBOUND)?KEEP_SEND:0); -- 1.7.1 --nextPart2725842.882cpfKy4R Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html --nextPart2725842.882cpfKy4R--Received on 2001-09-17