DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

CURLOPT_SHARE(3)




CURLOPT_SHARE(3)    curl_easy_setopt options     CURLOPT_SHARE(3)


NAME

     CURLOPT_SHARE - specify share handle to use


SYNOPSIS

     #include <curl/curl.h>

     CURLcode   curl_easy_setopt(CURL   *handle,   CURLOPT_SHARE,
     CURLSH *share);


DESCRIPTION

     Pass a share handle as a parameter. The  share  handle  must
     have  been created by a previous call to curl_share_init(3).
     Setting this option, will make this curl handle use the data
     from  the  shared  handle  instead  of  keeping  the data to
     itself. This enables several curl handles to share data.  If
     the   curl  handles  are  used  simultaneously  in  multiple
     threads, you MUST use the locking methods in the share  han-
     dle. See curl_share_setopt(3) for details.

     If you add a share that is set to share cookies,  your  easy
     handle  will use that cookie cache and get the cookie engine
     enabled. If you unshare an object that was using cookies (or
     change  to  another  object that doesn't share cookies), the
     easy handle will get its cookie engine disabled.

     Data that the share object is not set to share will be dealt
     with the usual way, as if no share was used.

     Set this option to NULL  again  to  stop  using  that  share
     object.


DEFAULT

     NULL


PROTOCOLS

     All


EXAMPLE

     CURL *curl = curl_easy_init();
     CURL *curl2 = curl_easy_init(); /* a second handle */
     if(curl) {
       CURLSH *shobject = curl_share_init();
       curl_share_setopt(shobject, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

       curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
       curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "");
       curl_easy_setopt(curl, CURLOPT_SHARE, shobject);
       ret = curl_easy_perform(curl);
       curl_easy_cleanup(curl);

       /* the second handle shares cookies from the first */
       curl_easy_setopt(curl2, CURLOPT_URL, "https://example.com/second");

libcurl 7.58.0      Last change: May 31, 2017                   1

CURLOPT_SHARE(3)    curl_easy_setopt options     CURLOPT_SHARE(3)

       curl_easy_setopt(curl2, CURLOPT_COOKIEFILE, "");
       curl_easy_setopt(curl2, CURLOPT_SHARE, shobject);
       ret = curl_easy_perform(curl2);
       curl_easy_cleanup(curl2);

       curl_share_cleanup(shobject);
     }


AVAILABILITY

     Always


RETURN VALUE

     Returns CURLE_OK


SEE ALSO

     CURLOPT_COOKIE(3),

libcurl 7.58.0      Last change: May 31, 2017                   2


Man(1) output converted with man2html