summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2009-07-12 23:13:21 +0200
committerAris Adamantiadis <aris@0xbadc0de.be>2009-07-12 23:13:21 +0200
commitd5b6f6cc37d17e8346f352764138f4b0a997d078 (patch)
tree81a8c3a0a172333f2853f93d23fb81459ba0e94d
parent052073c36d33089d3a99992840c88c6245461813 (diff)
downloadlibssh-d5b6f6cc37d17e8346f352764138f4b0a997d078.tar.gz
libssh-d5b6f6cc37d17e8346f352764138f4b0a997d078.tar.xz
libssh-d5b6f6cc37d17e8346f352764138f4b0a997d078.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 bb1cd5c8..b574e36a 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) {