Skip to content

Commit

Permalink
fix SFTP download hang
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
bagder committed Apr 1, 2010
1 parent e78e584 commit 49f3160
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 2 deletions.
6 changes: 6 additions & 0 deletions CHANGES
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion RELEASE-NOTES
Expand Up @@ -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:

Expand All @@ -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)
2 changes: 1 addition & 1 deletion lib/sendf.c
Expand Up @@ -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
Expand Down

0 comments on commit 49f3160

Please sign in to comment.