1---
2c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
3SPDX-License-Identifier: curl
4Title: CURLOPT_MAXCONNECTS
5Section: 3
6Source: libcurl
7See-also:
8  - CURLMOPT_MAXCONNECTS (3)
9  - CURLMOPT_MAX_HOST_CONNECTIONS (3)
10  - CURLMOPT_MAX_TOTAL_CONNECTIONS (3)
11  - CURLOPT_MAXREDIRS (3)
12Protocol:
13  - All
14Added-in: 7.7
15---
16
17# NAME
18
19CURLOPT_MAXCONNECTS - maximum connection cache size
20
21# SYNOPSIS
22
23~~~c
24#include <curl/curl.h>
25
26CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAXCONNECTS, long amount);
27~~~
28
29# DESCRIPTION
30
31Pass a long. The set *amount* is the maximum number of simultaneously open
32persistent connections that libcurl may cache in the pool associated with this
33handle. The default is 5, and there is not much point in changing this value
34unless you are perfectly aware of how this works. This concerns connections
35using any of the protocols that support persistent connections.
36
37When reaching the maximum limit, curl closes the oldest one in the cache to
38prevent increasing the number of open connections.
39
40If you already have performed transfers with this curl handle, setting a
41smaller CURLOPT_MAXCONNECTS(3) than before may cause open connections to
42get closed unnecessarily.
43
44If you add this easy handle to a multi handle, this setting is not
45acknowledged, and you must instead use curl_multi_setopt(3) and the
46CURLMOPT_MAXCONNECTS(3) option.
47
48# DEFAULT
49
505
51
52# %PROTOCOLS%
53
54# EXAMPLE
55
56~~~c
57int main(void)
58{
59  CURL *curl = curl_easy_init();
60  if(curl) {
61    CURLcode ret;
62    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
63    /* limit the connection cache for this handle to no more than 3 */
64    curl_easy_setopt(curl, CURLOPT_MAXCONNECTS, 3L);
65    ret = curl_easy_perform(curl);
66  }
67}
68~~~
69
70# %AVAILABILITY%
71
72# RETURN VALUE
73
74Returns CURLE_OK
75