cURL / Mailing Lists / curl-library / Single Mail

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

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