I've managed to produce this behavior by using a modified multi-poll.c example (see https://pastebin.com/3iua80G8) which makes 10 HTTP requests to "example.org:8200", set CURLOPT_TIMEOUT_MS to 1000 for each request and CURLMOPT_MAX_TOTAL_CONNECTIONS to 1 for the multi handle.
I've used iptables to drop all packets going to URL address: iptables -A OUTPUT -p tcp --destination-port 8200 -j DROP I would expect the runtime to be around 1000 ms (the value of CURLOPT_TIMEOUT_MS), but instead I get a runtime of about 7000 ms. On Mon, Mar 8, 2021 at 11:47 PM Daniel Stenberg <dan...@haxx.se> wrote: > On Mon, 8 Mar 2021, Andrei Bica via curl-library wrote: > > > By using CURLOPT_TIMEOUT we can only set the transfer timeout, which > doesn't > > include the time it waits for the transfer to begin. > > I believe this is wrong. > > CURLOPT_TIMEOUT sets the maximum time allowed for the entire operation to > use, > no matter what state the transfer is in and how long it waits in what > queues. > > Technically, it means that the timeout value is counted from the > TIMER_STARTOP > time-stamp which is set in the INIT state, before the transfer gets queued > up > in the PENDING state waiting for a connection. > > -- > > / daniel.haxx.se > | Commercial curl support up to 24x7 is available! > | Private help, bug fixes, support, ports, new features > | https://www.wolfssl.com/contact/ >
------------------------------------------------------------------- Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html