cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: CURLE_OPERATION_TIMEDOUT using curl_multi_socket_action

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Sat, 9 Mar 2013 17:11:54 +0100 (CET)

On Mon, 4 Mar 2013, Paras S wrote:

> 4. I add this job to the IO queue.

> 5. When the job is executed again, call curl_multi_socket_action with the
> proper socket descriptor and ev_bitmask.

I don't understand this statement. You already added the handle, what you mean
with "when it is executed again"?

curl_multi_socket_action() is of course called by you whenever there is
action to do on a specific socket that you monitor or when you deem that the
timeout has triggered. Right?

> 6. If the HTTP transfer is not completed, add the job back to the IO queue.

I don't get this either. You already added the handle, surely you'll just keep
transferring until curl_multi_info_read() tells you that the particular
transfer is complete?

> 1. I am using HTTPS to connect to the server. So every time I add the easy
> handle, steps 5 and 6 are executed multiple times. This is fine if the
> number of "jobs" is less, but as they increase, I get a
> CURLE_OPERATION_TIMEDOUT.

I don't understand this description either. I think you should consider
providing us with a full example source code showing what you do and ideally
one that repeats the problem you have.

> I am guessing that 30s is not enough for the SSL certificate verification.

If that is really the case, it sounds like exceptionally slow machines
involved. Modern machines do SSL handshakes counted in milliseconds.

> Is there anyway for me to force libcurl to finish the send operation?

What exactly would that mean? libcurl will always do as much as it can without
blocking, then wait until it "gets permission" to try again and then continue
from there. Would would a "force" operation even be able to do?

> 2. In step 6, if I use curl_easy_perform to do some HTTP transfers on the
> same server, before going to step 1 again. A new connection is established
> to the server. Is that expected?

Not if it can re-use an idle existing connection, no.

-- 
  / daniel.haxx.se
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html
Received on 2013-03-09