From 508284cd28106b2d72caf9341bbb4131c6a56cd9 Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Sun, 25 Jul 2021 21:56:37 +0200 Subject: [PATCH] Support build with older libssh. The function ssh_session_is_known_server() was introduced later, fallback to older version if libssh is available. --- configure.ac | 1 + tokens/ssh/ssh-utils.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/configure.ac b/configure.ac index 1d0e0c0e..9279ed34 100644 --- a/configure.ac +++ b/configure.ac @@ -402,6 +402,7 @@ AC_CHECK_DECLS([json_object_deep_copy], [], [], [#include ]) dnl Check for libssh for SSH plugin if test "x$enable_ssh_token" = "xyes"; then PKG_CHECK_MODULES([LIBSSH], [libssh]) + AC_CHECK_DECLS([ssh_session_is_known_server], [], [], [#include ]) fi dnl Crypto backend configuration. diff --git a/tokens/ssh/ssh-utils.c b/tokens/ssh/ssh-utils.c index 2c663683..ab1915b4 100644 --- a/tokens/ssh/ssh-utils.c +++ b/tokens/ssh/ssh-utils.c @@ -123,7 +123,11 @@ ssh_session sshplugin_session_init(struct crypt_device *cd, const char *host, co goto out; } +#if HAVE_DECL_SSH_SESSION_IS_KNOWN_SERVER r = ssh_session_is_known_server(ssh); +#else + r = ssh_is_server_known(ssh); +#endif if (r != SSH_SERVER_KNOWN_OK) { crypt_log(cd, CRYPT_LOG_ERROR, _("Server not known: ")); r = SSH_AUTH_ERROR;