aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ssh.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/ssh.c b/lib/ssh.c
index 375447a8b..fafbd44c6 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -974,12 +974,18 @@ ssize_t Curl_sftp_recv(struct connectdata *conn, int sockindex,
char *mem, size_t len)
{
ssize_t nread;
+ (void)sockindex;
/* libssh2_sftp_read() returns size_t !*/
+#ifdef LIBSSH2SFTP_EAGAIN
+ /* we prefer the non-blocking API but that didn't exist previously */
+ nread = (ssize_t)
+ libssh2_sftp_readnb(conn->data->reqdata.proto.ssh->sftp_handle, mem, len);
+#else
nread = (ssize_t)
libssh2_sftp_read(conn->data->reqdata.proto.ssh->sftp_handle, mem, len);
- (void)sockindex;
+#endif
return nread;
}