Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
libcurl-share(3)	   Library Functions Manual	      libcurl-share(3)

NAME
       libcurl-share - how to use the share interface

DESCRIPTION
       This is an overview on how to use the libcurl share interface in	your C
       programs.  There	 are specific man pages	for each function mentioned in
       here.

       All functions in	the share interface are	prefixed with curl_share.

OBJECTIVES
       The share interface was added to	enable sharing of  data	 between  curl
       handles.

ONE SET	OF DATA	- MANY TRANSFERS
       You  can	 have multiple easy handles share data between them. Have them
       update and use the same cookie database,	DNS cache, TLS	session	 cache
       and/or connection cache.	This way, each single transfer takes advantage
       from data updates made by the other transfer(s).

SHARE OBJECT
       You create a shared object with curl_share_init(3). It returns a	handle
       for a newly created one.

       You  tell  the  shared  object  what data you want it to	share by using
       curl_share_setopt(3).

       Since you can use this share from multiple threads, and libcurl has  no
       internal	 thread	 synchronization,  you must provide mutex callbacks if
       you are using this multi-threaded. You set lock	and  unlock  functions
       with curl_share_setopt(3) too.

       Then,  you  make	 an  easy  handle  to use this share, you set the CUR-
       LOPT_SHARE(3) option with curl_easy_setopt(3), and pass in  share  han-
       dle.  You can make any number of	easy handles share the same share han-
       dle.

       To make an easy handle stop using that particular share,	you  set  CUR-
       LOPT_SHARE(3) to	NULL for that easy handle. To make a handle stop shar-
       ing a particular	data, you can CURLSHOPT_UNSHARE(3) it.

       When  you  are  done  using the share, make sure	that no	easy handle is
       still using it, and call	curl_share_cleanup(3) on the handle.

SEE ALSO
       curl_share_cleanup(3),	 curl_share_init(3),	 curl_share_setopt(3),
       libcurl-easy(3),	libcurl-errors(3), libcurl-multi(3)

libcurl				  2025-06-03		      libcurl-share(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libcurl-share&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help