Commit 9dbbba99 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

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.
parent 18e1a302
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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>
+0 −7
Original line number Diff line number Diff line
@@ -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 */
+21 −9
Original line number Diff line number Diff line
@@ -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)
#if LIBSSH2_VERSION_NUM >= 0x010000
#define HAVE_LIBSSH2_SFTP_SEEK64 1
#else
#  undef HAVE_LIBSSH2_SFTP_SEEK64
#endif

#if defined(LIBSSH2_VERSION_NUM) && (LIBSSH2_VERSION_NUM >= 0x010206)
#if LIBSSH2_VERSION_NUM >= 0x010100
#define HAVE_LIBSSH2_VERSION 1
#endif

#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
#else
#  undef HAVE_LIBSSH2_SCP_SEND64
#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;