aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES6
-rw-r--r--RELEASE-NOTES6
-rw-r--r--lib/transfer.c5
3 files changed, 14 insertions, 3 deletions
diff --git a/CHANGES b/CHANGES
index 0d458b041..d19a74d1f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,12 @@
Changelog
+Daniel S (26 April 2007)
+- Peter O'Gorman found a problem with SCP downloads when the downloaded file
+ was 16385 bytes (16K+1) and it turned out we didn't properly always "suck
+ out" all data from libssh2. The effect being that libcurl would hang on the
+ socket waiting for data when libssh2 had in fact already read it all...
+
Dan F (25 April 2007)
- Added support in runtests.pl for "!n" test numbers to disable individual
tests. Changed -t to only keep log files around when -k is specified,
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 8e55ca805..33ea5a859 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -5,7 +5,7 @@ Curl and libcurl 7.16.3
Available command line options: 118
Available curl_easy_setopt() options: 141
Number of public functions in libcurl: 54
- Amount of public web site mirrors: 38
+ Amount of public web site mirrors: 39
Number of known libcurl bindings: 35
Number of contributors: 554
@@ -29,6 +29,7 @@ This release includes the following bugfixes:
o NSS-fix for closing down SSL
o bad warning from configure when gnutls was selected
o compilation on VMS 64-bit mode
+ o SCP/SFTP downloads could hang on the last bytes of a transfer
This release includes the following known bugs:
@@ -45,11 +46,12 @@ New curl mirrors:
o http://curl.spegulo.be is a new mirror in Belgium
o http://curl.piotrkosoft.net is a new mirror in Poland
o http://curl.smudge-it.net is a new mirror in St Louis, MO, USA
+ o http://curl.askapache.com is a new mirror in Indiana, USA
This release would not have looked like this without help, code, reports and
advice from friends like these:
Song Ma, Dan Fandrich, Yang Tse, Jay Austin, Robert Iakobashvil,
- James Housley, Daniel Black, Steve Little, Sonia Subramanian
+ James Housley, Daniel Black, Steve Little, Sonia Subramanian, Peter O'Gorman
Thanks! (and sorry if I forgot to mention someone)
diff --git a/lib/transfer.c b/lib/transfer.c
index d007e8814..760884e9b 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -270,7 +270,10 @@ CURLcode Curl_readrewind(struct connectdata *conn)
static int data_pending(struct connectdata *conn)
{
- return Curl_ssl_data_pending(conn, FIRSTSOCKET);
+ /* in the case of libssh2, we can never be really sure that we have emptied
+ its internal buffers so we MUST always try until we get EAGAIN back */
+ return conn->protocol&(PROT_SCP|PROT_SFTP) ||
+ Curl_ssl_data_pending(conn, FIRSTSOCKET);
}
#ifndef MIN