1
1
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@283 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
Andreas Schneider 2009-03-21 09:29:31 +00:00
родитель c9818a9948
Коммит 9249006e64
5 изменённых файлов: 77 добавлений и 7 удалений

Просмотреть файл

@ -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;
}
/** @} */

Просмотреть файл

@ -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);
}