| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- .\" generated by cd2nroff 0.1 from CURLSHOPT_SHARE.md
- .TH CURLSHOPT_SHARE 3 "2025-01-17" libcurl
- .SH NAME
- CURLSHOPT_SHARE \- add data to share
- .SH SYNOPSIS
- .nf
- #include <curl/curl.h>
- CURLSHcode curl_share_setopt(CURLSH *share, CURLSHOPT_SHARE, long type);
- .fi
- .SH DESCRIPTION
- The \fItype\fP parameter specifies what specific data that should be shared
- and kept in the share object that was created with \fIcurl_share_init(3)\fP.
- The given \fItype\fP must be one of the values described below. You can set
- \fICURLSHOPT_SHARE(3)\fP multiple times with different data arguments to have
- the share object share multiple types of data. Unset a type again by setting
- \fICURLSHOPT_UNSHARE(3)\fP.
- .IP CURL_LOCK_DATA_COOKIE
- Cookie data is shared across the easy handles using this shared object. Note
- that this does not activate an easy handle\(aqs cookie handling. You can do that
- separately by using \fICURLOPT_COOKIEFILE(3)\fP for example.
- It is not supported to share cookies between multiple concurrent threads.
- .IP CURL_LOCK_DATA_DNS
- Cached DNS hosts are shared across the easy handles using this shared
- object. Note that when you use the multi interface, all easy handles added to
- the same multi handle share DNS cache by default without using this option.
- .IP CURL_LOCK_DATA_SSL_SESSION
- SSL session IDs are shared across the easy handles using this shared
- object. This reduces the time spent in the SSL handshake when reconnecting to
- the same server. Note SSL session IDs are reused within the same easy handle
- by default. Note this symbol was added in 7.10.3 but was not implemented until
- 7.23.0.
- It is not supported to share SSL sessions between multiple concurrent threads.
- .IP CURL_LOCK_DATA_CONNECT
- Put the connection cache in the share object and make all easy handles using
- this share object share the connection cache.
- It is not supported to share connections between multiple concurrent threads.
- Connections that are used for HTTP/2 or HTTP/3 multiplexing only get
- additional transfers added to them if the existing connection is held by the
- same multi or easy handle. libcurl does not support doing multiplexed streams
- in different threads using a shared connection.
- Support for \fBCURL_LOCK_DATA_CONNECT\fP was added in 7.57.0, but the symbol
- existed before this.
- Note that when you use the multi interface, all easy handles added to the same
- multi handle shares connection cache by default without using this option.
- .IP CURL_LOCK_DATA_PSL
- The Public Suffix List stored in the share object is made available to all
- easy handle bound to the later. Since the Public Suffix List is periodically
- refreshed, this avoids updates in too many different contexts.
- Added in 7.61.0.
- Note that when you use the multi interface, all easy handles added to the same
- multi handle shares PSL cache by default without using this option.
- .IP CURL_LOCK_DATA_HSTS
- The in\-memory HSTS cache.
- It is not supported to share the HSTS between multiple concurrent threads.
- Added in 7.88.0
- .SH PROTOCOLS
- This functionality affects all supported protocols
- .SH EXAMPLE
- .nf
- int main(void)
- {
- CURLSHcode sh;
- CURLSH *share = curl_share_init();
- sh = curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
- if(sh)
- printf("Error: %s\\n", curl_share_strerror(sh));
- }
- .fi
- .SH AVAILABILITY
- Added in curl 7.10.3
- .SH RETURN VALUE
- CURLSHE_OK (zero) means that the option was set properly, non\-zero means an
- error occurred. See \fIlibcurl\-errors(3)\fP for the full list with
- descriptions.
- .SH SEE ALSO
- .BR CURLSHOPT_UNSHARE (3),
- .BR curl_share_cleanup (3),
- .BR curl_share_init (3),
- .BR curl_share_setopt (3)
|