summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-10-26 11:08:43 +0200
committerDaniel Stenberg <daniel@haxx.se>2017-12-01 17:35:15 +0100
commit75427291e5e06afed7aff0de992cad2cbec5a214 (patch)
tree9ad7d689224c9320ad3a2ee178e57844d2e3191c
parentc92d2e14cfb0db662f958effd2ac86f995cf1b5a (diff)
downloadcurl-75427291e5e06afed7aff0de992cad2cbec5a214.tar.gz
libssh2: send the correct CURLE error code on scp file not found
That also updates tests to expect the right error code libssh2 back-end returns CURLE_SSH error if the remote file is not found. Expect instead CURLE_REMOTE_FILE_NOT_FOUND which is sent by the libssh backend. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rw-r--r--lib/ssh.c5
-rw-r--r--tests/data/test6052
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/ssh.c b/lib/ssh.c
index 54f08edf7..e0e88632d 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -261,6 +261,11 @@ static CURLcode libssh2_session_error_to_CURLE(int err)
case LIBSSH2_ERROR_NONE:
return CURLE_OK;
+ /* This is the error returned by libssh2_scp_recv2
+ * on unknown file */
+ case LIBSSH2_ERROR_SCP_PROTOCOL:
+ return CURLE_REMOTE_FILE_NOT_FOUND;
+
case LIBSSH2_ERROR_SOCKET_NONE:
return CURLE_COULDNT_CONNECT;
diff --git a/tests/data/test605 b/tests/data/test605
index 1c162fca5..94329a528 100644
--- a/tests/data/test605
+++ b/tests/data/test605
@@ -24,7 +24,7 @@ SCP retrieval of nonexistent file
# Verify data after the test has been "shot"
<verify>
<errorcode>
-79
+78
</errorcode>
<valgrind>
disable