diff options
Diffstat (limited to 'libssh')
-rw-r--r-- | libssh/client.c | 6 | ||||
-rw-r--r-- | libssh/misc.c | 47 |
2 files changed, 50 insertions, 3 deletions
diff --git a/libssh/client.c b/libssh/client.c index 06750a4a..2a47b763 100644 --- a/libssh/client.c +++ b/libssh/client.c @@ -389,9 +389,9 @@ void ssh_disconnect(SSH_SESSION *session){ } const char *ssh_copyright(void) { - return LIBSSH_VERSION " (c) 2003-2008 Aris Adamantiadis (aris@0xbadc0de.be)" - " Distributed under the LGPL, please refer to COPYING file for informations" - " about your rights" ; + return SSH_STRINGIFY(LIBSSH_VERSION) " (c) 2003-2008 Aris Adamantiadis " + "(aris@0xbadc0de.be) Distributed under the LGPL, please refer to COPYING" + "file for informations about your rights"; } /** @} */ diff --git a/libssh/misc.c b/libssh/misc.c index cd3f1cbb..a6d85413 100644 --- a/libssh/misc.c +++ b/libssh/misc.c @@ -3,6 +3,7 @@ /* Copyright 2003 Aris Adamantiadis +Copyright 2009 Andreas Schneider <mail@cynapses.org> 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; +} + +/** @} */ + |