diff options
author | Daniel Stenberg <daniel@haxx.se> | 2014-11-09 15:42:12 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2014-11-09 15:43:27 +0100 |
commit | 9dbbba997608f7c3c5de1c627c77c8cd2aa85b73 (patch) | |
tree | 80e7f46f1a83acbf4d1427c573ffd099af11b564 | |
parent | 18e1a3022deebfa91ef022f09de3396d595f50b2 (diff) |
libssh2: detect features based on version, not configure checks
... so that non-configure builds get the correct functions too based on
the libssh2 version used.
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | lib/easy.c | 1 | ||||
-rw-r--r-- | lib/ssh.c | 7 | ||||
-rw-r--r-- | lib/ssh.h | 30 |
4 files changed, 22 insertions, 22 deletions
diff --git a/configure.ac b/configure.ac index d37fd92fb..0ad8fc964 100644 --- a/configure.ac +++ b/configure.ac @@ -2332,12 +2332,6 @@ if test X"$OPT_LIBSSH2" != Xno; then dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH dnl to prevent further configure tests to fail due to this - dnl libssh2_version is a post 1.0 addition - dnl libssh2_init and libssh2_exit were added in 1.2.5 - dnl libssh2_scp_send64 was added in 1.2.6 - dnl libssh2_session_handshake was added in 1.2.8 - AC_CHECK_FUNCS( libssh2_version libssh2_init libssh2_exit \ - libssh2_scp_send64 libssh2_session_handshake) if test "x$cross_compiling" != "xyes"; then LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2" export LD_LIBRARY_PATH diff --git a/lib/easy.c b/lib/easy.c index 5ce2d5827..5f14fede3 100644 --- a/lib/easy.c +++ b/lib/easy.c @@ -74,6 +74,7 @@ #include "conncache.h" #include "multiif.h" #include "sigpipe.h" +#include "ssh.h" #define _MPRINTF_REPLACE /* use our functions only */ #include <curl/mprintf.h> @@ -99,13 +99,6 @@ # endif #endif -/* Feature detection based on version numbers to better work with - non-configure platforms */ -#if LIBSSH2_VERSION_NUM >= 0x010206 -/* libssh2_knownhost_checkp was added in 1.2.6 */ -#define HAVE_LIBSSH2_KNOWNHOST_CHECKP -#endif - #ifndef PATH_MAX #define PATH_MAX 1024 /* just an extra precaution since there are systems that have their definition hidden well */ @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -158,22 +158,34 @@ struct ssh_conn { #ifdef USE_LIBSSH2 +/* Feature detection based on version numbers to better work with + non-configure platforms */ + #if !defined(LIBSSH2_VERSION_NUM) || (LIBSSH2_VERSION_NUM < 0x001000) # error "SCP/SFTP protocols require libssh2 0.16 or later" #endif -#if defined(LIBSSH2_VERSION_NUM) && (LIBSSH2_VERSION_NUM >= 0x010000) -# define HAVE_LIBSSH2_SFTP_SEEK64 1 -#else -# undef HAVE_LIBSSH2_SFTP_SEEK64 +#if LIBSSH2_VERSION_NUM >= 0x010000 +#define HAVE_LIBSSH2_SFTP_SEEK64 1 +#endif + +#if LIBSSH2_VERSION_NUM >= 0x010100 +#define HAVE_LIBSSH2_VERSION 1 #endif -#if defined(LIBSSH2_VERSION_NUM) && (LIBSSH2_VERSION_NUM >= 0x010206) -# define HAVE_LIBSSH2_SCP_SEND64 1 -#else -# undef HAVE_LIBSSH2_SCP_SEND64 +#if LIBSSH2_VERSION_NUM >= 0x010205 +#define HAVE_LIBSSH2_INIT 1 +#define HAVE_LIBSSH2_EXIT 1 #endif +#if LIBSSH2_VERSION_NUM >= 0x010206 +#define HAVE_LIBSSH2_KNOWNHOST_CHECKP 1 +#define HAVE_LIBSSH2_SCP_SEND64 1 +#endif + +#if LIBSSH2_VERSION_NUM >= 0x010208 +#define HAVE_LIBSSH2_SESSION_HANDSHAKE 1 +#endif extern const struct Curl_handler Curl_handler_scp; extern const struct Curl_handler Curl_handler_sftp; |