Lines Matching refs:share
29 #include "share.h"
42 struct Curl_share *share = calloc(1, sizeof(struct Curl_share));
43 if(share) {
44 share->magic = CURL_GOOD_SHARE;
45 share->specifier |= (1<<CURL_LOCK_DATA_SHARE);
46 Curl_init_dnscache(&share->hostcache, 23);
49 return share;
54 curl_share_setopt(struct Curl_share *share, CURLSHoption option, ...)
63 if(!GOOD_SHARE_HANDLE(share))
66 if(share->dirty)
68 using this share */
75 /* this is a type this share will share */
84 if(!share->cookies) {
85 share->cookies = Curl_cookie_init(NULL, NULL, NULL, TRUE);
86 if(!share->cookies)
96 if(!share->hsts) {
97 share->hsts = Curl_hsts_init();
98 if(!share->hsts)
108 if(!share->sslsession) {
109 share->max_ssl_sessions = 8;
110 share->sslsession = calloc(share->max_ssl_sessions,
112 share->sessionage = 0;
113 if(!share->sslsession)
122 if(Curl_conncache_init(&share->conn_cache, 103))
136 share->specifier |= (unsigned int)(1<<type);
140 /* this is a type this share will no longer share */
142 share->specifier &= ~(unsigned int)(1<<type);
149 if(share->cookies) {
150 Curl_cookie_cleanup(share->cookies);
151 share->cookies = NULL;
160 if(share->hsts) {
161 Curl_hsts_cleanup(&share->hsts);
170 Curl_safefree(share->sslsession);
187 share->lockfunc = lockfunc;
192 share->unlockfunc = unlockfunc;
197 share->clientdata = ptr;
211 curl_share_cleanup(struct Curl_share *share)
213 if(!GOOD_SHARE_HANDLE(share))
216 if(share->lockfunc)
217 share->lockfunc(NULL, CURL_LOCK_DATA_SHARE, CURL_LOCK_ACCESS_SINGLE,
218 share->clientdata);
220 if(share->dirty) {
221 if(share->unlockfunc)
222 share->unlockfunc(NULL, CURL_LOCK_DATA_SHARE, share->clientdata);
226 Curl_conncache_close_all_connections(&share->conn_cache);
227 Curl_conncache_destroy(&share->conn_cache);
228 Curl_hash_destroy(&share->hostcache);
231 Curl_cookie_cleanup(share->cookies);
235 Curl_hsts_cleanup(&share->hsts);
239 if(share->sslsession) {
241 for(i = 0; i < share->max_ssl_sessions; i++)
242 Curl_ssl_kill_session(&(share->sslsession[i]));
243 free(share->sslsession);
247 Curl_psl_destroy(&share->psl);
249 if(share->unlockfunc)
250 share->unlockfunc(NULL, CURL_LOCK_DATA_SHARE, share->clientdata);
251 share->magic = 0;
252 free(share);
262 struct Curl_share *share = data->share;
264 if(!share)
267 if(share->specifier & (unsigned int)(1<<type)) {
268 if(share->lockfunc) /* only call this if set! */
269 share->lockfunc(data, type, accesstype, share->clientdata);
271 /* else if we don't share this, pretend successful lock */
279 struct Curl_share *share = data->share;
281 if(!share)
284 if(share->specifier & (unsigned int)(1<<type)) {
285 if(share->unlockfunc) /* only call this if set! */
286 share->unlockfunc (data, type, share->clientdata);