manpagez: man pages & more
man curl_easy_duphandle(3)
Home | html | info | man
curl_easy_duphandle(3)     Library Functions Manual     curl_easy_duphandle(3)


NAME

       curl_easy_duphandle - clone an easy handle


SYNOPSIS

       #include <curl/curl.h>

       CURL *curl_easy_duphandle(CURL *handle);


DESCRIPTION

       This function returns a new curl handle, a duplicate, using all the
       options previously set in the input curl handle. Both handles can
       subsequently be used independently and they must both be freed with
       curl_easy_cleanup(3).

       Any options that the input handle has been told to point to (as opposed
       to copy) with previous calls to curl_easy_setopt(3), are pointed to by
       the new handle as well. You must therefore make sure to keep the data
       around until both handles have been cleaned up.

       The new handle does not inherit any state information, no connections,
       no SSL sessions and no cookies. It also does not inherit any share
       object states or options (c) was set to
       NULL).

       If the source handle has HSTS or alt-svc enabled, the duplicate gets
       data read data from the main filename to populate the cache.

       In multi-threaded programs, this function must be called in a
       synchronous way, the input handle may not be in use when cloned.


PROTOCOLS

       This functionality affects all supported protocols


EXAMPLE

       int main(void)
       {
         CURL *curl = curl_easy_init();
         if(curl) {
           CURLcode res;
           CURL *nother;
           curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
           nother = curl_easy_duphandle(curl);
           res = curl_easy_perform(nother);
           curl_easy_cleanup(nother);
           curl_easy_cleanup(curl);
         }
       }


AVAILABILITY

       Added in curl 7.9


RETURN VALUE

       If this function returns NULL, something went wrong and no valid handle
       was returned.


SEE ALSO

       curl_easy_cleanup(3), curl_easy_init(3), curl_easy_reset(3),
       curl_global_init(3)

libcurl                           2024-08-05            curl_easy_duphandle(3)

curl 8.9.1 - Generated Tue Aug 6 14:00:53 CDT 2024
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.