diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-03-21 09:29:31 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-03-21 09:29:31 +0000 |
commit | 9249006e64470337422f4fd9e176ea2cb7d603e1 (patch) | |
tree | 1bf17b3ec94067a513e8e8827b95ce49d5d39cb3 /libssh/misc.c | |
parent | c9818a994804f4b6ea30a22b7a42aef701db98d8 (diff) | |
download | libssh-9249006e64470337422f4fd9e176ea2cb7d603e1.tar.gz libssh-9249006e64470337422f4fd9e176ea2cb7d603e1.tar.xz libssh-9249006e64470337422f4fd9e176ea2cb7d603e1.zip |
Add a ssh_version function.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@283 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh/misc.c')
-rw-r--r-- | libssh/misc.c | 47 |
1 files changed, 47 insertions, 0 deletions
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 <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; +} + +/** @} */ + |