Imported Upstream version 7.59.0
[platform/upstream/curl.git] / docs / libcurl / curl_easy_setopt.3
1 .\" **************************************************************************
2 .\" *                                  _   _ ____  _
3 .\" *  Project                     ___| | | |  _ \| |
4 .\" *                             / __| | | | |_) | |
5 .\" *                            | (__| |_| |  _ <| |___
6 .\" *                             \___|\___/|_| \_\_____|
7 .\" *
8 .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
9 .\" *
10 .\" * This software is licensed as described in the file COPYING, which
11 .\" * you should have received as part of this distribution. The terms
12 .\" * are also available at https://curl.haxx.se/docs/copyright.html.
13 .\" *
14 .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
15 .\" * copies of the Software, and permit persons to whom the Software is
16 .\" * furnished to do so, under the terms of the COPYING file.
17 .\" *
18 .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 .\" * KIND, either express or implied.
20 .\" *
21 .\" **************************************************************************
22 .\"
23 .TH curl_easy_setopt 3 "February 14, 2018" "libcurl 7.59.0" "libcurl Manual"
24
25 .SH NAME
26 curl_easy_setopt \- set options for a curl easy handle
27 .SH SYNOPSIS
28 #include <curl/curl.h>
29
30 CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
31 .SH DESCRIPTION
32 \fIcurl_easy_setopt(3)\fP is used to tell libcurl how to behave. By setting
33 the appropriate options, the application can change libcurl's behavior.  All
34 options are set with an \fIoption\fP followed by a \fIparameter\fP. That
35 parameter can be a \fBlong\fP, a \fBfunction pointer\fP, an \fBobject
36 pointer\fP or a \fBcurl_off_t\fP, depending on what the specific option
37 expects. Read this manual carefully as bad input values may cause libcurl to
38 behave badly!  You can only set one option in each function call. A typical
39 application uses many \fIcurl_easy_setopt(3)\fP calls in the setup phase.
40
41 Options set with this function call are valid for all forthcoming transfers
42 performed using this \fIhandle\fP.  The options are not in any way reset
43 between transfers, so if you want subsequent transfers with different options,
44 you must change them between the transfers. You can optionally reset all
45 options back to internal default with \fIcurl_easy_reset(3)\fP.
46
47 Strings passed to libcurl as 'char *' arguments, are copied by the library;
48 thus the string storage associated to the pointer argument may be overwritten
49 after \fIcurl_easy_setopt(3)\fP returns. The only exception to this rule is
50 really \fICURLOPT_POSTFIELDS(3)\fP, but the alternative that copies the string
51 \fICURLOPT_COPYPOSTFIELDS(3)\fP has some usage characteristics you need to
52 read up on.
53
54 The order in which the options are set does not matter.
55
56 Before version 7.17.0, strings were not copied. Instead the user was forced
57 keep them available until libcurl no longer needed them.
58
59 The \fIhandle\fP is the return code from a \fIcurl_easy_init(3)\fP or
60 \fIcurl_easy_duphandle(3)\fP call.
61 .SH BEHAVIOR OPTIONS
62 .IP CURLOPT_VERBOSE
63 Display verbose information. See \fICURLOPT_VERBOSE(3)\fP
64 .IP CURLOPT_HEADER
65 Include the header in the body output. See \fICURLOPT_HEADER(3)\fP
66 .IP CURLOPT_NOPROGRESS
67 Shut off the progress meter. See \fICURLOPT_NOPROGRESS(3)\fP
68 .IP CURLOPT_NOSIGNAL
69 Do not install signal handlers. See \fICURLOPT_NOSIGNAL(3)\fP
70 .IP CURLOPT_WILDCARDMATCH
71 Transfer multiple files according to a file name pattern. See \fICURLOPT_WILDCARDMATCH(3)\fP
72 .SH CALLBACK OPTIONS
73 .IP CURLOPT_WRITEFUNCTION
74 Callback for writing data. See \fICURLOPT_WRITEFUNCTION(3)\fP
75 .IP CURLOPT_WRITEDATA
76 Data pointer to pass to the write callback. See \fICURLOPT_WRITEDATA(3)\fP
77 .IP CURLOPT_READFUNCTION
78 Callback for reading data. See \fICURLOPT_READFUNCTION(3)\fP
79 .IP CURLOPT_READDATA
80 Data pointer to pass to the read callback. See \fICURLOPT_READDATA(3)\fP
81 .IP CURLOPT_IOCTLFUNCTION
82 Callback for I/O operations. See \fICURLOPT_IOCTLFUNCTION(3)\fP
83 .IP CURLOPT_IOCTLDATA
84 Data pointer to pass to the I/O callback. See \fICURLOPT_IOCTLDATA(3)\fP
85 .IP CURLOPT_SEEKFUNCTION
86 Callback for seek operations. See \fICURLOPT_SEEKFUNCTION(3)\fP
87 .IP CURLOPT_SEEKDATA
88 Data pointer to pass to the seek callback. See \fICURLOPT_SEEKDATA(3)\fP
89 .IP CURLOPT_SOCKOPTFUNCTION
90 Callback for sockopt operations. See \fICURLOPT_SOCKOPTFUNCTION(3)\fP
91 .IP CURLOPT_SOCKOPTDATA
92 Data pointer to pass to the sockopt callback. See \fICURLOPT_SOCKOPTDATA(3)\fP
93 .IP CURLOPT_OPENSOCKETFUNCTION
94 Callback for socket creation. See \fICURLOPT_OPENSOCKETFUNCTION(3)\fP
95 .IP CURLOPT_OPENSOCKETDATA
96 Data pointer to pass to the open socket callback. See \fICURLOPT_OPENSOCKETDATA(3)\fP
97 .IP CURLOPT_CLOSESOCKETFUNCTION
98 Callback for closing socket. See \fICURLOPT_CLOSESOCKETFUNCTION(3)\fP
99 .IP CURLOPT_CLOSESOCKETDATA
100 Data pointer to pass to the close socket callback. See \fICURLOPT_CLOSESOCKETDATA(3)\fP
101 .IP CURLOPT_PROGRESSFUNCTION
102 OBSOLETE callback for progress meter. See \fICURLOPT_PROGRESSFUNCTION(3)\fP
103 .IP CURLOPT_PROGRESSDATA
104 Data pointer to pass to the progress meter callback. See \fICURLOPT_PROGRESSDATA(3)\fP
105 .IP CURLOPT_XFERINFOFUNCTION
106 Callback for progress meter. See \fICURLOPT_XFERINFOFUNCTION(3)\fP
107 .IP CURLOPT_XFERINFODATA
108 Data pointer to pass to the progress meter callback. See \fICURLOPT_XFERINFODATA(3)\fP
109 .IP CURLOPT_HEADERFUNCTION
110 Callback for writing received headers. See \fICURLOPT_HEADERFUNCTION(3)\fP
111 .IP CURLOPT_HEADERDATA
112 Data pointer to pass to the header callback. See \fICURLOPT_HEADERDATA(3)\fP
113 .IP CURLOPT_DEBUGFUNCTION
114 Callback for debug information. See \fICURLOPT_DEBUGFUNCTION(3)\fP
115 .IP CURLOPT_DEBUGDATA
116 Data pointer to pass to the debug callback. See \fICURLOPT_DEBUGDATA(3)\fP
117 .IP CURLOPT_SSL_CTX_FUNCTION
118 Callback for SSL context logic. See \fICURLOPT_SSL_CTX_FUNCTION(3)\fP
119 .IP CURLOPT_SSL_CTX_DATA
120 Data pointer to pass to the SSL context callback. See \fICURLOPT_SSL_CTX_DATA(3)\fP
121 .IP CURLOPT_CONV_TO_NETWORK_FUNCTION
122 Callback for code base conversion. See \fICURLOPT_CONV_TO_NETWORK_FUNCTION(3)\fP
123 .IP CURLOPT_CONV_FROM_NETWORK_FUNCTION
124 Callback for code base conversion. See \fICURLOPT_CONV_FROM_NETWORK_FUNCTION(3)\fP
125 .IP CURLOPT_CONV_FROM_UTF8_FUNCTION
126 Callback for code base conversion. See \fICURLOPT_CONV_FROM_UTF8_FUNCTION(3)\fP
127 .IP CURLOPT_INTERLEAVEFUNCTION
128 Callback for RTSP interleaved data. See \fICURLOPT_INTERLEAVEFUNCTION(3)\fP
129 .IP CURLOPT_INTERLEAVEDATA
130 Data pointer to pass to the RTSP interleave callback. See \fICURLOPT_INTERLEAVEDATA(3)\fP
131 .IP CURLOPT_CHUNK_BGN_FUNCTION
132 Callback for wildcard download start of chunk. See \fICURLOPT_CHUNK_BGN_FUNCTION(3)\fP
133 .IP CURLOPT_CHUNK_END_FUNCTION
134 Callback for wildcard download end of chunk. See \fICURLOPT_CHUNK_END_FUNCTION(3)\fP
135 .IP CURLOPT_CHUNK_DATA
136 Data pointer to pass to the chunk callbacks. See \fICURLOPT_CHUNK_DATA(3)\fP
137 .IP CURLOPT_FNMATCH_FUNCTION
138 Callback for wildcard matching. See \fICURLOPT_FNMATCH_FUNCTION(3)\fP
139 .IP CURLOPT_FNMATCH_DATA
140 Data pointer to pass to the wildcard matching callback. See \fICURLOPT_FNMATCH_DATA(3)\fP
141 .IP CURLOPT_SUPPRESS_CONNECT_HEADERS
142 Suppress proxy CONNECT response headers from user callbacks. See \fICURLOPT_SUPPRESS_CONNECT_HEADERS(3)\fP
143 .IP CURLOPT_RESOLVER_START_FUNCTION
144 Callback to be called before a new resolve request is started. See \fICURLOPT_RESOLVER_START_FUNCTION(3)\fP
145 .IP CURLOPT_RESOLVER_START_DATA
146 Data pointer to pass to resolver start callback. See \fICURLOPT_RESOLVER_START_DATA(3)\fP
147 .SH ERROR OPTIONS
148 .IP CURLOPT_ERRORBUFFER
149 Error message buffer. See \fICURLOPT_ERRORBUFFER(3)\fP
150 .IP CURLOPT_STDERR
151 stderr replacement stream. See \fICURLOPT_STDERR(3)\fP
152 .IP CURLOPT_FAILONERROR
153 Fail on HTTP 4xx errors. \fICURLOPT_FAILONERROR(3)\fP
154 .IP CURLOPT_KEEP_SENDING_ON_ERROR
155 Keep sending on HTTP >= 300 errors. \fICURLOPT_KEEP_SENDING_ON_ERROR(3)\fP
156 .SH NETWORK OPTIONS
157 .IP CURLOPT_URL
158 URL to work on. See \fICURLOPT_URL(3)\fP
159 .IP CURLOPT_PATH_AS_IS
160 Disable squashing /../ and /./ sequences in the path. See \fICURLOPT_PATH_AS_IS(3)\fP
161 .IP CURLOPT_PROTOCOLS
162 Allowed protocols. See \fICURLOPT_PROTOCOLS(3)\fP
163 .IP CURLOPT_REDIR_PROTOCOLS
164 Protocols to allow redirects to. See \fICURLOPT_REDIR_PROTOCOLS(3)\fP
165 .IP CURLOPT_DEFAULT_PROTOCOL
166 Default protocol. See \fICURLOPT_DEFAULT_PROTOCOL(3)\fP
167 .IP CURLOPT_PROXY
168 Proxy to use. See \fICURLOPT_PROXY(3)\fP
169 .IP CURLOPT_PRE_PROXY
170 Socks proxy to use. See \fICURLOPT_PRE_PROXY(3)\fP
171 .IP CURLOPT_PROXYPORT
172 Proxy port to use. See \fICURLOPT_PROXYPORT(3)\fP
173 .IP CURLOPT_PROXYTYPE
174 Proxy type. See \fICURLOPT_PROXYTYPE(3)\fP
175 .IP CURLOPT_NOPROXY
176 Filter out hosts from proxy use. \fICURLOPT_NOPROXY(3)\fP
177 .IP CURLOPT_HTTPPROXYTUNNEL
178 Tunnel through the HTTP proxy. \fICURLOPT_HTTPPROXYTUNNEL(3)\fP
179 .IP CURLOPT_CONNECT_TO
180 Connect to a specific host and port. See \fICURLOPT_CONNECT_TO(3)\fP
181 .IP CURLOPT_SOCKS5_AUTH
182 Socks5 authentication methods. See \fICURLOPT_SOCKS5_AUTH(3)\fP
183 .IP CURLOPT_SOCKS5_GSSAPI_SERVICE
184 Socks5 GSSAPI service name. \fICURLOPT_SOCKS5_GSSAPI_SERVICE(3)\fP
185 .IP CURLOPT_SOCKS5_GSSAPI_NEC
186 Socks5 GSSAPI NEC mode. See \fICURLOPT_SOCKS5_GSSAPI_NEC(3)\fP
187 .IP CURLOPT_PROXY_SERVICE_NAME
188 Proxy authentication service name. \fICURLOPT_PROXY_SERVICE_NAME(3)\fP
189 .IP CURLOPT_SERVICE_NAME
190 Authentication service name. \fICURLOPT_SERVICE_NAME(3)\fP
191 .IP CURLOPT_INTERFACE
192 Bind connection locally to this. See \fICURLOPT_INTERFACE(3)\fP
193 .IP CURLOPT_LOCALPORT
194 Bind connection locally to this port. See \fICURLOPT_LOCALPORT(3)\fP
195 .IP CURLOPT_LOCALPORTRANGE
196 Bind connection locally to port range. See \fICURLOPT_LOCALPORTRANGE(3)\fP
197 .IP CURLOPT_DNS_CACHE_TIMEOUT
198 Timeout for DNS cache. See \fICURLOPT_DNS_CACHE_TIMEOUT(3)\fP
199 .IP CURLOPT_DNS_USE_GLOBAL_CACHE
200 OBSOLETE Enable global DNS cache. See \fICURLOPT_DNS_USE_GLOBAL_CACHE(3)\fP
201 .IP CURLOPT_BUFFERSIZE
202 Ask for alternate buffer size. See \fICURLOPT_BUFFERSIZE(3)\fP
203 .IP CURLOPT_PORT
204 Port number to connect to. See \fICURLOPT_PORT(3)\fP
205 .IP CURLOPT_TCP_FASTOPEN
206 Enable TFO, TCP Fast Open. See \fICURLOPT_TCP_FASTOPEN(3)\fP
207 .IP CURLOPT_TCP_NODELAY
208 Disable the Nagle algorithm. See \fICURLOPT_TCP_NODELAY(3)\fP
209 .IP CURLOPT_ADDRESS_SCOPE
210 IPv6 scope for local addresses. See \fICURLOPT_ADDRESS_SCOPE(3)\fP
211 .IP CURLOPT_TCP_KEEPALIVE
212 Enable TCP keep-alive. See \fICURLOPT_TCP_KEEPALIVE(3)\fP
213 .IP CURLOPT_TCP_KEEPIDLE
214 Idle time before sending keep-alive. See \fICURLOPT_TCP_KEEPIDLE(3)\fP
215 .IP CURLOPT_TCP_KEEPINTVL
216 Interval between keep-alive probes. See \fICURLOPT_TCP_KEEPINTVL(3)\fP
217 .IP CURLOPT_UNIX_SOCKET_PATH
218 Path to a Unix domain socket. See \fICURLOPT_UNIX_SOCKET_PATH(3)\fP
219 .IP CURLOPT_ABSTRACT_UNIX_SOCKET
220 Path to an abstract Unix domain socket. See \fICURLOPT_ABSTRACT_UNIX_SOCKET(3)\fP
221 .SH NAMES and PASSWORDS OPTIONS (Authentication)
222 .IP CURLOPT_NETRC
223 Enable .netrc parsing. See \fICURLOPT_NETRC(3)\fP
224 .IP CURLOPT_NETRC_FILE
225 \&.netrc file name. See \fICURLOPT_NETRC_FILE(3)\fP
226 .IP CURLOPT_USERPWD
227 User name and password. See \fICURLOPT_USERPWD(3)\fP
228 .IP CURLOPT_PROXYUSERPWD
229 Proxy user name and password. See \fICURLOPT_PROXYUSERPWD(3)\fP
230 .IP CURLOPT_USERNAME
231 User name. See \fICURLOPT_USERNAME(3)\fP
232 .IP CURLOPT_PASSWORD
233 Password. See \fICURLOPT_PASSWORD(3)\fP
234 .IP CURLOPT_LOGIN_OPTIONS
235 Login options. See \fICURLOPT_LOGIN_OPTIONS(3)\fP
236 .IP CURLOPT_PROXYUSERNAME
237 Proxy user name. See \fICURLOPT_PROXYUSERNAME(3)\fP
238 .IP CURLOPT_PROXYPASSWORD
239 Proxy password. See \fICURLOPT_PROXYPASSWORD(3)\fP
240 .IP CURLOPT_HTTPAUTH
241 HTTP server authentication methods. See \fICURLOPT_HTTPAUTH(3)\fP
242 .IP CURLOPT_TLSAUTH_USERNAME
243 TLS authentication user name. See \fICURLOPT_TLSAUTH_USERNAME(3)\fP
244 .IP CURLOPT_PROXY_TLSAUTH_USERNAME
245 Proxy TLS authentication user name. See \fICURLOPT_PROXY_TLSAUTH_USERNAME(3)\fP
246 .IP CURLOPT_TLSAUTH_PASSWORD
247 TLS authentication password. See \fICURLOPT_TLSAUTH_PASSWORD(3)\fP
248 .IP CURLOPT_PROXY_TLSAUTH_PASSWORD
249 Proxy TLS authentication password. See \fICURLOPT_PROXY_TLSAUTH_PASSWORD(3)\fP
250 .IP CURLOPT_TLSAUTH_TYPE
251 TLS authentication methods. See \fICURLOPT_TLSAUTH_TYPE(3)\fP
252 .IP CURLOPT_PROXY_TLSAUTH_TYPE
253 Proxy TLS authentication methods. See \fICURLOPT_PROXY_TLSAUTH_TYPE(3)\fP
254 .IP CURLOPT_PROXYAUTH
255 HTTP proxy authentication methods. See \fICURLOPT_PROXYAUTH(3)\fP
256 .IP CURLOPT_SASL_IR
257 Enable SASL initial response. See \fICURLOPT_SASL_IR(3)\fP
258 .IP CURLOPT_XOAUTH2_BEARER
259 OAuth2 bearer token. See \fICURLOPT_XOAUTH2_BEARER(3)\fP
260 .SH HTTP OPTIONS
261 .IP CURLOPT_AUTOREFERER
262 Automatically set Referer: header. See \fICURLOPT_AUTOREFERER(3)\fP
263 .IP CURLOPT_ACCEPT_ENCODING
264 Accept-Encoding and automatic decompressing data. See \fICURLOPT_ACCEPT_ENCODING(3)\fP
265 .IP CURLOPT_TRANSFER_ENCODING
266 Request Transfer-Encoding. See \fICURLOPT_TRANSFER_ENCODING(3)\fP
267 .IP CURLOPT_FOLLOWLOCATION
268 Follow HTTP redirects. See \fICURLOPT_FOLLOWLOCATION(3)\fP
269 .IP CURLOPT_UNRESTRICTED_AUTH
270 Do not restrict authentication to original host. \fICURLOPT_UNRESTRICTED_AUTH(3)\fP
271 .IP CURLOPT_MAXREDIRS
272 Maximum number of redirects to follow. See \fICURLOPT_MAXREDIRS(3)\fP
273 .IP CURLOPT_POSTREDIR
274 How to act on redirects after POST. See \fICURLOPT_POSTREDIR(3)\fP
275 .IP CURLOPT_PUT
276 Issue a HTTP PUT request. See \fICURLOPT_PUT(3)\fP
277 .IP CURLOPT_POST
278 Issue a HTTP POST request. See \fICURLOPT_POST(3)\fP
279 .IP CURLOPT_POSTFIELDS
280 Send a POST with this data. See \fICURLOPT_POSTFIELDS(3)\fP
281 .IP CURLOPT_POSTFIELDSIZE
282 The POST data is this big. See \fICURLOPT_POSTFIELDSIZE(3)\fP
283 .IP CURLOPT_POSTFIELDSIZE_LARGE
284 The POST data is this big. See \fICURLOPT_POSTFIELDSIZE_LARGE(3)\fP
285 .IP CURLOPT_COPYPOSTFIELDS
286 Send a POST with this data - and copy it. See \fICURLOPT_COPYPOSTFIELDS(3)\fP
287 .IP CURLOPT_HTTPPOST
288 Multipart formpost HTTP POST. See \fICURLOPT_HTTPPOST(3)\fP
289 .IP CURLOPT_REFERER
290 Referer: header. See \fICURLOPT_REFERER(3)\fP
291 .IP CURLOPT_USERAGENT
292 User-Agent: header. See \fICURLOPT_USERAGENT(3)\fP
293 .IP CURLOPT_HTTPHEADER
294 Custom HTTP headers. See \fICURLOPT_HTTPHEADER(3)\fP
295 .IP CURLOPT_HEADEROPT
296 Control custom headers. See \fICURLOPT_HEADEROPT(3)\fP
297 .IP CURLOPT_PROXYHEADER
298 Custom HTTP headers sent to proxy. See \fICURLOPT_PROXYHEADER(3)\fP
299 .IP CURLOPT_HTTP200ALIASES
300 Alternative versions of 200 OK. See \fICURLOPT_HTTP200ALIASES(3)\fP
301 .IP CURLOPT_COOKIE
302 Cookie(s) to send. See \fICURLOPT_COOKIE(3)\fP
303 .IP CURLOPT_COOKIEFILE
304 File to read cookies from. See \fICURLOPT_COOKIEFILE(3)\fP
305 .IP CURLOPT_COOKIEJAR
306 File to write cookies to. See \fICURLOPT_COOKIEJAR(3)\fP
307 .IP CURLOPT_COOKIESESSION
308 Start a new cookie session. See \fICURLOPT_COOKIESESSION(3)\fP
309 .IP CURLOPT_COOKIELIST
310 Add or control cookies. See \fICURLOPT_COOKIELIST(3)\fP
311 .IP CURLOPT_HTTPGET
312 Do a HTTP GET request. See \fICURLOPT_HTTPGET(3)\fP
313 .IP CURLOPT_REQUEST_TARGET
314 Set the request target. \fICURLOPT_REQUEST_TARGET(3)\fP
315 .IP CURLOPT_HTTP_VERSION
316 HTTP version to use. \fICURLOPT_HTTP_VERSION(3)\fP
317 .IP CURLOPT_IGNORE_CONTENT_LENGTH
318 Ignore Content-Length. See \fICURLOPT_IGNORE_CONTENT_LENGTH(3)\fP
319 .IP CURLOPT_HTTP_CONTENT_DECODING
320 Disable Content decoding. See \fICURLOPT_HTTP_CONTENT_DECODING(3)\fP
321 .IP CURLOPT_HTTP_TRANSFER_DECODING
322 Disable Transfer decoding. See \fICURLOPT_HTTP_TRANSFER_DECODING(3)\fP
323 .IP CURLOPT_EXPECT_100_TIMEOUT_MS
324 100-continue timeout. See \fICURLOPT_EXPECT_100_TIMEOUT_MS(3)\fP
325 .IP CURLOPT_PIPEWAIT
326 Wait on connection to pipeline on it. See \fICURLOPT_PIPEWAIT(3)\fP
327 .IP CURLOPT_STREAM_DEPENDS
328 This HTTP/2 stream depends on another. See \fICURLOPT_STREAM_DEPENDS(3)\fP
329 .IP CURLOPT_STREAM_DEPENDS_E
330 This HTTP/2 stream depends on another exclusively. See
331 \fICURLOPT_STREAM_DEPENDS_E(3)\fP
332 .IP CURLOPT_STREAM_WEIGHT
333 Set this HTTP/2 stream's weight. See \fICURLOPT_STREAM_WEIGHT(3)\fP
334 .SH SMTP OPTIONS
335 .IP CURLOPT_MAIL_FROM
336 Address of the sender. See \fICURLOPT_MAIL_FROM(3)\fP
337 .IP CURLOPT_MAIL_RCPT
338 Address of the recipients. See \fICURLOPT_MAIL_RCPT(3)\fP
339 .IP CURLOPT_MAIL_AUTH
340 Authentication address. See \fICURLOPT_MAIL_AUTH(3)\fP
341 .SH TFTP OPTIONS
342 .IP CURLOPT_TFTP_BLKSIZE
343 TFTP block size. See \fICURLOPT_TFTP_BLKSIZE(3)\fP
344 .IP CURLOPT_TFTP_NO_OPTIONS
345 Do not send TFTP options requests. See \fICURLOPT_TFTP_NO_OPTIONS(3)\fP
346 .SH FTP OPTIONS
347 .IP CURLOPT_FTPPORT
348 Use active FTP. See \fICURLOPT_FTPPORT(3)\fP
349 .IP CURLOPT_QUOTE
350 Commands to run before transfer. See \fICURLOPT_QUOTE(3)\fP
351 .IP CURLOPT_POSTQUOTE
352 Commands to run after transfer. See \fICURLOPT_POSTQUOTE(3)\fP
353 .IP CURLOPT_PREQUOTE
354 Commands to run just before transfer. See \fICURLOPT_PREQUOTE(3)\fP
355 .IP CURLOPT_APPEND
356 Append to remote file. See \fICURLOPT_APPEND(3)\fP
357 .IP CURLOPT_FTP_USE_EPRT
358 Use EPTR. See \fICURLOPT_FTP_USE_EPRT(3)\fP
359 .IP CURLOPT_FTP_USE_EPSV
360 Use EPSV. See \fICURLOPT_FTP_USE_EPSV(3)\fP
361 .IP CURLOPT_FTP_USE_PRET
362 Use PRET. See \fICURLOPT_FTP_USE_PRET(3)\fP
363 .IP CURLOPT_FTP_CREATE_MISSING_DIRS
364 Create missing directories on the remote server. See \fICURLOPT_FTP_CREATE_MISSING_DIRS(3)\fP
365 .IP CURLOPT_FTP_RESPONSE_TIMEOUT
366 Timeout for FTP responses. See \fICURLOPT_FTP_RESPONSE_TIMEOUT(3)\fP
367 .IP CURLOPT_FTP_ALTERNATIVE_TO_USER
368 Alternative to USER. See \fICURLOPT_FTP_ALTERNATIVE_TO_USER(3)\fP
369 .IP CURLOPT_FTP_SKIP_PASV_IP
370 Ignore the IP address in the PASV response. See \fICURLOPT_FTP_SKIP_PASV_IP(3)\fP
371 .IP CURLOPT_FTPSSLAUTH
372 Control how to do TLS. See \fICURLOPT_FTPSSLAUTH(3)\fP
373 .IP CURLOPT_FTP_SSL_CCC
374 Back to non-TLS again after authentication. See \fICURLOPT_FTP_SSL_CCC(3)\fP
375 .IP CURLOPT_FTP_ACCOUNT
376 Send ACCT command. See \fICURLOPT_FTP_ACCOUNT(3)\fP
377 .IP CURLOPT_FTP_FILEMETHOD
378 Specify how to reach files. See \fICURLOPT_FTP_FILEMETHOD(3)\fP
379 .SH RTSP OPTIONS
380 .IP CURLOPT_RTSP_REQUEST
381 RTSP request. See \fICURLOPT_RTSP_REQUEST(3)\fP
382 .IP CURLOPT_RTSP_SESSION_ID
383 RTSP session-id. See \fICURLOPT_RTSP_SESSION_ID(3)\fP
384 .IP CURLOPT_RTSP_STREAM_URI
385 RTSP stream URI. See \fICURLOPT_RTSP_STREAM_URI(3)\fP
386 .IP CURLOPT_RTSP_TRANSPORT
387 RTSP Transport: header. See \fICURLOPT_RTSP_TRANSPORT(3)\fP
388 .IP CURLOPT_RTSP_CLIENT_CSEQ
389 Client CSEQ number. See \fICURLOPT_RTSP_CLIENT_CSEQ(3)\fP
390 .IP CURLOPT_RTSP_SERVER_CSEQ
391 CSEQ number for RTSP Server->Client request. See \fICURLOPT_RTSP_SERVER_CSEQ(3)\fP
392 .SH PROTOCOL OPTIONS
393 .IP CURLOPT_TRANSFERTEXT
394 Use text transfer. See \fICURLOPT_TRANSFERTEXT(3)\fP
395 .IP CURLOPT_PROXY_TRANSFER_MODE
396 Add transfer mode to URL over proxy. See \fICURLOPT_PROXY_TRANSFER_MODE(3)\fP
397 .IP CURLOPT_CRLF
398 Convert newlines. See \fICURLOPT_CRLF(3)\fP
399 .IP CURLOPT_RANGE
400 Range requests. See \fICURLOPT_RANGE(3)\fP
401 .IP CURLOPT_RESUME_FROM
402 Resume a transfer. See \fICURLOPT_RESUME_FROM(3)\fP
403 .IP CURLOPT_RESUME_FROM_LARGE
404 Resume a transfer. See \fICURLOPT_RESUME_FROM_LARGE(3)\fP
405 .IP CURLOPT_CUSTOMREQUEST
406 Custom request/method. See \fICURLOPT_CUSTOMREQUEST(3)\fP
407 .IP CURLOPT_FILETIME
408 Request file modification date and time. See \fICURLOPT_FILETIME(3)\fP
409 .IP CURLOPT_DIRLISTONLY
410 List only. See \fICURLOPT_DIRLISTONLY(3)\fP
411 .IP CURLOPT_NOBODY
412 Do not get the body contents. See \fICURLOPT_NOBODY(3)\fP
413 .IP CURLOPT_INFILESIZE
414 Size of file to send. \fICURLOPT_INFILESIZE(3)\fP
415 .IP CURLOPT_INFILESIZE_LARGE
416 Size of file to send. \fICURLOPT_INFILESIZE_LARGE(3)\fP
417 .IP CURLOPT_UPLOAD
418 Upload data. See \fICURLOPT_UPLOAD(3)\fP
419 .IP CURLOPT_MIMEPOST
420 Post/send MIME data. See \fICURLOPT_MIMEPOST(3)\fP
421 .IP CURLOPT_MAXFILESIZE
422 Maximum file size to get. See \fICURLOPT_MAXFILESIZE(3)\fP
423 .IP CURLOPT_MAXFILESIZE_LARGE
424 Maximum file size to get. See \fICURLOPT_MAXFILESIZE_LARGE(3)\fP
425 .IP CURLOPT_TIMECONDITION
426 Make a time conditional request. See \fICURLOPT_TIMECONDITION(3)\fP
427 .IP CURLOPT_TIMEVALUE
428 Time value for the time conditional request. See \fICURLOPT_TIMEVALUE(3)\fP
429 .IP CURLOPT_TIMEVALUE_LARGE
430 Time value for the time conditional request. See \fICURLOPT_TIMEVALUE_LARGE(3)\fP
431 .SH CONNECTION OPTIONS
432 .IP CURLOPT_TIMEOUT
433 Timeout for the entire request. See \fICURLOPT_TIMEOUT(3)\fP
434 .IP CURLOPT_TIMEOUT_MS
435 Millisecond timeout for the entire request. See \fICURLOPT_TIMEOUT_MS(3)\fP
436 .IP CURLOPT_LOW_SPEED_LIMIT
437 Low speed limit to abort transfer. See \fICURLOPT_LOW_SPEED_LIMIT(3)\fP
438 .IP CURLOPT_LOW_SPEED_TIME
439 Time to be below the speed to trigger low speed abort. See \fICURLOPT_LOW_SPEED_TIME(3)\fP
440 .IP CURLOPT_MAX_SEND_SPEED_LARGE
441 Cap the upload speed to this. See \fICURLOPT_MAX_SEND_SPEED_LARGE(3)\fP
442 .IP CURLOPT_MAX_RECV_SPEED_LARGE
443 Cap the download speed to this. See \fICURLOPT_MAX_RECV_SPEED_LARGE(3)\fP
444 .IP CURLOPT_MAXCONNECTS
445 Maximum number of connections in the connection pool. See \fICURLOPT_MAXCONNECTS(3)\fP
446 .IP CURLOPT_FRESH_CONNECT
447 Use a new connection. \fICURLOPT_FRESH_CONNECT(3)\fP
448 .IP CURLOPT_FORBID_REUSE
449 Prevent subsequent connections from re-using this. See \fICURLOPT_FORBID_REUSE(3)\fP
450 .IP CURLOPT_CONNECTTIMEOUT
451 Timeout for the connection phase. See \fICURLOPT_CONNECTTIMEOUT(3)\fP
452 .IP CURLOPT_CONNECTTIMEOUT_MS
453 Millisecond timeout for the connection phase. See \fICURLOPT_CONNECTTIMEOUT_MS(3)\fP
454 .IP CURLOPT_IPRESOLVE
455 IP version to resolve to. See \fICURLOPT_IPRESOLVE(3)\fP
456 .IP CURLOPT_CONNECT_ONLY
457 Only connect, nothing else. See \fICURLOPT_CONNECT_ONLY(3)\fP
458 .IP CURLOPT_USE_SSL
459 Use TLS/SSL. See \fICURLOPT_USE_SSL(3)\fP
460 .IP CURLOPT_RESOLVE
461 Provide fixed/fake name resolves. See \fICURLOPT_RESOLVE(3)\fP
462 .IP CURLOPT_DNS_INTERFACE
463 Bind name resolves to this interface. See \fICURLOPT_DNS_INTERFACE(3)\fP
464 .IP CURLOPT_DNS_LOCAL_IP4
465 Bind name resolves to this IP4 address. See \fICURLOPT_DNS_LOCAL_IP4(3)\fP
466 .IP CURLOPT_DNS_LOCAL_IP6
467 Bind name resolves to this IP6 address. See \fICURLOPT_DNS_LOCAL_IP6(3)\fP
468 .IP CURLOPT_DNS_SERVERS
469 Preferred DNS servers. See \fICURLOPT_DNS_SERVERS(3)\fP
470 .IP CURLOPT_ACCEPTTIMEOUT_MS
471 Timeout for waiting for the server's connect back to be accepted. See \fICURLOPT_ACCEPTTIMEOUT_MS(3)\fP
472 .IP CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
473 Timeout for happy eyeballs. See \fICURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS(3)\fP
474 .SH SSL and SECURITY OPTIONS
475 .IP CURLOPT_SSLCERT
476 Client cert. See \fICURLOPT_SSLCERT(3)\fP
477 .IP CURLOPT_PROXY_SSLCERT
478 Proxy client cert. See \fICURLOPT_PROXY_SSLCERT(3)\fP
479 .IP CURLOPT_SSLCERTTYPE
480 Client cert type.  See \fICURLOPT_SSLCERTTYPE(3)\fP
481 .IP CURLOPT_PROXY_SSLCERTTYPE
482 Proxy client cert type.  See \fICURLOPT_PROXY_SSLCERTTYPE(3)\fP
483 .IP CURLOPT_SSLKEY
484 Client key. See \fICURLOPT_SSLKEY(3)\fP
485 .IP CURLOPT_PROXY_SSLKEY
486 Proxy client key. See \fICURLOPT_PROXY_SSLKEY(3)\fP
487 .IP CURLOPT_SSLKEYTYPE
488 Client key type. See \fICURLOPT_SSLKEYTYPE(3)\fP
489 .IP CURLOPT_PROXY_SSLKEYTYPE
490 Proxy client key type. See \fICURLOPT_PROXY_SSLKEYTYPE(3)\fP
491 .IP CURLOPT_KEYPASSWD
492 Client key password. See \fICURLOPT_KEYPASSWD(3)\fP
493 .IP CURLOPT_PROXY_KEYPASSWD
494 Proxy client key password. See \fICURLOPT_PROXY_KEYPASSWD(3)\fP
495 .IP CURLOPT_SSL_ENABLE_ALPN
496 Enable use of ALPN. See \fICURLOPT_SSL_ENABLE_ALPN(3)\fP
497 .IP CURLOPT_SSL_ENABLE_NPN
498 Enable use of NPN. See \fICURLOPT_SSL_ENABLE_NPN(3)\fP
499 .IP CURLOPT_SSLENGINE
500 Use identifier with SSL engine. See \fICURLOPT_SSLENGINE(3)\fP
501 .IP CURLOPT_SSLENGINE_DEFAULT
502 Default SSL engine. See \fICURLOPT_SSLENGINE_DEFAULT(3)\fP
503 .IP CURLOPT_SSL_FALSESTART
504 Enable TLS False Start. See \fICURLOPT_SSL_FALSESTART(3)\fP
505 .IP CURLOPT_SSLVERSION
506 SSL version to use. See \fICURLOPT_SSLVERSION(3)\fP
507 .IP CURLOPT_PROXY_SSLVERSION
508 Proxy SSL version to use. See \fICURLOPT_PROXY_SSLVERSION(3)\fP
509 .IP CURLOPT_SSL_VERIFYHOST
510 Verify the host name in the SSL certificate. See \fICURLOPT_SSL_VERIFYHOST(3)\fP
511 .IP CURLOPT_PROXY_SSL_VERIFYHOST
512 Verify the host name in the proxy SSL certificate. See \fICURLOPT_PROXY_SSL_VERIFYHOST(3)\fP
513 .IP CURLOPT_SSL_VERIFYPEER
514 Verify the SSL certificate. See \fICURLOPT_SSL_VERIFYPEER(3)\fP
515 .IP CURLOPT_PROXY_SSL_VERIFYPEER
516 Verify the proxy SSL certificate. See \fICURLOPT_PROXY_SSL_VERIFYPEER(3)\fP
517 .IP CURLOPT_SSL_VERIFYSTATUS
518 Verify the SSL certificate's status. See \fICURLOPT_SSL_VERIFYSTATUS(3)\fP
519 .IP CURLOPT_CAINFO
520 CA cert bundle. See \fICURLOPT_CAINFO(3)\fP
521 .IP CURLOPT_PROXY_CAINFO
522 Proxy CA cert bundle. See \fICURLOPT_PROXY_CAINFO(3)\fP
523 .IP CURLOPT_ISSUERCERT
524 Issuer certificate. See \fICURLOPT_ISSUERCERT(3)\fP
525 .IP CURLOPT_CAPATH
526 Path to CA cert bundle. See \fICURLOPT_CAPATH(3)\fP
527 .IP CURLOPT_PROXY_CAPATH
528 Path to proxy CA cert bundle. See \fICURLOPT_PROXY_CAPATH(3)\fP
529 .IP CURLOPT_CRLFILE
530 Certificate Revocation List. See \fICURLOPT_CRLFILE(3)\fP
531 .IP CURLOPT_PROXY_CRLFILE
532 Proxy Certificate Revocation List. See \fICURLOPT_PROXY_CRLFILE(3)\fP
533 .IP CURLOPT_CERTINFO
534 Extract certificate info. See \fICURLOPT_CERTINFO(3)\fP
535 .IP CURLOPT_PINNEDPUBLICKEY
536 Set pinned SSL public key . See \fICURLOPT_PINNEDPUBLICKEY(3)\fP
537 .IP CURLOPT_PROXY_PINNEDPUBLICKEY
538 Set the proxy's pinned SSL public key. See
539 \fICURLOPT_PROXY_PINNEDPUBLICKEY(3)\fP
540 .IP CURLOPT_RANDOM_FILE
541 Provide source for entropy random data. See \fICURLOPT_RANDOM_FILE(3)\fP
542 .IP CURLOPT_EGDSOCKET
543 Identify EGD socket for entropy. See \fICURLOPT_EGDSOCKET(3)\fP
544 .IP CURLOPT_SSL_CIPHER_LIST
545 Ciphers to use. See \fICURLOPT_SSL_CIPHER_LIST(3)\fP
546 .IP CURLOPT_PROXY_SSL_CIPHER_LIST
547 Proxy ciphers to use. See \fICURLOPT_PROXY_SSL_CIPHER_LIST(3)\fP
548 .IP CURLOPT_SSL_SESSIONID_CACHE
549 Disable SSL session-id cache. See \fICURLOPT_SSL_SESSIONID_CACHE(3)\fP
550 .IP CURLOPT_SSL_OPTIONS
551 Control SSL behavior. See \fICURLOPT_SSL_OPTIONS(3)\fP
552 .IP CURLOPT_PROXY_SSL_OPTIONS
553 Control proxy SSL behavior. See \fICURLOPT_PROXY_SSL_OPTIONS(3)\fP
554 .IP CURLOPT_KRBLEVEL
555 Kerberos security level. See \fICURLOPT_KRBLEVEL(3)\fP
556 .IP CURLOPT_GSSAPI_DELEGATION
557 Disable GSS-API delegation. See \fICURLOPT_GSSAPI_DELEGATION(3)\fP
558 .SH SSH OPTIONS
559 .IP CURLOPT_SSH_AUTH_TYPES
560 SSH authentication types. See \fICURLOPT_SSH_AUTH_TYPES(3)\fP
561 .IP CURLOPT_SSH_COMPRESSION
562 Enable SSH compression. See \fICURLOPT_SSH_COMPRESSION(3)\fP
563 .IP CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
564 MD5 of host's public key. See \fICURLOPT_SSH_HOST_PUBLIC_KEY_MD5(3)\fP
565 .IP CURLOPT_SSH_PUBLIC_KEYFILE
566 File name of public key. See \fICURLOPT_SSH_PUBLIC_KEYFILE(3)\fP
567 .IP CURLOPT_SSH_PRIVATE_KEYFILE
568 File name of private key. See \fICURLOPT_SSH_PRIVATE_KEYFILE(3)\fP
569 .IP CURLOPT_SSH_KNOWNHOSTS
570 File name with known hosts. See \fICURLOPT_SSH_KNOWNHOSTS(3)\fP
571 .IP CURLOPT_SSH_KEYFUNCTION
572 Callback for known hosts handling. See \fICURLOPT_SSH_KEYFUNCTION(3)\fP
573 .IP CURLOPT_SSH_KEYDATA
574 Custom pointer to pass to ssh key callback. See \fICURLOPT_SSH_KEYDATA(3)\fP
575 .SH OTHER OPTIONS
576 .IP CURLOPT_PRIVATE
577 Private pointer to store. See \fICURLOPT_PRIVATE(3)\fP
578 .IP CURLOPT_SHARE
579 Share object to use. See \fICURLOPT_SHARE(3)\fP
580 .IP CURLOPT_NEW_FILE_PERMS
581 Mode for creating new remote files. See \fICURLOPT_NEW_FILE_PERMS(3)\fP
582 .IP CURLOPT_NEW_DIRECTORY_PERMS
583 Mode for creating new remote directories. See \fICURLOPT_NEW_DIRECTORY_PERMS(3)\fP
584 .SH TELNET OPTIONS
585 .IP CURLOPT_TELNETOPTIONS
586 TELNET options. See \fICURLOPT_TELNETOPTIONS(3)\fP
587 .SH RETURN VALUE
588 \fICURLE_OK\fP (zero) means that the option was set properly, non-zero means an
589 error occurred as \fI<curl/curl.h>\fP defines. See the \fIlibcurl-errors(3)\fP
590 man page for the full list with descriptions.
591
592 If you try to set an option that libcurl doesn't know about, perhaps because
593 the library is too old to support it or the option was removed in a recent
594 version, this function will return \fICURLE_UNKNOWN_OPTION\fP. If support for
595 the option was disabled at compile-time, it will return
596 \fICURLE_NOT_BUILT_IN\fP.
597 .SH EXAMPLE
598 .nf
599 CURL *curl = curl_easy_init();
600 if(curl) {
601   CURLcode res;
602   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
603   res = curl_easy_perform(curl);
604   curl_easy_cleanup(curl);
605 }
606 .fi
607 .SH "SEE ALSO"
608 .BR curl_easy_init "(3), " curl_easy_cleanup "(3), " curl_easy_reset "(3), "
609 .BR curl_easy_getinfo "(3), " curl_multi_setopt "(3), "