From: Daniel Stenberg Date: Wed, 20 Oct 2010 21:31:34 +0000 (+0200) Subject: SSH: use libssh2_session_handshake() X-Git-Tag: curl-7_21_3~128 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e214cd4a7323e0326bb9a731c4effdbb4082c85f;p=curl SSH: use libssh2_session_handshake() In libssh2 1.2.8, libssh2_session_handshake() replaces libssh2_session_startup() to fix the previous portability problem with the socket type that was too small for win64 and thus easily could cause crashes and more. --- 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 @@ -496,6 +496,13 @@ static int sshkeycallback(CURL *easy, (libssh2_uint64_t)d, 0, 0) #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