ssh: Pass errors from libssh2_sftp_read up the stack
authorDan Fandrich <dan@coneharvesters.com>
Thu, 6 Mar 2014 11:48:33 +0000 (12:48 +0100)
committerDan Fandrich <dan@coneharvesters.com>
Thu, 6 Mar 2014 11:48:33 +0000 (12:48 +0100)
lib/ssh.c

index 00479c8..3e3190d 100644 (file)
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -3118,6 +3118,7 @@ static ssize_t sftp_send(struct connectdata *conn, int sockindex,
 
 /*
  * Return number of received (decrypted) bytes
+ * or <0 on error
  */
 static ssize_t sftp_recv(struct connectdata *conn, int sockindex,
                          char *mem, size_t len, CURLcode *err)
@@ -3132,6 +3133,9 @@ static ssize_t sftp_recv(struct connectdata *conn, int sockindex,
   if(nread == LIBSSH2_ERROR_EAGAIN) {
     *err = CURLE_AGAIN;
     nread = -1;
+
+  } else if(nread < 0) {
+    *err = libssh2_session_error_to_CURLE(nread);
   }
   return nread;
 }