Provided by: libcurl4-doc_7.81.0-1ubuntu1.20_all bug

NAME

       curl_easy_duphandle - Clone a libcurl session handle

SYNOPSIS

       #include <curl/curl.h>

       CURL *curl_easy_duphandle(CURL *handle);

DESCRIPTION

       This  function  will  return  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).

       All  strings  that the input handle has been told to point to (as opposed to copy) with previous calls to
       curl_easy_setopt(3) using char * inputs, will be 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 will not inherit any state information, no connections, no SSL sessions and no cookies. It
       also will not inherit any share object states or options (it will be made as if CURLOPT_SHARE(3) was  set
       to NULL).

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

EXAMPLE

       CURL *curl = curl_easy_init();
       CURL *nother;
       if(curl) {
         CURLcode res;
         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 7.9

RETURN VALUE

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

SEE ALSO

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