On Tue, 26 Apr 2016, SellBuy Sammamish wrote:

I use cURL to send HTTP/SSL packets using POST. Multipart is used to send binary data. I have a read callback which obtains the data. The callback pauses the connection by returning CURL_READFUNC_PAUSE when data is temporarily unavailable. A progress callback then unpauses the connection by calling curl_easy_pause(pCurl, CURLPAUSE_SEND_CONT) when data become available.

Recently I noticed a significant delay during SSL handshake when multipart is used. Although unconfirmed, I have a hunch that since my read callback is probably called before the data is available, it pauses the connection, thereby preventing SSL handshake from starting.

Is my suspicion (un-)founded? Can SSL negotiation be disrupted by pausing the connection?

No, that shouldn't happen. The handshake will complete before libcurl will consider uploading any data so it won't ask for any with a callback until after the TLS connection has been established.

If you switch on the DEBUGFUNCTION (like in this example https://curl.haxx.se/libcurl/c/debug.html) and perhaps add some high resolution time info in there, you might get some clues where/when the time is spent. I know I would appreciate that info trying to figure out where the slowness lies.

What libcurl version on which platform do you use when you see this?

I noticed a significant delay during SSL handshake when multipart is used.

So it actually connects faster when not doing multipart posts? That amazes me.

--

 / daniel.haxx.se
-------------------------------------------------------------------
List admin: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:  https://curl.haxx.se/mail/etiquette.html

Reply via email to