Provided by: libcurl4-doc_7.58.0-2ubuntu3.24_all bug

NAME

       CURLOPT_TIMEOUT - set maximum time the request is allowed to take

SYNOPSIS

       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TIMEOUT, long timeout);

DESCRIPTION

       Pass  a  long as parameter containing timeout - the maximum time in seconds that you allow
       the libcurl transfer operation to take. Normally, name lookups  can  take  a  considerable
       time  and  limiting  operations  to less than a few minutes risk aborting perfectly normal
       operations. This option may cause libcurl to use the  SIGALRM  signal  to  timeout  system
       calls.

       In  unix-like  systems,  this might cause signals to be used unless CURLOPT_NOSIGNAL(3) is
       set.

       If both CURLOPT_TIMEOUT(3) and CURLOPT_TIMEOUT_MS(3) are set, the value set last  will  be
       used.

       Since  this  puts  a  hard  limit  for  how long time a request is allowed to take, it has
       limited use in dynamic use cases with varying transfer times.  You  are  then  advised  to
       explore      CURLOPT_LOW_SPEED_LIMIT(3),      CURLOPT_LOW_SPEED_TIME(3)      or      using
       CURLOPT_PROGRESSFUNCTION(3) to implement your own timeout logic.

DEFAULT

       Default timeout is 0 (zero) which means it never times out during transfer.

PROTOCOLS

       All

EXAMPLE

       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");

         /* complete within 20 seconds */
         curl_easy_setopt(curl, CURLOPT_TIMEOUT, 20L);

         curl_easy_perform(curl);
       }

AVAILABILITY

       Always

RETURN VALUE

       Returns CURLE_OK. Returns CURLE_BAD_FUNCTION_ARGUMENT if set to  a  negative  value  or  a
       value that when converted to milliseconds is too large.

SEE ALSO

       CURLOPT_TIMEOUT_MS(3), CURLOPT_CONNECTTIMEOUT(3), CURLOPT_LOW_SPEED_LIMIT(3),