From: Maria Matejka Date: Wed, 12 Oct 2022 08:52:53 +0000 (+0200) Subject: Fixed SSH known hosts checking with older versions of libssh X-Git-Tag: v3.0-alpha1~93 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f182771f96280115e839315d9d3e5aa7c9343d54;p=thirdparty%2Fbird.git Fixed SSH known hosts checking with older versions of libssh --- diff --git a/configure.ac b/configure.ac index 330add879..f942ec1bc 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 fb25d5d82..c91bd597e 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)) {