diff --git a/0015-curl-7.29.0-d015f4cc.patch b/0015-curl-7.29.0-d015f4cc.patch new file mode 100644 index 0000000..c0fb0bf --- /dev/null +++ b/0015-curl-7.29.0-d015f4cc.patch @@ -0,0 +1,42 @@ +From 2e973be50f75d0a85dcb995f7823f00b1fc85c2f Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Mon, 7 Oct 2013 16:07:50 +0200 +Subject: [PATCH] ssh: improve the logic for detecting blocking direction + +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). + +[upstream commit d015f4ccac627852869cb45e31ccdc9fbd97dc47] +--- + lib/ssh.c | 8 +++++--- + 1 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/lib/ssh.c b/lib/ssh.c +index 422357b..93c65c3 100644 +--- a/lib/ssh.c ++++ b/lib/ssh.c +@@ -2287,6 +2287,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 */ +@@ -2603,9 +2607,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 + diff --git a/0105-curl-7.32.0-scp-upload.patch b/0105-curl-7.32.0-scp-upload.patch deleted file mode 100644 index 73c8aee..0000000 --- a/0105-curl-7.32.0-scp-upload.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 2e973be50f75d0a85dcb995f7823f00b1fc85c2f Mon Sep 17 00:00:00 2001 -From: Kamil Dudka -Date: Mon, 7 Oct 2013 16:07:50 +0200 -Subject: [PATCH] ssh: improve the logic for detecting blocking direction - -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). - -http://thread.gmane.org/gmane.comp.web.curl.library/40551/focus=40561 ---- - lib/ssh.c | 8 +++++--- - 1 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/lib/ssh.c b/lib/ssh.c -index 422357b..93c65c3 100644 ---- a/lib/ssh.c -+++ b/lib/ssh.c -@@ -2287,6 +2287,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 */ -@@ -2603,9 +2607,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 - diff --git a/curl.spec b/curl.spec index f19528e..1777d5d 100644 --- a/curl.spec +++ b/curl.spec @@ -46,6 +46,9 @@ Patch12: 0012-curl-7.29.0-c639d725.patch # re-use of wrong HTTP NTLM connection in libcurl (CVE-2014-0015) Patch14: 0014-curl-7.29.0-8ae35102.patch +# ssh: improve the logic for detecting blocking direction +Patch15: 0015-curl-7.29.0-d015f4cc.patch + # refresh expired cookie in test172 from upstream test-suite (#1068967) Patch17: 0017-curl-7.29.0-ffb8a21d.patch @@ -61,9 +64,6 @@ Patch104: 0104-curl-7.19.7-localhost6.patch # disable valgrind for certain test-cases (libssh2 problem) Patch106: 0106-curl-7.21.0-libssh2-valgrind.patch -# http://thread.gmane.org/gmane.comp.web.curl.library/40551/focus=40561 -Patch105: 0105-curl-7.32.0-scp-upload.patch - # work around valgrind bug (#678518) Patch107: 0107-curl-7.21.4-libidn-valgrind.patch @@ -158,11 +158,9 @@ documentation of the library, too. %patch11 -p1 %patch12 -p1 %patch14 -p1 +%patch15 -p1 %patch17 -p1 -# patches not yet upstream -%patch105 -p1 - # Fedora patches %patch101 -p1 %patch102 -p1