OpenSuSE Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
x SuSE Linux 13.1-RELEASE x
x SuSE Linux 13.1-RELEASEx
CURLOPT_TIMEOUT(3)                  libcurl                 CURLOPT_TIMEOUT(3)

NAME
       CURLOPT_TIMEOUT - maximum time the transfer is allowed to complete

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 sec-
       onds that you allow the entire transfer operation to  take.  The  whole
       thing,  from  start to end. Normally, name lookups can take a consider-
       able time and limiting operations risk aborting perfectly normal opera-
       tions.

       CURLOPT_TIMEOUT_MS(3) is the same function but set in milliseconds.

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

       Since this option puts a hard limit on  how  long  time  a  request  is
       allowed  to  take, it has limited use in dynamic use cases with varying
       transfer times. That is especially apparent when using the multi inter-
       face,  which may queue the transfer, and that time is included. You are
       advised      to      explore      CURLOPT_LOW_SPEED_LIMIT(3),      CUR-
       LOPT_LOW_SPEED_TIME(3)  or  using CURLOPT_PROGRESSFUNCTION(3) to imple-
       ment your own timeout logic.

       The connection timeout set with CURLOPT_CONNECTTIMEOUT(3)  is  included
       in this general all-covering timeout.

       With  CURLOPT_CONNECTTIMEOUT(3)  set to 3 and CURLOPT_TIMEOUT(3) set to
       5, the operation can never last longer than 5 seconds.

       With CURLOPT_CONNECTTIMEOUT(3) set to 4 and CURLOPT_TIMEOUT(3)  set  to
       2, the operation can never last longer than 2 seconds.

       This option may cause libcurl to use the SIGALRM signal to timeout sys-
       tem calls on builds not using asynch DNS. In  unix-like  systems,  this
       might cause signals to be used unless CURLOPT_NOSIGNAL(3) is set.

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, "https://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 nega-
       tive value or a value that when converted to milliseconds is too large.

SEE ALSO
       CURLOPT_CONNECTTIMEOUT(3),       CURLOPT_LOW_SPEED_LIMIT(3),       CUR-
       LOPT_TCP_KEEPALIVE(3), CURLOPT_TIMEOUT_MS(3)

ibcurl 8.4.0                  September 26, 2023            CURLOPT_TIMEOUT(3)

Want to link to this manual page? Use this URL:
<
http://star2.abcm.com/cgi-bin/bsdi-man?query=CURLOPT_TIMEOUT&sektion=3&manpath=>

home | help