summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac6
-rw-r--r--sysdep/unix/io.c10
2 files changed, 16 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 330add87..f942ec1b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -276,6 +276,12 @@ if test "$enable_libssh" != no ; then
enable_libssh=no
fi
fi
+
+ AC_CHECK_LIB([ssh], [ssh_session_is_known_server], [ssh_old_server_validation_api=no], [ssh_old_server_validation_api=yes])
+
+ if test "$ssh_old_server_validation_api" = yes; then
+ AC_DEFINE([HAVE_SSH_OLD_SERVER_VALIDATION_API], [1], [Define to 1 if ssh_session_is_known_server isn't defined])
+ fi
fi
if test "$enable_mpls_kernel" != no ; then
diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c
index fb25d5d8..c91bd597 100644
--- a/sysdep/unix/io.c
+++ b/sysdep/unix/io.c
@@ -1151,6 +1151,16 @@ sk_ssh_connect(sock *s)
{
int server_identity_is_ok = 1;
+#ifdef HAVE_SSH_OLD_SERVER_VALIDATION_API
+#define ssh_session_is_known_server ssh_is_server_known
+#define SSH_KNOWN_HOSTS_OK SSH_SERVER_KNOWN_OK
+#define SSH_KNOWN_HOSTS_UNKNOWN SSH_SERVER_NOT_KNOWN
+#define SSH_KNOWN_HOSTS_CHANGED SSH_SERVER_KNOWN_CHANGED
+#define SSH_KNOWN_HOSTS_NOT_FOUND SSH_SERVER_FILE_NOT_FOUND
+#define SSH_KNOWN_HOSTS_ERROR SSH_SERVER_ERROR
+#define SSH_KNOWN_HOSTS_OTHER SSH_SERVER_FOUND_OTHER
+#endif
+
/* Check server identity */
switch (ssh_session_is_known_server(s->ssh->session))
{