summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2009-07-12 23:13:21 +0200
committerAndreas Schneider <mail@cynapses.org>2009-07-13 12:07:19 +0200
commit50ebbe636ee45b5d82d33b29e1146477ccbcc849 (patch)
treebf93453dd642876baba288118f1f434e32c565a2
parent101bf21d414afab092caafcdb83cf035b0d8966b (diff)
downloadlibssh-50ebbe636ee45b5d82d33b29e1146477ccbcc849.tar.gz
libssh-50ebbe636ee45b5d82d33b29e1146477ccbcc849.tar.xz
libssh-50ebbe636ee45b5d82d33b29e1146477ccbcc849.zip
Added return code SSH_SERVER_FILE_NOT_FOUND
This error is returned by ssh_is_server_known when known_hosts file does not exist and gives more action to the developer.
-rw-r--r--include/libssh/libssh.h1
-rw-r--r--libssh/keyfiles.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h
index 0514095a..ad1038c8 100644
--- a/include/libssh/libssh.h
+++ b/include/libssh/libssh.h
@@ -134,6 +134,7 @@ typedef int socket_t;
#define SSH_SERVER_KNOWN_OK 1
#define SSH_SERVER_KNOWN_CHANGED 2
#define SSH_SERVER_FOUND_OTHER 3
+#define SSH_SERVER_FILE_NOT_FOUND 4
#ifndef MD5_DIGEST_LEN
#define MD5_DIGEST_LEN 16
diff --git a/libssh/keyfiles.c b/libssh/keyfiles.c
index 19184271..6371e834 100644
--- a/libssh/keyfiles.c
+++ b/libssh/keyfiles.c
@@ -1361,10 +1361,10 @@ int ssh_is_server_known(SSH_SESSION *session) {
enter_function();
if (ssh_options_default_known_hosts_file(session->options) < 0) {
- ssh_set_error(session, SSH_FATAL,
+ ssh_set_error(session, SSH_REQUEST_DENIED,
"Can't find a known_hosts file");
leave_function();
- return SSH_SERVER_ERROR;
+ return SSH_SERVER_FILE_NOT_FOUND;
}
if (session->options->host == NULL) {