> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of 
> Daniel Stenberg
> Sent: Tuesday, May 04, 2010 5:04 PM
> To: libcurl development
> Subject: RE: Reflection for Secure IT Server
> 
> Yes, but the sftp_write.c example is using blocking mode so 
> it isn't directly comparable to what libcurl does. When doing 
> things non-blocking of course there needs to be some socket 
> operations involved.

Daniel: 

The test with the libssh2 example utility sftp_write_nonblock 
(./sftp_write_nonblock 13.121.8.133 <user> <pass> testSmall.pdf 
/Home/Scans/testSmall.pdf) succeeds, while curl command ( ./curl -v -k -u 
<user>:<pass> -T testSmall.pdf sftp://13.121.8.133/Home/Scans/) fails.

As you said, curl is using non-blocking way of sftp transfer 
(libssh2_session_set_blocking(sshc->ssh_session, 0)), just as 
sftp_write_nonblock does (libssh2_session_set_blocking(session, 0)). But there 
must be some difference between them, right? Otherwise, they should behave the 
same way against the same sftp server.

I am having difficulty in tracing sftp function flow in libcurl. For example, 
libssh2_sftp_write() is called in Curl_sftp_send(), which is called by 
Curl_write() in "sendf.c", and by readwrite_upload() in "transfer.c". For me, 
it is not as clear as in "sftp_write_nonblock.c".

Since you are the developer and more familiar with the code, could you tell me 
what is the major difference between libcurl sftp code and the code in 
"sftp_write_nonblock.c"?

Thanks,
Xu Qiang
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to