From 9249006e64470337422f4fd9e176ea2cb7d603e1 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sat, 21 Mar 2009 09:29:31 +0000 Subject: Add a ssh_version function. git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@283 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh/misc.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'libssh/misc.c') diff --git a/libssh/misc.c b/libssh/misc.c index cd3f1cb..a6d8541 100644 --- a/libssh/misc.c +++ b/libssh/misc.c @@ -3,6 +3,7 @@ /* Copyright 2003 Aris Adamantiadis +Copyright 2009 Andreas Schneider This file is part of the SSH Library @@ -38,6 +39,12 @@ MA 02111-1307, USA. */ #include "libssh/priv.h" +/** \defgroup ssh_misc SSH Misc + * \brief Misc functions + */ +/** \addtogroup ssh_misc + * @{ */ + #ifndef _WIN32 char *ssh_get_user_home_dir(void) { static char szPath[PATH_MAX] = {0}; @@ -83,3 +90,43 @@ u64 ntohll(u64 a){ return (( ((u64)low) << 32) | ( high)); #endif } + +/** + * @brief Check if libssh is the required version or get the version + * string. + * + * @param req_version The version required. + * + * @return If the version of libssh is newer than the version + * required it will return a version string. + * NULL if the version is older. + * + * Example: + * + * @code + * if (ssh_version(SSH_VERSION_INT(0,2,1)) == NULL) { + * fprintf(stderr, "libssh version is too old!\n"); + * exit(1); + * } + * + * if (debug) { + * printf("libssh %s\n", ssh_version(0)); + * } + * @endcode + */ +const char *ssh_version(int req_version) { + if (req_version <= LIBSSH_VERSION_INT) { +#ifdef HAVE_LIBGCRYPT + return SSH_STRINGIFY(LIBSSH_VERSION) "/gnutls/zlib"; +#elif defined HAVE_LIBCRYPTO + return SSH_STRINGIFY(LIBSSH_VERSION) "/openssl/zlib"; +#else + return SSH_STRINGIFY(LIBSSH_VERSION); +#endif + } + + return NULL; +} + +/** @} */ + -- cgit