aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac3
-rw-r--r--lib/ssh.c7
2 files changed, 9 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 28a195570..224ca2d58 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2019,8 +2019,9 @@ if test X"$OPT_LIBSSH2" != Xno; then
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_scp_send64 libssh2_session_handshake)
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2"
export LD_LIBRARY_PATH
diff --git a/lib/ssh.c b/lib/ssh.c
index ee63a7bd6..862ce76f6 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -497,6 +497,13 @@ static int sshkeycallback(CURL *easy,
#endif
/*
+ * libssh2 1.2.8 fixed the problem with 32bit ints used for sockets on win64.
+ */
+#ifdef HAVE_LIBSSH2_SESSION_HANDSHAKE
+#define libssh2_session_startup(x,y) libssh2_session_handshake(x,y)
+#endif
+
+/*
* ssh_statemach_act() runs the SSH state machine as far as it can without
* blocking and without reaching the end. The data the pointer 'block' points
* to will be set to TRUE if the libssh2 function returns LIBSSH2_ERROR_EAGAIN