xref: /aosp_15_r20/external/curl/docs/libcurl/curl_multi_setopt.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker---
2*6236dae4SAndroid Build Coastguard Workerc: Copyright (C) Daniel Stenberg, <[email protected]>, et al.
3*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl
4*6236dae4SAndroid Build Coastguard WorkerTitle: curl_multi_setopt
5*6236dae4SAndroid Build Coastguard WorkerSection: 3
6*6236dae4SAndroid Build Coastguard WorkerSource: libcurl
7*6236dae4SAndroid Build Coastguard WorkerSee-also:
8*6236dae4SAndroid Build Coastguard Worker  - curl_multi_cleanup (3)
9*6236dae4SAndroid Build Coastguard Worker  - curl_multi_info_read (3)
10*6236dae4SAndroid Build Coastguard Worker  - curl_multi_init (3)
11*6236dae4SAndroid Build Coastguard Worker  - curl_multi_socket (3)
12*6236dae4SAndroid Build Coastguard WorkerProtocol:
13*6236dae4SAndroid Build Coastguard Worker  - All
14*6236dae4SAndroid Build Coastguard WorkerAdded-in: 7.15.4
15*6236dae4SAndroid Build Coastguard Worker---
16*6236dae4SAndroid Build Coastguard Worker
17*6236dae4SAndroid Build Coastguard Worker# NAME
18*6236dae4SAndroid Build Coastguard Worker
19*6236dae4SAndroid Build Coastguard Workercurl_multi_setopt - set options for a curl multi handle
20*6236dae4SAndroid Build Coastguard Worker
21*6236dae4SAndroid Build Coastguard Worker# SYNOPSIS
22*6236dae4SAndroid Build Coastguard Worker
23*6236dae4SAndroid Build Coastguard Worker~~~c
24*6236dae4SAndroid Build Coastguard Worker#include <curl/curl.h>
25*6236dae4SAndroid Build Coastguard Worker
26*6236dae4SAndroid Build Coastguard WorkerCURLMcode curl_multi_setopt(CURLM *multi, CURLMoption option, parameter);
27*6236dae4SAndroid Build Coastguard Worker~~~
28*6236dae4SAndroid Build Coastguard Worker
29*6236dae4SAndroid Build Coastguard Worker# DESCRIPTION
30*6236dae4SAndroid Build Coastguard Worker
31*6236dae4SAndroid Build Coastguard Workercurl_multi_setopt(3) is used to tell a libcurl multi handle how to behave. By
32*6236dae4SAndroid Build Coastguard Workerusing the appropriate options to curl_multi_setopt(3), you can change
33*6236dae4SAndroid Build Coastguard Workerlibcurl's behavior when using that multi handle. All options are set with the
34*6236dae4SAndroid Build Coastguard Worker*option* followed by the *parameter*. That parameter can be a **long**, a
35*6236dae4SAndroid Build Coastguard Worker**function pointer**, an **object pointer** or a **curl_off_t** type,
36*6236dae4SAndroid Build Coastguard Workerdepending on what the specific option expects. Read this manual carefully as
37*6236dae4SAndroid Build Coastguard Workerbad input values may cause libcurl to behave badly. You can only set one
38*6236dae4SAndroid Build Coastguard Workeroption in each function call.
39*6236dae4SAndroid Build Coastguard Worker
40*6236dae4SAndroid Build Coastguard Worker# OPTIONS
41*6236dae4SAndroid Build Coastguard Worker
42*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE
43*6236dae4SAndroid Build Coastguard Worker
44*6236dae4SAndroid Build Coastguard Worker**deprecated** See CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE(3)
45*6236dae4SAndroid Build Coastguard Worker
46*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE
47*6236dae4SAndroid Build Coastguard Worker
48*6236dae4SAndroid Build Coastguard Worker**deprecated** See CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE(3)
49*6236dae4SAndroid Build Coastguard Worker
50*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_MAXCONNECTS
51*6236dae4SAndroid Build Coastguard Worker
52*6236dae4SAndroid Build Coastguard WorkerSize of connection cache. See CURLMOPT_MAXCONNECTS(3)
53*6236dae4SAndroid Build Coastguard Worker
54*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_MAX_CONCURRENT_STREAMS
55*6236dae4SAndroid Build Coastguard Worker
56*6236dae4SAndroid Build Coastguard WorkerMax concurrent streams for http2. See CURLMOPT_MAX_CONCURRENT_STREAMS(3)
57*6236dae4SAndroid Build Coastguard Worker
58*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_MAX_HOST_CONNECTIONS
59*6236dae4SAndroid Build Coastguard Worker
60*6236dae4SAndroid Build Coastguard WorkerMax number of connections to a single host. See
61*6236dae4SAndroid Build Coastguard WorkerCURLMOPT_MAX_HOST_CONNECTIONS(3)
62*6236dae4SAndroid Build Coastguard Worker
63*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_MAX_PIPELINE_LENGTH
64*6236dae4SAndroid Build Coastguard Worker
65*6236dae4SAndroid Build Coastguard Worker**deprecated**. See CURLMOPT_MAX_PIPELINE_LENGTH(3)
66*6236dae4SAndroid Build Coastguard Worker
67*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_MAX_TOTAL_CONNECTIONS
68*6236dae4SAndroid Build Coastguard Worker
69*6236dae4SAndroid Build Coastguard WorkerMax simultaneously open connections. See CURLMOPT_MAX_TOTAL_CONNECTIONS(3)
70*6236dae4SAndroid Build Coastguard Worker
71*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_PIPELINING
72*6236dae4SAndroid Build Coastguard Worker
73*6236dae4SAndroid Build Coastguard WorkerEnable HTTP multiplexing. See CURLMOPT_PIPELINING(3)
74*6236dae4SAndroid Build Coastguard Worker
75*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_PIPELINING_SERVER_BL
76*6236dae4SAndroid Build Coastguard Worker
77*6236dae4SAndroid Build Coastguard Worker**deprecated**. See CURLMOPT_PIPELINING_SERVER_BL(3)
78*6236dae4SAndroid Build Coastguard Worker
79*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_PIPELINING_SITE_BL
80*6236dae4SAndroid Build Coastguard Worker
81*6236dae4SAndroid Build Coastguard Worker**deprecated**. See CURLMOPT_PIPELINING_SITE_BL(3)
82*6236dae4SAndroid Build Coastguard Worker
83*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_PUSHDATA
84*6236dae4SAndroid Build Coastguard Worker
85*6236dae4SAndroid Build Coastguard WorkerPointer to pass to push callback. See CURLMOPT_PUSHDATA(3)
86*6236dae4SAndroid Build Coastguard Worker
87*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_PUSHFUNCTION
88*6236dae4SAndroid Build Coastguard Worker
89*6236dae4SAndroid Build Coastguard WorkerCallback that approves or denies server pushes. See CURLMOPT_PUSHFUNCTION(3)
90*6236dae4SAndroid Build Coastguard Worker
91*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_SOCKETDATA
92*6236dae4SAndroid Build Coastguard Worker
93*6236dae4SAndroid Build Coastguard WorkerCustom pointer passed to the socket callback. See CURLMOPT_SOCKETDATA(3)
94*6236dae4SAndroid Build Coastguard Worker
95*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_SOCKETFUNCTION
96*6236dae4SAndroid Build Coastguard Worker
97*6236dae4SAndroid Build Coastguard WorkerCallback informed about what to wait for. See CURLMOPT_SOCKETFUNCTION(3)
98*6236dae4SAndroid Build Coastguard Worker
99*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_TIMERDATA
100*6236dae4SAndroid Build Coastguard Worker
101*6236dae4SAndroid Build Coastguard WorkerCustom pointer to pass to timer callback. See CURLMOPT_TIMERDATA(3)
102*6236dae4SAndroid Build Coastguard Worker
103*6236dae4SAndroid Build Coastguard Worker## CURLMOPT_TIMERFUNCTION
104*6236dae4SAndroid Build Coastguard Worker
105*6236dae4SAndroid Build Coastguard WorkerCallback to receive timeout values. See CURLMOPT_TIMERFUNCTION(3)
106*6236dae4SAndroid Build Coastguard Worker
107*6236dae4SAndroid Build Coastguard Worker# %PROTOCOLS%
108*6236dae4SAndroid Build Coastguard Worker
109*6236dae4SAndroid Build Coastguard Worker# EXAMPLE
110*6236dae4SAndroid Build Coastguard Worker
111*6236dae4SAndroid Build Coastguard Worker~~~c
112*6236dae4SAndroid Build Coastguard Worker
113*6236dae4SAndroid Build Coastguard Worker#define MAX_PARALLEL 45
114*6236dae4SAndroid Build Coastguard Worker
115*6236dae4SAndroid Build Coastguard Workerint main(void)
116*6236dae4SAndroid Build Coastguard Worker{
117*6236dae4SAndroid Build Coastguard Worker  CURLM *multi;
118*6236dae4SAndroid Build Coastguard Worker  /* Limit the amount of simultaneous connections curl should allow: */
119*6236dae4SAndroid Build Coastguard Worker  curl_multi_setopt(multi, CURLMOPT_MAXCONNECTS, (long)MAX_PARALLEL);
120*6236dae4SAndroid Build Coastguard Worker}
121*6236dae4SAndroid Build Coastguard Worker~~~
122*6236dae4SAndroid Build Coastguard Worker
123*6236dae4SAndroid Build Coastguard Worker# %AVAILABILITY%
124*6236dae4SAndroid Build Coastguard Worker
125*6236dae4SAndroid Build Coastguard Worker# RETURN VALUE
126*6236dae4SAndroid Build Coastguard Worker
127*6236dae4SAndroid Build Coastguard WorkerThe standard CURLMcode for multi interface error codes. Note that it returns a
128*6236dae4SAndroid Build Coastguard WorkerCURLM_UNKNOWN_OPTION if you try setting an option that this version of libcurl
129*6236dae4SAndroid Build Coastguard Workerdoes not know of.
130