Add a ssh_version function.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@283 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
родитель
c9818a9948
Коммит
9249006e64
@ -39,7 +39,25 @@ typedef unsigned long long uint64_t;
|
||||
#include <netdb.h>
|
||||
#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. */
|
||||
#ifdef __GNUC__
|
||||
@ -133,6 +151,9 @@ typedef int socket_t;
|
||||
char *ssh_get_error(void *error);
|
||||
int ssh_get_error_code(void *error);
|
||||
|
||||
/* version checks */
|
||||
const char *ssh_version(int req_version);
|
||||
|
||||
/** \addtogroup ssh_log
|
||||
* @{
|
||||
*/
|
||||
|
@ -37,8 +37,8 @@ MA 02111-1307, USA. */
|
||||
/* some constants */
|
||||
#define MAX_PACKET_LEN 262144
|
||||
#define ERROR_BUFFERLEN 1024
|
||||
#define CLIENTBANNER1 "SSH-1.5-" LIBSSH_VERSION
|
||||
#define CLIENTBANNER2 "SSH-2.0-" LIBSSH_VERSION
|
||||
#define CLIENTBANNER1 "SSH-1.5-libssh-" SSH_STRINGIFY(LIBSSH_VERSION)
|
||||
#define CLIENTBANNER2 "SSH-2.0-libssh-" SSH_STRINGIFY(LIBSSH_VERSION)
|
||||
#define KBDINT_MAX_PROMPT 256 /* more than openssh's :) */
|
||||
/* some types for public keys */
|
||||
#define TYPE_DSS 1
|
||||
|
@ -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";
|
||||
}
|
||||
/** @} */
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/** @} */
|
||||
|
||||
|
4
sample.c
4
sample.c
@ -50,11 +50,13 @@ static void add_cmd(char *cmd){
|
||||
|
||||
static void usage(){
|
||||
fprintf(stderr,"Usage : ssh [options] [login@]hostname\n"
|
||||
"sample client - libssh-%s\n"
|
||||
"Options :\n"
|
||||
" -l user : log in as user\n"
|
||||
" -p port : connect to port\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);
|
||||
}
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user