diff options
Diffstat (limited to 'docs/libcurl/opts/CURLSHOPT_SHARE.3')
-rw-r--r-- | docs/libcurl/opts/CURLSHOPT_SHARE.3 | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/docs/libcurl/opts/CURLSHOPT_SHARE.3 b/docs/libcurl/opts/CURLSHOPT_SHARE.3 new file mode 100644 index 000000000..5e5cc3524 --- /dev/null +++ b/docs/libcurl/opts/CURLSHOPT_SHARE.3 @@ -0,0 +1,97 @@ +.\" ************************************************************************** +.\" * _ _ ____ _ +.\" * Project ___| | | | _ \| | +.\" * / __| | | | |_) | | +.\" * | (__| |_| | _ <| |___ +.\" * \___|\___/|_| \_\_____| +.\" * +.\" * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al. +.\" * +.\" * This software is licensed as described in the file COPYING, which +.\" * you should have received as part of this distribution. The terms +.\" * are also available at https://curl.se/docs/copyright.html. +.\" * +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell +.\" * copies of the Software, and permit persons to whom the Software is +.\" * furnished to do so, under the terms of the COPYING file. +.\" * +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +.\" * KIND, either express or implied. +.\" * +.\" ************************************************************************** +.TH CURLSHOPT_SHARE 3 "8 Aug 2003" "libcurl 7.10.7" "libcurl Manual" +.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 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 will be shared across the easy handles using this shared object. +Note that this does not activate an easy handle's cookie handling. You can do +that separately by using \fICURLOPT_COOKIEFILE(3)\fP for example. +.IP CURL_LOCK_DATA_DNS +Cached DNS hosts will be 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 will share DNS cache by default without using this +option. +.IP CURL_LOCK_DATA_SSL_SESSION +SSL session IDs will be shared across the easy handles using this shared +object. This will reduce 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. +.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. + +Note that due to a known bug, it is not safe to share connections this way +between multiple concurrent threads. + +Connections that are used for HTTP/1.1 Pipelining or HTTP/2 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 HTTP/2 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 will share 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 will share PSL cache by default without using this option. +.SH PROTOCOLS +All +.SH EXAMPLE +.nf + CURLSHcode sh + 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 7.10 +.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_setopt "(3), " curl_share_cleanup "(3), " curl_share_init "(3)" |