aboutsummaryrefslogtreecommitdiff
path: root/libssh
diff options
context:
space:
mode:
authorAndreas Schneider <mail@cynapses.org>2009-03-21 09:29:31 +0000
committerAndreas Schneider <mail@cynapses.org>2009-03-21 09:29:31 +0000
commit9249006e64470337422f4fd9e176ea2cb7d603e1 (patch)
tree1bf17b3ec94067a513e8e8827b95ce49d5d39cb3 /libssh
parentc9818a994804f4b6ea30a22b7a42aef701db98d8 (diff)
downloadlibssh-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')
-rw-r--r--libssh/client.c6
-rw-r--r--libssh/misc.c47
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;
+}
+
+/** @} */
+