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

Reply via email to