I noted there is a bug info “[ libssh2-Bugs-2800519 ] libssh2 library is not thread safe” in libssh2 bug tracker. And this bug has been fixed on June 2009.
Now I encountered the same error on Solaris and HPUX with the new release libssh2-1.2. The interesting thing is if I run curl directly it can connect sftp server successfully. If I use the same libcurl and libssh2 in my application it failed to connect sftp server because the errno value is not correctly accessed in libssh2. My curl version is: curl 7.19.3 (i386-pc-win32) libcurl/7.19.3 OpenSSL/0.9.8e zlib/1.2.3 libssh2/1.2 Protocols: tftp ftp telnet dict http file https ftps scp sftp Features: Largefile NTLM SSL libz The debug info in my application about libssh2 (cannot connect sftp server successfully) is: ** About to connect() to 192.168.150.20 port 22 (#0)* ** Trying test2 192.168.150.20... * connected* ** Connected to 192.168.150.20 (192.168.150.20) port 22 (#0)* ** User: test* ** Password: test* ** SSH socket: 25* ** SFTP 0xf6b650 state change from SSH_STOP to SSH_S_STARTUP* *[libssh2] Transport: session_startup for socket 25* *[libssh2] Transport: Sending Banner: SSH-2.0-libssh2_1.0* *[libssh2] Transport: lisa ssh recv banner: socket_fd=25 ret=1 errno=0flag=0 * *[libssh2] Transport: Received Banner: SSH-2.0-Sun_SSH_1.1* *[libssh2] Transport: lisa ssh send: ret=568 totallen=568 errno=0 flag=0* *[libssh2] Transport: Looking for packet of type: 20* *[libssh2] Transport: May block until packet of type 20 becomes available* *[libssh2] Transport: lisa ssh recv: socket_fd=25 ret=-1 errno=0 flag=0* *[libssh2] Failure Event: -5 - Unable to exchange encryption keys* ** Failure establishing ssh session* ** SFTP 0xf6b650 state change from SSH_S_STARTUP to SSH_SESSION_FREE* ** lisadebug in ssh_easy_statemach* *[libssh2] Transport: Freeing session resource* ** SFTP 0xf6b650 state change from SSH_SESSION_FREE to SSH_STOP* ** lisadebug in ssh_easy_statemach* ** SSH DISCONNECT starts now* ** SSH DISCONNECT is done* ** Closing connection #0* * * The debug info in “curl -v -u test:test sftp://192.168.150.20” (connect sftp server successfully) is: ** About to connect() to 192.168.150.20 port 22 (#0)* ** Trying test2 192.168.150.20... connected* ** Connected to 192.168.150.20 (192.168.150.20) port 22 (#0)* ** User: test* ** Password: test* ** SSH socket: 3* ** SFTP 0x48c90 state change from SSH_STOP to SSH_S_STARTUP* *[libssh2] Transport: session_startup for socket 3* *[libssh2] Transport: Sending Banner: SSH-2.0-libssh2_1.0* *[libssh2] Transport: lisa ssh recv banner: socket_fd=3 ret=1 errno=2flag=0 <-- errno=EAGAIN * *[libssh2] Transport: Received Banner: SSH-2.0-Sun_SSH_1.1* *[libssh2] Transport: lisa ssh send: ret=568 totallen=568 errno=2flag=0 <-- errno=EAGAIN * *[libssh2] Transport: Looking for packet of type: 20* *[libssh2] Transport: May block until packet of type 20 becomes available* *[libssh2] Transport: lisa ssh recv: socket_fd=3 ret=432 errno=2flag=0 <-- errno=EAGAIN * *……* * * Regards, Lisa
_______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
