diff options
author | Daniel Stenberg <daniel@haxx.se> | 2010-04-01 22:39:15 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2010-04-01 22:39:15 +0200 |
commit | 49f3160d69a9e568efdc370ac417841680c0b355 (patch) | |
tree | 07d516589bb3a4acb8a082bb73fd9f272d1d1795 | |
parent | e78e584035df0edb202658dfda1ee22478e14e52 (diff) | |
download | curl-49f3160d69a9e568efdc370ac417841680c0b355.tar.gz |
fix SFTP download hang
Matt Wixson found and fixed a bug in the SCP/SFTP area where the
code treated a 0 return code from libssh2 to be the same as
EAGAIN while in reality it isn't. The problem caused a hang in
SFTP transfers from a MessageWay server.
-rw-r--r-- | CHANGES | 6 | ||||
-rw-r--r-- | RELEASE-NOTES | 3 | ||||
-rw-r--r-- | lib/sendf.c | 2 |
3 files changed, 9 insertions, 2 deletions
@@ -6,6 +6,12 @@ Changelog +Daniel Stenberg (1 Apr 2010) +- Matt Wixson found and fixed a bug in the SCP/SFTP area where the code + treated a 0 return code from libssh2 to be the same as EAGAIN while in + reality it isn't. The problem caused a hang in SFTP transfers from a + MessageWay server. + Daniel Stenberg (28 Mar 2010) - Ben Greear: If you pass a URL to pop3 that does not contain a message ID as part of the URL, it would previously ask for 'INBOX' which just causes the diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 743116bc3..4a0742678 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -44,6 +44,7 @@ This release includes the following bugfixes: o multi interface HTTP POST over a proxy using PROXYTUNNEL o RTSP GET_PARAMETER o timeout after last data chunk was handled + o SFTP download hang This release includes the following known bugs: @@ -57,6 +58,6 @@ advice from friends like these: Ryan Chan, Markus Duft, Andrei Benea, Jacob Moshenko, Daniel Johnson, Constantine Sapuntzakis, Douglas Steinwand, Thomas Lopatic, Hauke Duden, Akos Pasztory, Kenny To, Christopher Conroy, Massimo Callegari, - Bob Richmond + Bob Richmond, Matt Wixson Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/sendf.c b/lib/sendf.c index 964c9ed62..7f7c2cb9d 100644 --- a/lib/sendf.c +++ b/lib/sendf.c @@ -549,7 +549,7 @@ int Curl_read(struct connectdata *conn, /* connection data */ else if(conn->protocol & PROT_SFTP) nread = Curl_sftp_recv(conn, num, buffertofill, bytesfromsocket); #ifdef LIBSSH2CHANNEL_EAGAIN - if((nread == LIBSSH2CHANNEL_EAGAIN) || (nread == 0)) + if(nread == LIBSSH2CHANNEL_EAGAIN) /* EWOULDBLOCK */ return -1; #endif |