mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-12-03 13:31:11 +03:00
Add a ssh_version function.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@283 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
@@ -39,7 +39,25 @@ typedef unsigned long long uint64_t;
|
|||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
#define LIBSSH_VERSION "libssh-0.3-svn"
|
#define SSH_STRINGIFY(s) SSH_TOSTRING(s)
|
||||||
|
#define SSH_TOSTRING(s) #s
|
||||||
|
|
||||||
|
/* libssh version macros */
|
||||||
|
#define SSH_VERSION_INT(a, b, c) (a << 16 | b << 8 | c)
|
||||||
|
#define SSH_VERSION_DOT(a, b, c) a ##.## b ##.## c
|
||||||
|
#define SSH_VERSION(a, b, c) SSH_VERSION_DOT(a, b, c)
|
||||||
|
|
||||||
|
/* libssh version */
|
||||||
|
#define LIBSSH_VERSION_MAJOR 0
|
||||||
|
#define LIBSSH_VERSION_MINOR 3
|
||||||
|
#define LIBSSH_VERSION_MICRO 0
|
||||||
|
|
||||||
|
#define LIBSSH_VERSION_INT SSH_VERSION_INT(LIBSSH_VERSION_MAJOR, \
|
||||||
|
LIBSSH_VERSION_MINOR, \
|
||||||
|
LIBSSH_VERSION_MICRO)
|
||||||
|
#define LIBSSH_VERSION SSH_VERSION(LIBSSH_VERSION_MAJOR, \
|
||||||
|
LIBSSH_VERSION_MINOR, \
|
||||||
|
LIBSSH_VERSION_MICRO)
|
||||||
|
|
||||||
/* GCC have printf type attribute check. */
|
/* GCC have printf type attribute check. */
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
@@ -133,6 +151,9 @@ typedef int socket_t;
|
|||||||
char *ssh_get_error(void *error);
|
char *ssh_get_error(void *error);
|
||||||
int ssh_get_error_code(void *error);
|
int ssh_get_error_code(void *error);
|
||||||
|
|
||||||
|
/* version checks */
|
||||||
|
const char *ssh_version(int req_version);
|
||||||
|
|
||||||
/** \addtogroup ssh_log
|
/** \addtogroup ssh_log
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ MA 02111-1307, USA. */
|
|||||||
/* some constants */
|
/* some constants */
|
||||||
#define MAX_PACKET_LEN 262144
|
#define MAX_PACKET_LEN 262144
|
||||||
#define ERROR_BUFFERLEN 1024
|
#define ERROR_BUFFERLEN 1024
|
||||||
#define CLIENTBANNER1 "SSH-1.5-" LIBSSH_VERSION
|
#define CLIENTBANNER1 "SSH-1.5-libssh-" SSH_STRINGIFY(LIBSSH_VERSION)
|
||||||
#define CLIENTBANNER2 "SSH-2.0-" LIBSSH_VERSION
|
#define CLIENTBANNER2 "SSH-2.0-libssh-" SSH_STRINGIFY(LIBSSH_VERSION)
|
||||||
#define KBDINT_MAX_PROMPT 256 /* more than openssh's :) */
|
#define KBDINT_MAX_PROMPT 256 /* more than openssh's :) */
|
||||||
/* some types for public keys */
|
/* some types for public keys */
|
||||||
#define TYPE_DSS 1
|
#define TYPE_DSS 1
|
||||||
|
|||||||
@@ -389,9 +389,9 @@ void ssh_disconnect(SSH_SESSION *session){
|
|||||||
}
|
}
|
||||||
|
|
||||||
const char *ssh_copyright(void) {
|
const char *ssh_copyright(void) {
|
||||||
return LIBSSH_VERSION " (c) 2003-2008 Aris Adamantiadis (aris@0xbadc0de.be)"
|
return SSH_STRINGIFY(LIBSSH_VERSION) " (c) 2003-2008 Aris Adamantiadis "
|
||||||
" Distributed under the LGPL, please refer to COPYING file for informations"
|
"(aris@0xbadc0de.be) Distributed under the LGPL, please refer to COPYING"
|
||||||
" about your rights" ;
|
"file for informations about your rights";
|
||||||
}
|
}
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright 2003 Aris Adamantiadis
|
Copyright 2003 Aris Adamantiadis
|
||||||
|
Copyright 2009 Andreas Schneider <mail@cynapses.org>
|
||||||
|
|
||||||
This file is part of the SSH Library
|
This file is part of the SSH Library
|
||||||
|
|
||||||
@@ -38,6 +39,12 @@ MA 02111-1307, USA. */
|
|||||||
|
|
||||||
#include "libssh/priv.h"
|
#include "libssh/priv.h"
|
||||||
|
|
||||||
|
/** \defgroup ssh_misc SSH Misc
|
||||||
|
* \brief Misc functions
|
||||||
|
*/
|
||||||
|
/** \addtogroup ssh_misc
|
||||||
|
* @{ */
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
char *ssh_get_user_home_dir(void) {
|
char *ssh_get_user_home_dir(void) {
|
||||||
static char szPath[PATH_MAX] = {0};
|
static char szPath[PATH_MAX] = {0};
|
||||||
@@ -83,3 +90,43 @@ u64 ntohll(u64 a){
|
|||||||
return (( ((u64)low) << 32) | ( high));
|
return (( ((u64)low) << 32) | ( high));
|
||||||
#endif
|
#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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
|||||||
4
sample.c
4
sample.c
@@ -50,11 +50,13 @@ static void add_cmd(char *cmd){
|
|||||||
|
|
||||||
static void usage(){
|
static void usage(){
|
||||||
fprintf(stderr,"Usage : ssh [options] [login@]hostname\n"
|
fprintf(stderr,"Usage : ssh [options] [login@]hostname\n"
|
||||||
|
"sample client - libssh-%s\n"
|
||||||
"Options :\n"
|
"Options :\n"
|
||||||
" -l user : log in as user\n"
|
" -l user : log in as user\n"
|
||||||
" -p port : connect to port\n"
|
" -p port : connect to port\n"
|
||||||
" -d : use DSS to verify host public key\n"
|
" -d : use DSS to verify host public key\n"
|
||||||
" -r : use RSA to verify host public key\n");
|
" -r : use RSA to verify host public key\n",
|
||||||
|
ssh_version(0));
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user