SCP/SFTP: improve error code used for send failures
authorDaniel Stenberg <daniel@haxx.se>
Mon, 12 Nov 2012 09:04:44 +0000 (10:04 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 12 Nov 2012 09:04:44 +0000 (10:04 +0100)
Instead of relying on the generic CURLE error for SCP or SFTP send
failures, try passing back a more suitable error if possible.

lib/ssh.c

index e8b7172..d0dd2c7 100644 (file)
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -2982,6 +2982,10 @@ static ssize_t scp_send(struct connectdata *conn, int sockindex,
     *err = CURLE_AGAIN;
     nwrite = 0;
   }
+  else if(nwrite < LIBSSH2_ERROR_NONE) {
+    *err = libssh2_session_error_to_CURLE(nwrite);
+    nwrite = -1;
+  }
 
   return nwrite;
 }
@@ -3126,6 +3130,10 @@ static ssize_t sftp_send(struct connectdata *conn, int sockindex,
     *err = CURLE_AGAIN;
     nwrite = 0;
   }
+  else if(nwrite < LIBSSH2_ERROR_NONE) {
+    *err = libssh2_session_error_to_CURLE(nwrite);
+    nwrite = -1;
+  }
 
   return nwrite;
 }