commit 23fd5f8
hovercats
·
2025-10-08 04:08:24 +0000 UTC
parent c895a3f
curl: 8.14.1 | releases after this has bearssl support removed due to lack of tls 1.3
10 files changed,
+1698,
-1117
+1,
-1
1@@ -1,3 +1,3 @@
2-/curl-8.8.0.tar.xz
3+/curl-8.14.1.tar.xz
4 /curl.1.gz
5 /src
+1630,
-960
1@@ -22,9 +22,9 @@
2 .\" *
3 .\" **************************************************************************
4 .\"
5-.\" DO NOT EDIT. Generated by the curl project managen man page generator.
6+.\" DO NOT EDIT. Generated by the curl project managen manpage generator.
7 .\"
8-.TH curl 1 "2024-06-17" "curl 8.8.0" "curl Manual"
9+.TH curl 1 "2025-10-07" "curl 8.14.1" "curl Manual"
10 .SH NAME
11 curl \- transfer a URL
12 .SH SYNOPSIS
13@@ -58,8 +58,8 @@ specified for a single command line invocation and cannot be performed between
14 separate curl runs.
15
16 Provide an IPv6 zone id in the URL with an escaped percentage sign. Like in
17-.nf
18
19+.nf
20 \&"http://[fe80::3%25eth0]/"
21 .fi
22
23@@ -70,40 +70,40 @@ You can specify multiple URLs or parts of URLs by writing lists within braces
24 or ranges within brackets. We call this "globbing".
25
26 Provide a list with three different names like this:
27-.nf
28
29+.nf
30 \&"http://site.{one,two,three}.com"
31 .fi
32
33 Do sequences of alphanumeric series by using [] as in:
34-.nf
35
36+.nf
37 \&"ftp://ftp.example.com/file[1\-100].txt"
38 .fi
39
40 With leading zeroes:
41-.nf
42
43+.nf
44 \&"ftp://ftp.example.com/file[001\-100].txt"
45 .fi
46
47 With letters through the alphabet:
48-.nf
49
50+.nf
51 \&"ftp://ftp.example.com/file[a\-z].txt"
52 .fi
53
54 Nested sequences are not supported, but you can use several ones next to each
55 other:
56-.nf
57
58+.nf
59 \&"http://example.com/archive[1996\-1999]/vol[1\-4]/part{a,b,c}.html"
60 .fi
61
62 You can specify a step counter for the ranges to get every Nth number or
63 letter:
64-.nf
65
66+.nf
67 \&"http://example.com/file[1\-100:10].txt"
68
69 \&"http://example.com/file[a\-z:2].txt"
70@@ -126,17 +126,17 @@ variable "name" inserted, or a blank if the name does not exist as a
71 variable. Insert "{{" verbatim in the string by prefixing it with a backslash,
72 like "\\{{".
73
74-You an access and expand environment variables by first importing them. You
75-can select to either require the environment variable to be set or you can
76-provide a default value in case it is not already set. Plain \fI\-\-variable\fP %name
77-imports the variable called \(aqname\(aq but exits with an error if that environment
78+You access and expand environment variables by first importing them. You
79+select to either require the environment variable to be set or you can provide
80+a default value in case it is not already set. Plain "\fI\-\-variable\fP %name"
81+imports the variable called "name" but exits with an error if that environment
82 variable is not already set. To provide a default value if it is not set, use
83-\fI\-\-variable\fP %name=content or \fI\-\-variable\fP %name@content.
84+\&"\fI\-\-variable\fP %name=content" or "\fI\-\-variable\fP %name@content".
85
86 Example. Get the USER environment variable into the URL, fail if USER is not
87 set:
88-.nf
89
90+.nf
91 -\-variable \(aq%USER\(aq
92 -\-expand\-url = "https://example.com/api/{{USER}}/method"
93 .fi
94@@ -144,16 +144,16 @@ set:
95 When expanding variables, curl supports a set of functions that can make the
96 variable contents more convenient to use. It can trim leading and trailing
97 white space with "trim", it can output the contents as a JSON quoted string
98-with "json", URL encode the string with "url" or base64 encode it with "b64".
99-To apply functions to a variable expansion, add them colon separated to the
100-right side of the variable. Variable content holding null bytes that are not
101-encoded when expanded cause error.
102+with "json", URL encode the string with "url", base64 encode it with "b64" and
103+base64 decode it with "64dec". To apply functions to a variable expansion, add
104+them colon separated to the right side of the variable. Variable content
105+holding null bytes that are not encoded when expanded causes an error.
106
107 Example: get the contents of a file called $HOME/.secret into a variable
108 called "fix". Make sure that the content is trimmed and percent\-encoded when
109 sent as POST data:
110-.nf
111
112+.nf
113 -\-variable %HOME
114 -\-expand\-variable fix@{{HOME}}/.secret
115 -\-expand\-data "{{fix:trim:url}}"
116@@ -194,11 +194,11 @@ without using TLS.
117 .IP LDAP(S)
118 curl can do directory lookups for you, with or without TLS.
119 .IP MQTT
120-curl supports MQTT version 3. Downloading over MQTT equals subscribe to a
121-topic while uploading/posting equals publish on a topic. MQTT over TLS is not
122+curl supports MQTT version 3. Downloading over MQTT equals subscribing to a
123+topic while uploading/posting equals publishing on a topic. MQTT over TLS is not
124 supported (yet).
125 .IP POP3(S)
126-Downloading from a pop3 server means getting a mail. With or without using
127+Downloading from a pop3 server means getting an email. With or without using
128 TLS.
129 .IP RTMP(S)
130 The \fBRealtime Messaging Protocol\fP is primarily used to serve streaming media
131@@ -219,6 +219,8 @@ Fetching a telnet URL starts an interactive session where it sends what it
132 reads on stdin and outputs what the server sends it.
133 .IP TFTP
134 curl can do TFTP downloads and uploads.
135+.IP WS(S)
136+WebSocket done over HTTP/1. WSS implies that it works over HTTPS.
137 .SH PROGRESS METER
138 curl normally displays a progress meter during operations, indicating the
139 amount of transferred data, transfer speeds and estimated time left, etc. The
140@@ -242,14 +244,14 @@ If you prefer a progress bar instead of the regular meter, \fI\-#, \-\-progress\
141 your friend. You can also disable the progress meter completely with the
142 \fI\-s, \-\-silent\fP option.
143 .SH VERSION
144-This man page describes curl 8.8.0. If you use a later version, chances
145+This man page describes curl 8.14.1. If you use a later version, chances
146 are this man page does not fully document it. If you use an earlier version,
147 this document tries to include version information about which specific
148 version that introduced changes.
149
150 You can always learn which the latest curl version is by running
151-.nf
152
153+.nf
154 curl https://curl.se/info
155 .fi
156
157@@ -278,7 +280,12 @@ When \fI\-:, \-\-next\fP is used, it resets the parser state and you start again
158 clean option state, except for the options that are global. Global options
159 retain their values and meaning even after \fI\-:, \-\-next\fP.
160
161-The following options are global: \fI\-\-fail\-early\fP, \fI\-\-libcurl\fP, \fI\-\-parallel\-immediate\fP, \fI\-Z, \-\-parallel\fP, \fI\-#, \-\-progress\-bar\fP, \fI\-\-rate\fP, \fI\-S, \-\-show\-error\fP, \fI\-\-stderr\fP, \fI\-\-styled\-output\fP, \fI\-\-trace\-ascii\fP, \fI\-\-trace\-config\fP, \fI\-\-trace\-ids\fP, \fI\-\-trace\-time\fP, \fI\-\-trace\fP and \fI\-v, \-\-verbose\fP.
162+The first argument that is exactly two dashes ("\--"), marks the end of
163+options; any argument after the end of options is interpreted as a URL
164+argument even if it starts with a dash.
165+
166+The following options are global: \fI\-\-fail\-early\fP, \fI\-\-libcurl\fP, \fI\-\-parallel\-immediate\fP, \fI\-\-parallel\-max\fP, \fI\-Z, \-\-parallel\fP, \fI\-#, \-\-progress\-bar\fP, \fI\-\-rate\fP, \fI\-S, \-\-show\-error\fP, \fI\-\-stderr\fP, \fI\-\-styled\-output\fP, \fI\-\-trace\-ascii\fP, \fI\-\-trace\-config\fP, \fI\-\-trace\-ids\fP, \fI\-\-trace\-time\fP, \fI\-\-trace\fP and \fI\-v, \-\-verbose\fP.
167+.SH ALL OPTIONS
168 .IP "\-\-abstract\-unix\-socket <path>"
169 (HTTP) Connect through an abstract Unix domain socket, instead of using the network.
170 Note: netstat shows the path of an abstract socket prefixed with "@", however
171@@ -288,10 +295,10 @@ If --abstract-unix-socket is provided several times, the last set value is used.
172
173 Example:
174 .nf
175- curl --abstract-unix-socket socketpath https://example.com
176+curl --abstract-unix-socket socketpath https://example.com
177 .fi
178
179-See also \fI\-\-unix\-socket\fP. Added in 7.53.0.
180+See also \fI\-\-unix\-socket\fP.
181 .IP "\-\-alt\-svc <filename>"
182 (HTTPS) Enable the alt\-svc parser. If the filename points to an existing alt\-svc cache
183 file, that gets used. After a completed transfer, the cache is saved to the
184@@ -307,10 +314,10 @@ files but the last one is used for saving.
185
186 Example:
187 .nf
188- curl --alt-svc svc.txt https://example.com
189+curl --alt-svc svc.txt https://example.com
190 .fi
191
192-See also \fI\-\-resolve\fP and \fI\-\-connect\-to\fP. Added in 7.64.1.
193+Added in 7.64.1. See also \fI\-\-resolve\fP and \fI\-\-connect\-to\fP.
194 .IP "\-\-anyauth"
195 (HTTP) Figure out authentication method automatically, and use the most secure one
196 the remote site claims to support. This is done by first doing a request and
197@@ -328,7 +335,7 @@ Providing --anyauth multiple times has no extra effect.
198
199 Example:
200 .nf
201- curl --anyauth --user me:pwd https://example.com
202+curl --anyauth --user me:pwd https://example.com
203 .fi
204
205 See also \fI\-\-proxy\-anyauth\fP, \fI\-\-basic\fP and \fI\-\-digest\fP.
206@@ -343,7 +350,7 @@ Disable it again with \-\-no-append.
207
208 Example:
209 .nf
210- curl --upload-file local --append ftp://example.com/
211+curl --upload-file local --append ftp://example.com/
212 .fi
213
214 See also \fI-r, \-\-range\fP and \fI-C, \-\-continue\-at\fP.
215@@ -364,10 +371,10 @@ If --aws-sigv4 is provided several times, the last set value is used.
216
217 Example:
218 .nf
219- curl --aws-sigv4 "aws:amz:us-east-2:es" --user "key:secret" https://example.com
220+curl --aws-sigv4 "aws:amz:us-east-2:es" --user "key:secret" https://example.com
221 .fi
222
223-See also \fI\-\-basic\fP and \fI-u, \-\-user\fP. Added in 7.75.0.
224+Added in 7.75.0. See also \fI\-\-basic\fP and \fI-u, \-\-user\fP.
225 .IP "\-\-basic"
226 (HTTP) Use HTTP Basic authentication with the remote host. This method is the default
227 and this option is usually pointless, unless you use it to override a
228@@ -380,30 +387,43 @@ Providing --basic multiple times has no extra effect.
229
230 Example:
231 .nf
232- curl -u name:password --basic https://example.com
233+curl -u name:password --basic https://example.com
234 .fi
235
236 See also \fI\-\-proxy\-basic\fP.
237 .IP "\-\-ca\-native"
238-(TLS) Use the CA store from the native operating system to verify the peer. By
239-default, curl otherwise uses a CA store provided in a single file or
240-directory, but when using this option it interfaces the operating system\(aqs own
241-vault.
242+(TLS) Use the operating system\(aqs native CA store for certificate verification.
243+
244+This option is independent of other CA certificate locations set at run time or
245+build time. Those locations are searched in addition to the native CA store.
246+
247+This option works with OpenSSL and its forks (LibreSSL, BoringSSL, etc) on
248+Windows. (Added in 7.71.0)
249
250-This option works for curl on Windows when built to use OpenSSL, wolfSSL
251-(added in 8.3.0) or GnuTLS (added in 8.5.0). When curl on Windows is built to
252-use Schannel, this feature is implied and curl then only uses the native CA
253-store.
254+This option works with wolfSSL on Windows, Linux (Debian, Ubuntu, Gentoo,
255+Fedora, RHEL), macOS, Android and iOS. (Added in 8.3.0)
256+
257+This option works with GnuTLS. (Added in 8.5.0)
258+
259+This option works with rustls on Windows, macOS, Android and iOS. On Linux it
260+is equivalent to using the Mozilla CA certificate bundle. When used with rustls
261+_only_ the native CA store is consulted, not other locations set at run time or
262+build time. (Added in 8.13.0)
263+
264+This option currently has no effect for Schannel or Secure Transport. Those are
265+native TLS libraries from Microsoft and Apple, respectively, that by default
266+use the native CA store for verification unless overridden by a CA certificate
267+location setting.
268
269 Providing --ca-native multiple times has no extra effect.
270 Disable it again with \-\-no-ca-native.
271
272 Example:
273 .nf
274- curl --ca-native https://example.com
275+curl --ca-native https://example.com
276 .fi
277
278-See also \fI\-\-cacert\fP, \fI\-\-capath\fP and \fI-k, \-\-insecure\fP. Added in 8.2.0.
279+Added in 8.2.0. See also \fI\-\-cacert\fP, \fI\-\-capath\fP, \fI\-\-dump\-ca\-embed\fP, \fI-k, \-\-insecure\fP and \fI\-\-proxy\-ca\-native\fP.
280 .IP "\-\-cacert <file>"
281 (TLS) Use the specified certificate file to verify the peer. The file may contain
282 multiple CA certificates. The certificate(s) must be in PEM format. Normally
283@@ -414,10 +434,13 @@ curl recognizes the environment variable named \(aqCURL_CA_BUNDLE\(aq if it is s
284 and the TLS backend is not Schannel, and uses the given path as a path to a CA
285 cert bundle. This option overrides that variable.
286
287-The windows version of curl automatically looks for a CA certs file named
288+(Windows) curl automatically looks for a CA certs file named
289 \(aqcurl\-ca\-bundle.crt\(aq, either in the same directory as curl.exe, or in the
290 Current Working Directory, or in any folder along your PATH.
291
292+curl 8.11.0 added a build\-time option to disable this search behavior, and
293+another option to restrict search to the application\(aqs directory.
294+
295 (iOS and macOS only) If curl is built against Secure Transport, then this
296 option is supported for backward compatibility with other SSL engines, but it
297 should not be set. If the option is not set, then curl uses the certificates
298@@ -433,13 +456,13 @@ If --cacert is provided several times, the last set value is used.
299
300 Example:
301 .nf
302- curl --cacert CA-file.txt https://example.com
303+curl --cacert CA-file.txt https://example.com
304 .fi
305
306-See also \fI\-\-capath\fP and \fI-k, \-\-insecure\fP.
307+See also \fI\-\-capath\fP, \fI\-\-dump\-ca\-embed\fP and \fI-k, \-\-insecure\fP.
308 .IP "\-\-capath <dir>"
309 (TLS) Use the specified certificate directory to verify the peer. Multiple paths can
310-be provided by separated with colon (":") (e.g. "path1:path2:path3"). The
311+be provided by separating them with colon (":") (e.g. "path1:path2:path3"). The
312 certificates must be in PEM format, and if curl is built against OpenSSL, the
313 directory must have been processed using the c_rehash utility supplied with
314 OpenSSL. Using \fI\-\-capath\fP can allow OpenSSL\-powered curl to make SSL\-connections
315@@ -452,10 +475,10 @@ If --capath is provided several times, the last set value is used.
316
317 Example:
318 .nf
319- curl --capath /local/directory https://example.com
320+curl --capath /local/directory https://example.com
321 .fi
322
323-See also \fI\-\-cacert\fP and \fI-k, \-\-insecure\fP.
324+See also \fI\-\-cacert\fP, \fI\-\-dump\-ca\-embed\fP and \fI-k, \-\-insecure\fP.
325 .IP "\-E, \-\-cert <certificate[:password]>"
326 (TLS) Use the specified client certificate file when getting a file with HTTPS, FTPS
327 or another SSL\-based protocol. The certificate must be in PKCS#12 format if
328@@ -470,12 +493,16 @@ In the <certificate> portion of the argument, you must escape the character
329 you must escape the double quote character as \\" so that it is not recognized
330 as an escape character.
331
332-If curl is built against OpenSSL library, and the engine pkcs11 is available,
333-then a PKCS#11 URI (RFC 7512) can be used to specify a certificate located in
334-a PKCS#11 device. A string beginning with "pkcs11:" is interpreted as a
335-PKCS#11 URI. If a PKCS#11 URI is provided, then the \fI\-\-engine\fP option is set as
336-\&"pkcs11" if none was provided and the \fI\-\-cert\-type\fP option is set as "ENG" if
337-none was provided.
338+If curl is built against OpenSSL, and the engine pkcs11 or pkcs11
339+provider is available, then a PKCS#11 URI (RFC 7512) can be used to specify a
340+certificate located in a PKCS#11 device. A string beginning with "pkcs11:" is
341+interpreted as a PKCS#11 URI. If a PKCS#11 URI is provided, then the \fI\-\-engine\fP
342+option is set as "pkcs11" if none was provided and the \fI\-\-cert\-type\fP option is
343+set as "ENG" or "PROV" if none was provided (depending on OpenSSL version).
344+
345+If curl is built against GnuTLS, a PKCS#11 URI can be used to specify
346+a certificate located in a PKCS#11 device. A string beginning with "pkcs11:"
347+is interpreted as a PKCS#11 URI.
348
349 (iOS and macOS only) If curl is built against Secure Transport, then the
350 certificate string can either be the name of a certificate/private key in the
351@@ -497,7 +524,7 @@ If --cert is provided several times, the last set value is used.
352
353 Example:
354 .nf
355- curl --cert certfile --key keyfile https://example.com
356+curl --cert certfile --key keyfile https://example.com
357 .fi
358
359 See also \fI\-\-cert\-type\fP, \fI\-\-key\fP and \fI\-\-key\-type\fP.
360@@ -516,29 +543,30 @@ Disable it again with \-\-no-cert-status.
361
362 Example:
363 .nf
364- curl --cert-status https://example.com
365+curl --cert-status https://example.com
366 .fi
367
368 See also \fI\-\-pinnedpubkey\fP.
369 .IP "\-\-cert\-type <type>"
370-(TLS) Set type of the provided client certificate. PEM, DER, ENG and P12 are
371+(TLS) Set type of the provided client certificate. PEM, DER, ENG, PROV and P12 are
372 recognized types.
373
374 The default type depends on the TLS backend and is usually PEM, however for
375-Secure Transport and Schannel it is P12. If \fI\-E, \-\-cert\fP is a pkcs11: URI then ENG is
376-the default type.
377+Secure Transport and Schannel it is P12. If \fI\-E, \-\-cert\fP is a pkcs11: URI then ENG
378+or PROV is the default type (depending on OpenSSL version).
379
380 If --cert-type is provided several times, the last set value is used.
381
382 Example:
383 .nf
384- curl --cert-type PEM --cert file https://example.com
385+curl --cert-type PEM --cert file https://example.com
386 .fi
387
388 See also \fI-E, \-\-cert\fP, \fI\-\-key\fP and \fI\-\-key\-type\fP.
389-.IP "\-\-ciphers <list of ciphers>"
390-(TLS) Specifies which ciphers to use in the connection. The list of ciphers must
391-specify valid ciphers. Read up on SSL cipher list details on this URL:
392+.IP "\-\-ciphers <list>"
393+(TLS) Specify which cipher suites to use in the connection if it negotiates TLS 1.2
394+(1.1, 1.0). The list of ciphers suites must specify valid ciphers. Read up on
395+cipher suite details on this URL:
396
397 https://curl.se/docs/ssl\-ciphers.html
398
399@@ -546,10 +574,10 @@ If --ciphers is provided several times, the last set value is used.
400
401 Example:
402 .nf
403- curl --ciphers ECDHE-ECDSA-AES256-CCM8 https://example.com
404+curl --ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256 https://example.com
405 .fi
406
407-See also \fI\-\-tlsv1.3\fP, \fI\-\-tls13\-ciphers\fP and \fI\-\-proxy\-ciphers\fP.
408+See also \fI\-\-tls13\-ciphers\fP, \fI\-\-proxy\-ciphers\fP and \fI\-\-curves\fP.
409 .IP "\-\-compressed"
410 (HTTP) Request a compressed response using one of the algorithms curl supports, and
411 automatically decompress the content.
412@@ -567,23 +595,23 @@ Disable it again with \-\-no-compressed.
413
414 Example:
415 .nf
416- curl --compressed https://example.com
417+curl --compressed https://example.com
418 .fi
419
420 See also \fI\-\-compressed\-ssh\fP.
421 .IP "\-\-compressed\-ssh"
422-(SCP SFTP) Enables built\-in SSH compression. This is a request, not an order; the server
423-may or may not do it.
424+(SCP SFTP) Enable SSH compression. This is a request, not an order; the server may or may
425+not do it.
426
427 Providing --compressed-ssh multiple times has no extra effect.
428 Disable it again with \-\-no-compressed-ssh.
429
430 Example:
431 .nf
432- curl --compressed-ssh sftp://example.com/
433+curl --compressed-ssh sftp://example.com/
434 .fi
435
436-See also \fI\-\-compressed\fP. Added in 7.56.0.
437+See also \fI\-\-compressed\fP.
438 .IP "\-K, \-\-config <file>"
439 Specify a text file to read curl arguments from. The command line arguments
440 found in the text file are used as if they were provided on the command
441@@ -613,8 +641,8 @@ stdin.
442 Note that to be able to specify a URL in the config file, you need to specify
443 it using the \fI\-\-url\fP option, and not by simply writing the URL on its own
444 line. So, it could look similar to this:
445-.nf
446
447+.nf
448 url = "https://curl.se/docs/"
449
450 # \--\- Example file \--\-
451@@ -658,7 +686,7 @@ preferring the former. Older versions on Windows checked for \fI_curlrc\fP only.
452
453 Example:
454 .nf
455- curl --config file.txt https://example.com
456+curl --config file.txt https://example.com
457 .fi
458
459 See also \fI-q, \-\-disable\fP.
460@@ -678,8 +706,8 @@ If --connect-timeout is provided several times, the last set value is used.
461
462 Examples:
463 .nf
464- curl --connect-timeout 20 https://example.com
465- curl --connect-timeout 3.14 https://example.com
466+curl --connect-timeout 20 https://example.com
467+curl --connect-timeout 3.14 https://example.com
468 .fi
469
470 See also \fI-m, \-\-max\-time\fP.
471@@ -694,14 +722,28 @@ certificate verification) or for the application protocols.
472 original hostname and port number.
473
474 A hostname specified to this option is compared as a string, so it needs to
475-match the name used in request URL. It can be either numerical such as
476+match the name used in the request URL. It can be either numerical such as
477 \&"127.0.0.1" or the full host name such as "example.org".
478
479+Example: redirect connects from the example.com hostname to 127.0.0.1
480+independently of port number:
481+
482+.nf
483+curl \--connect\-to example.com::127.0.0.1: https://example.com/
484+.fi
485+
486+Example: redirect connects from all hostnames to 127.0.0.1 independently of
487+port number:
488+
489+.nf
490+curl \--connect\-to ::127.0.0.1: http://example.com/
491+.fi
492+
493 --connect-to can be used several times in a command line
494
495 Example:
496 .nf
497- curl --connect-to example.com:443:example.net:8443 https://example.com
498+curl --connect-to example.com:443:example.net:8443 https://example.com
499 .fi
500
501 See also \fI\-\-resolve\fP and \fI-H, \-\-header\fP.
502@@ -714,30 +756,42 @@ the FTP server command SIZE is not used by curl.
503 Use "\-C \-" to instruct curl to automatically find out where/how to resume the
504 transfer. It then uses the given output/input files to figure that out.
505
506+When using this option for HTTP uploads using POST or PUT, functionality is
507+not guaranteed. The HTTP protocol has no standard interoperable resume upload
508+and curl uses a set of headers for this purpose that once proved working for
509+some servers and have been left for those who find that useful.
510+
511+This command line option is mutually exclusive with \fI\-r, \-\-range\fP: you can only use
512+one of them for a single transfer.
513+
514+The \fI\-\-no\-clobber\fP and \fI\-\-remove\-on\-error\fP options cannot be used together with
515+\fI\-C, \-\-continue\-at\fP.
516+
517 If --continue-at is provided several times, the last set value is used.
518
519 Examples:
520 .nf
521- curl -C - https://example.com
522- curl -C 400 https://example.com
523+curl -C - https://example.com
524+curl -C 400 https://example.com
525 .fi
526
527 See also \fI-r, \-\-range\fP.
528 .IP "\-b, \-\-cookie <data|filename>"
529-(HTTP) Pass the data to the HTTP server in the Cookie header. It is supposedly the
530-data previously received from the server in a "Set\-Cookie:" line. The data
531-should be in the format "NAME1=VALUE1; NAME2=VALUE2" or as a single filename.
532-
533-When given a set of specific cookies and not a filename, it makes curl use the
534-cookie header with this content explicitly in all outgoing request(s). If
535-multiple requests are done due to authentication, followed redirects or
536-similar, they all get this cookie header passed on.
537-
538-If no "=" symbol is used in the argument, it is instead treated as a filename
539-to read previously stored cookie from. This option also activates the cookie
540-engine which makes curl record incoming cookies, which may be handy if you are
541-using this in combination with the \fI\-L, \-\-location\fP option or do multiple URL
542-transfers on the same invoke.
543+(HTTP) This option has two slightly separate cookie sending functions.
544+
545+Either: pass the exact data to send to the HTTP server in the Cookie header.
546+It is supposedly data previously received from the server in a "Set\-Cookie:"
547+line. The data should be in the format "NAME1=VALUE1; NAME2=VALUE2". When
548+given a set of specific cookies, curl populates its cookie header with this
549+content explicitly in all outgoing request(s). If multiple requests are done
550+due to authentication, followed redirects or similar, they all get this cookie
551+header passed on.
552+
553+Or: If no "=" symbol is used in the argument, it is instead treated as a
554+filename to read previously stored cookie from. This option also activates the
555+cookie engine which makes curl record incoming cookies, which may be handy if
556+you are using this in combination with the \fI\-L, \-\-location\fP option or do multiple
557+URL transfers on the same invoke.
558
559 If the filename is a single minus ("\-"), curl reads the contents from stdin.
560 If the filename is an empty string ("") and is the only cookie input, curl
561@@ -767,16 +821,16 @@ ability to stop super cookies.
562
563 Examples:
564 .nf
565- curl -b "" https://example.com
566- curl -b cookiefile https://example.com
567- curl -b cookiefile -c cookiefile https://example.com
568- curl -b name=Jane https://example.com
569+curl -b "" https://example.com
570+curl -b cookiefile https://example.com
571+curl -b cookiefile -c cookiefile https://example.com
572+curl -b name=Jane https://example.com
573 .fi
574
575 See also \fI-c, \-\-cookie\-jar\fP and \fI-j, \-\-junk\-session\-cookies\fP.
576 .IP "\-c, \-\-cookie\-jar <filename>"
577 (HTTP) Specify to which file you want curl to write all cookies after a completed
578-operation. Curl writes all cookies from its in\-memory cookie storage to the
579+operation. curl writes all cookies from its in\-memory cookie storage to the
580 given file at the end of operations. Even if no cookies are known, a file is
581 created so that it removes any formerly existing cookies from the file. The
582 file uses the Netscape cookie file format. If you set the filename to a single
583@@ -798,11 +852,11 @@ If --cookie-jar is provided several times, the last set value is used.
584
585 Examples:
586 .nf
587- curl -c store-here.txt https://example.com
588- curl -c store-here.txt -b read-these https://example.com
589+curl -c store-here.txt https://example.com
590+curl -c store-here.txt -b read-these https://example.com
591 .fi
592
593-See also \fI-b, \-\-cookie\fP.
594+See also \fI-b, \-\-cookie\fP and \fI-j, \-\-junk\-session\-cookies\fP.
595 .IP "\-\-create\-dirs"
596 When used in conjunction with the \fI\-o, \-\-output\fP option, curl creates the necessary
597 local directory hierarchy as needed. This option creates the directories
598@@ -810,7 +864,7 @@ mentioned with the \fI\-o, \-\-output\fP option combined with the path possibly
599 \fI\-\-output\-dir\fP. If the combined output filename uses no directory, or if the
600 directories it mentions already exist, no directories are created.
601
602-Created directories are made with mode 0750 on unix style file systems.
603+Created directories are made with mode 0750 on Unix\-style file systems.
604
605 To create remote directories when using FTP or SFTP, try \fI\-\-ftp\-create\-dirs\fP.
606
607@@ -819,7 +873,7 @@ Disable it again with \-\-no-create-dirs.
608
609 Example:
610 .nf
611- curl --create-dirs --output local/dir/file https://example.com
612+curl --create-dirs --output local/dir/file https://example.com
613 .fi
614
615 See also \fI\-\-ftp\-create\-dirs\fP and \fI\-\-output\-dir\fP.
616@@ -834,22 +888,20 @@ If --create-file-mode is provided several times, the last set value is used.
617
618 Example:
619 .nf
620- curl --create-file-mode 0777 -T localfile sftp://example.com/new
621+curl --create-file-mode 0777 -T localfile sftp://example.com/new
622 .fi
623
624-See also \fI\-\-ftp\-create\-dirs\fP. Added in 7.75.0.
625+Added in 7.75.0. See also \fI\-\-ftp\-create\-dirs\fP.
626 .IP "\-\-crlf"
627 (FTP SMTP) Convert line feeds to carriage return plus line feeds in upload. Useful for
628 \fBMVS (OS/390)\fP.
629
630-(SMTP added in 7.40.0)
631-
632 Providing --crlf multiple times has no extra effect.
633 Disable it again with \-\-no-crlf.
634
635 Example:
636 .nf
637- curl --crlf -T file ftp://example.com/
638+curl --crlf -T file ftp://example.com/
639 .fi
640
641 See also \fI-B, \-\-use\-ascii\fP.
642@@ -861,7 +913,7 @@ If --crlfile is provided several times, the last set value is used.
643
644 Example:
645 .nf
646- curl --crlfile rejects.txt https://example.com
647+curl --crlfile rejects.txt https://example.com
648 .fi
649
650 See also \fI\-\-cacert\fP and \fI\-\-capath\fP.
651@@ -881,15 +933,15 @@ If --curves is provided several times, the last set value is used.
652
653 Example:
654 .nf
655- curl --curves X25519 https://example.com
656+curl --curves X25519 https://example.com
657 .fi
658
659-See also \fI\-\-ciphers\fP. Added in 7.73.0.
660+Added in 7.73.0. See also \fI\-\-ciphers\fP.
661 .IP "\-d, \-\-data <data>"
662-(HTTP MQTT) Sends the specified data in a POST request to the HTTP server, in the same way
663+(HTTP MQTT) Send the specified data in a POST request to the HTTP server, in the same way
664 that a browser does when a user has filled in an HTML form and presses the
665 submit button. This option makes curl pass the data to the server using the
666-content\-type application/x\-www\-form\-urlencoded. Compare to \fI\-F, \-\-form\fP.
667+content\-type application/x\-www\-form\-urlencoded. Compared to \fI\-F, \-\-form\fP.
668
669 \fI\-\-data\-raw\fP is almost the same but does not have a special interpretation of
670 the @ character. To post data purely binary, you should instead use the
671@@ -916,12 +968,13 @@ user to provide the data in the correct form.
672
673 Examples:
674 .nf
675- curl -d "name=curl" https://example.com
676- curl -d "name=curl" -d "tool=cmdline" https://example.com
677- curl -d @filename https://example.com
678+curl -d "name=curl" https://example.com
679+curl -d "name=curl" -d "tool=cmdline" https://example.com
680+curl -d @filename https://example.com
681 .fi
682
683-See also \fI\-\-data\-binary\fP, \fI\-\-data\-urlencode\fP and \fI\-\-data\-raw\fP. This option is mutually exclusive to \fI-F, \-\-form\fP and \fI-I, \-\-head\fP and \fI-T, \-\-upload\-file\fP.
684+This option is mutually exclusive with \fI-F, \-\-form\fP, \fI-I, \-\-head\fP and \fI-T, \-\-upload\-file\fP.
685+See also \fI\-\-data\-binary\fP, \fI\-\-data\-urlencode\fP and \fI\-\-data\-raw\fP.
686 .IP "\-\-data\-ascii <data>"
687 (HTTP) This option is just an alias for \fI\-d, \-\-data\fP.
688
689@@ -929,16 +982,17 @@ See also \fI\-\-data\-binary\fP, \fI\-\-data\-urlencode\fP and \fI\-\-data\-raw\
690
691 Example:
692 .nf
693- curl --data-ascii @file https://example.com
694+curl --data-ascii @file https://example.com
695 .fi
696
697 See also \fI\-\-data\-binary\fP, \fI\-\-data\-raw\fP and \fI\-\-data\-urlencode\fP.
698 .IP "\-\-data\-binary <data>"
699 (HTTP) Post data exactly as specified with no extra processing whatsoever.
700
701-If you start the data with the letter @, the rest should be a filename. Data
702-is posted in a similar manner as \fI\-d, \-\-data\fP does, except that newlines and
703-carriage returns are preserved and conversions are never done.
704+If you start the data with the letter @, the rest should be a filename.
705+\&"@\-" makes curl read the data from stdin. Data is posted in a similar
706+manner as \fI\-d, \-\-data\fP does, except that newlines and carriage returns are
707+preserved and conversions are never done.
708
709 Like \fI\-d, \-\-data\fP the default content\-type sent to the server is
710 application/x\-www\-form\-urlencoded. If you want the data to be treated as
711@@ -952,7 +1006,7 @@ data as described in \fI\-d, \-\-data\fP.
712
713 Example:
714 .nf
715- curl --data-binary @filename https://example.com
716+curl --data-binary @filename https://example.com
717 .fi
718
719 See also \fI\-\-data\-ascii\fP.
720@@ -964,8 +1018,8 @@ character.
721
722 Examples:
723 .nf
724- curl --data-raw "hello" https://example.com
725- curl --data-raw "@at@at@" https://example.com
726+curl --data-raw "hello" https://example.com
727+curl --data-raw "@at@at@" https://example.com
728 .fi
729
730 See also \fI-d, \-\-data\fP.
731@@ -980,7 +1034,7 @@ curl using one of the following syntaxes:
732 .IP content
733 URL\-encode the content and pass that on. Just be careful so that the content
734 does not contain any "=" or "@" symbols, as that makes the syntax match one of
735-the other cases below!
736+the other cases below.
737 .IP =content
738 URL\-encode the content and pass that on. The preceding "=" symbol is not
739 included in the data.
740@@ -989,7 +1043,7 @@ URL\-encode the content part and pass that on. Note that the name part is
741 expected to be URL\-encoded already.
742 .IP @filename
743 load data from the given file (including any newlines), URL\-encode that data
744-and pass it on in the POST.
745+and pass it on in the POST. Using "@\-" makes curl read the data from stdin.
746 .IP name@filename
747 load data from the given file (including any newlines), URL\-encode that data
748 and pass it on in the POST. The name part gets an equal sign appended,
749@@ -1002,10 +1056,10 @@ be URL\-encoded already.
750
751 Examples:
752 .nf
753- curl --data-urlencode name=val https://example.com
754- curl --data-urlencode =encodethis https://example.com
755- curl --data-urlencode name@file https://example.com
756- curl --data-urlencode @fileonly https://example.com
757+curl --data-urlencode name=val https://example.com
758+curl --data-urlencode =encodethis https://example.com
759+curl --data-urlencode name@file https://example.com
760+curl --data-urlencode @fileonly https://example.com
761 .fi
762
763 See also \fI-d, \-\-data\fP and \fI\-\-data\-raw\fP.
764@@ -1026,12 +1080,12 @@ If --delegation is provided several times, the last set value is used.
765
766 Example:
767 .nf
768- curl --delegation "none" https://example.com
769+curl --delegation "none" https://example.com
770 .fi
771
772 See also \fI-k, \-\-insecure\fP and \fI\-\-ssl\fP.
773 .IP "\-\-digest"
774-(HTTP) Enables HTTP Digest authentication. This authentication scheme avoids sending
775+(HTTP) Enable HTTP Digest authentication. This authentication scheme avoids sending
776 the password over the wire in clear text. Use this in combination with the
777 normal \fI\-u, \-\-user\fP option to set username and password.
778
779@@ -1040,30 +1094,28 @@ Disable it again with \-\-no-digest.
780
781 Example:
782 .nf
783- curl -u name:password --digest https://example.com
784+curl -u name:password --digest https://example.com
785 .fi
786
787-See also \fI-u, \-\-user\fP, \fI\-\-proxy\-digest\fP and \fI\-\-anyauth\fP. This option is mutually exclusive to \fI\-\-basic\fP and \fI\-\-ntlm\fP and \fI\-\-negotiate\fP.
788+This option is mutually exclusive with \fI\-\-basic\fP, \fI\-\-ntlm\fP and \fI\-\-negotiate\fP.
789+See also \fI-u, \-\-user\fP, \fI\-\-proxy\-digest\fP and \fI\-\-anyauth\fP.
790 .IP "\-q, \-\-disable"
791 If used as the \fBfirst\fP parameter on the command line, the \fIcurlrc\fP config
792 file is not read or used. See the \fI\-K, \-\-config\fP for details on the default config
793 file search path.
794
795-Prior to 7.50.0 curl supported the short option name \fIq\fP but not the long
796-option name \fIdisable\fP.
797-
798 Providing --disable multiple times has no extra effect.
799 Disable it again with \-\-no-disable.
800
801 Example:
802 .nf
803- curl -q https://example.com
804+curl -q https://example.com
805 .fi
806
807 See also \fI-K, \-\-config\fP.
808 .IP "\-\-disable\-eprt"
809 (FTP) Disable the use of the EPRT and LPRT commands when doing active FTP transfers.
810-Curl normally first attempts to use EPRT before using PORT, but with this
811+curl normally first attempts to use EPRT before using PORT, but with this
812 option, it uses PORT right away. EPRT is an extension to the original FTP
813 protocol, and does not work on all servers, but enables more functionality in
814 a better way than the traditional PORT command.
815@@ -1082,12 +1134,12 @@ Disable it again with \-\-no-disable-eprt.
816
817 Example:
818 .nf
819- curl --disable-eprt ftp://example.com/
820+curl --disable-eprt ftp://example.com/
821 .fi
822
823 See also \fI\-\-disable\-epsv\fP and \fI-P, \-\-ftp\-port\fP.
824 .IP "\-\-disable\-epsv"
825-(FTP) Disable the use of the EPSV command when doing passive FTP transfers. Curl
826+(FTP) Disable the use of the EPSV command when doing passive FTP transfers. curl
827 normally first attempts to use EPSV before PASV, but with this option, it does
828 not try EPSV.
829
830@@ -1105,7 +1157,7 @@ Disable it again with \-\-no-disable-epsv.
831
832 Example:
833 .nf
834- curl --disable-epsv ftp://example.com/
835+curl --disable-epsv ftp://example.com/
836 .fi
837
838 See also \fI\-\-disable\-eprt\fP and \fI-P, \-\-ftp\-port\fP.
839@@ -1118,10 +1170,10 @@ Disable it again with \-\-no-disallow-username-in-url.
840
841 Example:
842 .nf
843- curl --disallow-username-in-url https://example.com
844+curl --disallow-username-in-url https://example.com
845 .fi
846
847-See also \fI\-\-proto\fP. Added in 7.61.0.
848+Added in 7.61.0. See also \fI\-\-proto\fP.
849 .IP "\-\-dns\-interface <interface>"
850 (DNS) Send outgoing DNS requests through the given interface. This option is a
851 counterpart to \fI\-\-interface\fP (which does not affect DNS). The supplied string
852@@ -1131,10 +1183,11 @@ If --dns-interface is provided several times, the last set value is used.
853
854 Example:
855 .nf
856- curl --dns-interface eth0 https://example.com
857+curl --dns-interface eth0 https://example.com
858 .fi
859
860-See also \fI\-\-dns\-ipv4\-addr\fP and \fI\-\-dns\-ipv6\-addr\fP. \fI\-\-dns\-interface\fP requires that the underlying libcurl was built to support c-ares.
861+\fI\-\-dns\-interface\fP requires that libcurl is built to support c-ares.
862+See also \fI\-\-dns\-ipv4\-addr\fP and \fI\-\-dns\-ipv6\-addr\fP.
863 .IP "\-\-dns\-ipv4\-addr <address>"
864 (DNS) Bind to a specific IP address when making IPv4 DNS requests, so that the DNS
865 requests originate from this address. The argument should be a single IPv4
866@@ -1144,10 +1197,11 @@ If --dns-ipv4-addr is provided several times, the last set value is used.
867
868 Example:
869 .nf
870- curl --dns-ipv4-addr 10.1.2.3 https://example.com
871+curl --dns-ipv4-addr 10.1.2.3 https://example.com
872 .fi
873
874-See also \fI\-\-dns\-interface\fP and \fI\-\-dns\-ipv6\-addr\fP. \fI\-\-dns\-ipv4\-addr\fP requires that the underlying libcurl was built to support c-ares.
875+\fI\-\-dns\-ipv4\-addr\fP requires that libcurl is built to support c-ares.
876+See also \fI\-\-dns\-interface\fP and \fI\-\-dns\-ipv6\-addr\fP.
877 .IP "\-\-dns\-ipv6\-addr <address>"
878 (DNS) Bind to a specific IP address when making IPv6 DNS requests, so that the DNS
879 requests originate from this address. The argument should be a single IPv6
880@@ -1157,10 +1211,11 @@ If --dns-ipv6-addr is provided several times, the last set value is used.
881
882 Example:
883 .nf
884- curl --dns-ipv6-addr 2a04:4e42::561 https://example.com
885+curl --dns-ipv6-addr 2a04:4e42::561 https://example.com
886 .fi
887
888-See also \fI\-\-dns\-interface\fP and \fI\-\-dns\-ipv4\-addr\fP. \fI\-\-dns\-ipv6\-addr\fP requires that the underlying libcurl was built to support c-ares.
889+\fI\-\-dns\-ipv6\-addr\fP requires that libcurl is built to support c-ares.
890+See also \fI\-\-dns\-interface\fP and \fI\-\-dns\-ipv4\-addr\fP.
891 .IP "\-\-dns\-servers <addresses>"
892 (DNS) Set the list of DNS servers to be used instead of the system default. The list
893 of IP addresses should be separated with commas. Port numbers may also
894@@ -1170,15 +1225,16 @@ If --dns-servers is provided several times, the last set value is used.
895
896 Examples:
897 .nf
898- curl --dns-servers 192.168.0.1,192.168.0.2 https://example.com
899- curl --dns-servers 10.0.0.1:53 https://example.com
900+curl --dns-servers 192.168.0.1,192.168.0.2 https://example.com
901+curl --dns-servers 10.0.0.1:53 https://example.com
902 .fi
903
904-See also \fI\-\-dns\-interface\fP and \fI\-\-dns\-ipv4\-addr\fP. \fI\-\-dns\-servers\fP requires that the underlying libcurl was built to support c-ares.
905+\fI\-\-dns\-servers\fP requires that libcurl is built to support c-ares.
906+See also \fI\-\-dns\-interface\fP and \fI\-\-dns\-ipv4\-addr\fP.
907 .IP "\-\-doh\-cert\-status"
908 Same as \fI\-\-cert\-status\fP but used for DoH (DNS\-over\-HTTPS).
909
910-Verifies the status of the DoH servers\(aq certificate by using the Certificate
911+Verify the status of the DoH servers\(aq certificate by using the Certificate
912 Status Request (aka. OCSP stapling) TLS extension.
913
914 If this option is enabled and the DoH server sends an invalid (e.g. expired)
915@@ -1192,95 +1248,125 @@ Disable it again with \-\-no-doh-cert-status.
916
917 Example:
918 .nf
919- curl --doh-cert-status --doh-url https://doh.example https://example.com
920+curl --doh-cert-status --doh-url https://doh.example https://example.com
921 .fi
922
923-See also \fI\-\-doh\-insecure\fP. Added in 7.76.0.
924+Added in 7.76.0. See also \fI\-\-doh\-insecure\fP.
925 .IP "\-\-doh\-insecure"
926-Same as \fI\-k, \-\-insecure\fP but used for DoH (DNS\-over\-HTTPS).
927+By default, every connection curl makes to a DoH server is verified to be
928+secure before the transfer takes place. This option tells curl to skip the
929+verification step and proceed without checking.
930+
931+\fBWARNING\fP: using this option makes the DoH transfer and name resolution
932+insecure.
933+
934+This option is equivalent to \fI\-k, \-\-insecure\fP and \fI\-\-proxy\-insecure\fP but used for DoH
935+(DNS\-over\-HTTPS) only.
936
937 Providing --doh-insecure multiple times has no extra effect.
938 Disable it again with \-\-no-doh-insecure.
939
940 Example:
941 .nf
942- curl --doh-insecure --doh-url https://doh.example https://example.com
943+curl --doh-insecure --doh-url https://doh.example https://example.com
944 .fi
945
946-See also \fI\-\-doh\-url\fP. Added in 7.76.0.
947+Added in 7.76.0. See also \fI\-\-doh\-url\fP, \fI-k, \-\-insecure\fP and \fI\-\-proxy\-insecure\fP.
948 .IP "\-\-doh\-url <URL>"
949-Specifies which DNS\-over\-HTTPS (DoH) server to use to resolve hostnames,
950-instead of using the default name resolver mechanism. The URL must be HTTPS.
951+Specify which DNS\-over\-HTTPS (DoH) server to use to resolve hostnames, instead
952+of using the default name resolver mechanism. The URL must be HTTPS.
953
954-Some SSL options that you set for your transfer also applies to DoH since the
955+Some SSL options that you set for your transfer also apply to DoH since the
956 name lookups take place over SSL. However, the certificate verification
957 settings are not inherited but are controlled separately via \fI\-\-doh\-insecure\fP
958 and \fI\-\-doh\-cert\-status\fP.
959
960+By default, DoH is bypassed when initially looking up DNS records of the DoH server. You can specify the IP address(es) of the DoH server with \fI\-\-resolve\fP to avoid this.
961+
962 This option is unset if an empty string "" is used as the URL.
963 (Added in 7.85.0)
964
965 If --doh-url is provided several times, the last set value is used.
966
967+Examples:
968+.nf
969+curl --doh-url https://doh.example https://example.com
970+curl --doh-url https://doh.example --resolve doh.example:443:192.0.2.1 https://example.com
971+.fi
972+
973+Added in 7.62.0. See also \fI\-\-doh\-insecure\fP.
974+.IP "\-\-dump\-ca\-embed"
975+(TLS) Write the CA bundle embedded in curl to standard output, then quit.
976+
977+If curl was not built with a default CA bundle embedded, the output is empty.
978+
979+Providing --dump-ca-embed multiple times has no extra effect.
980+Disable it again with \-\-no-dump-ca-embed.
981+
982 Example:
983 .nf
984- curl --doh-url https://doh.example https://example.com
985+curl --dump-ca-embed
986 .fi
987
988-See also \fI\-\-doh\-insecure\fP. Added in 7.62.0.
989+Added in 8.10.0. See also \fI\-\-ca\-native\fP, \fI\-\-cacert\fP, \fI\-\-capath\fP, \fI\-\-proxy\-ca\-native\fP, \fI\-\-proxy\-cacert\fP and \fI\-\-proxy\-capath\fP.
990 .IP "\-D, \-\-dump\-header <filename>"
991 (HTTP FTP) Write the received protocol headers to the specified file. If no headers are
992-received, the use of this option creates an empty file.
993+received, the use of this option creates an empty file. Specify "\-" as
994+filename (a single minus) to have it written to stdout.
995+
996+Starting in curl 8.10.0, specify "%" (a single percent sign) as filename
997+writes the output to stderr.
998
999 When used in FTP, the FTP server response lines are considered being "headers"
1000 and thus are saved there.
1001
1002+Starting in curl 8.11.0, using the \fI\-\-create\-dirs\fP option can also create
1003+missing directory components for the path provided in \fI\-D, \-\-dump\-header\fP.
1004+
1005 Having multiple transfers in one set of operations (i.e. the URLs in one
1006 \fI\-:, \-\-next\fP clause), appends them to the same file, separated by a blank line.
1007
1008 If --dump-header is provided several times, the last set value is used.
1009
1010-Example:
1011+Examples:
1012 .nf
1013- curl --dump-header store.txt https://example.com
1014+curl --dump-header store.txt https://example.com
1015+curl --dump-header - https://example.com -o save
1016 .fi
1017
1018 See also \fI-o, \-\-output\fP.
1019 .IP "\-\-ech <config>"
1020-(HTTPS) Specifies how to do ECH (Encrypted Client Hello).
1021+(HTTPS) Specify how to do ECH (Encrypted Client Hello).
1022
1023 The values allowed for <config> can be:
1024 .RS
1025 .IP false
1026-Do not attempt ECH
1027+Do not attempt ECH. The is the default.
1028 .IP grease
1029 Send a GREASE ECH extension
1030 .IP true
1031 Attempt ECH if possible, but do not fail if ECH is not attempted.
1032 (The connection fails if ECH is attempted but fails.)
1033 .IP hard
1034-Attempt ECH and fail if that is not possible.
1035-ECH only works with TLS 1.3 and also requires using
1036-DoH or providing an ECHConfigList on the command line.
1037+Attempt ECH and fail if that is not possible. ECH only works with TLS 1.3 and
1038+also requires using DoH or providing an ECHConfigList on the command line.
1039 .IP ecl:<b64val>
1040 A base64 encoded ECHConfigList that is used for ECH.
1041 .IP pn:<name>
1042-A name to use to over\-ride the "public_name" field of an ECHConfigList
1043-(only available with OpenSSL TLS support)
1044-.IP Errors
1045-Most errors cause error
1046-\fICURLE_ECH_REQUIRED\fP (101).
1047+A name to use to over\-ride the "public_name" field of an ECHConfigList (only
1048+available with OpenSSL TLS support)
1049 .RE
1050 .IP
1051+Most ECH related errors cause error \fICURLE_ECH_REQUIRED\fP (101).
1052
1053 If --ech is provided several times, the last set value is used.
1054
1055 Example:
1056 .nf
1057- curl --ech true https://example.com
1058+curl --ech true https://example.com
1059 .fi
1060
1061-See also \fI\-\-doh\-url\fP. Added in 8.8.0.
1062+Added in 8.8.0. See also \fI\-\-doh\-url\fP.
1063 .IP "\-\-egd\-file <file>"
1064 (TLS) Deprecated option (added in 7.84.0). Prior to that it only had an effect on
1065 curl if built to use old versions of OpenSSL.
1066@@ -1292,7 +1378,7 @@ If --egd-file is provided several times, the last set value is used.
1067
1068 Example:
1069 .nf
1070- curl --egd-file /random/here https://example.com
1071+curl --egd-file /random/here https://example.com
1072 .fi
1073
1074 See also \fI\-\-random\-file\fP.
1075@@ -1305,7 +1391,7 @@ If --engine is provided several times, the last set value is used.
1076
1077 Example:
1078 .nf
1079- curl --engine flavor https://example.com
1080+curl --engine flavor https://example.com
1081 .fi
1082
1083 See also \fI\-\-ciphers\fP and \fI\-\-curves\fP.
1084@@ -1314,56 +1400,73 @@ See also \fI\-\-ciphers\fP and \fI\-\-curves\fP.
1085 by sending a custom If\-None\-Match header using the stored ETag.
1086
1087 For correct results, make sure that the specified file contains only a single
1088-line with the desired ETag. An empty file is parsed as an empty ETag.
1089+line with the desired ETag. A non\-existing or empty file is treated as an
1090+empty ETag.
1091
1092 Use the option \fI\-\-etag\-save\fP to first save the ETag from a response, and then
1093 use this option to compare against the saved ETag in a subsequent request.
1094
1095+Use this option with a single URL only.
1096+
1097 If --etag-compare is provided several times, the last set value is used.
1098
1099 Example:
1100 .nf
1101- curl --etag-compare etag.txt https://example.com
1102+curl --etag-compare etag.txt https://example.com
1103 .fi
1104
1105-See also \fI\-\-etag\-save\fP and \fI-z, \-\-time\-cond\fP. Added in 7.68.0.
1106+Added in 7.68.0. See also \fI\-\-etag\-save\fP and \fI-z, \-\-time\-cond\fP.
1107 .IP "\-\-etag\-save <file>"
1108 (HTTP) Save an HTTP ETag to the specified file. An ETag is a caching related header,
1109-usually returned in a response.
1110+usually returned in a response. Use this option with a single URL only.
1111
1112 If no ETag is sent by the server, an empty file is created.
1113
1114+In many situations you want to use an existing etag in the request to avoid
1115+downloading the same resource again but also save the new etag if it has
1116+indeed changed, by using both etag options \fI\-\-etag\-save\fP and \fI\-\-etag\-compare\fP with
1117+the same filename, in the same command line.
1118+
1119+Starting in curl 8.12.0, using the \fI\-\-create\-dirs\fP option can also create
1120+missing directory components for the path provided in \fI\-\-etag\-save\fP.
1121+
1122 If --etag-save is provided several times, the last set value is used.
1123
1124 Example:
1125 .nf
1126- curl --etag-save storetag.txt https://example.com
1127+curl --etag-save storetag.txt https://example.com
1128 .fi
1129
1130-See also \fI\-\-etag\-compare\fP. Added in 7.68.0.
1131+Added in 7.68.0. See also \fI\-\-etag\-compare\fP.
1132 .IP "\-\-expect100\-timeout <seconds>"
1133 (HTTP) Maximum time in seconds that you allow curl to wait for a 100\-continue
1134 response when curl emits an Expects: 100\-continue header in its request. By
1135 default curl waits one second. This option accepts decimal values. When curl
1136 stops waiting, it continues as if a response was received.
1137
1138-The decimal value needs to provided using a dot (".") as decimal separator \-
1139+The decimal value needs to be provided using a dot (".") as decimal separator \-
1140 not the local version even if it might be using another separator.
1141
1142 If --expect100-timeout is provided several times, the last set value is used.
1143
1144 Example:
1145 .nf
1146- curl --expect100-timeout 2.5 -T file https://example.com
1147+curl --expect100-timeout 2.5 -T file https://example.com
1148 .fi
1149
1150 See also \fI\-\-connect\-timeout\fP.
1151 .IP "\-f, \-\-fail"
1152-(HTTP) Fail fast with no output at all on server errors. This is useful to enable
1153-scripts and users to better deal with failed attempts. In normal cases when an
1154-HTTP server fails to deliver a document, it returns an HTML document stating
1155-so (which often also describes why and more). This command line option
1156-prevents curl from outputting that and return error 22.
1157+(HTTP) Fail with error code 22 and with no response body output at all for HTTP
1158+transfers returning HTTP response codes at 400 or greater.
1159+
1160+In normal cases when an HTTP server fails to deliver a document, it returns a
1161+body of text stating so (which often also describes why and more) and a 4xx
1162+HTTP response code. This command line option prevents curl from outputting
1163+that data and instead returns error 22 early. By default, curl does not
1164+consider HTTP response codes to indicate failure.
1165+
1166+To get both the error code and also save the content, use \fI\-\-fail\-with\-body\fP
1167+instead.
1168
1169 This method is not fail\-safe and there are occasions where non\-successful
1170 response codes slip through, especially when authentication is involved
1171@@ -1374,10 +1477,11 @@ Disable it again with \-\-no-fail.
1172
1173 Example:
1174 .nf
1175- curl --fail https://example.com
1176+curl --fail https://example.com
1177 .fi
1178
1179-See also \fI\-\-fail\-with\-body\fP and \fI\-\-fail\-early\fP. This option is mutually exclusive to \fI\-\-fail\-with\-body\fP.
1180+This option is mutually exclusive with \fI\-\-fail\-with\-body\fP.
1181+See also \fI\-\-fail\-with\-body\fP and \fI\-\-fail\-early\fP.
1182 .IP "\-\-fail\-early"
1183 Fail and exit on the first detected transfer error.
1184
1185@@ -1401,10 +1505,10 @@ Disable it again with \-\-no-fail-early.
1186
1187 Example:
1188 .nf
1189- curl --fail-early https://example.com https://two.example
1190+curl --fail-early https://example.com https://two.example
1191 .fi
1192
1193-See also \fI-f, \-\-fail\fP and \fI\-\-fail\-with\-body\fP. Added in 7.52.0.
1194+See also \fI-f, \-\-fail\fP and \fI\-\-fail\-with\-body\fP.
1195 .IP "\-\-fail\-with\-body"
1196 (HTTP) Return an error on server errors where the HTTP response code is 400 or
1197 greater). In normal cases when an HTTP server fails to deliver a document, it
1198@@ -1420,24 +1524,25 @@ Disable it again with \-\-no-fail-with-body.
1199
1200 Example:
1201 .nf
1202- curl --fail-with-body https://example.com
1203+curl --fail-with-body https://example.com
1204 .fi
1205
1206-See also \fI-f, \-\-fail\fP and \fI\-\-fail\-early\fP. This option is mutually exclusive to \fI-f, \-\-fail\fP. Added in 7.76.0.
1207+This option is mutually exclusive with \fI-f, \-\-fail\fP.
1208+Added in 7.76.0. See also \fI-f, \-\-fail\fP and \fI\-\-fail\-early\fP.
1209 .IP "\-\-false\-start"
1210 (TLS) Use false start during the TLS handshake. False start is a mode where a TLS
1211 client starts sending application data before verifying the server\(aqs Finished
1212 message, thus saving a round trip when performing a full handshake.
1213
1214 This functionality is currently only implemented in the Secure Transport (on
1215-iOS 7.0 or later, or OS X 10.9 or later) backend.
1216+iOS 7.0 or later, or macOS 10.9 or later) backend.
1217
1218 Providing --false-start multiple times has no extra effect.
1219 Disable it again with \-\-no-false-start.
1220
1221 Example:
1222 .nf
1223- curl --false-start https://example.com
1224+curl --false-start https://example.com
1225 .fi
1226
1227 See also \fI\-\-tcp\-fastopen\fP.
1228@@ -1453,7 +1558,7 @@ This enables uploading of binary files etc. To force the \(aqcontent\(aq part to
1229 a file, prefix the filename with an @ sign. To just get the content part from
1230 a file, prefix the filename with the symbol <. The difference between @ and
1231 < is then that @ makes a file get attached in the post as a file upload,
1232-while the < makes a text field and just get the contents for that text field
1233+while the < makes a text field and just gets the contents for that text field
1234 from a file.
1235
1236 Read content from stdin instead of a file by using a single "\-" as filename.
1237@@ -1466,54 +1571,56 @@ such data is sent as chunks by HTTP and rejected by IMAP.
1238
1239 Example: send an image to an HTTP server, where \(aqprofile\(aq is the name of the
1240 form\-field to which the file \fBportrait.jpg\fP is the input:
1241-.nf
1242
1243+.nf
1244 curl \-F profile=@portrait.jpg https://example.com/upload.cgi
1245 .fi
1246
1247 Example: send your name and shoe size in two text fields to the server:
1248-.nf
1249
1250+.nf
1251 curl \-F name=John \-F shoesize=11 https://example.com/
1252 .fi
1253
1254 Example: send your essay in a text field to the server. Send it as a plain
1255 text field, but get the contents for it from a local file:
1256-.nf
1257
1258+.nf
1259 curl \-F "story=<hugefile.txt" https://example.com/
1260 .fi
1261
1262 You can also instruct curl what Content\-Type to use by using "type=", in a
1263 manner similar to:
1264-.nf
1265
1266+.nf
1267 curl \-F "web=@index.html;type=text/html" example.com
1268 .fi
1269
1270 or
1271-.nf
1272
1273+.nf
1274 curl \-F "name=daniel;type=text/foo" example.com
1275 .fi
1276
1277 You can also explicitly change the name field of a file upload part by setting
1278 filename=, like this:
1279-.nf
1280
1281+.nf
1282 curl \-F "file=@localfile;filename=nameinpost" example.com
1283 .fi
1284
1285 If filename/path contains \(aq,\(aq or \(aq;\(aq, it must be quoted by double\-quotes like:
1286-.nf
1287
1288-curl \-F "file=@\\"local,file\\";filename=\\"name;in;post\\"" example.com
1289+.nf
1290+curl \-F "file=@\\"local,file\\";filename=\\"name;in;post\\"" \\
1291+ https://example.com
1292 .fi
1293
1294 or
1295-.nf
1296
1297-curl \-F \(aqfile=@"local,file";filename="name;in;post"\(aq example.com
1298+.nf
1299+curl \-F \(aqfile=@"local,file";filename="name;in;post"\(aq \\
1300+ https://example.com
1301 .fi
1302
1303 Note that if a filename/path is quoted by double\-quotes, any double\-quote
1304@@ -1521,32 +1628,33 @@ or backslash within the filename must be escaped by backslash.
1305
1306 Quoting must also be applied to non\-file data if it contains semicolons,
1307 leading/trailing spaces or leading double quotes:
1308-.nf
1309
1310-curl \-F \(aqcolors="red; green; blue";type=text/x\-myapp\(aq example.com
1311+.nf
1312+curl \-F \(aqcolors="red; green; blue";type=text/x\-myapp\(aq \\
1313+ https://example.com
1314 .fi
1315
1316 You can add custom headers to the field by setting headers=, like
1317-.nf
1318
1319+.nf
1320 curl \-F "submit=OK;headers=\\"X\-submit\-type: OK\\"" example.com
1321 .fi
1322
1323 or
1324-.nf
1325
1326+.nf
1327 curl \-F "submit=OK;headers=@headerfile" example.com
1328 .fi
1329
1330-The headers= keyword may appear more that once and above notes about quoting
1331-apply. When headers are read from a file, Empty lines and lines starting
1332-with \(aq#\(aq are comments and ignored; each header can be folded by splitting
1333+The headers= keyword may appear more than once and above notes about quoting
1334+apply. When headers are read from a file, empty lines and lines starting
1335+with \(aq#\(aq are ignored; each header can be folded by splitting
1336 between two words and starting the continuation line with a space; embedded
1337 carriage\-returns and trailing spaces are stripped.
1338 Here is an example of a header file contents:
1339-.nf
1340
1341-# This file contain two headers.
1342+.nf
1343+# This file contains two headers.
1344 X\-header\-1: this is a header
1345
1346 # The following header is folded.
1347@@ -1566,8 +1674,8 @@ followed by a content type specification.
1348 Example: the following command sends an SMTP mime email consisting in an
1349 inline part in two alternative formats: plain text and HTML. It attaches a
1350 text file:
1351-.nf
1352
1353+.nf
1354 curl \-F \(aq=(;type=multipart/alternative\(aq \\
1355 \-F \(aq=plain text message\(aq \\
1356 \-F \(aq= <body>HTML message</body>;type=text/html\(aq \\
1357@@ -1583,8 +1691,8 @@ characters.
1358
1359 Example: send multipart mail with a quoted\-printable text message and a
1360 base64 attached file:
1361-.nf
1362
1363+.nf
1364 curl \-F \(aq=text message;encoder=quoted\-printable\(aq \\
1365 \-F \(aq=@localfile;encoder=base64\(aq ... smtp://example.com
1366 .fi
1367@@ -1595,22 +1703,23 @@ See further examples and details in the MANUAL.
1368
1369 Example:
1370 .nf
1371- curl --form "name=curl" --form "file=@loadthis" https://example.com
1372+curl --form "name=curl" --form "file=@loadthis" https://example.com
1373 .fi
1374
1375-See also \fI-d, \-\-data\fP, \fI\-\-form\-string\fP and \fI\-\-form\-escape\fP. This option is mutually exclusive to \fI-d, \-\-data\fP and \fI-I, \-\-head\fP and \fI-T, \-\-upload\-file\fP.
1376+This option is mutually exclusive with \fI-d, \-\-data\fP, \fI-I, \-\-head\fP and \fI-T, \-\-upload\-file\fP.
1377+See also \fI-d, \-\-data\fP, \fI\-\-form\-string\fP and \fI\-\-form\-escape\fP.
1378 .IP "\-\-form\-escape"
1379-(HTTP) Pass on names of multipart form fields and files using backslash\-escaping
1380+(HTTP imap smtp) Pass on names of multipart form fields and files using backslash\-escaping
1381 instead of percent\-encoding.
1382
1383 If --form-escape is provided several times, the last set value is used.
1384
1385 Example:
1386 .nf
1387- curl --form-escape -F 'field\\name=curl' -F 'file=@load"this' https://example.com
1388+curl --form-escape -F 'field\\name=curl' -F 'file=@load"this' https://example.com
1389 .fi
1390
1391-See also \fI-F, \-\-form\fP. Added in 7.81.0.
1392+Added in 7.81.0. See also \fI-F, \-\-form\fP.
1393 .IP "\-\-form\-string <name=string>"
1394 (HTTP SMTP IMAP) Similar to \fI\-F, \-\-form\fP except that the value string for the named parameter is used
1395 literally. Leading @ and < characters, and the ";type=" string in the value
1396@@ -1622,7 +1731,7 @@ features of \fI\-F, \-\-form\fP.
1397
1398 Example:
1399 .nf
1400- curl --form-string "name=data" https://example.com
1401+curl --form-string "name=data" https://example.com
1402 .fi
1403
1404 See also \fI-F, \-\-form\fP.
1405@@ -1634,7 +1743,7 @@ If --ftp-account is provided several times, the last set value is used.
1406
1407 Example:
1408 .nf
1409- curl --ftp-account "mr.robot" ftp://example.com/
1410+curl --ftp-account "mr.robot" ftp://example.com/
1411 .fi
1412
1413 See also \fI-u, \-\-user\fP.
1414@@ -1648,7 +1757,7 @@ If --ftp-alternative-to-user is provided several times, the last set value is us
1415
1416 Example:
1417 .nf
1418- curl --ftp-alternative-to-user "U53r" ftp://example.com
1419+curl --ftp-alternative-to-user "U53r" ftp://example.com
1420 .fi
1421
1422 See also \fI\-\-ftp\-account\fP and \fI-u, \-\-user\fP.
1423@@ -1662,7 +1771,7 @@ Disable it again with \-\-no-ftp-create-dirs.
1424
1425 Example:
1426 .nf
1427- curl --ftp-create-dirs -T file ftp://example.com/remote/path/file
1428+curl --ftp-create-dirs -T file ftp://example.com/remote/path/file
1429 .fi
1430
1431 See also \fI\-\-create\-dirs\fP.
1432@@ -1688,9 +1797,9 @@ If --ftp-method is provided several times, the last set value is used.
1433
1434 Examples:
1435 .nf
1436- curl --ftp-method multicwd ftp://example.com/dir1/dir2/file
1437- curl --ftp-method nocwd ftp://example.com/dir1/dir2/file
1438- curl --ftp-method singlecwd ftp://example.com/dir1/dir2/file
1439+curl --ftp-method multicwd ftp://example.com/dir1/dir2/file
1440+curl --ftp-method nocwd ftp://example.com/dir1/dir2/file
1441+curl --ftp-method singlecwd ftp://example.com/dir1/dir2/file
1442 .fi
1443
1444 See also \fI-l, \-\-list\-only\fP.
1445@@ -1710,12 +1819,12 @@ Disable it again with \-\-no-ftp-pasv.
1446
1447 Example:
1448 .nf
1449- curl --ftp-pasv ftp://example.com/
1450+curl --ftp-pasv ftp://example.com/
1451 .fi
1452
1453 See also \fI\-\-disable\-epsv\fP.
1454 .IP "\-P, \-\-ftp\-port <address>"
1455-(FTP) Reverses the default initiator/listener roles when connecting with FTP. This
1456+(FTP) Reverse the default initiator/listener roles when connecting with FTP. This
1457 option makes curl use active mode. curl then commands the server to connect
1458 back to the client\(aqs specified address and port, while passive mode asks the
1459 server to setup an IP address and port for it to connect to. <address>
1460@@ -1745,9 +1854,9 @@ If --ftp-port is provided several times, the last set value is used.
1461
1462 Examples:
1463 .nf
1464- curl -P - ftp:/example.com
1465- curl -P eth0 ftp:/example.com
1466- curl -P 192.168.0.2 ftp:/example.com
1467+curl -P - ftp:/example.com
1468+curl -P eth0 ftp:/example.com
1469+curl -P 192.168.0.2 ftp:/example.com
1470 .fi
1471
1472 See also \fI\-\-ftp\-pasv\fP and \fI\-\-disable\-eprt\fP.
1473@@ -1761,7 +1870,7 @@ Disable it again with \-\-no-ftp-pret.
1474
1475 Example:
1476 .nf
1477- curl --ftp-pret ftp://example.com/
1478+curl --ftp-pret ftp://example.com/
1479 .fi
1480
1481 See also \fI-P, \-\-ftp\-port\fP and \fI\-\-ftp\-pasv\fP.
1482@@ -1779,13 +1888,13 @@ Disable it again with \-\-no-ftp-skip-pasv-ip.
1483
1484 Example:
1485 .nf
1486- curl --ftp-skip-pasv-ip ftp://example.com/
1487+curl --ftp-skip-pasv-ip ftp://example.com/
1488 .fi
1489
1490 See also \fI\-\-ftp\-pasv\fP.
1491 .IP "\-\-ftp\-ssl\-ccc"
1492 (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS layer after
1493-authenticating. The rest of the control channel communication is be
1494+authenticating. The rest of the control channel communication is
1495 unencrypted. This allows NAT routers to follow the FTP transaction. The
1496 default mode is passive.
1497
1498@@ -1794,22 +1903,22 @@ Disable it again with \-\-no-ftp-ssl-ccc.
1499
1500 Example:
1501 .nf
1502- curl --ftp-ssl-ccc ftps://example.com/
1503+curl --ftp-ssl-ccc ftps://example.com/
1504 .fi
1505
1506 See also \fI\-\-ssl\fP and \fI\-\-ftp\-ssl\-ccc\-mode\fP.
1507 .IP "\-\-ftp\-ssl\-ccc\-mode <active/passive>"
1508-(FTP) Sets the CCC mode. The passive mode does not initiate the shutdown, but
1509-instead waits for the server to do it, and does not reply to the shutdown from
1510-the server. The active mode initiates the shutdown and waits for a reply from
1511-the server.
1512+(FTP) Set the CCC mode. The passive mode does not initiate the shutdown, but instead
1513+waits for the server to do it, and does not reply to the shutdown from the
1514+server. The active mode initiates the shutdown and waits for a reply from the
1515+server.
1516
1517 Providing --ftp-ssl-ccc-mode multiple times has no extra effect.
1518 Disable it again with \-\-no-ftp-ssl-ccc-mode.
1519
1520 Example:
1521 .nf
1522- curl --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/
1523+curl --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/
1524 .fi
1525
1526 See also \fI\-\-ftp\-ssl\-ccc\fP.
1527@@ -1823,15 +1932,15 @@ Disable it again with \-\-no-ftp-ssl-control.
1528
1529 Example:
1530 .nf
1531- curl --ftp-ssl-control ftp://example.com
1532+curl --ftp-ssl-control ftp://example.com
1533 .fi
1534
1535 See also \fI\-\-ssl\fP.
1536 .IP "\-G, \-\-get"
1537-(HTTP) When used, this option makes all data specified with \fI\-d, \-\-data\fP, \fI\-\-data\-binary\fP
1538-or \fI\-\-data\-urlencode\fP to be used in an HTTP GET request instead of the POST
1539-request that otherwise would be used. The data is appended to the URL
1540-with a \(aq?\(aq separator.
1541+(HTTP) When used, this option makes all data specified with \fI\-d, \-\-data\fP, \fI\-\-data\-binary\fP or
1542+\fI\-\-data\-urlencode\fP to be used in an HTTP GET request instead of the POST request
1543+that otherwise would be used. curl appends the provided data to the URL as a
1544+query string.
1545
1546 If used in combination with \fI\-I, \-\-head\fP, the POST data is instead appended to the
1547 URL with a HEAD request.
1548@@ -1841,9 +1950,9 @@ Disable it again with \-\-no-get.
1549
1550 Examples:
1551 .nf
1552- curl --get https://example.com
1553- curl --get -d "tool=curl" -d "age=old" https://example.com
1554- curl --get -I -d "tool=curl" https://example.com
1555+curl --get https://example.com
1556+curl --get -d "tool=curl" -d "age=old" https://example.com
1557+curl --get -I -d "tool=curl" https://example.com
1558 .fi
1559
1560 See also \fI-d, \-\-data\fP and \fI-X, \-\-request\fP.
1561@@ -1858,11 +1967,13 @@ Disable it again with \-\-no-globoff.
1562
1563 Example:
1564 .nf
1565- curl -g "https://example.com/{[]}}}}"
1566+curl -g "https://example.com/{[]}}}}"
1567 .fi
1568
1569 See also \fI-K, \-\-config\fP and \fI-q, \-\-disable\fP.
1570 .IP "\-\-happy\-eyeballs\-timeout\-ms <ms>"
1571+Set the timeout for Happy Eyeballs.
1572+
1573 Happy Eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6
1574 addresses for dual\-stack hosts, giving IPv6 a head\-start of the specified
1575 number of milliseconds. If the IPv6 address cannot be connected to within that
1576@@ -1878,12 +1989,12 @@ If --happy-eyeballs-timeout-ms is provided several times, the last set value is
1577
1578 Example:
1579 .nf
1580- curl --happy-eyeballs-timeout-ms 500 https://example.com
1581+curl --happy-eyeballs-timeout-ms 500 https://example.com
1582 .fi
1583
1584-See also \fI-m, \-\-max\-time\fP and \fI\-\-connect\-timeout\fP. Added in 7.59.0.
1585+See also \fI-m, \-\-max\-time\fP and \fI\-\-connect\-timeout\fP.
1586 .IP "\-\-haproxy\-clientip <ip>"
1587-(HTTP) Sets a client IP in HAProxy PROXY protocol v1 header at the beginning of the
1588+(HTTP) Set a client IP in HAProxy PROXY protocol v1 header at the beginning of the
1589 connection.
1590
1591 For valid requests, IPv4 addresses must be indicated as a series of exactly
1592@@ -1893,7 +2004,7 @@ permitted in front of numbers in order to avoid any possible confusion
1593 with octal numbers. IPv6 addresses must be indicated as series of 4 hexadecimal
1594 digits (upper or lower case) delimited by colons between each other, with the
1595 acceptance of one double colon sequence to replace the largest acceptable range
1596-of consecutive zeroes. The total number of decoded bits must exactly be 128.
1597+of consecutive zeroes. The total number of decoded bits must be exactly 128.
1598
1599 Otherwise, any string can be accepted for the client IP and get sent.
1600
1601@@ -1903,10 +2014,10 @@ If --haproxy-clientip is provided several times, the last set value is used.
1602
1603 Example:
1604 .nf
1605- curl --haproxy-clientip $IP
1606+curl --haproxy-clientip $IP
1607 .fi
1608
1609-See also \fI-x, \-\-proxy\fP. Added in 8.2.0.
1610+Added in 8.2.0. See also \fI-x, \-\-proxy\fP.
1611 .IP "\-\-haproxy\-protocol"
1612 (HTTP) Send a HAProxy PROXY protocol v1 header at the beginning of the connection.
1613 This is used by some load balancers and reverse proxies to indicate the
1614@@ -1920,13 +2031,13 @@ Disable it again with \-\-no-haproxy-protocol.
1615
1616 Example:
1617 .nf
1618- curl --haproxy-protocol https://example.com
1619+curl --haproxy-protocol https://example.com
1620 .fi
1621
1622-See also \fI-x, \-\-proxy\fP. Added in 7.60.0.
1623+Added in 7.60.0. See also \fI-x, \-\-proxy\fP.
1624 .IP "\-I, \-\-head"
1625-(HTTP FTP FILE) Fetch the headers only! HTTP\-servers feature the command HEAD which this uses
1626-to get nothing but the header of a document. When used on an FTP or FILE file,
1627+(HTTP FTP FILE) Fetch the headers only. HTTP\-servers feature the command HEAD which this uses
1628+to get nothing but the header of a document. When used on an FTP or FILE URL,
1629 curl displays the file size and last modification time only.
1630
1631 Providing --head multiple times has no extra effect.
1632@@ -1934,7 +2045,7 @@ Disable it again with \-\-no-head.
1633
1634 Example:
1635 .nf
1636- curl -I https://example.com
1637+curl -I https://example.com
1638 .fi
1639
1640 See also \fI-G, \-\-get\fP, \fI-v, \-\-verbose\fP and \fI\-\-trace\-ascii\fP.
1641@@ -1944,7 +2055,7 @@ it is added to the regular request headers.
1642
1643 For an IMAP or SMTP MIME uploaded mail built with \fI\-F, \-\-form\fP options, it is
1644 prepended to the resulting MIME document, effectively including it at the mail
1645-global level. It does not affect raw uploaded mails (Added in 7.56.0).
1646+global level. It does not affect raw uploaded mails.
1647
1648 You may specify any number of extra headers. Note that if you should add a
1649 custom header that has the same name as one of the internal ones curl would
1650@@ -1964,14 +2075,14 @@ other safe guards. That includes white space and control characters.
1651
1652 This option can take an argument in @filename style, which then adds a header
1653 for each line in the input file. Using @\- makes curl read the header file from
1654-stdin. Added in 7.55.0.
1655+stdin.
1656
1657 Please note that most anti\-spam utilities check the presence and value of
1658 several MIME mail headers: these are "From:", "To:", "Date:" and "Subject:"
1659 among others and should be added with this option.
1660
1661-You need \fI\-\-proxy\-header\fP to send custom headers intended for an HTTP
1662-proxy. Added in 7.37.0.
1663+You need \fI\-\-proxy\-header\fP to send custom headers intended for an HTTP proxy.
1664+
1665
1666 Passing on a "Transfer\-Encoding: chunked" header when doing an HTTP request
1667 with a request body, makes curl send the data using chunked encoding.
1668@@ -1981,30 +2092,47 @@ after redirects are followed, like when told with \fI\-L, \-\-location\fP. This
1669 the header being sent to other hosts than the original host, so sensitive
1670 headers should be used with caution combined with following redirects.
1671
1672+\&"Authorization:" and "Cookie:" headers are explicitly \fInot\fP passed on in HTTP
1673+requests when following redirects to other origins, unless \fI\-\-location\-trusted\fP
1674+is used.
1675+
1676 --header can be used several times in a command line
1677
1678 Examples:
1679 .nf
1680- curl -H "X-First-Name: Joe" https://example.com
1681- curl -H "User-Agent: yes-please/2000" https://example.com
1682- curl -H "Host:" https://example.com
1683- curl -H @headers.txt https://example.com
1684+curl -H "X-First-Name: Joe" https://example.com
1685+curl -H "User-Agent: yes-please/2000" https://example.com
1686+curl -H "Host:" https://example.com
1687+curl -H @headers.txt https://example.com
1688 .fi
1689
1690 See also \fI-A, \-\-user\-agent\fP and \fI-e, \-\-referer\fP.
1691-.IP "\-h, \-\-help <category>"
1692-Usage help. List all curl command line options within the given \fBcategory\fP.
1693+.IP "\-h, \-\-help <subject>"
1694+Usage help. Provide help for the subject given as an optional argument.
1695
1696 If no argument is provided, curl displays the most important command line
1697 arguments.
1698
1699-For category \fBall\fP, curl displays help for all options.
1700+The argument can either be a \fBcategory\fP or a \fBcommand line option\fP. When a
1701+category is provided, curl shows all command line options within the given
1702+category. Specify category "all" to list all available options.
1703
1704-If \fBcategory\fP is specified, curl displays all available help categories.
1705+If "category" is specified, curl displays all available help categories.
1706
1707-Example:
1708+If the provided subject is instead an existing command line option, specified
1709+either in its short form with a single dash and a single letter, or in the
1710+long form with two dashes and a longer name, curl displays a help text for
1711+that option in the terminal.
1712+
1713+The help output is extensive for some options.
1714+
1715+If the provided command line option is not known, curl says so.
1716+
1717+Examples:
1718 .nf
1719- curl --help all
1720+curl --help all
1721+curl --help --insecure
1722+curl --help -f
1723 .fi
1724
1725 See also \fI-v, \-\-verbose\fP.
1726@@ -2017,13 +2145,13 @@ If --hostpubmd5 is provided several times, the last set value is used.
1727
1728 Example:
1729 .nf
1730- curl --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/
1731+curl --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/
1732 .fi
1733
1734 See also \fI\-\-hostpubsha256\fP.
1735 .IP "\-\-hostpubsha256 <sha256>"
1736 (SFTP SCP) Pass a string containing a Base64\-encoded SHA256 hash of the remote host\(aqs
1737-public key. Curl refuses the connection with the host unless the hashes match.
1738+public key. curl refuses the connection with the host unless the hashes match.
1739
1740 This feature requires libcurl to be built with libssh2 and does not work with
1741 other SSH backends.
1742@@ -2032,10 +2160,10 @@ If --hostpubsha256 is provided several times, the last set value is used.
1743
1744 Example:
1745 .nf
1746- curl --hostpubsha256 NDVkMTQxMGQ1ODdmMjQ3MjczYjAyOTY5MmRkMjVmNDQ= sftp://example.com/
1747+curl --hostpubsha256 NDVkMTQxMGQ1ODdmMjQ3MjczYjAyOTY5MmRkMjVmNDQ= sftp://example.com/
1748 .fi
1749
1750-See also \fI\-\-hostpubmd5\fP. Added in 7.80.0.
1751+Added in 7.80.0. See also \fI\-\-hostpubmd5\fP.
1752 .IP "\-\-hsts <filename>"
1753 (HTTPS) Enable HSTS for the transfer. If the filename points to an existing HSTS cache
1754 file, that is used. After a completed transfer, the cache is saved to the
1755@@ -2043,7 +2171,7 @@ filename again if it has been modified.
1756
1757 If curl is told to use HTTP:// for a transfer involving a hostname that exists
1758 in the HSTS cache, it upgrades the transfer to use HTTPS. Each HSTS cache
1759-entry has an individual life time after which the upgrade is no longer
1760+entry has an individual lifetime after which the upgrade is no longer
1761 performed.
1762
1763 Specify a "" filename (zero length) to avoid loading/saving and make curl just
1764@@ -2056,10 +2184,10 @@ files but the last one is used for saving.
1765
1766 Example:
1767 .nf
1768- curl --hsts cache.txt https://example.com
1769+curl --hsts cache.txt https://example.com
1770 .fi
1771
1772-See also \fI\-\-proto\fP. Added in 7.74.0.
1773+Added in 7.74.0. See also \fI\-\-proto\fP.
1774 .IP "\-\-http0.9"
1775 (HTTP) Accept an HTTP version 0.9 response.
1776
1777@@ -2074,10 +2202,10 @@ Disable it again with \-\-no-http0.9.
1778
1779 Example:
1780 .nf
1781- curl --http0.9 https://example.com
1782+curl --http0.9 https://example.com
1783 .fi
1784
1785-See also \fI\-\-http1.1\fP, \fI\-\-http2\fP and \fI\-\-http3\fP. Added in 7.64.0.
1786+Added in 7.64.0. See also \fI\-\-http1.1\fP, \fI\-\-http2\fP and \fI\-\-http3\fP.
1787 .IP "\-0, \-\-http1.0"
1788 (HTTP) Use HTTP version 1.0 instead of using its internally preferred HTTP version.
1789
1790@@ -2085,10 +2213,11 @@ Providing --http1.0 multiple times has no extra effect.
1791
1792 Example:
1793 .nf
1794- curl --http1.0 https://example.com
1795+curl --http1.0 https://example.com
1796 .fi
1797
1798-See also \fI\-\-http0.9\fP and \fI\-\-http1.1\fP. This option is mutually exclusive to \fI\-\-http1.1\fP and \fI\-\-http2\fP and \fI\-\-http2\-prior\-knowledge\fP and \fI\-\-http3\fP.
1799+This option is mutually exclusive with \fI\-\-http1.1\fP, \fI\-\-http2\fP, \fI\-\-http2\-prior\-knowledge\fP and \fI\-\-http3\fP.
1800+See also \fI\-\-http0.9\fP and \fI\-\-http1.1\fP.
1801 .IP "\-\-http1.1"
1802 (HTTP) Use HTTP version 1.1. This is the default with HTTP:// URLs.
1803
1804@@ -2096,10 +2225,11 @@ Providing --http1.1 multiple times has no extra effect.
1805
1806 Example:
1807 .nf
1808- curl --http1.1 https://example.com
1809+curl --http1.1 https://example.com
1810 .fi
1811
1812-See also \fI\-\-http1.0\fP and \fI\-\-http0.9\fP. This option is mutually exclusive to \fI\-\-http1.0\fP and \fI\-\-http2\fP and \fI\-\-http2\-prior\-knowledge\fP and \fI\-\-http3\fP.
1813+This option is mutually exclusive with \fI\-\-http1.0\fP, \fI\-\-http2\fP, \fI\-\-http2\-prior\-knowledge\fP and \fI\-\-http3\fP.
1814+See also \fI\-\-http1.0\fP and \fI\-\-http0.9\fP.
1815 .IP "\-\-http2"
1816 (HTTP) Use HTTP/2.
1817
1818@@ -2117,36 +2247,46 @@ Providing --http2 multiple times has no extra effect.
1819
1820 Example:
1821 .nf
1822- curl --http2 https://example.com
1823+curl --http2 https://example.com
1824 .fi
1825
1826-See also \fI\-\-http1.1\fP, \fI\-\-http3\fP and \fI\-\-no\-alpn\fP. \fI\-\-http2\fP requires that the underlying libcurl was built to support HTTP/2. This option is mutually exclusive to \fI\-\-http1.1\fP and \fI\-\-http1.0\fP and \fI\-\-http2\-prior\-knowledge\fP and \fI\-\-http3\fP.
1827+\fI\-\-http2\fP requires that libcurl is built to support HTTP/2.
1828+This option is mutually exclusive with \fI\-\-http1.1\fP, \fI\-\-http1.0\fP, \fI\-\-http2\-prior\-knowledge\fP and \fI\-\-http3\fP.
1829+See also \fI\-\-http1.1\fP, \fI\-\-http3\fP and \fI\-\-no\-alpn\fP.
1830 .IP "\-\-http2\-prior\-knowledge"
1831-(HTTP) Issue a non\-TLS HTTP requests using HTTP/2 directly without HTTP/1.1 Upgrade.
1832+(HTTP) Issue a non\-TLS HTTP request using HTTP/2 directly without HTTP/1.1 Upgrade.
1833 It requires prior knowledge that the server supports HTTP/2 straight away.
1834 HTTPS requests still do HTTP/2 the standard way with negotiated protocol
1835-version in the TLS handshake.
1836+versions in the TLS handshake.
1837+
1838+Since 8.10.0 if this option is set for an HTTPS request then the application
1839+layer protocol version (ALPN) offered to the server is only HTTP/2. Prior to
1840+that both HTTP/1.1 and HTTP/2 were offered.
1841
1842 Providing --http2-prior-knowledge multiple times has no extra effect.
1843 Disable it again with \-\-no-http2-prior-knowledge.
1844
1845 Example:
1846 .nf
1847- curl --http2-prior-knowledge https://example.com
1848+curl --http2-prior-knowledge https://example.com
1849 .fi
1850
1851-See also \fI\-\-http2\fP and \fI\-\-http3\fP. \fI\-\-http2\-prior\-knowledge\fP requires that the underlying libcurl was built to support HTTP/2. This option is mutually exclusive to \fI\-\-http1.1\fP and \fI\-\-http1.0\fP and \fI\-\-http2\fP and \fI\-\-http3\fP.
1852+\fI\-\-http2\-prior\-knowledge\fP requires that libcurl is built to support HTTP/2.
1853+This option is mutually exclusive with \fI\-\-http1.1\fP, \fI\-\-http1.0\fP, \fI\-\-http2\fP and \fI\-\-http3\fP.
1854+See also \fI\-\-http2\fP and \fI\-\-http3\fP.
1855 .IP "\-\-http3"
1856 (HTTP) Attempt HTTP/3 to the host in the URL, but fallback to earlier HTTP versions
1857-if the HTTP/3 connection establishment fails. HTTP/3 is only available for
1858-HTTPS and not for HTTP URLs.
1859+if the HTTP/3 connection establishment fails or is slow. HTTP/3 is only
1860+available for HTTPS and not for HTTP URLs.
1861
1862 This option allows a user to avoid using the Alt\-Svc method of upgrading to
1863-HTTP/3 when you know that the target speaks HTTP/3 on the given host and port.
1864+HTTP/3 when you know or suspect that the target speaks HTTP/3 on the given
1865+host and port.
1866
1867 When asked to use HTTP/3, curl issues a separate attempt to use older HTTP
1868 versions with a slight delay, so if the HTTP/3 transfer fails or is slow, curl
1869-still tries to proceed with an older HTTP version.
1870+still tries to proceed with an older HTTP version. The fallback performs the
1871+regular negotiation between HTTP/1 and HTTP/2.
1872
1873 Use \fI\-\-http3\-only\fP for similar functionality \fIwithout\fP a fallback.
1874
1875@@ -2154,12 +2294,14 @@ Providing --http3 multiple times has no extra effect.
1876
1877 Example:
1878 .nf
1879- curl --http3 https://example.com
1880+curl --http3 https://example.com
1881 .fi
1882
1883-See also \fI\-\-http1.1\fP and \fI\-\-http2\fP. \fI\-\-http3\fP requires that the underlying libcurl was built to support HTTP/3. This option is mutually exclusive to \fI\-\-http1.1\fP and \fI\-\-http1.0\fP and \fI\-\-http2\fP and \fI\-\-http2\-prior\-knowledge\fP and \fI\-\-http3\-only\fP. Added in 7.66.0.
1884+\fI\-\-http3\fP requires that libcurl is built to support HTTP/3.
1885+This option is mutually exclusive with \fI\-\-http1.1\fP, \fI\-\-http1.0\fP, \fI\-\-http2\fP, \fI\-\-http2\-prior\-knowledge\fP and \fI\-\-http3\-only\fP.
1886+Added in 7.66.0. See also \fI\-\-http1.1\fP and \fI\-\-http2\fP.
1887 .IP "\-\-http3\-only"
1888-(HTTP) Instructs curl to use HTTP/3 to the host in the URL, with no fallback to
1889+(HTTP) Instruct curl to use HTTP/3 to the host in the URL, with no fallback to
1890 earlier HTTP versions. HTTP/3 can only be used for HTTPS and not for HTTP
1891 URLs. For HTTP, this option triggers an error.
1892
1893@@ -2174,48 +2316,29 @@ Providing --http3-only multiple times has no extra effect.
1894
1895 Example:
1896 .nf
1897- curl --http3-only https://example.com
1898+curl --http3-only https://example.com
1899 .fi
1900
1901-See also \fI\-\-http1.1\fP, \fI\-\-http2\fP and \fI\-\-http3\fP. \fI\-\-http3\-only\fP requires that the underlying libcurl was built to support HTTP/3. This option is mutually exclusive to \fI\-\-http1.1\fP and \fI\-\-http1.0\fP and \fI\-\-http2\fP and \fI\-\-http2\-prior\-knowledge\fP and \fI\-\-http3\fP. Added in 7.88.0.
1902+\fI\-\-http3\-only\fP requires that libcurl is built to support HTTP/3.
1903+This option is mutually exclusive with \fI\-\-http1.1\fP, \fI\-\-http1.0\fP, \fI\-\-http2\fP, \fI\-\-http2\-prior\-knowledge\fP and \fI\-\-http3\fP.
1904+Added in 7.88.0. See also \fI\-\-http1.1\fP, \fI\-\-http2\fP and \fI\-\-http3\fP.
1905 .IP "\-\-ignore\-content\-length"
1906-(FTP HTTP) For HTTP, Ignore the Content\-Length header. This is particularly useful for
1907-servers running Apache 1.x, which reports incorrect Content\-Length for
1908-files larger than 2 gigabytes.
1909+(FTP HTTP) For HTTP, ignore the Content\-Length header. This is particularly useful for
1910+servers running Apache 1.x, which reports incorrect Content\-Length for files
1911+larger than 2 gigabytes.
1912
1913 For FTP, this makes curl skip the SIZE command to figure out the size before
1914 downloading a file.
1915
1916-This option does not work for HTTP if libcurl was built to use hyper.
1917-
1918 Providing --ignore-content-length multiple times has no extra effect.
1919 Disable it again with \-\-no-ignore-content-length.
1920
1921 Example:
1922 .nf
1923- curl --ignore-content-length https://example.com
1924+curl --ignore-content-length https://example.com
1925 .fi
1926
1927 See also \fI\-\-ftp\-skip\-pasv\-ip\fP.
1928-.IP "\-i, \-\-include"
1929-(HTTP FTP) Include response headers in the output. HTTP response headers can include
1930-things like server name, cookies, date of the document, HTTP version and
1931-more... With non\-HTTP protocols, the "headers" are other server communication.
1932-
1933-To view the request headers, consider the \fI\-v, \-\-verbose\fP option.
1934-
1935-Prior to 7.75.0 curl did not print the headers if \fI\-f, \-\-fail\fP was used in
1936-combination with this option and there was error reported by server.
1937-
1938-Providing --include multiple times has no extra effect.
1939-Disable it again with \-\-no-include.
1940-
1941-Example:
1942-.nf
1943- curl -i https://example.com
1944-.fi
1945-
1946-See also \fI-v, \-\-verbose\fP.
1947 .IP "\-k, \-\-insecure"
1948 (TLS SFTP SCP) By default, every secure connection curl makes is verified to be secure before
1949 the transfer takes place. This option makes curl skip the verification step
1950@@ -2244,30 +2367,66 @@ Disable it again with \-\-no-insecure.
1951
1952 Example:
1953 .nf
1954- curl --insecure https://example.com
1955+curl --insecure https://example.com
1956 .fi
1957
1958 See also \fI\-\-proxy\-insecure\fP, \fI\-\-cacert\fP and \fI\-\-capath\fP.
1959 .IP "\-\-interface <name>"
1960-Perform an operation using a specified interface. You can enter interface
1961-name, IP address or hostname. An example could look like:
1962-.nf
1963+Perform the operation using a specified interface. You can enter interface
1964+name, IP address or hostname. If you prefer to be specific, you can use the
1965+following special syntax:
1966+.RS
1967+.IP if!<name>
1968+Interface name. If the provided name does not match an existing interface,
1969+curl returns with error 45.
1970+.IP host!<name>
1971+IP address or hostname.
1972+.IP ifhost!<interface>!<host>
1973+Interface name and IP address or hostname. This syntax requires libcurl 8.9.0
1974+or later.
1975+
1976+If the provided name does not match an existing interface, curl returns with
1977+error 45.
1978+.RE
1979+.IP
1980+curl does not support using network interface names for this option on
1981+Windows.
1982
1983-curl \--interface eth0:1 https://www.example.com/
1984-.fi
1985+That name resolve operation if a hostname is provided does \fBnot\fP use
1986+DNS\-over\-HTTPS even if \fI\-\-doh\-url\fP is set.
1987
1988-On Linux it can be used to specify a \fBVRF\fP, but the binary needs to either
1989-have \fBCAP_NET_RAW\fP or to be run as root. More information about Linux
1990-\fBVRF\fP: https://www.kernel.org/doc/Documentation/networking/vrf.txt
1991+On Linux this option can be used to specify a \fBVRF\fP (Virtual Routing and
1992+Forwarding) device, but the binary then needs to either have the
1993+\fBCAP_NET_RAW\fP capability set or to be run as root.
1994
1995 If --interface is provided several times, the last set value is used.
1996
1997-Example:
1998+Examples:
1999 .nf
2000- curl --interface eth0 https://example.com
2001+curl --interface eth0 https://example.com
2002+curl --interface "host!10.0.0.1" https://example.com
2003+curl --interface "if!enp3s0" https://example.com
2004 .fi
2005
2006 See also \fI\-\-dns\-interface\fP.
2007+.IP "\-\-ip\-tos <string>"
2008+(All) Set Type of Service (TOS) for IPv4 or Traffic Class for IPv6.
2009+
2010+The values allowed for <string> can be a numeric value between 1 and 255
2011+or one of the following:
2012+
2013+CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7, AF11, AF12, AF13, AF21, AF22, AF23,
2014+AF31, AF32, AF33, AF41, AF42, AF43, EF, VOICE\-ADMIT, ECT1, ECT0, CE, LE,
2015+LOWCOST, LOWDELAY, THROUGHPUT, RELIABILITY, MINCOST
2016+
2017+If --ip-tos is provided several times, the last set value is used.
2018+
2019+Example:
2020+.nf
2021+curl --ip-tos CS5 https://example.com
2022+.fi
2023+
2024+Added in 8.9.0. See also \fI\-\-tcp\-nodelay\fP and \fI\-\-vlan\-priority\fP.
2025 .IP "\-\-ipfs\-gateway <URL>"
2026 (IPFS) Specify which gateway to use for IPFS and IPNS URLs. Not specifying this
2027 instead makes curl check if the IPFS_GATEWAY environment variable is set, or
2028@@ -2275,9 +2434,10 @@ if a "~/.ipfs/gateway" file holding the gateway URL exists.
2029
2030 If you run a local IPFS node, this gateway is by default available under
2031 \&"http://localhost:8080". A full example URL would look like:
2032-.nf
2033
2034-curl \--ipfs\-gateway http://localhost:8080 ipfs://bafybeigagd5nmnn2iys2f3doro7ydrevyr2mzarwidgadawmamiteydbzi
2035+.nf
2036+curl \--ipfs\-gateway http://localhost:8080 \\
2037+ ipfs://bafybeigagd5nmnn2iys2f3
2038 .fi
2039
2040 There are many public IPFS gateways. See for example:
2041@@ -2289,17 +2449,17 @@ yourself. With remote gateways there could potentially be malicious actors
2042 returning you data that does not match the request you made, inspect or even
2043 interfere with the request. You may not notice this when using curl. A
2044 mitigation could be to go for a "trustless" gateway. This means you locally
2045-verify that the data. Consult the docs page on trusted vs trustless:
2046+verify the data. Consult the docs page on trusted vs trustless:
2047 https://docs.ipfs.tech/reference/http/gateway/#trusted\-vs\-trustless
2048
2049 If --ipfs-gateway is provided several times, the last set value is used.
2050
2051 Example:
2052 .nf
2053- curl --ipfs-gateway https://example.com ipfs://
2054+curl --ipfs-gateway https://example.com ipfs://
2055 .fi
2056
2057-See also \fI-h, \-\-help\fP and \fI-M, \-\-manual\fP. Added in 8.4.0.
2058+Added in 8.4.0. See also \fI-h, \-\-help\fP and \fI-M, \-\-manual\fP.
2059 .IP "\-4, \-\-ipv4"
2060 Use IPv4 addresses only when resolving hostnames, and not for example try
2061 IPv6.
2062@@ -2308,10 +2468,11 @@ Providing --ipv4 multiple times has no extra effect.
2063
2064 Example:
2065 .nf
2066- curl --ipv4 https://example.com
2067+curl --ipv4 https://example.com
2068 .fi
2069
2070-See also \fI\-\-http1.1\fP and \fI\-\-http2\fP. This option is mutually exclusive to \fI-6, \-\-ipv6\fP.
2071+This option is mutually exclusive with \fI-6, \-\-ipv6\fP.
2072+See also \fI\-\-http1.1\fP and \fI\-\-http2\fP.
2073 .IP "\-6, \-\-ipv6"
2074 Use IPv6 addresses only when resolving hostnames, and not for example try
2075 IPv4.
2076@@ -2324,16 +2485,17 @@ Providing --ipv6 multiple times has no extra effect.
2077
2078 Example:
2079 .nf
2080- curl --ipv6 https://example.com
2081+curl --ipv6 https://example.com
2082 .fi
2083
2084-See also \fI\-\-http1.1\fP and \fI\-\-http2\fP. This option is mutually exclusive to \fI-4, \-\-ipv4\fP.
2085+This option is mutually exclusive with \fI-4, \-\-ipv4\fP.
2086+See also \fI\-\-http1.1\fP and \fI\-\-http2\fP.
2087 .IP "\-\-json <data>"
2088-(HTTP) Sends the specified JSON data in a POST request to the HTTP server. \fI\-\-json\fP
2089+(HTTP) Send the specified JSON data in a POST request to the HTTP server. \fI\-\-json\fP
2090 works as a shortcut for passing on these three options:
2091-.nf
2092
2093--\-data [arg]
2094+.nf
2095+-\-data\-binary [arg]
2096 -\-header "Content\-Type: application/json"
2097 -\-header "Accept: application/json"
2098 .fi
2099@@ -2355,13 +2517,14 @@ The headers this option sets can be overridden with \fI\-H, \-\-header\fP as usu
2100
2101 Examples:
2102 .nf
2103- curl --json '{ "drink": "coffe" }' https://example.com
2104- curl --json '{ "drink":' --json ' "coffe" }' https://example.com
2105- curl --json @prepared https://example.com
2106- curl --json @- https://example.com < json.txt
2107+curl --json '{ "drink": "coffe" }' https://example.com
2108+curl --json '{ "drink":' --json ' "coffe" }' https://example.com
2109+curl --json @prepared https://example.com
2110+curl --json @- https://example.com < json.txt
2111 .fi
2112
2113-See also \fI\-\-data\-binary\fP and \fI\-\-data\-raw\fP. This option is mutually exclusive to \fI-F, \-\-form\fP and \fI-I, \-\-head\fP and \fI-T, \-\-upload\-file\fP. Added in 7.82.0.
2114+This option is mutually exclusive with \fI-F, \-\-form\fP, \fI-I, \-\-head\fP and \fI-T, \-\-upload\-file\fP.
2115+Added in 7.82.0. See also \fI\-\-data\-binary\fP and \fI\-\-data\-raw\fP.
2116 .IP "\-j, \-\-junk\-session\-cookies"
2117 (HTTP) When curl is told to read cookies from a given file, this option makes it
2118 discard all "session cookies". This has the same effect as if a new session is
2119@@ -2372,18 +2535,39 @@ Disable it again with \-\-no-junk-session-cookies.
2120
2121 Example:
2122 .nf
2123- curl --junk-session-cookies -b cookies.txt https://example.com
2124+curl --junk-session-cookies -b cookies.txt https://example.com
2125 .fi
2126
2127 See also \fI-b, \-\-cookie\fP and \fI-c, \-\-cookie\-jar\fP.
2128+.IP "\-\-keepalive\-cnt <integer>"
2129+Set the maximum number of keepalive probes TCP should send but get no response
2130+before dropping the connection. This option is usually used in conjunction
2131+with \fI\-\-keepalive\-time\fP.
2132+
2133+This option is supported on Linux, *BSD/macOS, Windows >=10.0.16299, Solaris
2134+11.4, and recent AIX, HP\-UX and more. This option has no effect if
2135+\fI\-\-no\-keepalive\fP is used.
2136+
2137+If unspecified, the option defaults to 9.
2138+
2139+If --keepalive-cnt is provided several times, the last set value is used.
2140+
2141+Example:
2142+.nf
2143+curl --keepalive-cnt 3 https://example.com
2144+.fi
2145+
2146+Added in 8.9.0. See also \fI\-\-keepalive\-time\fP and \fI\-\-no\-keepalive\fP.
2147 .IP "\-\-keepalive\-time <seconds>"
2148 Set the time a connection needs to remain idle before sending keepalive probes
2149 and the time between individual keepalive probes. It is currently effective on
2150 operating systems offering the "TCP_KEEPIDLE" and "TCP_KEEPINTVL" socket
2151-options (meaning Linux, recent AIX, HP\-UX and more). Keepalive is used by the
2152-TCP stack to detect broken networks on idle connections. The number of missed
2153-keepalive probes before declaring the connection down is OS dependent and is
2154-commonly 9 or 10. This option has no effect if \fI\-\-no\-keepalive\fP is used.
2155+options (meaning Linux, *BSD/macOS, Windows, Solaris, and recent AIX, HP\-UX and more).
2156+Keepalive is used by the TCP stack to detect broken networks on idle connections.
2157+The number of missed keepalive probes before declaring the connection down is OS
2158+dependent and is commonly 8 (*BSD/macOS/AIX), 9 (Linux/AIX) or 5/10 (Windows), and
2159+this number can be changed by specifying the curl option "keepalive\-cnt".
2160+Note that this option has no effect if \fI\-\-no\-keepalive\fP is used.
2161
2162 If unspecified, the option defaults to 60 seconds.
2163
2164@@ -2391,21 +2575,21 @@ If --keepalive-time is provided several times, the last set value is used.
2165
2166 Example:
2167 .nf
2168- curl --keepalive-time 20 https://example.com
2169+curl --keepalive-time 20 https://example.com
2170 .fi
2171
2172-See also \fI\-\-no\-keepalive\fP and \fI-m, \-\-max\-time\fP.
2173+See also \fI\-\-no\-keepalive\fP, \fI\-\-keepalive\-cnt\fP and \fI-m, \-\-max\-time\fP.
2174 .IP "\-\-key <key>"
2175 (TLS SSH) Private key filename. Allows you to provide your private key in this separate
2176 file. For SSH, if not specified, curl tries the following candidates in order:
2177 \&"~/.ssh/id_rsa", "~/.ssh/id_dsa", "./id_rsa", "./id_dsa".
2178
2179-If curl is built against OpenSSL library, and the engine pkcs11 is available,
2180-then a PKCS#11 URI (RFC 7512) can be used to specify a private key located in
2181-a PKCS#11 device. A string beginning with "pkcs11:" is interpreted as a
2182-PKCS#11 URI. If a PKCS#11 URI is provided, then the \fI\-\-engine\fP option is set as
2183-\&"pkcs11" if none was provided and the \fI\-\-key\-type\fP option is set as "ENG" if
2184-none was provided.
2185+If curl is built against OpenSSL library, and the engine pkcs11 or pkcs11
2186+provider is available, then a PKCS#11 URI (RFC 7512) can be used to specify a
2187+private key located in a PKCS#11 device. A string beginning with "pkcs11:" is
2188+interpreted as a PKCS#11 URI. If a PKCS#11 URI is provided, then the \fI\-\-engine\fP
2189+option is set as "pkcs11" if none was provided and the \fI\-\-key\-type\fP option is
2190+set as "ENG" or "PROV" if none was provided (depending on OpenSSL version).
2191
2192 If curl is built against Secure Transport or Schannel then this option is
2193 ignored for TLS protocols (HTTPS, etc). Those backends expect the private key
2194@@ -2416,7 +2600,7 @@ If --key is provided several times, the last set value is used.
2195
2196 Example:
2197 .nf
2198- curl --cert certificate --key here https://example.com
2199+curl --cert certificate --key here https://example.com
2200 .fi
2201
2202 See also \fI\-\-key\-type\fP and \fI-E, \-\-cert\fP.
2203@@ -2428,7 +2612,7 @@ If --key-type is provided several times, the last set value is used.
2204
2205 Example:
2206 .nf
2207- curl --key-type DER --key here https://example.com
2208+curl --key-type DER --key here https://example.com
2209 .fi
2210
2211 See also \fI\-\-key\fP.
2212@@ -2441,14 +2625,15 @@ If --krb is provided several times, the last set value is used.
2213
2214 Example:
2215 .nf
2216- curl --krb clear ftp://example.com/
2217+curl --krb clear ftp://example.com/
2218 .fi
2219
2220-See also \fI\-\-delegation\fP and \fI\-\-ssl\fP. \fI\-\-krb\fP requires that the underlying libcurl was built to support Kerberos.
2221+\fI\-\-krb\fP requires that libcurl is built to support Kerberos.
2222+See also \fI\-\-delegation\fP and \fI\-\-ssl\fP.
2223 .IP "\-\-libcurl <file>"
2224 Append this option to any ordinary curl command line, and you get
2225 libcurl\-using C source code written to the file that does the equivalent of
2226-what your command\-line operation does!
2227+what your command\-line operation does.
2228
2229 This option is global and does not need to be specified for each use of --next.
2230
2231@@ -2456,7 +2641,7 @@ If --libcurl is provided several times, the last set value is used.
2232
2233 Example:
2234 .nf
2235- curl --libcurl client.c https://example.com
2236+curl --libcurl client.c https://example.com
2237 .fi
2238
2239 See also \fI-v, \-\-verbose\fP.
2240@@ -2475,16 +2660,16 @@ The rate limiting logic works on averaging the transfer speed to no more than
2241 the set threshold over a period of multiple seconds.
2242
2243 If you also use the \fI\-Y, \-\-speed\-limit\fP option, that option takes precedence and
2244-might cripple the rate\-limiting slightly, to help keeping the speed\-limit
2245+might cripple the rate\-limiting slightly, to help keep the speed\-limit
2246 logic working.
2247
2248 If --limit-rate is provided several times, the last set value is used.
2249
2250 Examples:
2251 .nf
2252- curl --limit-rate 100K https://example.com
2253- curl --limit-rate 1000 https://example.com
2254- curl --limit-rate 10M https://example.com
2255+curl --limit-rate 100K https://example.com
2256+curl --limit-rate 1000 https://example.com
2257+curl --limit-rate 10M https://example.com
2258 .fi
2259
2260 See also \fI\-\-rate\fP, \fI-Y, \-\-speed\-limit\fP and \fI-y, \-\-speed\-time\fP.
2261@@ -2519,7 +2704,7 @@ Disable it again with \-\-no-list-only.
2262
2263 Example:
2264 .nf
2265- curl --list-only ftp://example.com/dir/
2266+curl --list-only ftp://example.com/dir/
2267 .fi
2268
2269 See also \fI-Q, \-\-quote\fP and \fI-X, \-\-request\fP.
2270@@ -2533,19 +2718,20 @@ If --local-port is provided several times, the last set value is used.
2271
2272 Example:
2273 .nf
2274- curl --local-port 1000-3000 https://example.com
2275+curl --local-port 1000-3000 https://example.com
2276 .fi
2277
2278 See also \fI-g, \-\-globoff\fP.
2279 .IP "\-L, \-\-location"
2280 (HTTP) If the server reports that the requested page has moved to a different
2281 location (indicated with a Location: header and a 3XX response code), this
2282-option makes curl redo the request on the new place. If used together with
2283-\fI\-i, \-\-include\fP or \fI\-I, \-\-head\fP, headers from all requested pages are shown.
2284+option makes curl redo the request to the new place. If used together with
2285+\fI\-i, \-\-show\-headers\fP or \fI\-I, \-\-head\fP, headers from all requested pages are shown.
2286
2287-When authentication is used, curl only sends its credentials to the initial
2288-host. If a redirect takes curl to a different host, it does not get the
2289-user+password pass on. See also \fI\-\-location\-trusted\fP on how to change this.
2290+When authentication is used, or when sending a cookie with "\-H Cookie:", curl
2291+only sends its credentials to the initial host. If a redirect takes curl to a
2292+different host, it does not get the credentials passed on. See
2293+\fI\-\-location\-trusted\fP on how to change this.
2294
2295 Limit the amount of redirects to follow by using the \fI\-\-max\-redirs\fP option.
2296
2297@@ -2565,22 +2751,27 @@ Disable it again with \-\-no-location.
2298
2299 Example:
2300 .nf
2301- curl -L https://example.com
2302+curl -L https://example.com
2303 .fi
2304
2305 See also \fI\-\-resolve\fP and \fI\-\-alt\-svc\fP.
2306 .IP "\-\-location\-trusted"
2307-(HTTP) Like \fI\-L, \-\-location\fP, but allows sending the name + password to all hosts that the
2308-site may redirect to. This may or may not introduce a security breach if the
2309-site redirects you to a site to which you send your authentication info (which
2310-is clear\-text in the case of HTTP Basic authentication).
2311+(HTTP) Instruct curl to follow HTTP redirects like \fI\-L, \-\-location\fP, but permit curl to
2312+send credentials and other secrets along to other hosts than the initial one.
2313+
2314+This may or may not introduce a security breach if the site redirects you to a
2315+site to which you send this sensitive data to. Another host means that one or
2316+more of hostname, protocol scheme or port number changed.
2317+
2318+This option also allows curl to pass long cookies set explicitly with \fI\-H, \-\-header\fP.
2319
2320 Providing --location-trusted multiple times has no extra effect.
2321 Disable it again with \-\-no-location-trusted.
2322
2323-Example:
2324+Examples:
2325 .nf
2326- curl --location-trusted -u user:password https://example.com
2327+curl --location-trusted -u user:password https://example.com
2328+curl --location-trusted -H "Cookie: session=abc" https://example.com
2329 .fi
2330
2331 See also \fI-u, \-\-user\fP.
2332@@ -2604,7 +2795,7 @@ If --login-options is provided several times, the last set value is used.
2333
2334 Example:
2335 .nf
2336- curl --login-options 'AUTH=*' imap://example.com
2337+curl --login-options 'AUTH=*' imap://example.com
2338 .fi
2339
2340 See also \fI-u, \-\-user\fP.
2341@@ -2616,7 +2807,7 @@ If --mail-auth is provided several times, the last set value is used.
2342
2343 Example:
2344 .nf
2345- curl --mail-auth user@example.come -T mail smtp://example.com/
2346+curl --mail-auth user@example.com -T mail smtp://example.com/
2347 .fi
2348
2349 See also \fI\-\-mail\-rcpt\fP and \fI\-\-mail\-from\fP.
2350@@ -2627,7 +2818,7 @@ If --mail-from is provided several times, the last set value is used.
2351
2352 Example:
2353 .nf
2354- curl --mail-from user@example.com -T mail smtp://example.com/
2355+curl --mail-from user@example.com -T mail smtp://example.com/
2356 .fi
2357
2358 See also \fI\-\-mail\-rcpt\fP and \fI\-\-mail\-auth\fP.
2359@@ -2647,7 +2838,7 @@ specified using the mailing list name, such as "Friends" or "London\-Office".
2360
2361 Example:
2362 .nf
2363- curl --mail-rcpt user@example.net smtp://example.com
2364+curl --mail-rcpt user@example.net smtp://example.com
2365 .fi
2366
2367 See also \fI\-\-mail\-rcpt\-allowfails\fP.
2368@@ -2669,27 +2860,29 @@ Disable it again with \-\-no-mail-rcpt-allowfails.
2369
2370 Example:
2371 .nf
2372- curl --mail-rcpt-allowfails --mail-rcpt dest@example.com smtp://example.com
2373+curl --mail-rcpt-allowfails --mail-rcpt dest@example.com smtp://example.com
2374 .fi
2375
2376-See also \fI\-\-mail\-rcpt\fP. Added in 7.69.0.
2377+Added in 7.69.0. See also \fI\-\-mail\-rcpt\fP.
2378 .IP "\-M, \-\-manual"
2379 Manual. Display the huge help text.
2380
2381 Example:
2382 .nf
2383- curl --manual
2384+curl --manual
2385 .fi
2386
2387 See also \fI-v, \-\-verbose\fP, \fI\-\-libcurl\fP and \fI\-\-trace\fP.
2388 .IP "\-\-max\-filesize <bytes>"
2389-(FTP HTTP MQTT) Specify the maximum size (in bytes) of a file to download. If the file
2390-requested is larger than this value, the transfer does not start and curl
2391-returns with exit code 63.
2392+(FTP HTTP MQTT) When set to a non\-zero value, it specifies the maximum size (in bytes) of a
2393+file to download. If the file requested is larger than this value, the
2394+transfer does not start and curl returns with exit code 63.
2395+
2396+Setting the maximum value to zero disables the limit.
2397
2398 A size modifier may be used. For example, Appending \(aqk\(aq or \(aqK\(aq counts the
2399 number as kilobytes, \(aqm\(aq or \(aqM\(aq makes it megabytes, while \(aqg\(aq or \(aqG\(aq makes it
2400-gigabytes. Examples: 200K, 3m and 1G. (Added in 7.58.0)
2401+gigabytes. Examples: 200K, 3m and 1G.
2402
2403 \fBNOTE\fP: before curl 8.4.0, when the file size is not known prior to
2404 download, for such files this option has no effect even if the file transfer
2405@@ -2702,12 +2895,12 @@ If --max-filesize is provided several times, the last set value is used.
2406
2407 Example:
2408 .nf
2409- curl --max-filesize 100K https://example.com
2410+curl --max-filesize 100K https://example.com
2411 .fi
2412
2413 See also \fI\-\-limit\-rate\fP.
2414 .IP "\-\-max\-redirs <num>"
2415-(HTTP) Set maximum number of redirections to follow. When \fI\-L, \-\-location\fP is used, to
2416+(HTTP) Set the maximum number of redirections to follow. When \fI\-L, \-\-location\fP is used, to
2417 prevent curl from following too many redirects, by default, the limit is
2418 set to 50 redirects. Set this option to \-1 to make it unlimited.
2419
2420@@ -2715,12 +2908,12 @@ If --max-redirs is provided several times, the last set value is used.
2421
2422 Example:
2423 .nf
2424- curl --max-redirs 3 --location https://example.com
2425+curl --max-redirs 3 --location https://example.com
2426 .fi
2427
2428 See also \fI-L, \-\-location\fP.
2429 .IP "\-m, \-\-max\-time <seconds>"
2430-Set maximum time in seconds that you allow each transfer to take. Prevents
2431+Set the maximum time in seconds that you allow each transfer to take. Prevents
2432 your batch jobs from hanging for hours due to slow networks or links going
2433 down. This option accepts decimal values.
2434
2435@@ -2728,15 +2921,15 @@ If you enable retrying the transfer (\fI\-\-retry\fP) then the maximum time coun
2436 reset each time the transfer is retried. You can use \fI\-\-retry\-max\-time\fP to limit
2437 the retry time.
2438
2439-The decimal value needs to provided using a dot (.) as decimal separator \- not
2440-the local version even if it might be using another separator.
2441+The decimal value needs to be provided using a dot (.) as decimal separator \-
2442+not the local version even if it might be using another separator.
2443
2444 If --max-time is provided several times, the last set value is used.
2445
2446 Examples:
2447 .nf
2448- curl --max-time 10 https://example.com
2449- curl --max-time 2.92 https://example.com
2450+curl --max-time 10 https://example.com
2451+curl --max-time 2.92 https://example.com
2452 .fi
2453
2454 See also \fI\-\-connect\-timeout\fP and \fI\-\-retry\-max\-time\fP.
2455@@ -2748,10 +2941,36 @@ If --metalink is provided several times, the last set value is used.
2456
2457 Example:
2458 .nf
2459- curl --metalink file https://example.com
2460+curl --metalink file https://example.com
2461 .fi
2462
2463 See also \fI-Z, \-\-parallel\fP.
2464+.IP "\-\-mptcp"
2465+Enable the use of Multipath TCP (MPTCP) for connections. MPTCP is an extension
2466+to the standard TCP that allows multiple TCP streams over different network
2467+paths between the same source and destination. This can enhance bandwidth and
2468+improve reliability by using multiple paths simultaneously.
2469+
2470+MPTCP is beneficial in networks where multiple paths exist between clients and
2471+servers, such as mobile networks where a device may switch between WiFi and
2472+cellular data or in wired networks with multiple Internet Service Providers.
2473+
2474+This option is currently only supported on Linux starting from kernel 5.6. Only
2475+TCP connections are modified, hence this option does not affect HTTP/3 (QUIC)
2476+or UDP connections.
2477+
2478+The server curl connects to must also support MPTCP. If not, the connection
2479+seamlessly falls back to TCP.
2480+
2481+Providing --mptcp multiple times has no extra effect.
2482+Disable it again with \-\-no-mptcp.
2483+
2484+Example:
2485+.nf
2486+curl --mptcp https://example.com
2487+.fi
2488+
2489+Added in 8.9.0. See also \fI\-\-tcp\-fastopen\fP.
2490 .IP "\-\-negotiate"
2491 (HTTP) Enable Negotiate (SPNEGO) authentication.
2492
2493@@ -2766,7 +2985,7 @@ Providing --negotiate multiple times has no extra effect.
2494
2495 Example:
2496 .nf
2497- curl --negotiate -u : https://example.com
2498+curl --negotiate -u : https://example.com
2499 .fi
2500
2501 See also \fI\-\-basic\fP, \fI\-\-ntlm\fP, \fI\-\-anyauth\fP and \fI\-\-proxy\-negotiate\fP.
2502@@ -2774,7 +2993,7 @@ See also \fI\-\-basic\fP, \fI\-\-ntlm\fP, \fI\-\-anyauth\fP and \fI\-\-proxy\-ne
2503 Make curl scan the \fI.netrc\fP file in the user\(aqs home directory for login name
2504 and password. This is typically used for FTP on Unix. If used with HTTP, curl
2505 enables user authentication. See \fInetrc(5)\fP and \fIftp(1)\fP for details on the
2506-file format. Curl does not complain if that file does not have the right
2507+file format. curl does not complain if that file does not have the right
2508 permissions (it should be neither world\- nor group\-readable). The environment
2509 variable "HOME" is used to find the home directory.
2510
2511@@ -2783,23 +3002,25 @@ On Windows two filenames in the home directory are checked: \fI.netrc\fP and
2512 only.
2513
2514 A quick and simple example of how to setup a \fI.netrc\fP to allow curl to FTP to
2515-the machine host.domain.com with username \(aqmyself\(aq and password \(aqsecret\(aq could
2516+the machine host.example.com with username \(aqmyself\(aq and password \(aqsecret\(aq could
2517 look similar to:
2518-.nf
2519
2520-machine host.domain.com
2521+.nf
2522+machine host.example.com
2523 login myself
2524 password secret
2525+.fi
2526
2527 Providing --netrc multiple times has no extra effect.
2528 Disable it again with \-\-no-netrc.
2529
2530 Example:
2531 .nf
2532- curl --netrc https://example.com
2533+curl --netrc https://example.com
2534 .fi
2535
2536-See also \fI\-\-netrc\-file\fP, \fI-K, \-\-config\fP and \fI-u, \-\-user\fP. This option is mutually exclusive to \fI\-\-netrc\-file\fP and \fI\-\-netrc\-optional\fP.
2537+This option is mutually exclusive with \fI\-\-netrc\-file\fP and \fI\-\-netrc\-optional\fP.
2538+See also \fI\-\-netrc\-file\fP, \fI-K, \-\-config\fP and \fI-u, \-\-user\fP.
2539 .IP "\-\-netrc\-file <filename>"
2540 Set the netrc file to use. Similar to \fI\-n, \-\-netrc\fP, except that you also provide
2541 the path (absolute or relative).
2542@@ -2810,10 +3031,11 @@ If --netrc-file is provided several times, the last set value is used.
2543
2544 Example:
2545 .nf
2546- curl --netrc-file netrc https://example.com
2547+curl --netrc-file netrc https://example.com
2548 .fi
2549
2550-See also \fI-n, \-\-netrc\fP, \fI-u, \-\-user\fP and \fI-K, \-\-config\fP. This option is mutually exclusive to \fI-n, \-\-netrc\fP.
2551+This option is mutually exclusive with \fI-n, \-\-netrc\fP.
2552+See also \fI-n, \-\-netrc\fP, \fI-u, \-\-user\fP and \fI-K, \-\-config\fP.
2553 .IP "\-\-netrc\-optional"
2554 Similar to \fI\-n, \-\-netrc\fP, but this option makes the .netrc usage \fBoptional\fP
2555 and not mandatory as the \fI\-n, \-\-netrc\fP option does.
2556@@ -2823,10 +3045,11 @@ Disable it again with \-\-no-netrc-optional.
2557
2558 Example:
2559 .nf
2560- curl --netrc-optional https://example.com
2561+curl --netrc-optional https://example.com
2562 .fi
2563
2564-See also \fI\-\-netrc\-file\fP. This option is mutually exclusive to \fI-n, \-\-netrc\fP.
2565+This option is mutually exclusive with \fI-n, \-\-netrc\fP.
2566+See also \fI\-\-netrc\-file\fP.
2567 .IP "\-:, \-\-next"
2568 Use a separate operation for the following URL and associated options. This
2569 allows you to send several URL requests, each with their own specific options,
2570@@ -2837,16 +3060,17 @@ over to the operation following the \fI\-:, \-\-next\fP instruction. Global opti
2571 \fI\-v, \-\-verbose\fP, \fI\-\-trace\fP, \fI\-\-trace\-ascii\fP and \fI\-\-fail\-early\fP.
2572
2573 For example, you can do both a GET and a POST in a single command line:
2574-.nf
2575
2576+.nf
2577 curl www1.example.com \--next \-d postthis www2.example.com
2578+.fi
2579
2580 --next can be used several times in a command line
2581
2582 Examples:
2583 .nf
2584- curl https://example.com --next -d postthis www2.example.com
2585- curl -I https://example.com --next https://example.net/
2586+curl https://example.com --next -d postthis www2.example.com
2587+curl -I https://example.com --next https://example.net/
2588 .fi
2589
2590 See also \fI-Z, \-\-parallel\fP and \fI-K, \-\-config\fP.
2591@@ -2863,12 +3087,13 @@ Disable it again with \-\-alpn.
2592
2593 Example:
2594 .nf
2595- curl --no-alpn https://example.com
2596+curl --no-alpn https://example.com
2597 .fi
2598
2599-See also \fI\-\-no\-npn\fP and \fI\-\-http2\fP. \fI\-\-no\-alpn\fP requires that the underlying libcurl was built to support TLS.
2600+\fI\-\-no\-alpn\fP requires that libcurl is built to support TLS.
2601+See also \fI\-\-no\-npn\fP and \fI\-\-http2\fP.
2602 .IP "\-N, \-\-no\-buffer"
2603-Disables the buffering of the output stream. In normal work situations, curl
2604+Disable the buffering of the output stream. In normal work situations, curl
2605 uses a standard buffered output stream that has the effect that it outputs the
2606 data in chunks, not necessarily exactly when the data arrives. Using this
2607 option disables that buffering.
2608@@ -2881,7 +3106,7 @@ Disable it again with \-\-buffer.
2609
2610 Example:
2611 .nf
2612- curl --no-buffer https://example.com
2613+curl --no-buffer https://example.com
2614 .fi
2615
2616 See also \fI-#, \-\-progress\-bar\fP.
2617@@ -2896,17 +3121,19 @@ Note that this is the negated option name documented. You can thus use
2618 \fI\-\-clobber\fP to enforce the clobbering, even if \fI\-J, \-\-remote\-header\-name\fP is
2619 specified.
2620
2621+The \fI\-C, \-\-continue\-at\fP option cannot be used together with \fI\-\-no\-clobber\fP.
2622+
2623 Providing --no-clobber multiple times has no extra effect.
2624 Disable it again with \-\-clobber.
2625
2626 Example:
2627 .nf
2628- curl --no-clobber --output local/dir/file https://example.com
2629+curl --no-clobber --output local/dir/file https://example.com
2630 .fi
2631
2632-See also \fI-o, \-\-output\fP and \fI-O, \-\-remote\-name\fP. Added in 7.83.0.
2633+Added in 7.83.0. See also \fI-o, \-\-output\fP and \fI-O, \-\-remote\-name\fP.
2634 .IP "\-\-no\-keepalive"
2635-Disables the use of keepalive messages on the TCP connection. curl otherwise
2636+Disable the use of keepalive messages on the TCP connection. curl otherwise
2637 enables them by default.
2638
2639 Note that this is the negated option name documented. You can thus use
2640@@ -2917,10 +3144,10 @@ Disable it again with \-\-keepalive.
2641
2642 Example:
2643 .nf
2644- curl --no-keepalive https://example.com
2645+curl --no-keepalive https://example.com
2646 .fi
2647
2648-See also \fI\-\-keepalive\-time\fP.
2649+See also \fI\-\-keepalive\-time\fP and \fI\-\-keepalive\-cnt\fP.
2650 .IP "\-\-no\-npn"
2651 (HTTPS) curl never uses NPN, this option has no effect (added in 7.86.0).
2652
2653@@ -2933,10 +3160,11 @@ Disable it again with \-\-npn.
2654
2655 Example:
2656 .nf
2657- curl --no-npn https://example.com
2658+curl --no-npn https://example.com
2659 .fi
2660
2661-See also \fI\-\-no\-alpn\fP and \fI\-\-http2\fP. \fI\-\-no\-npn\fP requires that the underlying libcurl was built to support TLS.
2662+\fI\-\-no\-npn\fP requires that libcurl is built to support TLS.
2663+See also \fI\-\-no\-alpn\fP and \fI\-\-http2\fP.
2664 .IP "\-\-no\-progress\-meter"
2665 Option to switch off the progress meter output without muting or otherwise
2666 affecting warning and informational messages like \fI\-s, \-\-silent\fP does.
2667@@ -2949,10 +3177,10 @@ Disable it again with \-\-progress-meter.
2668
2669 Example:
2670 .nf
2671- curl --no-progress-meter -o store https://example.com
2672+curl --no-progress-meter -o store https://example.com
2673 .fi
2674
2675-See also \fI-v, \-\-verbose\fP and \fI-s, \-\-silent\fP. Added in 7.67.0.
2676+Added in 7.67.0. See also \fI-v, \-\-verbose\fP and \fI-s, \-\-silent\fP.
2677 .IP "\-\-no\-sessionid"
2678 (TLS) Disable curl\(aqs use of SSL session\-ID caching. By default all transfers are
2679 done using the cache. Note that while nothing should ever get hurt by
2680@@ -2968,7 +3196,7 @@ Disable it again with \-\-sessionid.
2681
2682 Example:
2683 .nf
2684- curl --no-sessionid https://example.com
2685+curl --no-sessionid https://example.com
2686 .fi
2687
2688 See also \fI-k, \-\-insecure\fP.
2689@@ -2981,7 +3209,7 @@ example, "local.com" would match "local.com", "local.com:80", and
2690 \&"www.local.com", but not "www.notlocal.com".
2691
2692 This option overrides the environment variables that disable the proxy
2693-("no_proxy" and "NO_PROXY") (added in 7.53.0). If there is an environment
2694+("no_proxy" and "NO_PROXY"). If there is an environment
2695 variable disabling a proxy, you can set the no proxy list to "" to override
2696 it.
2697
2698@@ -2994,7 +3222,7 @@ If --noproxy is provided several times, the last set value is used.
2699
2700 Example:
2701 .nf
2702- curl --noproxy "www.example" https://example.com
2703+curl --noproxy "www.example" https://example.com
2704 .fi
2705
2706 See also \fI-x, \-\-proxy\fP.
2707@@ -3013,10 +3241,12 @@ Providing --ntlm multiple times has no extra effect.
2708
2709 Example:
2710 .nf
2711- curl --ntlm -u user:password https://example.com
2712+curl --ntlm -u user:password https://example.com
2713 .fi
2714
2715-See also \fI\-\-proxy\-ntlm\fP. \fI\-\-ntlm\fP requires that the underlying libcurl was built to support TLS. This option is mutually exclusive to \fI\-\-basic\fP and \fI\-\-negotiate\fP and \fI\-\-digest\fP and \fI\-\-anyauth\fP.
2716+\fI\-\-ntlm\fP requires that libcurl is built to support TLS.
2717+This option is mutually exclusive with \fI\-\-basic\fP, \fI\-\-negotiate\fP, \fI\-\-digest\fP and \fI\-\-anyauth\fP.
2718+See also \fI\-\-proxy\-ntlm\fP.
2719 .IP "\-\-ntlm\-wb"
2720 (HTTP) Deprecated option (added in 8.8.0).
2721
2722@@ -3027,7 +3257,7 @@ Providing --ntlm-wb multiple times has no extra effect.
2723
2724 Example:
2725 .nf
2726- curl --ntlm-wb -u user:password https://example.com
2727+curl --ntlm-wb -u user:password https://example.com
2728 .fi
2729
2730 See also \fI\-\-ntlm\fP and \fI\-\-proxy\-ntlm\fP.
2731@@ -3042,7 +3272,7 @@ If --oauth2-bearer is provided several times, the last set value is used.
2732
2733 Example:
2734 .nf
2735- curl --oauth2-bearer "mF_9.B5f-4.1JqM" https://example.com
2736+curl --oauth2-bearer "mF_9.B5f-4.1JqM" https://example.com
2737 .fi
2738
2739 See also \fI\-\-basic\fP, \fI\-\-ntlm\fP and \fI\-\-digest\fP.
2740@@ -3051,30 +3281,30 @@ Write output to the given file instead of stdout. If you are using globbing to
2741 fetch multiple documents, you should quote the URL and you can use "#"
2742 followed by a number in the filename. That variable is then replaced with the
2743 current string for the URL being fetched. Like in:
2744-.nf
2745
2746+.nf
2747 curl "http://{one,two}.example.com" \-o "file_#1.txt"
2748 .fi
2749
2750 or use several variables like:
2751-.nf
2752
2753+.nf
2754 curl "http://{site,host}.host[1\-5].example" \-o "#1_#2"
2755 .fi
2756
2757 You may use this option as many times as the number of URLs you have. For
2758 example, if you specify two URLs on the same command line, you can use it like
2759 this:
2760-.nf
2761
2762+.nf
2763 curl \-o aa example.com \-o bb example.net
2764 .fi
2765
2766 and the order of the \-o options and the URLs does not matter, just that the
2767 first \-o is for the first URL and so on, so the above command line can also be
2768 written as
2769-.nf
2770
2771+.nf
2772 curl example.com example.net \-o aa \-o bb
2773 .fi
2774
2775@@ -3083,31 +3313,32 @@ dynamically. Specifying the output as \(aq\-\(aq (a single dash) passes the outp
2776 stdout.
2777
2778 To suppress response bodies, you can redirect output to /dev/null:
2779-.nf
2780
2781+.nf
2782 curl example.com \-o /dev/null
2783 .fi
2784
2785 Or for Windows:
2786-.nf
2787
2788+.nf
2789 curl example.com \-o nul
2790 .fi
2791
2792 Specify the filename as single minus to force the output to stdout, to
2793 override curl\(aqs internal binary output in terminal prevention:
2794-.nf
2795
2796+.nf
2797 curl https://example.com/jpeg \-o \-
2798+.fi
2799
2800---output can be used several times in a command line
2801+--output is associated with a single URL. Use it once per URL when you use several URLs in a command line.
2802
2803 Examples:
2804 .nf
2805- curl -o file https://example.com
2806- curl "http://{one,two}.example.com" -o "file_#1.txt"
2807- curl "http://{site,host}.host[1-5].example" -o "#1_#2"
2808- curl -o file https://example.com -o file2 https://example.net
2809+curl -o file https://example.com
2810+curl "http://{one,two}.example.com" -o "file_#1.txt"
2811+curl "http://{site,host}.host[1-5].example" -o "#1_#2"
2812+curl -o file https://example.com -o file2 https://example.net
2813 .fi
2814
2815 See also \fI-O, \-\-remote\-name\fP, \fI\-\-remote\-name\-all\fP and \fI-J, \-\-remote\-header\-name\fP.
2816@@ -3125,13 +3356,22 @@ If --output-dir is provided several times, the last set value is used.
2817
2818 Example:
2819 .nf
2820- curl --output-dir "tmp" -O https://example.com
2821+curl --output-dir "tmp" -O https://example.com
2822 .fi
2823
2824-See also \fI-O, \-\-remote\-name\fP and \fI-J, \-\-remote\-header\-name\fP. Added in 7.73.0.
2825+Added in 7.73.0. See also \fI-O, \-\-remote\-name\fP and \fI-J, \-\-remote\-header\-name\fP.
2826 .IP "\-Z, \-\-parallel"
2827-Makes curl perform its transfers in parallel as compared to the regular serial
2828-manner.
2829+Make curl perform all transfers in parallel as compared to the regular serial
2830+manner. Parallel transfer means that curl runs up to N concurrent transfers
2831+simultaneously and if there are more than N transfers to handle, it starts new
2832+ones when earlier transfers finish.
2833+
2834+With parallel transfers, the progress meter output is different from when
2835+doing serial transfers, as it then displays the transfer status for multiple
2836+transfers in a single line.
2837+
2838+The maximum amount of concurrent transfers is set with \fI\-\-parallel\-max\fP and it
2839+defaults to 50.
2840
2841 This option is global and does not need to be specified for each use of --next.
2842
2843@@ -3140,15 +3380,18 @@ Disable it again with \-\-no-parallel.
2844
2845 Example:
2846 .nf
2847- curl --parallel https://example.com -o file1 https://example.com -o file2
2848+curl --parallel https://example.com -o file1 https://example.com -o file2
2849 .fi
2850
2851-See also \fI-:, \-\-next\fP and \fI-v, \-\-verbose\fP. Added in 7.66.0.
2852+Added in 7.66.0. See also \fI-:, \-\-next\fP, \fI-v, \-\-verbose\fP, \fI\-\-parallel\-max\fP and \fI\-\-parallel\-immediate\fP.
2853 .IP "\-\-parallel\-immediate"
2854-When doing parallel transfers, this option instructs curl that it should
2855-rather prefer opening up more connections in parallel at once rather than
2856-waiting to see if new transfers can be added as multiplexed streams on another
2857-connection.
2858+When doing parallel transfers, this option instructs curl to prefer opening up
2859+more connections in parallel at once rather than waiting to see if new
2860+transfers can be added as multiplexed streams on another connection.
2861+
2862+By default, without this option set, curl prefers to wait a little and
2863+multiplex new transfers over existing connections. It keeps the number of
2864+connections low at the expense of risking a slightly slower transfer startup.
2865
2866 This option is global and does not need to be specified for each use of --next.
2867
2868@@ -3157,35 +3400,34 @@ Disable it again with \-\-no-parallel-immediate.
2869
2870 Example:
2871 .nf
2872- curl --parallel-immediate -Z https://example.com -o file1 https://example.com -o file2
2873+curl --parallel-immediate -Z https://example.com -o file1 https://example.com -o file2
2874 .fi
2875
2876-See also \fI-Z, \-\-parallel\fP and \fI\-\-parallel\-max\fP. Added in 7.68.0.
2877+Added in 7.68.0. See also \fI-Z, \-\-parallel\fP and \fI\-\-parallel\-max\fP.
2878 .IP "\-\-parallel\-max <num>"
2879 When asked to do parallel transfers, using \fI\-Z, \-\-parallel\fP, this option controls
2880 the maximum amount of transfers to do simultaneously.
2881
2882-This option is global and does not need to be specified for each use of
2883-\fI\-:, \-\-next\fP.
2884+The default is 50. 300 is the largest supported value.
2885
2886-The default is 50.
2887+This option is global and does not need to be specified for each use of --next.
2888
2889 If --parallel-max is provided several times, the last set value is used.
2890
2891 Example:
2892 .nf
2893- curl --parallel-max 100 -Z https://example.com ftp://example.com/
2894+curl --parallel-max 100 -Z https://example.com ftp://example.com/
2895 .fi
2896
2897-See also \fI-Z, \-\-parallel\fP. Added in 7.66.0.
2898+Added in 7.66.0. See also \fI-Z, \-\-parallel\fP.
2899 .IP "\-\-pass <phrase>"
2900-(SSH TLS) Passphrase for the private key.
2901+(SSH TLS) Passphrase for the private key used for SSH or TLS.
2902
2903 If --pass is provided several times, the last set value is used.
2904
2905 Example:
2906 .nf
2907- curl --pass secret --key file https://example.com
2908+curl --pass secret --key file https://example.com
2909 .fi
2910
2911 See also \fI\-\-key\fP and \fI-u, \-\-user\fP.
2912@@ -3199,7 +3441,7 @@ Disable it again with \-\-no-path-as-is.
2913
2914 Example:
2915 .nf
2916- curl --path-as-is https://example.com/../../etc/passwd
2917+curl --path-as-is https://example.com/../../etc/passwd
2918 .fi
2919
2920 See also \fI\-\-request\-target\fP.
2921@@ -3219,14 +3461,16 @@ together then the peer is still verified by public key.
2922
2923 PEM/DER support:
2924
2925-OpenSSL and GnuTLS, wolfSSL (added in 7.43.0), mbedTLS
2926-, Secure Transport macOS 10.7+/iOS 10+ (7.54.1), Schannel
2927-(7.58.1)
2928+OpenSSL and GnuTLS, wolfSSL,
2929+mbedTLS,
2930+Secure Transport macOS 10.7+/iOS 10+,
2931+Schannel
2932
2933 sha256 support:
2934
2935-OpenSSL, GnuTLS and wolfSSL, mbedTLS (added in 7.47.0),
2936-Secure Transport macOS 10.7+/iOS 10+ (7.54.1), Schannel (7.58.1)
2937+OpenSSL, GnuTLS and wolfSSL, mbedTLS,
2938+Secure Transport macOS 10.7+/iOS 10+, Schannel
2939+
2940
2941 Other SSL backends not supported.
2942
2943@@ -3234,8 +3478,8 @@ If --pinnedpubkey is provided several times, the last set value is used.
2944
2945 Examples:
2946 .nf
2947- curl --pinnedpubkey keyfile https://example.com
2948- curl --pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com
2949+curl --pinnedpubkey keyfile https://example.com
2950+curl --pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com
2951 .fi
2952
2953 See also \fI\-\-hostpubsha256\fP.
2954@@ -3251,7 +3495,7 @@ Disable it again with \-\-no-post301.
2955
2956 Example:
2957 .nf
2958- curl --post301 --location -d "data" https://example.com
2959+curl --post301 --location -d "data" https://example.com
2960 .fi
2961
2962 See also \fI\-\-post302\fP, \fI\-\-post303\fP and \fI-L, \-\-location\fP.
2963@@ -3267,7 +3511,7 @@ Disable it again with \-\-no-post302.
2964
2965 Example:
2966 .nf
2967- curl --post302 --location -d "data" https://example.com
2968+curl --post302 --location -d "data" https://example.com
2969 .fi
2970
2971 See also \fI\-\-post301\fP, \fI\-\-post303\fP and \fI-L, \-\-location\fP.
2972@@ -3281,11 +3525,11 @@ Disable it again with \-\-no-post303.
2973
2974 Example:
2975 .nf
2976- curl --post303 --location -d "data" https://example.com
2977+curl --post303 --location -d "data" https://example.com
2978 .fi
2979
2980 See also \fI\-\-post302\fP, \fI\-\-post301\fP and \fI-L, \-\-location\fP.
2981-.IP "\-\-preproxy [protocol://]host[:port]"
2982+.IP "\-\-preproxy <[protocol://]host[:port]>"
2983 Use the specified SOCKS proxy before connecting to an HTTP or HTTPS \fI\-x, \-\-proxy\fP. In
2984 such a case curl first connects to the SOCKS proxy and then connects (through
2985 SOCKS) to the HTTP or HTTPS proxy. Hence pre proxy.
2986@@ -3306,10 +3550,10 @@ If --preproxy is provided several times, the last set value is used.
2987
2988 Example:
2989 .nf
2990- curl --preproxy socks5://proxy.example -x http://http.example https://example.com
2991+curl --preproxy socks5://proxy.example -x http://http.example https://example.com
2992 .fi
2993
2994-See also \fI-x, \-\-proxy\fP and \fI\-\-socks5\fP. Added in 7.52.0.
2995+See also \fI-x, \-\-proxy\fP and \fI\-\-socks5\fP.
2996 .IP "\-#, \-\-progress\-bar"
2997 Make curl display transfer progress as a simple progress bar instead of the
2998 standard, more informational, meter.
2999@@ -3327,7 +3571,7 @@ Disable it again with \-\-no-progress-bar.
3000
3001 Example:
3002 .nf
3003- curl -# -O https://example.com
3004+curl -# -O https://example.com
3005 .fi
3006
3007 See also \fI\-\-styled\-output\fP.
3008@@ -3364,7 +3608,7 @@ If --proto is provided several times, the last set value is used.
3009
3010 Example:
3011 .nf
3012- curl --proto =http,https,sftp https://example.com
3013+curl --proto =http,https,sftp https://example.com
3014 .fi
3015
3016 See also \fI\-\-proto\-redir\fP and \fI\-\-proto\-default\fP.
3017@@ -3382,7 +3626,7 @@ If --proto-default is provided several times, the last set value is used.
3018
3019 Example:
3020 .nf
3021- curl --proto-default https ftp.example.com
3022+curl --proto-default https ftp.example.com
3023 .fi
3024
3025 See also \fI\-\-proto\fP and \fI\-\-proto\-redir\fP.
3026@@ -3391,24 +3635,24 @@ Limit what protocols to allow on redirects. Protocols denied by \fI\-\-proto\fP
3027 not overridden by this option. See \fI\-\-proto\fP for how protocols are represented.
3028
3029 Example, allow only HTTP and HTTPS on redirect:
3030-.nf
3031
3032+.nf
3033 curl \--proto\-redir \-all,http,https http://example.com
3034 .fi
3035
3036-By default curl only allows HTTP, HTTPS, FTP and FTPS on redirects (added in
3037-7.65.2). Specifying \fIall\fP or \fI+all\fP enables all protocols on redirects, which
3038-is not good for security.
3039+By default curl only allows HTTP, HTTPS, FTP and FTPS on redirects
3040+(added in 7.65.2). Specifying \fIall\fP or \fI+all\fP enables all protocols on
3041+redirects, which is not good for security.
3042
3043 If --proto-redir is provided several times, the last set value is used.
3044
3045 Example:
3046 .nf
3047- curl --proto-redir =http,https https://example.com
3048+curl --proto-redir =http,https https://example.com
3049 .fi
3050
3051 See also \fI\-\-proto\fP.
3052-.IP "\-x, \-\-proxy [protocol://]host[:port]"
3053+.IP "\-x, \-\-proxy <[protocol://]host[:port]>"
3054 Use the specified proxy.
3055
3056 The proxy string can be specified with a protocol:// prefix. No protocol
3057@@ -3419,11 +3663,11 @@ used.
3058 Unix domain sockets are supported for socks proxy. Set localhost for the host
3059 part. e.g. socks5h://localhost/path/to/socket.sock
3060
3061-HTTPS proxy support works set with the https:// protocol prefix for OpenSSL
3062-and GnuTLS (added in 7.52.0). It also works for BearSSL, mbedTLS, rustls,
3063+HTTPS proxy support works with the https:// protocol prefix for OpenSSL
3064+and GnuTLS. It also works for BearSSL, mbedTLS, Rustls,
3065 Schannel, Secure Transport and wolfSSL (added in 7.87.0).
3066
3067-Unrecognized and unsupported proxy protocols cause an error (added in 7.52.0).
3068+Unrecognized and unsupported proxy protocols cause an error.
3069 Ancient curl versions ignored unknown schemes and used http:// instead.
3070
3071 If the port number is not specified in the proxy string, it is assumed to be
3072@@ -3449,11 +3693,15 @@ password.
3073 When a proxy is used, the active FTP mode as set with \fI\-P, \-\-ftp\-port\fP, cannot be
3074 used.
3075
3076+Doing FTP over an HTTP proxy without \fI\-p, \-\-proxytunnel\fP makes curl do HTTP with an
3077+FTP URL over the proxy. For such transfers, common FTP specific options do not
3078+work, including \fI\-\-ssl\-reqd\fP and \fI\-\-ftp\-ssl\-control\fP.
3079+
3080 If --proxy is provided several times, the last set value is used.
3081
3082 Example:
3083 .nf
3084- curl --proxy http://proxy.example https://example.com
3085+curl --proxy http://proxy.example https://example.com
3086 .fi
3087
3088 See also \fI\-\-socks5\fP and \fI\-\-proxy\-basic\fP.
3089@@ -3465,7 +3713,7 @@ Providing --proxy-anyauth multiple times has no extra effect.
3090
3091 Example:
3092 .nf
3093- curl --proxy-anyauth --proxy-user user:passwd -x proxy https://example.com
3094+curl --proxy-anyauth --proxy-user user:passwd -x proxy https://example.com
3095 .fi
3096
3097 See also \fI-x, \-\-proxy\fP, \fI\-\-proxy\-basic\fP and \fI\-\-proxy\-digest\fP.
3098@@ -3478,45 +3726,52 @@ Providing --proxy-basic multiple times has no extra effect.
3099
3100 Example:
3101 .nf
3102- curl --proxy-basic --proxy-user user:passwd -x proxy https://example.com
3103+curl --proxy-basic --proxy-user user:passwd -x proxy https://example.com
3104 .fi
3105
3106 See also \fI-x, \-\-proxy\fP, \fI\-\-proxy\-anyauth\fP and \fI\-\-proxy\-digest\fP.
3107 .IP "\-\-proxy\-ca\-native"
3108-(TLS) Use the CA store from the native operating system to verify the HTTPS proxy.
3109-By default, curl uses a CA store provided in a single file or directory, but
3110-when using this option it interfaces the operating system\(aqs own vault.
3111+(TLS) Use the operating system\(aqs native CA store for certificate verification of the
3112+HTTPS proxy.
3113+
3114+This option is independent of other HTTPS proxy CA certificate locations set at
3115+run time or build time. Those locations are searched in addition to the native
3116+CA store.
3117
3118-This option works for curl on Windows when built to use OpenSSL, wolfSSL
3119-(added in 8.3.0) or GnuTLS (added in 8.5.0). When curl on Windows is built to
3120-use Schannel, this feature is implied and curl then only uses the native CA
3121-store.
3122+Equivalent to \fI\-\-ca\-native\fP but used in HTTPS proxy context. Refer to \fI\-\-ca\-native\fP
3123+for TLS backend limitations.
3124
3125 Providing --proxy-ca-native multiple times has no extra effect.
3126 Disable it again with \-\-no-proxy-ca-native.
3127
3128 Example:
3129 .nf
3130- curl --ca-native https://example.com
3131+curl --proxy-ca-native https://example.com
3132 .fi
3133
3134-See also \fI\-\-cacert\fP, \fI\-\-capath\fP and \fI-k, \-\-insecure\fP. Added in 8.2.0.
3135+Added in 8.2.0. See also \fI\-\-ca\-native\fP, \fI\-\-cacert\fP, \fI\-\-capath\fP, \fI\-\-dump\-ca\-embed\fP and \fI-k, \-\-insecure\fP.
3136 .IP "\-\-proxy\-cacert <file>"
3137-Same as \fI\-\-cacert\fP but used in HTTPS proxy context.
3138+Use the specified certificate file to verify the HTTPS proxy. The file may
3139+contain multiple CA certificates. The certificate(s) must be in PEM format.
3140+
3141+This allows you to use a different trust for the proxy compared to the remote
3142+server connected to via the proxy.
3143+
3144+Equivalent to \fI\-\-cacert\fP but used in HTTPS proxy context.
3145
3146 If --proxy-cacert is provided several times, the last set value is used.
3147
3148 Example:
3149 .nf
3150- curl --proxy-cacert CA-file.txt -x https://proxy https://example.com
3151+curl --proxy-cacert CA-file.txt -x https://proxy https://example.com
3152 .fi
3153
3154-See also \fI\-\-proxy\-capath\fP, \fI\-\-cacert\fP, \fI\-\-capath\fP and \fI-x, \-\-proxy\fP. Added in 7.52.0.
3155+See also \fI\-\-proxy\-capath\fP, \fI\-\-cacert\fP, \fI\-\-capath\fP, \fI\-\-dump\-ca\-embed\fP and \fI-x, \-\-proxy\fP.
3156 .IP "\-\-proxy\-capath <dir>"
3157 Same as \fI\-\-capath\fP but used in HTTPS proxy context.
3158
3159 Use the specified certificate directory to verify the proxy. Multiple paths
3160-can be provided by separated with colon (":") (e.g. "path1:path2:path3"). The
3161+can be provided by separating them with colon (":") (e.g. "path1:path2:path3"). The
3162 certificates must be in PEM format, and if curl is built against OpenSSL, the
3163 directory must have been processed using the c_rehash utility supplied with
3164 OpenSSL. Using \fI\-\-proxy\-capath\fP can allow OpenSSL\-powered curl to make
3165@@ -3529,38 +3784,51 @@ If --proxy-capath is provided several times, the last set value is used.
3166
3167 Example:
3168 .nf
3169- curl --proxy-capath /local/directory -x https://proxy https://example.com
3170+curl --proxy-capath /local/directory -x https://proxy https://example.com
3171 .fi
3172
3173-See also \fI\-\-proxy\-cacert\fP, \fI-x, \-\-proxy\fP and \fI\-\-capath\fP. Added in 7.52.0.
3174+See also \fI\-\-proxy\-cacert\fP, \fI-x, \-\-proxy\fP, \fI\-\-capath\fP and \fI\-\-dump\-ca\-embed\fP.
3175 .IP "\-\-proxy\-cert <cert[:passwd]>"
3176-Same as \fI\-E, \-\-cert\fP but used in HTTPS proxy context.
3177+Use the specified client certificate file when communicating with an HTTPS
3178+proxy. The certificate must be in PKCS#12 format if using Secure Transport, or
3179+PEM format if using any other engine. If the optional password is not
3180+specified, it is queried for on the terminal. Use \fI\-\-proxy\-key\fP to provide the
3181+private key.
3182+
3183+This option is the equivalent to \fI\-E, \-\-cert\fP but used in HTTPS proxy context.
3184
3185 If --proxy-cert is provided several times, the last set value is used.
3186
3187 Example:
3188 .nf
3189- curl --proxy-cert file -x https://proxy https://example.com
3190+curl --proxy-cert file -x https://proxy https://example.com
3191 .fi
3192
3193-See also \fI\-\-proxy\-cert\-type\fP. Added in 7.52.0.
3194+See also \fI-x, \-\-proxy\fP, \fI\-\-proxy\-key\fP and \fI\-\-proxy\-cert\-type\fP.
3195 .IP "\-\-proxy\-cert\-type <type>"
3196-Same as \fI\-\-cert\-type\fP but used in HTTPS proxy context.
3197+Set type of the provided client certificate when using HTTPS proxy. PEM, DER,
3198+ENG, PROV and P12 are recognized types.
3199+
3200+The default type depends on the TLS backend and is usually PEM, however for
3201+Secure Transport and Schannel it is P12. If \fI\-\-proxy\-cert\fP is a pkcs11: URI then
3202+ENG or PROV is the default type (depending on OpenSSL version).
3203+
3204+Equivalent to \fI\-\-cert\-type\fP but used in HTTPS proxy context.
3205
3206 If --proxy-cert-type is provided several times, the last set value is used.
3207
3208 Example:
3209 .nf
3210- curl --proxy-cert-type PEM --proxy-cert file -x https://proxy https://example.com
3211+curl --proxy-cert-type PEM --proxy-cert file -x https://proxy https://example.com
3212 .fi
3213
3214-See also \fI\-\-proxy\-cert\fP. Added in 7.52.0.
3215+See also \fI\-\-proxy\-cert\fP and \fI\-\-proxy\-key\fP.
3216 .IP "\-\-proxy\-ciphers <list>"
3217-Same as \fI\-\-ciphers\fP but used in HTTPS proxy context.
3218+(TLS) Same as \fI\-\-ciphers\fP but used in HTTPS proxy context.
3219
3220-Specifies which ciphers to use in the connection to the HTTPS proxy. The list
3221-of ciphers must specify valid ciphers. Read up on SSL cipher list details on
3222-this URL:
3223+Specify which cipher suites to use in the connection to your HTTPS proxy when
3224+it negotiates TLS 1.2 (1.1, 1.0). The list of ciphers suites must specify
3225+valid ciphers. Read up on cipher suite details on this URL:
3226
3227 https://curl.se/docs/ssl\-ciphers.html
3228
3229@@ -3568,21 +3836,25 @@ If --proxy-ciphers is provided several times, the last set value is used.
3230
3231 Example:
3232 .nf
3233- curl --proxy-ciphers ECDHE-ECDSA-AES256-CCM8 -x https://proxy https://example.com
3234+curl --proxy-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256 -x https://proxy https://example.com
3235 .fi
3236
3237-See also \fI\-\-ciphers\fP, \fI\-\-curves\fP and \fI-x, \-\-proxy\fP. Added in 7.52.0.
3238+See also \fI\-\-proxy\-tls13\-ciphers\fP, \fI\-\-ciphers\fP and \fI-x, \-\-proxy\fP.
3239 .IP "\-\-proxy\-crlfile <file>"
3240-Same as \fI\-\-crlfile\fP but used in HTTPS proxy context.
3241+Provide filename for a PEM formatted file with a Certificate Revocation List
3242+that specifies peer certificates that are considered revoked when
3243+communicating with an HTTPS proxy.
3244+
3245+Equivalent to \fI\-\-crlfile\fP but only used in HTTPS proxy context.
3246
3247 If --proxy-crlfile is provided several times, the last set value is used.
3248
3249 Example:
3250 .nf
3251- curl --proxy-crlfile rejects.txt -x https://proxy https://example.com
3252+curl --proxy-crlfile rejects.txt -x https://proxy https://example.com
3253 .fi
3254
3255-See also \fI\-\-crlfile\fP and \fI-x, \-\-proxy\fP. Added in 7.52.0.
3256+See also \fI\-\-crlfile\fP and \fI-x, \-\-proxy\fP.
3257 .IP "\-\-proxy\-digest"
3258 Use HTTP Digest authentication when communicating with the given proxy. Use
3259 \fI\-\-digest\fP for enabling HTTP Digest with a remote host.
3260@@ -3591,7 +3863,7 @@ Providing --proxy-digest multiple times has no extra effect.
3261
3262 Example:
3263 .nf
3264- curl --proxy-digest --proxy-user user:passwd -x proxy https://example.com
3265+curl --proxy-digest --proxy-user user:passwd -x proxy https://example.com
3266 .fi
3267
3268 See also \fI-x, \-\-proxy\fP, \fI\-\-proxy\-anyauth\fP and \fI\-\-proxy\-basic\fP.
3269@@ -3607,10 +3879,10 @@ content: do not add newlines or carriage returns, they only mess things up for
3270 you.
3271
3272 Headers specified with this option are not included in requests that curl
3273-knows are not be sent to a proxy.
3274+knows are not to be sent to a proxy.
3275
3276 This option can take an argument in @filename style, which then adds a header
3277-for each line in the input file (added in 7.55.0). Using @\- makes curl read
3278+for each line in the input file. Using @\- makes curl read
3279 the headers from stdin.
3280
3281 This option can be used multiple times to add/replace/remove multiple headers.
3282@@ -3619,9 +3891,9 @@ This option can be used multiple times to add/replace/remove multiple headers.
3283
3284 Examples:
3285 .nf
3286- curl --proxy-header "X-First-Name: Joe" -x http://proxy https://example.com
3287- curl --proxy-header "User-Agent: surprise" -x http://proxy https://example.com
3288- curl --proxy-header "Host:" -x http://proxy https://example.com
3289+curl --proxy-header "X-First-Name: Joe" -x http://proxy https://example.com
3290+curl --proxy-header "User-Agent: surprise" -x http://proxy https://example.com
3291+curl --proxy-header "Host:" -x http://proxy https://example.com
3292 .fi
3293
3294 See also \fI-x, \-\-proxy\fP.
3295@@ -3636,10 +3908,11 @@ Disable it again with \-\-no-proxy-http2.
3296
3297 Example:
3298 .nf
3299- curl --proxy-http2 -x proxy https://example.com
3300+curl --proxy-http2 -x proxy https://example.com
3301 .fi
3302
3303-See also \fI-x, \-\-proxy\fP. \fI\-\-proxy\-http2\fP requires that the underlying libcurl was built to support HTTP/2. Added in 8.1.0.
3304+\fI\-\-proxy\-http2\fP requires that libcurl is built to support HTTP/2.
3305+Added in 8.1.0. See also \fI-x, \-\-proxy\fP.
3306 .IP "\-\-proxy\-insecure"
3307 Same as \fI\-k, \-\-insecure\fP but used in HTTPS proxy context.
3308
3309@@ -3660,32 +3933,37 @@ Disable it again with \-\-no-proxy-insecure.
3310
3311 Example:
3312 .nf
3313- curl --proxy-insecure -x https://proxy https://example.com
3314+curl --proxy-insecure -x https://proxy https://example.com
3315 .fi
3316
3317-See also \fI-x, \-\-proxy\fP and \fI-k, \-\-insecure\fP. Added in 7.52.0.
3318+See also \fI-x, \-\-proxy\fP and \fI-k, \-\-insecure\fP.
3319 .IP "\-\-proxy\-key <key>"
3320-Same as \fI\-\-key\fP but used in HTTPS proxy context.
3321+Specify the filename for your private key when using client certificates with
3322+your HTTPS proxy. This option is the equivalent to \fI\-\-key\fP but used in HTTPS
3323+proxy context.
3324
3325 If --proxy-key is provided several times, the last set value is used.
3326
3327 Example:
3328 .nf
3329- curl --proxy-key here -x https://proxy https://example.com
3330+curl --proxy-key here -x https://proxy https://example.com
3331 .fi
3332
3333-See also \fI\-\-proxy\-key\-type\fP and \fI-x, \-\-proxy\fP. Added in 7.52.0.
3334+See also \fI\-\-proxy\-key\-type\fP and \fI-x, \-\-proxy\fP.
3335 .IP "\-\-proxy\-key\-type <type>"
3336-Same as \fI\-\-key\-type\fP but used in HTTPS proxy context.
3337+Specify the private key file type your \fI\-\-proxy\-key\fP provided private key uses.
3338+DER, PEM, and ENG are supported. If not specified, PEM is assumed.
3339+
3340+Equivalent to \fI\-\-key\-type\fP but used in HTTPS proxy context.
3341
3342 If --proxy-key-type is provided several times, the last set value is used.
3343
3344 Example:
3345 .nf
3346- curl --proxy-key-type DER --proxy-key here -x https://proxy https://example.com
3347+curl --proxy-key-type DER --proxy-key here -x https://proxy https://example.com
3348 .fi
3349
3350-See also \fI\-\-proxy\-key\fP and \fI-x, \-\-proxy\fP. Added in 7.52.0.
3351+See also \fI\-\-proxy\-key\fP and \fI-x, \-\-proxy\fP.
3352 .IP "\-\-proxy\-negotiate"
3353 Use HTTP Negotiate (SPNEGO) authentication when communicating with the given
3354 proxy. Use \fI\-\-negotiate\fP for enabling HTTP Negotiate (SPNEGO) with a remote
3355@@ -3695,10 +3973,10 @@ Providing --proxy-negotiate multiple times has no extra effect.
3356
3357 Example:
3358 .nf
3359- curl --proxy-negotiate --proxy-user user:passwd -x proxy https://example.com
3360+curl --proxy-negotiate --proxy-user user:passwd -x proxy https://example.com
3361 .fi
3362
3363-See also \fI\-\-proxy\-anyauth\fP and \fI\-\-proxy\-basic\fP.
3364+See also \fI\-\-proxy\-anyauth\fP, \fI\-\-proxy\-basic\fP and \fI\-\-proxy\-service\-name\fP.
3365 .IP "\-\-proxy\-ntlm"
3366 Use HTTP NTLM authentication when communicating with the given proxy. Use
3367 \fI\-\-ntlm\fP for enabling NTLM with a remote host.
3368@@ -3707,21 +3985,23 @@ Providing --proxy-ntlm multiple times has no extra effect.
3369
3370 Example:
3371 .nf
3372- curl --proxy-ntlm --proxy-user user:passwd -x http://proxy https://example.com
3373+curl --proxy-ntlm --proxy-user user:passwd -x http://proxy https://example.com
3374 .fi
3375
3376-See also \fI\-\-proxy\-negotiate\fP and \fI\-\-proxy\-anyauth\fP.
3377+See also \fI\-\-proxy\-negotiate\fP, \fI\-\-proxy\-anyauth\fP and \fI-U, \-\-proxy\-user\fP.
3378 .IP "\-\-proxy\-pass <phrase>"
3379-Same as \fI\-\-pass\fP but used in HTTPS proxy context.
3380+Passphrase for the private key for HTTPS proxy client certificate.
3381+
3382+Equivalent to \fI\-\-pass\fP but used in HTTPS proxy context.
3383
3384 If --proxy-pass is provided several times, the last set value is used.
3385
3386 Example:
3387 .nf
3388- curl --proxy-pass secret --proxy-key here -x https://proxy https://example.com
3389+curl --proxy-pass secret --proxy-key here -x https://proxy https://example.com
3390 .fi
3391
3392-See also \fI-x, \-\-proxy\fP and \fI\-\-proxy\-key\fP. Added in 7.52.0.
3393+See also \fI-x, \-\-proxy\fP and \fI\-\-proxy\-key\fP.
3394 .IP "\-\-proxy\-pinnedpubkey <hashes>"
3395 (TLS) Use the specified public key file (or hashes) to verify the proxy. This can be
3396 a path to a file which contains a single public key in PEM or DER format, or
3397@@ -3733,38 +4013,51 @@ indicating its identity. A public key is extracted from this certificate and
3398 if it does not exactly match the public key provided to this option, curl
3399 aborts the connection before sending or receiving any data.
3400
3401+Before curl 8.10.0 this option did not work due to a bug.
3402+
3403 If --proxy-pinnedpubkey is provided several times, the last set value is used.
3404
3405 Examples:
3406 .nf
3407- curl --proxy-pinnedpubkey keyfile https://example.com
3408- curl --proxy-pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com
3409+curl --proxy-pinnedpubkey keyfile https://example.com
3410+curl --proxy-pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com
3411 .fi
3412
3413-See also \fI\-\-pinnedpubkey\fP and \fI-x, \-\-proxy\fP. Added in 7.59.0.
3414+See also \fI\-\-pinnedpubkey\fP and \fI-x, \-\-proxy\fP.
3415 .IP "\-\-proxy\-service\-name <name>"
3416-Set the service name for proxy negotiation.
3417+Set the service name for SPNEGO when doing proxy authentication.
3418
3419 If --proxy-service-name is provided several times, the last set value is used.
3420
3421 Example:
3422 .nf
3423- curl --proxy-service-name "shrubbery" -x proxy https://example.com
3424+curl --proxy-service-name "shrubbery" -x proxy https://example.com
3425 .fi
3426
3427-See also \fI\-\-service\-name\fP and \fI-x, \-\-proxy\fP.
3428+See also \fI\-\-service\-name\fP, \fI-x, \-\-proxy\fP and \fI\-\-proxy\-negotiate\fP.
3429 .IP "\-\-proxy\-ssl\-allow\-beast"
3430-Same as \fI\-\-ssl\-allow\-beast\fP but used in HTTPS proxy context.
3431+Do not work around a security flaw in the TLS1.0 protocol known as BEAST when
3432+communicating to an HTTPS proxy. If this option is not used, the TLS layer may
3433+use workarounds known to cause interoperability problems with some older
3434+server implementations.
3435+
3436+This option only changes how curl does TLS 1.0 with an HTTPS proxy and has no
3437+effect on later TLS versions.
3438+
3439+\fBWARNING\fP: this option loosens the TLS security, and by using this flag you
3440+ask for exactly that.
3441+
3442+Equivalent to \fI\-\-ssl\-allow\-beast\fP but used in HTTPS proxy context.
3443
3444 Providing --proxy-ssl-allow-beast multiple times has no extra effect.
3445 Disable it again with \-\-no-proxy-ssl-allow-beast.
3446
3447 Example:
3448 .nf
3449- curl --proxy-ssl-allow-beast -x https://proxy https://example.com
3450+curl --proxy-ssl-allow-beast -x https://proxy https://example.com
3451 .fi
3452
3453-See also \fI\-\-ssl\-allow\-beast\fP and \fI-x, \-\-proxy\fP. Added in 7.52.0.
3454+See also \fI\-\-ssl\-allow\-beast\fP and \fI-x, \-\-proxy\fP.
3455 .IP "\-\-proxy\-ssl\-auto\-client\-cert"
3456 Same as \fI\-\-ssl\-auto\-client\-cert\fP but used in HTTPS proxy context.
3457
3458@@ -3775,73 +4068,94 @@ Disable it again with \-\-no-proxy-ssl-auto-client-cert.
3459
3460 Example:
3461 .nf
3462- curl --proxy-ssl-auto-client-cert -x https://proxy https://example.com
3463+curl --proxy-ssl-auto-client-cert -x https://proxy https://example.com
3464 .fi
3465
3466-See also \fI\-\-ssl\-auto\-client\-cert\fP and \fI-x, \-\-proxy\fP. Added in 7.77.0.
3467-.IP "\-\-proxy\-tls13\-ciphers <ciphersuite list>"
3468-(TLS) Specify which cipher suites to use in the connection to your HTTPS proxy when
3469+Added in 7.77.0. See also \fI\-\-ssl\-auto\-client\-cert\fP and \fI-x, \-\-proxy\fP.
3470+.IP "\-\-proxy\-tls13\-ciphers <list>"
3471+(TLS) Same as \fI\-\-tls13\-ciphers\fP but used in HTTPS proxy context.
3472+
3473+Specify which cipher suites to use in the connection to your HTTPS proxy when
3474 it negotiates TLS 1.3. The list of ciphers suites must specify valid ciphers.
3475 Read up on TLS 1.3 cipher suite details on this URL:
3476
3477 https://curl.se/docs/ssl\-ciphers.html
3478
3479-This option is currently used only when curl is built to use OpenSSL 1.1.1 or
3480-later. If you are using a different SSL backend you can try setting TLS 1.3
3481-cipher suites by using the \fI\-\-proxy\-ciphers\fP option.
3482+This option is used when curl is built to use OpenSSL 1.1.1 or later,
3483+Schannel, wolfSSL, or mbedTLS 3.6.0 or later.
3484+
3485+Before curl 8.10.0 with mbedTLS or wolfSSL, TLS 1.3 cipher suites were set
3486+by using the \fI\-\-proxy\-ciphers\fP option.
3487
3488 If --proxy-tls13-ciphers is provided several times, the last set value is used.
3489
3490 Example:
3491 .nf
3492- curl --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy https://example.com
3493+curl --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy https://example.com
3494 .fi
3495
3496-See also \fI\-\-tls13\-ciphers\fP, \fI\-\-curves\fP and \fI\-\-proxy\-ciphers\fP. Added in 7.61.0.
3497+Added in 7.61.0. See also \fI\-\-proxy\-ciphers\fP, \fI\-\-tls13\-ciphers\fP and \fI-x, \-\-proxy\fP.
3498 .IP "\-\-proxy\-tlsauthtype <type>"
3499-Same as \fI\-\-tlsauthtype\fP but used in HTTPS proxy context.
3500+Set TLS authentication type with HTTPS proxy. The only supported option is
3501+\&"SRP", for TLS\-SRP (RFC 5054). This option works only if the underlying
3502+libcurl is built with TLS\-SRP support.
3503+
3504+Equivalent to \fI\-\-tlsauthtype\fP but used in HTTPS proxy context.
3505
3506 If --proxy-tlsauthtype is provided several times, the last set value is used.
3507
3508 Example:
3509 .nf
3510- curl --proxy-tlsauthtype SRP -x https://proxy https://example.com
3511+curl --proxy-tlsauthtype SRP -x https://proxy https://example.com
3512 .fi
3513
3514-See also \fI-x, \-\-proxy\fP and \fI\-\-proxy\-tlsuser\fP. Added in 7.52.0.
3515+See also \fI-x, \-\-proxy\fP, \fI\-\-proxy\-tlsuser\fP and \fI\-\-proxy\-tlspassword\fP.
3516 .IP "\-\-proxy\-tlspassword <string>"
3517-Same as \fI\-\-tlspassword\fP but used in HTTPS proxy context.
3518+Set password to use with the TLS authentication method specified with
3519+\fI\-\-proxy\-tlsauthtype\fP when using HTTPS proxy. Requires that \fI\-\-proxy\-tlsuser\fP is
3520+set.
3521+
3522+This option does not work with TLS 1.3.
3523+
3524+Equivalent to \fI\-\-tlspassword\fP but used in HTTPS proxy context.
3525
3526 If --proxy-tlspassword is provided several times, the last set value is used.
3527
3528 Example:
3529 .nf
3530- curl --proxy-tlspassword passwd -x https://proxy https://example.com
3531+curl --proxy-tlspassword passwd -x https://proxy https://example.com
3532 .fi
3533
3534-See also \fI-x, \-\-proxy\fP and \fI\-\-proxy\-tlsuser\fP. Added in 7.52.0.
3535+See also \fI-x, \-\-proxy\fP and \fI\-\-proxy\-tlsuser\fP.
3536 .IP "\-\-proxy\-tlsuser <name>"
3537-Same as \fI\-\-tlsuser\fP but used in HTTPS proxy context.
3538+Set username for use for HTTPS proxy with the TLS authentication method
3539+specified with \fI\-\-proxy\-tlsauthtype\fP. Requires that \fI\-\-proxy\-tlspassword\fP also is
3540+set.
3541+
3542+This option does not work with TLS 1.3.
3543
3544 If --proxy-tlsuser is provided several times, the last set value is used.
3545
3546 Example:
3547 .nf
3548- curl --proxy-tlsuser smith -x https://proxy https://example.com
3549+curl --proxy-tlsuser smith -x https://proxy https://example.com
3550 .fi
3551
3552-See also \fI-x, \-\-proxy\fP and \fI\-\-proxy\-tlspassword\fP. Added in 7.52.0.
3553+See also \fI-x, \-\-proxy\fP and \fI\-\-proxy\-tlspassword\fP.
3554 .IP "\-\-proxy\-tlsv1"
3555-Same as \fI\-1, \-\-tlsv1\fP but used in HTTPS proxy context.
3556+Use at least TLS version 1.x when negotiating with an HTTPS proxy. That means
3557+TLS version 1.0 or higher
3558+
3559+Equivalent to \fI\-1, \-\-tlsv1\fP but for an HTTPS proxy context.
3560
3561 Providing --proxy-tlsv1 multiple times has no extra effect.
3562
3563 Example:
3564 .nf
3565- curl --proxy-tlsv1 -x https://proxy https://example.com
3566+curl --proxy-tlsv1 -x https://proxy https://example.com
3567 .fi
3568
3569-See also \fI-x, \-\-proxy\fP. Added in 7.52.0.
3570+See also \fI-x, \-\-proxy\fP.
3571 .IP "\-U, \-\-proxy\-user <user:password>"
3572 Specify the username and password to use for proxy authentication.
3573
3574@@ -3852,14 +4166,14 @@ your environment by specifying a single colon with this option: "\-U :".
3575 On systems where it works, curl hides the given option argument from process
3576 listings. This is not enough to protect credentials from possibly getting seen
3577 by other users on the same system as they still are visible for a moment
3578-before cleared. Such sensitive data should be retrieved from a file instead or
3579+before being cleared. Such sensitive data should be retrieved from a file instead or
3580 similar and never used in clear text in a command line.
3581
3582 If --proxy-user is provided several times, the last set value is used.
3583
3584 Example:
3585 .nf
3586- curl --proxy-user smith:secret -x proxy https://example.com
3587+curl --proxy-user smith:secret -x proxy https://example.com
3588 .fi
3589
3590 See also \fI\-\-proxy\-pass\fP.
3591@@ -3875,14 +4189,14 @@ Providing --proxy1.0 multiple times has no extra effect.
3592
3593 Example:
3594 .nf
3595- curl --proxy1.0 http://proxy https://example.com
3596+curl --proxy1.0 http://proxy https://example.com
3597 .fi
3598
3599 See also \fI-x, \-\-proxy\fP, \fI\-\-socks5\fP and \fI\-\-preproxy\fP.
3600 .IP "\-p, \-\-proxytunnel"
3601 When an HTTP proxy is used \fI\-x, \-\-proxy\fP, this option makes curl tunnel the traffic
3602 through the proxy. The tunnel approach is made with the HTTP proxy CONNECT
3603-request and requires that the proxy allows direct connect to the remote port
3604+request and requires that the proxy allows direct connection to the remote port
3605 number curl wants to tunnel through to.
3606
3607 To suppress proxy CONNECT response headers when curl is set to output headers
3608@@ -3893,7 +4207,7 @@ Disable it again with \-\-no-proxytunnel.
3609
3610 Example:
3611 .nf
3612- curl --proxytunnel -x http://proxy https://example.com
3613+curl --proxytunnel -x http://proxy https://example.com
3614 .fi
3615
3616 See also \fI-x, \-\-proxy\fP.
3617@@ -3910,7 +4224,7 @@ If --pubkey is provided several times, the last set value is used.
3618
3619 Example:
3620 .nf
3621- curl --pubkey file.pub sftp://example.com/
3622+curl --pubkey file.pub sftp://example.com/
3623 .fi
3624
3625 See also \fI\-\-pass\fP.
3626@@ -3982,7 +4296,7 @@ See ln.
3627
3628 Example:
3629 .nf
3630- curl --quote "DELE file" ftp://example.com/foo
3631+curl --quote "DELE file" ftp://example.com/foo
3632 .fi
3633
3634 See also \fI-X, \-\-request\fP.
3635@@ -3997,7 +4311,7 @@ If --random-file is provided several times, the last set value is used.
3636
3637 Example:
3638 .nf
3639- curl --random-file rubbish https://example.com
3640+curl --random-file rubbish https://example.com
3641 .fi
3642
3643 See also \fI\-\-egd\-file\fP.
3644@@ -4019,9 +4333,10 @@ specifies the first and last byte only(*)(HTTP)
3645 specifies two separate 100\-byte ranges(*) (HTTP)
3646 .RE
3647 .IP
3648-(*) = NOTE that these make the server reply with a multipart response, which
3649-is returned as\-is by curl! Parsing or otherwise transforming this response is
3650-the responsibility of the caller.
3651+(*) = NOTE that if specifying multiple ranges and the server supports it then
3652+it replies with a multiple part response that curl returns as\-is. It
3653+contains meta information in addition to the requested bytes. Parsing or
3654+otherwise transforming this response is the responsibility of the caller.
3655
3656 Only digit characters (0\-9) are valid in the \(aqstart\(aq and \(aqstop\(aq fields of the
3657 \(aqstart\-stop\(aq range syntax. If a non\-digit character is given in the range, the
3658@@ -4034,11 +4349,19 @@ FTP and SFTP range downloads only support the simple \(aqstart\-stop\(aq syntax
3659 (optionally with one of the numbers omitted). FTP use depends on the extended
3660 FTP command SIZE.
3661
3662+When using this option for HTTP uploads using POST or PUT, functionality is
3663+not guaranteed. The HTTP protocol has no standard interoperable resume upload
3664+and curl uses a set of headers for this purpose that once proved working for
3665+some servers and have been left for those who find that useful.
3666+
3667+This command line option is mutually exclusive with \fI\-C, \-\-continue\-at\fP: you can only
3668+use one of them for a single transfer.
3669+
3670 If --range is provided several times, the last set value is used.
3671
3672 Example:
3673 .nf
3674- curl --range 22-44 https://example.com
3675+curl --range 22-44 https://example.com
3676 .fi
3677
3678 See also \fI-C, \-\-continue\-at\fP and \fI-a, \-\-append\fP.
3679@@ -4065,18 +4388,22 @@ more than 1000 per second, it instead runs unrestricted.
3680 When retrying transfers, enabled with \fI\-\-retry\fP, the separate retry delay logic
3681 is used and not this setting.
3682
3683+Starting in version 8.10.0, you can specify the number of time units in the rate
3684+expression. Make curl do no more than 5 transfers per 15 seconds with "5/15s"
3685+or limit it to 3 transfers per 4 hours with "3/4h". No spaces allowed.
3686+
3687 This option is global and does not need to be specified for each use of --next.
3688
3689 If --rate is provided several times, the last set value is used.
3690
3691 Examples:
3692 .nf
3693- curl --rate 2/s https://example.com ...
3694- curl --rate 3/h https://example.com ...
3695- curl --rate 14/m https://example.com ...
3696+curl --rate 2/s https://example.com ...
3697+curl --rate 3/h https://example.com ...
3698+curl --rate 14/m https://example.com ...
3699 .fi
3700
3701-See also \fI\-\-limit\-rate\fP and \fI\-\-retry\-delay\fP. Added in 7.84.0.
3702+Added in 7.84.0. See also \fI\-\-limit\-rate\fP and \fI\-\-retry\-delay\fP.
3703 .IP "\-\-raw"
3704 (HTTP) When used, it disables all internal HTTP decoding of content or transfer
3705 encodings and instead makes them passed on unaltered, raw.
3706@@ -4086,7 +4413,7 @@ Disable it again with \-\-no-raw.
3707
3708 Example:
3709 .nf
3710- curl --raw https://example.com
3711+curl --raw https://example.com
3712 .fi
3713
3714 See also \fI\-\-tr\-encoding\fP.
3715@@ -4101,9 +4428,9 @@ If --referer is provided several times, the last set value is used.
3716
3717 Examples:
3718 .nf
3719- curl --referer "https://fake.example" https://example.com
3720- curl --referer "https://fake.example;auto" -L https://example.com
3721- curl --referer ";auto" -L https://example.com
3722+curl --referer "https://fake.example" https://example.com
3723+curl --referer "https://fake.example;auto" -L https://example.com
3724+curl --referer ";auto" -L https://example.com
3725 .fi
3726
3727 See also \fI-A, \-\-user\-agent\fP and \fI-H, \-\-header\fP.
3728@@ -4135,7 +4462,7 @@ Disable it again with \-\-no-remote-header-name.
3729
3730 Example:
3731 .nf
3732- curl -OJ https://example.com/file
3733+curl -OJ https://example.com/file
3734 .fi
3735
3736 See also \fI-O, \-\-remote\-name\fP.
3737@@ -4158,11 +4485,17 @@ encoded parts of the name, they end up as\-is as filename.
3738
3739 You may use this option as many times as the number of URLs you have.
3740
3741---remote-name can be used several times in a command line
3742+Before curl 8.10.0, curl returned an error if the URL ended with a slash,
3743+which means that there is no filename part in the URL. Starting in 8.10.0,
3744+curl sets the filename to the last directory part of the URL or if that also
3745+is missing to "curl_response" (without extension) for this situation.
3746
3747-Example:
3748+--remote-name is associated with a single URL. Use it once per URL when you use several URLs in a command line.
3749+
3750+Examples:
3751 .nf
3752- curl -O https://example.com/filename
3753+curl -O https://example.com/filename
3754+curl -O https://example.com/filename -O https://example.com/file2
3755 .fi
3756
3757 See also \fI\-\-remote\-name\-all\fP, \fI\-\-output\-dir\fP and \fI-J, \-\-remote\-header\-name\fP.
3758@@ -4177,12 +4510,12 @@ Disable it again with \-\-no-remote-name-all.
3759
3760 Example:
3761 .nf
3762- curl --remote-name-all ftp://example.com/file1 ftp://example.com/file2
3763+curl --remote-name-all ftp://example.com/file1 ftp://example.com/file2
3764 .fi
3765
3766 See also \fI-O, \-\-remote\-name\fP.
3767 .IP "\-R, \-\-remote\-time"
3768-Makes curl attempt to figure out the timestamp of the remote file that is
3769+Make curl attempt to figure out the timestamp of the remote file that is
3770 getting downloaded, and if that is available make the local file get that same
3771 timestamp.
3772
3773@@ -4191,30 +4524,32 @@ Disable it again with \-\-no-remote-time.
3774
3775 Example:
3776 .nf
3777- curl --remote-time -o foo https://example.com
3778+curl --remote-time -o foo https://example.com
3779 .fi
3780
3781 See also \fI-O, \-\-remote\-name\fP and \fI-z, \-\-time\-cond\fP.
3782 .IP "\-\-remove\-on\-error"
3783-Remove output file if an error occurs. If curl returns an error when told to
3784+Remove the output file if an error occurs. If curl returns an error when told to
3785 save output in a local file. This prevents curl from leaving a partial file in
3786 the case of an error during transfer.
3787
3788 If the output is not a regular file, this option has no effect.
3789
3790+The \fI\-C, \-\-continue\-at\fP option cannot be used together with \fI\-\-remove\-on\-error\fP.
3791+
3792 Providing --remove-on-error multiple times has no extra effect.
3793 Disable it again with \-\-no-remove-on-error.
3794
3795 Example:
3796 .nf
3797- curl --remove-on-error -o output https://example.com
3798+curl --remove-on-error -o output https://example.com
3799 .fi
3800
3801-See also \fI-f, \-\-fail\fP. Added in 7.83.0.
3802+Added in 7.83.0. See also \fI-f, \-\-fail\fP.
3803 .IP "\-X, \-\-request <method>"
3804 Change the method to use when starting the transfer.
3805
3806-curl passes on the verbatim string you give it its the request without any
3807+curl passes on the verbatim string you give it in the request without any
3808 filter or other safe guards. That includes white space and control characters.
3809 .RS
3810 .IP HTTP
3811@@ -4253,8 +4588,8 @@ If --request is provided several times, the last set value is used.
3812
3813 Examples:
3814 .nf
3815- curl -X "DELETE" https://example.com
3816- curl -X NLST ftp://example.com/
3817+curl -X "DELETE" https://example.com
3818+curl -X NLST ftp://example.com/
3819 .fi
3820
3821 See also \fI\-\-request\-target\fP.
3822@@ -4264,24 +4599,24 @@ URL. Particularly useful when wanting to issue HTTP requests without leading
3823 slash or other data that does not follow the regular URL pattern, like
3824 \&"OPTIONS *".
3825
3826-curl passes on the verbatim string you give it its the request without any
3827+curl passes on the verbatim string you give it in the request without any
3828 filter or other safe guards. That includes white space and control characters.
3829
3830 If --request-target is provided several times, the last set value is used.
3831
3832 Example:
3833 .nf
3834- curl --request-target "*" -X OPTIONS https://example.com
3835+curl --request-target "*" -X OPTIONS https://example.com
3836 .fi
3837
3838-See also \fI-X, \-\-request\fP. Added in 7.55.0.
3839+See also \fI-X, \-\-request\fP.
3840 .IP "\-\-resolve <[+]host:port:addr[,addr]...>"
3841 Provide a custom address for a specific host and port pair. Using this, you
3842 can make the curl requests(s) use a specified address and prevent the
3843 otherwise normally resolved address to be used. Consider it a sort of
3844 /etc/hosts alternative provided on the command line. The port number should be
3845-the number used for the specific protocol the host is used for. It means
3846-you need several entries if you want to provide address for the same host but
3847+the number used for the specific protocol the host is used for. It means you
3848+need several entries if you want to provide addresses for the same host but
3849 different ports.
3850
3851 By specifying "*" as host you can tell curl to resolve any host and specific
3852@@ -4297,19 +4632,23 @@ parallel transfers with a lot of files. In such cases, if this option is used
3853 curl tries to resolve the host as it normally would once the timeout has
3854 expired.
3855
3856-Support for providing the IP address within [brackets] was added in 7.57.0.
3857+Provide IPv6 addresses within [brackets].
3858
3859-Support for providing multiple IP addresses per entry was added in 7.59.0.
3860+To redirect connects from a specific hostname or any hostname, independently
3861+of port number, consider the \fI\-\-connect\-to\fP option.
3862
3863 Support for resolving with wildcard was added in 7.64.0.
3864
3865 Support for the \(aq+\(aq prefix was added in 7.75.0.
3866
3867+Support for specifying the host component as an IPv6 address was added in 8.13.0.
3868+
3869 --resolve can be used several times in a command line
3870
3871-Example:
3872+Examples:
3873 .nf
3874- curl --resolve example.com:443:127.0.0.1 https://example.com
3875+curl --resolve example.com:443:127.0.0.1 https://example.com
3876+curl --resolve example.com:443:[2001:db8::252f:efd6] https://example.com
3877 .fi
3878
3879 See also \fI\-\-connect\-to\fP and \fI\-\-alt\-svc\fP.
3880@@ -4322,9 +4661,9 @@ response code.
3881
3882 When curl is about to retry a transfer, it first waits one second and then for
3883 all forthcoming retries it doubles the waiting time until it reaches 10
3884-minutes which then remains delay between the rest of the retries. By using
3885-\fI\-\-retry\-delay\fP you disable this exponential backoff algorithm. See also
3886-\fI\-\-retry\-max\-time\fP to limit the total time allowed for retries.
3887+minutes, which then remains the set fixed delay time between the rest of the
3888+retries. By using \fI\-\-retry\-delay\fP you disable this exponential backoff algorithm.
3889+See also \fI\-\-retry\-max\-time\fP to limit the total time allowed for retries.
3890
3891 curl complies with the Retry\-After: response header if one was present to know
3892 when to issue the next retry (added in 7.66.0).
3893@@ -4333,7 +4672,7 @@ If --retry is provided several times, the last set value is used.
3894
3895 Example:
3896 .nf
3897- curl --retry 7 https://example.com
3898+curl --retry 7 https://example.com
3899 .fi
3900
3901 See also \fI\-\-retry\-max\-time\fP.
3902@@ -4355,7 +4694,7 @@ file, which are not reset. We strongly suggest you do not parse or record
3903 output via redirect in combination with this option, since you may receive
3904 duplicate data.
3905
3906-By default curl does not return error for transfers with an HTTP response code
3907+By default curl does not return an error for transfers with an HTTP response code
3908 that indicates an HTTP error, if the transfer was successful. For example, if
3909 a server replies 404 Not Found and the reply is fully received then that is
3910 not an error. When \fI\-\-retry\fP is used then curl retries on some HTTP response
3911@@ -4368,10 +4707,10 @@ Disable it again with \-\-no-retry-all-errors.
3912
3913 Example:
3914 .nf
3915- curl --retry 5 --retry-all-errors https://example.com
3916+curl --retry 5 --retry-all-errors https://example.com
3917 .fi
3918
3919-See also \fI\-\-retry\fP. Added in 7.71.0.
3920+Added in 7.71.0. See also \fI\-\-retry\fP.
3921 .IP "\-\-retry\-connrefused"
3922 In addition to the other conditions, consider ECONNREFUSED as a transient
3923 error too for \fI\-\-retry\fP. This option is used together with \fI\-\-retry\fP.
3924@@ -4381,10 +4720,10 @@ Disable it again with \-\-no-retry-connrefused.
3925
3926 Example:
3927 .nf
3928- curl --retry-connrefused --retry 7 https://example.com
3929+curl --retry-connrefused --retry 7 https://example.com
3930 .fi
3931
3932-See also \fI\-\-retry\fP and \fI\-\-retry\-all\-errors\fP. Added in 7.52.0.
3933+See also \fI\-\-retry\fP and \fI\-\-retry\-all\-errors\fP.
3934 .IP "\-\-retry\-delay <seconds>"
3935 Make curl sleep this amount of time before each retry when a transfer has
3936 failed with a transient error (it changes the default backoff time algorithm
3937@@ -4395,7 +4734,7 @@ If --retry-delay is provided several times, the last set value is used.
3938
3939 Example:
3940 .nf
3941- curl --retry-delay 5 --retry 7 https://example.com
3942+curl --retry-delay 5 --retry 7 https://example.com
3943 .fi
3944
3945 See also \fI\-\-retry\fP.
3946@@ -4411,7 +4750,7 @@ If --retry-max-time is provided several times, the last set value is used.
3947
3948 Example:
3949 .nf
3950- curl --retry-max-time 30 --retry 10 https://example.com
3951+curl --retry-max-time 30 --retry 10 https://example.com
3952 .fi
3953
3954 See also \fI\-\-retry\fP.
3955@@ -4429,10 +4768,10 @@ If --sasl-authzid is provided several times, the last set value is used.
3956
3957 Example:
3958 .nf
3959- curl --sasl-authzid zid imap://example.com/
3960+curl --sasl-authzid zid imap://example.com/
3961 .fi
3962
3963-See also \fI\-\-login\-options\fP. Added in 7.66.0.
3964+Added in 7.66.0. See also \fI\-\-login\-options\fP.
3965 .IP "\-\-sasl\-ir"
3966 Enable initial response in SASL authentication.
3967
3968@@ -4441,7 +4780,7 @@ Disable it again with \-\-no-sasl-ir.
3969
3970 Example:
3971 .nf
3972- curl --sasl-ir imap://example.com/
3973+curl --sasl-ir imap://example.com/
3974 .fi
3975
3976 See also \fI\-\-sasl\-authzid\fP.
3977@@ -4452,7 +4791,7 @@ If --service-name is provided several times, the last set value is used.
3978
3979 Example:
3980 .nf
3981- curl --service-name sockd/server https://example.com
3982+curl --service-name sockd/server https://example.com
3983 .fi
3984
3985 See also \fI\-\-negotiate\fP and \fI\-\-proxy\-service\-name\fP.
3986@@ -4466,12 +4805,62 @@ Disable it again with \-\-no-show-error.
3987
3988 Example:
3989 .nf
3990- curl --show-error --silent https://example.com
3991+curl --show-error --silent https://example.com
3992 .fi
3993
3994 See also \fI\-\-no\-progress\-meter\fP.
3995+.IP "\-i, \-\-show\-headers"
3996+(HTTP FTP) Show response headers in the output. HTTP response headers can include things
3997+like server name, cookies, date of the document, HTTP version and more. With
3998+non\-HTTP protocols, the "headers" are other server communication.
3999+
4000+This option makes the response headers get saved in the same stream/output as
4001+the data. \fI\-D, \-\-dump\-header\fP exists to save headers in a separate stream.
4002+
4003+To view the request headers, consider the \fI\-v, \-\-verbose\fP option.
4004+
4005+Prior to 7.75.0 curl did not print the headers if \fI\-f, \-\-fail\fP was used in
4006+combination with this option and there was an error reported by the server.
4007+
4008+This option was called \fI\-\-include\fP before 8.10.0. The previous name remains
4009+functional.
4010+
4011+Providing --show-headers multiple times has no extra effect.
4012+Disable it again with \-\-no-show-headers.
4013+
4014+Example:
4015+.nf
4016+curl -i https://example.com
4017+.fi
4018+
4019+See also \fI-v, \-\-verbose\fP and \fI-D, \-\-dump\-header\fP.
4020+.IP "\-\-sigalgs <list>"
4021+(TLS) Set specific signature algorithms to use during SSL session establishment according to RFC
4022+5246, 7.4.1.4.1.
4023+
4024+An algorithm can use either a signature algorithm and a hash algorithm pair separated by a
4025+\&"+" (e.g. "ECDSA+SHA224"), or its TLS 1.3 signature scheme name (e.g. "ed25519").
4026+
4027+Multiple algorithms can be provided by separating them with ":"
4028+(e.g. "DSA+SHA256:rsa_pss_pss_sha256"). The parameter is available as "\-sigalgs" in the
4029+OpenSSL "s_client" and "s_server" utilities.
4030+
4031+\&"\fI\-\-sigalgs\fP" allows a OpenSSL powered curl to make SSL\-connections with exactly
4032+the signature algorithms requested by the client, avoiding nontransparent client/server
4033+negotiations.
4034+
4035+If this option is set, the default signature algorithm list built into OpenSSL are ignored.
4036+
4037+If --sigalgs is provided several times, the last set value is used.
4038+
4039+Example:
4040+.nf
4041+curl --sigalgs ecdsa_secp256r1_sha256 https://example.com
4042+.fi
4043+
4044+Added in 8.14.0. See also \fI\-\-ciphers\fP.
4045 .IP "\-s, \-\-silent"
4046-Silent or quiet mode. Do not show progress meter or error messages. Makes Curl
4047+Silent or quiet mode. Do not show progress meter or error messages. Makes curl
4048 mute. It still outputs the data you ask for, potentially even to the
4049 terminal/stdout unless you redirect it.
4050
4051@@ -4483,16 +4872,31 @@ Disable it again with \-\-no-silent.
4052
4053 Example:
4054 .nf
4055- curl -s https://example.com
4056+curl -s https://example.com
4057 .fi
4058
4059 See also \fI-v, \-\-verbose\fP, \fI\-\-stderr\fP and \fI\-\-no\-progress\-meter\fP.
4060+.IP "\-\-skip\-existing"
4061+If there is a local file present when a download is requested, the operation
4062+is skipped. Note that curl cannot know if the local file was previously
4063+downloaded fine, or if it is incomplete etc, it just knows if there is a
4064+filename present in the file system or not and it skips the transfer if it is.
4065+
4066+Providing --skip-existing multiple times has no extra effect.
4067+Disable it again with \-\-no-skip-existing.
4068+
4069+Example:
4070+.nf
4071+curl --skip-existing --output local/dir/file https://example.com
4072+.fi
4073+
4074+Added in 8.10.0. See also \fI-o, \-\-output\fP, \fI-O, \-\-remote\-name\fP and \fI\-\-no\-clobber\fP.
4075 .IP "\-\-socks4 <host[:port]>"
4076 Use the specified SOCKS4 proxy. If the port number is not specified, it is
4077-assumed at port 1080. Using this socket type make curl resolve the hostname
4078-and passing the address on to the proxy.
4079+assumed at port 1080. Using this socket type makes curl resolve the hostname
4080+and pass the address on to the proxy.
4081
4082-To specify proxy on a unix domain socket, use localhost for host, e.g.
4083+To specify proxy on a Unix domain socket, use localhost for host, e.g.
4084 \&"socks4://localhost/path/to/socket.sock"
4085
4086 This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually
4087@@ -4502,7 +4906,7 @@ This option is superfluous since you can specify a socks4 proxy with \fI\-x, \-\
4088 using a socks4:// protocol prefix.
4089
4090 \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time proxy is used
4091-with an HTTP/HTTPS proxy (added in 7.52.0). In such a case, curl first
4092+with an HTTP/HTTPS proxy. In such a case, curl first
4093 connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or
4094 HTTPS proxy.
4095
4096@@ -4510,7 +4914,7 @@ If --socks4 is provided several times, the last set value is used.
4097
4098 Example:
4099 .nf
4100- curl --socks4 hostname:4096 https://example.com
4101+curl --socks4 hostname:4096 https://example.com
4102 .fi
4103
4104 See also \fI\-\-socks4a\fP, \fI\-\-socks5\fP and \fI\-\-socks5\-hostname\fP.
4105@@ -4518,7 +4922,7 @@ See also \fI\-\-socks4a\fP, \fI\-\-socks5\fP and \fI\-\-socks5\-hostname\fP.
4106 Use the specified SOCKS4a proxy. If the port number is not specified, it is
4107 assumed at port 1080. This asks the proxy to resolve the hostname.
4108
4109-To specify proxy on a unix domain socket, use localhost for host, e.g.
4110+To specify proxy on a Unix domain socket, use localhost for host, e.g.
4111 \&"socks4a://localhost/path/to/socket.sock"
4112
4113 This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually
4114@@ -4528,7 +4932,7 @@ This option is superfluous since you can specify a socks4a proxy with \fI\-x, \-
4115 using a socks4a:// protocol prefix.
4116
4117 \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time \fI\-x, \-\-proxy\fP is
4118-used with an HTTP/HTTPS proxy (added in 7.52.0). In such a case, curl first
4119+used with an HTTP/HTTPS proxy. In such a case, curl first
4120 connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or
4121 HTTPS proxy.
4122
4123@@ -4536,7 +4940,7 @@ If --socks4a is provided several times, the last set value is used.
4124
4125 Example:
4126 .nf
4127- curl --socks4a hostname:4096 https://example.com
4128+curl --socks4a hostname:4096 https://example.com
4129 .fi
4130
4131 See also \fI\-\-socks4\fP, \fI\-\-socks5\fP and \fI\-\-socks5\-hostname\fP.
4132@@ -4544,7 +4948,7 @@ See also \fI\-\-socks4\fP, \fI\-\-socks5\fP and \fI\-\-socks5\-hostname\fP.
4133 Use the specified SOCKS5 proxy \- but resolve the hostname locally. If the
4134 port number is not specified, it is assumed at port 1080.
4135
4136-To specify proxy on a unix domain socket, use localhost for host, e.g.
4137+To specify proxy on a Unix domain socket, use localhost for host, e.g.
4138 \&"socks5://localhost/path/to/socket.sock"
4139
4140 This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually
4141@@ -4554,17 +4958,17 @@ This option is superfluous since you can specify a socks5 proxy with \fI\-x, \-\
4142 using a socks5:// protocol prefix.
4143
4144 \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time \fI\-x, \-\-proxy\fP is
4145-used with an HTTP/HTTPS proxy (added in 7.52.0). In such a case, curl first
4146+used with an HTTP/HTTPS proxy. In such a case, curl first
4147 connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or
4148 HTTPS proxy.
4149
4150-This option (as well as \fI\-\-socks4\fP) does not work with IPV6, FTPS or LDAP.
4151+This option does not work with FTPS or LDAP.
4152
4153 If --socks5 is provided several times, the last set value is used.
4154
4155 Example:
4156 .nf
4157- curl --socks5 proxy.example:7000 https://example.com
4158+curl --socks5 proxy.example:7000 https://example.com
4159 .fi
4160
4161 See also \fI\-\-socks5\-hostname\fP and \fI\-\-socks4a\fP.
4162@@ -4577,10 +4981,10 @@ Providing --socks5-basic multiple times has no extra effect.
4163
4164 Example:
4165 .nf
4166- curl --socks5-basic --socks5 hostname:4096 https://example.com
4167+curl --socks5-basic --socks5 hostname:4096 https://example.com
4168 .fi
4169
4170-See also \fI\-\-socks5\fP. Added in 7.55.0.
4171+See also \fI\-\-socks5\fP.
4172 .IP "\-\-socks5\-gssapi"
4173 Use GSS\-API authentication when connecting to a SOCKS5 proxy. The GSS\-API
4174 authentication is enabled by default (if curl is compiled with GSS\-API
4175@@ -4592,10 +4996,10 @@ Disable it again with \-\-no-socks5-gssapi.
4176
4177 Example:
4178 .nf
4179- curl --socks5-gssapi --socks5 hostname:4096 https://example.com
4180+curl --socks5-gssapi --socks5 hostname:4096 https://example.com
4181 .fi
4182
4183-See also \fI\-\-socks5\fP. Added in 7.55.0.
4184+See also \fI\-\-socks5\fP.
4185 .IP "\-\-socks5\-gssapi\-nec"
4186 As part of the GSS\-API negotiation a protection mode is negotiated. RFC 1961
4187 says in section 4.3/4.4 it should be protected, but the NEC reference
4188@@ -4607,7 +5011,7 @@ Disable it again with \-\-no-socks5-gssapi-nec.
4189
4190 Example:
4191 .nf
4192- curl --socks5-gssapi-nec --socks5 hostname:4096 https://example.com
4193+curl --socks5-gssapi-nec --socks5 hostname:4096 https://example.com
4194 .fi
4195
4196 See also \fI\-\-socks5\fP.
4197@@ -4618,7 +5022,7 @@ If --socks5-gssapi-service is provided several times, the last set value is used
4198
4199 Example:
4200 .nf
4201- curl --socks5-gssapi-service sockd --socks5 hostname:4096 https://example.com
4202+curl --socks5-gssapi-service sockd --socks5 hostname:4096 https://example.com
4203 .fi
4204
4205 See also \fI\-\-socks5\fP.
4206@@ -4626,7 +5030,7 @@ See also \fI\-\-socks5\fP.
4207 Use the specified SOCKS5 proxy (and let the proxy resolve the hostname). If
4208 the port number is not specified, it is assumed at port 1080.
4209
4210-To specify proxy on a unix domain socket, use localhost for host, e.g.
4211+To specify proxy on a Unix domain socket, use localhost for host, e.g.
4212 \&"socks5h://localhost/path/to/socket.sock"
4213
4214 This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually
4215@@ -4636,7 +5040,7 @@ This option is superfluous since you can specify a socks5 hostname proxy with
4216 \fI\-x, \-\-proxy\fP using a socks5h:// protocol prefix.
4217
4218 \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time \fI\-x, \-\-proxy\fP is
4219-used with an HTTP/HTTPS proxy (added in 7.52.0). In such a case, curl first
4220+used with an HTTP/HTTPS proxy. In such a case, curl first
4221 connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or
4222 HTTPS proxy.
4223
4224@@ -4644,7 +5048,7 @@ If --socks5-hostname is provided several times, the last set value is used.
4225
4226 Example:
4227 .nf
4228- curl --socks5-hostname proxy.example:7000 https://example.com
4229+curl --socks5-hostname proxy.example:7000 https://example.com
4230 .fi
4231
4232 See also \fI\-\-socks5\fP and \fI\-\-socks4a\fP.
4233@@ -4657,7 +5061,7 @@ If --speed-limit is provided several times, the last set value is used.
4234
4235 Example:
4236 .nf
4237- curl --speed-limit 300 --speed-time 10 https://example.com
4238+curl --speed-limit 300 --speed-time 10 https://example.com
4239 .fi
4240
4241 See also \fI-y, \-\-speed\-time\fP, \fI\-\-limit\-rate\fP and \fI-m, \-\-max\-time\fP.
4242@@ -4673,7 +5077,7 @@ If --speed-time is provided several times, the last set value is used.
4243
4244 Example:
4245 .nf
4246- curl --speed-limit 300 --speed-time 10 https://example.com
4247+curl --speed-limit 300 --speed-time 10 https://example.com
4248 .fi
4249
4250 See also \fI-Y, \-\-speed\-limit\fP and \fI\-\-limit\-rate\fP.
4251@@ -4700,16 +5104,19 @@ Disable it again with \-\-no-ssl.
4252
4253 Example:
4254 .nf
4255- curl --ssl pop3://example.com/
4256+curl --ssl pop3://example.com/
4257 .fi
4258
4259 See also \fI\-\-ssl\-reqd\fP, \fI-k, \-\-insecure\fP and \fI\-\-ciphers\fP.
4260 .IP "\-\-ssl\-allow\-beast"
4261-(TLS) Do not work around a security flaw in the SSL3 and TLS1.0 protocols known as
4262-BEAST. If this option is not used, the SSL layer may use workarounds known to
4263-cause interoperability problems with some older SSL implementations.
4264+(TLS) Do not work around a security flaw in the TLS1.0 protocol known as BEAST. If
4265+this option is not used, the TLS layer may use workarounds known to cause
4266+interoperability problems with some older server implementations.
4267
4268-\fBWARNING\fP: this option loosens the SSL security, and by using this flag you
4269+This option only changes how curl does TLS 1.0 and has no effect on later TLS
4270+versions.
4271+
4272+\fBWARNING\fP: this option loosens the TLS security, and by using this flag you
4273 ask for exactly that.
4274
4275 Providing --ssl-allow-beast multiple times has no extra effect.
4276@@ -4717,7 +5124,7 @@ Disable it again with \-\-no-ssl-allow-beast.
4277
4278 Example:
4279 .nf
4280- curl --ssl-allow-beast https://example.com
4281+curl --ssl-allow-beast https://example.com
4282 .fi
4283
4284 See also \fI\-\-proxy\-ssl\-allow\-beast\fP and \fI-k, \-\-insecure\fP.
4285@@ -4732,10 +5139,10 @@ Disable it again with \-\-no-ssl-auto-client-cert.
4286
4287 Example:
4288 .nf
4289- curl --ssl-auto-client-cert https://example.com
4290+curl --ssl-auto-client-cert https://example.com
4291 .fi
4292
4293-See also \fI\-\-proxy\-ssl\-auto\-client\-cert\fP. Added in 7.77.0.
4294+Added in 7.77.0. See also \fI\-\-proxy\-ssl\-auto\-client\-cert\fP.
4295 .IP "\-\-ssl\-no\-revoke"
4296 (TLS) (Schannel) Disable certificate revocation checks. WARNING: this option loosens
4297 the SSL security, and by using this flag you ask for exactly that.
4298@@ -4745,7 +5152,7 @@ Disable it again with \-\-no-ssl-no-revoke.
4299
4300 Example:
4301 .nf
4302- curl --ssl-no-revoke https://example.com
4303+curl --ssl-no-revoke https://example.com
4304 .fi
4305
4306 See also \fI\-\-crlfile\fP.
4307@@ -4769,7 +5176,7 @@ Disable it again with \-\-no-ssl-reqd.
4308
4309 Example:
4310 .nf
4311- curl --ssl-reqd ftp://example.com
4312+curl --ssl-reqd ftp://example.com
4313 .fi
4314
4315 See also \fI\-\-ssl\fP and \fI-k, \-\-insecure\fP.
4316@@ -4782,10 +5189,37 @@ Disable it again with \-\-no-ssl-revoke-best-effort.
4317
4318 Example:
4319 .nf
4320- curl --ssl-revoke-best-effort https://example.com
4321+curl --ssl-revoke-best-effort https://example.com
4322 .fi
4323
4324-See also \fI\-\-crlfile\fP and \fI-k, \-\-insecure\fP. Added in 7.70.0.
4325+Added in 7.70.0. See also \fI\-\-crlfile\fP and \fI-k, \-\-insecure\fP.
4326+.IP "\-\-ssl\-sessions <filename>"
4327+(TLS) Use the given file to load SSL session tickets into curl\(aqs cache before
4328+starting any transfers. At the end of a successful curl run, the cached
4329+SSL sessions tickets are saved to the file, replacing any previous content.
4330+
4331+The file does not have to exist, but curl reports an error if it is
4332+unable to create it. Unused loaded tickets are saved again, unless they
4333+get replaced or purged from the cache for space reasons.
4334+
4335+Using a session file allows "\fI\-\-tls\-earlydata\fP" to send the first request
4336+in "0\-RTT" mode, should an SSL session with the feature be found. Note that
4337+a server may not support early data. Also note that early data does
4338+not provide forward secrecy, e.g. is not as secure.
4339+
4340+The SSL session tickets are stored as base64 encoded text, each ticket on
4341+its own line. The hostnames are cryptographically salted and hashed. While
4342+this prevents someone from easily seeing the hosts you contacted, they could
4343+still check if a specific hostname matches one of the values.
4344+
4345+If --ssl-sessions is provided several times, the last set value is used.
4346+
4347+Example:
4348+.nf
4349+curl --ssl-sessions sessions.txt https://example.com
4350+.fi
4351+
4352+Added in 8.12.0. See also \fI\-\-tls\-earlydata\fP.
4353 .IP "\-2, \-\-sslv2"
4354 (SSL) This option previously asked curl to use SSLv2, but is now ignored
4355 (added in 7.77.0). SSLv2 is widely considered insecure (see RFC 6176).
4356@@ -4794,10 +5228,12 @@ Providing --sslv2 multiple times has no extra effect.
4357
4358 Example:
4359 .nf
4360- curl --sslv2 https://example.com
4361+curl --sslv2 https://example.com
4362 .fi
4363
4364-See also \fI\-\-http1.1\fP and \fI\-\-http2\fP. \fI-2, \-\-sslv2\fP requires that the underlying libcurl was built to support TLS. This option is mutually exclusive to \fI-3, \-\-sslv3\fP and \fI-1, \-\-tlsv1\fP and \fI\-\-tlsv1.1\fP and \fI\-\-tlsv1.2\fP.
4365+\fI-2, \-\-sslv2\fP requires that libcurl is built to support TLS.
4366+This option is mutually exclusive with \fI-3, \-\-sslv3\fP, \fI-1, \-\-tlsv1\fP, \fI\-\-tlsv1.1\fP and \fI\-\-tlsv1.2\fP.
4367+See also \fI\-\-http1.1\fP and \fI\-\-http2\fP.
4368 .IP "\-3, \-\-sslv3"
4369 (SSL) This option previously asked curl to use SSLv3, but is now ignored
4370 (added in 7.77.0). SSLv3 is widely considered insecure (see RFC 7568).
4371@@ -4806,10 +5242,12 @@ Providing --sslv3 multiple times has no extra effect.
4372
4373 Example:
4374 .nf
4375- curl --sslv3 https://example.com
4376+curl --sslv3 https://example.com
4377 .fi
4378
4379-See also \fI\-\-http1.1\fP and \fI\-\-http2\fP. \fI-3, \-\-sslv3\fP requires that the underlying libcurl was built to support TLS. This option is mutually exclusive to \fI-2, \-\-sslv2\fP and \fI-1, \-\-tlsv1\fP and \fI\-\-tlsv1.1\fP and \fI\-\-tlsv1.2\fP.
4380+\fI-3, \-\-sslv3\fP requires that libcurl is built to support TLS.
4381+This option is mutually exclusive with \fI-2, \-\-sslv2\fP, \fI-1, \-\-tlsv1\fP, \fI\-\-tlsv1.1\fP and \fI\-\-tlsv1.2\fP.
4382+See also \fI\-\-http1.1\fP and \fI\-\-http2\fP.
4383 .IP "\-\-stderr <file>"
4384 Redirect all writes to stderr to the specified file instead. If the filename
4385 is a plain \(aq\-\(aq, it is instead written to stdout.
4386@@ -4820,7 +5258,7 @@ If --stderr is provided several times, the last set value is used.
4387
4388 Example:
4389 .nf
4390- curl --stderr output.txt https://example.com
4391+curl --stderr output.txt https://example.com
4392 .fi
4393
4394 See also \fI-v, \-\-verbose\fP and \fI-s, \-\-silent\fP.
4395@@ -4838,28 +5276,29 @@ Disable it again with \-\-no-styled-output.
4396
4397 Example:
4398 .nf
4399- curl --styled-output -I https://example.com
4400+curl --styled-output -I https://example.com
4401 .fi
4402
4403-See also \fI-I, \-\-head\fP and \fI-v, \-\-verbose\fP. Added in 7.61.0.
4404+Added in 7.61.0. See also \fI-I, \-\-head\fP and \fI-v, \-\-verbose\fP.
4405 .IP "\-\-suppress\-connect\-headers"
4406-When \fI\-p, \-\-proxytunnel\fP is used and a CONNECT request is made do not output proxy
4407-CONNECT response headers. This option is meant to be used with \fI\-D, \-\-dump\-header\fP or
4408-\fI\-i, \-\-include\fP which are used to show protocol headers in the output. It has no
4409-effect on debug options such as \fI\-v, \-\-verbose\fP or \fI\-\-trace\fP, or any statistics.
4410+When \fI\-p, \-\-proxytunnel\fP is used and a CONNECT request is made, do not output proxy
4411+CONNECT response headers. This option is meant to be used with \fI\-D, \-\-dump\-header\fP
4412+or \fI\-i, \-\-show\-headers\fP which are used to show protocol headers in the output. It
4413+has no effect on debug options such as \fI\-v, \-\-verbose\fP or \fI\-\-trace\fP, or any
4414+statistics.
4415
4416 Providing --suppress-connect-headers multiple times has no extra effect.
4417 Disable it again with \-\-no-suppress-connect-headers.
4418
4419 Example:
4420 .nf
4421- curl --suppress-connect-headers --include -x proxy https://example.com
4422+curl --suppress-connect-headers --show-headers -x proxy https://example.com
4423 .fi
4424
4425-See also \fI-D, \-\-dump\-header\fP, \fI-i, \-\-include\fP and \fI-p, \-\-proxytunnel\fP. Added in 7.54.0.
4426+See also \fI-D, \-\-dump\-header\fP, \fI-i, \-\-show\-headers\fP and \fI-p, \-\-proxytunnel\fP.
4427 .IP "\-\-tcp\-fastopen"
4428 Enable use of TCP Fast Open (RFC 7413). TCP Fast Open is a TCP extension that
4429-allows data to get sent earlier over the connection (before the final
4430+allows data to be sent earlier over the connection (before the final
4431 handshake ACK) if the client and server have been connected previously.
4432
4433 Providing --tcp-fastopen multiple times has no extra effect.
4434@@ -4867,7 +5306,7 @@ Disable it again with \-\-no-tcp-fastopen.
4435
4436 Example:
4437 .nf
4438- curl --tcp-fastopen https://example.com
4439+curl --tcp-fastopen https://example.com
4440 .fi
4441
4442 See also \fI\-\-false\-start\fP.
4443@@ -4876,25 +5315,25 @@ Turn on the TCP_NODELAY option. See the \fIcurl_easy_setopt(3)\fP man page for
4444 details about this option.
4445
4446 curl sets this option by default and you need to explicitly switch it off if
4447-you do not want it on (added in 7.50.2).
4448+you do not want it on.
4449
4450 Providing --tcp-nodelay multiple times has no extra effect.
4451 Disable it again with \-\-no-tcp-nodelay.
4452
4453 Example:
4454 .nf
4455- curl --tcp-nodelay https://example.com
4456+curl --tcp-nodelay https://example.com
4457 .fi
4458
4459 See also \fI-N, \-\-no\-buffer\fP.
4460 .IP "\-t, \-\-telnet\-option <opt=val>"
4461 Pass options to the telnet protocol. Supported options are:
4462 .RS
4463-.IP `TTYPE=<term>`
4464+.IP TTYPE=<term>
4465 Sets the terminal type.
4466-.IP "`XDISPLOC=<X display>`"
4467+.IP "XDISPLOC=<X display>"
4468 Sets the X display location.
4469-.IP `NEW_ENV=<var,val>`
4470+.IP NEW_ENV=<var,val>
4471 Sets an environment variable.
4472 .RE
4473 .IP
4474@@ -4903,7 +5342,7 @@ Sets an environment variable.
4475
4476 Example:
4477 .nf
4478- curl -t TTYPE=vt100 telnet://example.com/
4479+curl -t TTYPE=vt100 telnet://example.com/
4480 .fi
4481
4482 See also \fI-K, \-\-config\fP.
4483@@ -4916,12 +5355,12 @@ If --tftp-blksize is provided several times, the last set value is used.
4484
4485 Example:
4486 .nf
4487- curl --tftp-blksize 1024 tftp://example.com/file
4488+curl --tftp-blksize 1024 tftp://example.com/file
4489 .fi
4490
4491 See also \fI\-\-tftp\-no\-options\fP.
4492 .IP "\-\-tftp\-no\-options"
4493-(TFTP) Do not to send TFTP options requests. This improves interop with some legacy
4494+(TFTP) Do not send TFTP options requests. This improves interop with some legacy
4495 servers that do not acknowledge or properly implement TFTP options. When this
4496 option is used \fI\-\-tftp\-blksize\fP is ignored.
4497
4498@@ -4930,7 +5369,7 @@ Disable it again with \-\-no-tftp-no-options.
4499
4500 Example:
4501 .nf
4502- curl --tftp-no-options tftp://192.168.0.1/
4503+curl --tftp-no-options tftp://192.168.0.1/
4504 .fi
4505
4506 See also \fI\-\-tftp\-blksize\fP.
4507@@ -4952,21 +5391,58 @@ If --time-cond is provided several times, the last set value is used.
4508
4509 Examples:
4510 .nf
4511- curl -z "Wed 01 Sep 2021 12:18:00" https://example.com
4512- curl -z "-Wed 01 Sep 2021 12:18:00" https://example.com
4513- curl -z file https://example.com
4514+curl -z "Wed 01 Sep 2021 12:18:00" https://example.com
4515+curl -z "-Wed 01 Sep 2021 12:18:00" https://example.com
4516+curl -z file https://example.com
4517 .fi
4518
4519 See also \fI\-\-etag\-compare\fP and \fI-R, \-\-remote\-time\fP.
4520+.IP "\-\-tls\-earlydata"
4521+(TLS) Enable the use of TLSv1.3 early data, also known as \(aq0RTT\(aq where possible.
4522+This has security implications for the requests sent that way.
4523+
4524+This option is used when curl is built to use GnuTLS.
4525+
4526+If a server supports this TLSv1.3 feature, and to what extent, is announced
4527+as part of the TLS "session" sent back to curl. Until curl has seen such
4528+a session in a previous request, early data cannot be used.
4529+
4530+When a new connection is initiated with a known TLSv1.3 session, and that
4531+session announced early data support, the first request on this connection is
4532+sent \fIbefore\fP the TLS handshake is complete. While the early data is also
4533+encrypted, it is not protected against replays. An attacker can send
4534+your early data to the server again and the server would accept it.
4535+
4536+If your request contacts a public server and only retrieves a file, there
4537+may be no harm in that. If the first request orders a refrigerator
4538+for you, it is probably not a good idea to use early data for it. curl
4539+cannot deduce what the security implications of your requests actually
4540+are and make this decision for you.
4541+
4542+The amount of early data sent can be inspected by using the "\fI\-w, \-\-write\-out\fP"
4543+variable "tls_earlydata".
4544+
4545+\fBWARNING\fP: this option has security implications. See above for more
4546+details.
4547+
4548+Providing --tls-earlydata multiple times has no extra effect.
4549+Disable it again with \-\-no-tls-earlydata.
4550+
4551+Example:
4552+.nf
4553+curl --tls-earlydata https://example.com
4554+.fi
4555+
4556+Added in 8.11.0. See also \fI\-\-tlsv1.3\fP, \fI\-\-tls\-max\fP and \fI\-\-ssl\-sessions\fP.
4557 .IP "\-\-tls\-max <VERSION>"
4558-(TLS) VERSION defines maximum supported TLS version. The minimum acceptable version
4559-is set by tlsv1.0, tlsv1.1, tlsv1.2 or tlsv1.3.
4560+(TLS) Set the maximum allowed TLS version. The minimum acceptable version is set by
4561+tlsv1.0, tlsv1.1, tlsv1.2 or tlsv1.3.
4562
4563 If the connection is done without TLS, this option has no effect. This
4564 includes QUIC\-using (HTTP/3) transfers.
4565 .RS
4566 .IP default
4567-Use up to recommended TLS version.
4568+Use up to the recommended TLS version.
4569 .IP 1.0
4570 Use up to TLSv1.0.
4571 .IP 1.1
4572@@ -4982,30 +5458,33 @@ If --tls-max is provided several times, the last set value is used.
4573
4574 Examples:
4575 .nf
4576- curl --tls-max 1.2 https://example.com
4577- curl --tls-max 1.3 --tlsv1.2 https://example.com
4578+curl --tls-max 1.2 https://example.com
4579+curl --tls-max 1.3 --tlsv1.2 https://example.com
4580 .fi
4581
4582-See also \fI\-\-tlsv1.0\fP, \fI\-\-tlsv1.1\fP, \fI\-\-tlsv1.2\fP and \fI\-\-tlsv1.3\fP. \fI\-\-tls\-max\fP requires that the underlying libcurl was built to support TLS. Added in 7.54.0.
4583+\fI\-\-tls\-max\fP requires that libcurl is built to support TLS.
4584+See also \fI\-\-tlsv1.0\fP, \fI\-\-tlsv1.1\fP, \fI\-\-tlsv1.2\fP and \fI\-\-tlsv1.3\fP.
4585 .IP "\-\-tls13\-ciphers <list>"
4586-(TLS) Specifies which cipher suites to use in the connection if it negotiates TLS
4587-1.3. The list of ciphers suites must specify valid ciphers. Read up on TLS 1.3
4588-cipher suite details on this URL:
4589+(TLS) Set which cipher suites to use in the connection if it negotiates TLS 1.3. The
4590+list of ciphers suites must specify valid ciphers. Read up on TLS 1.3 cipher
4591+suite details on this URL:
4592
4593 https://curl.se/docs/ssl\-ciphers.html
4594
4595-This option is currently used only when curl is built to use OpenSSL 1.1.1 or
4596-later, or Schannel. If you are using a different SSL backend you can try
4597-setting TLS 1.3 cipher suites by using the \fI\-\-ciphers\fP option.
4598+This option is used when curl is built to use OpenSSL 1.1.1 or later,
4599+wolfSSL, or mbedTLS 3.6.0 or later.
4600+
4601+Before curl 8.10.0 with mbedTLS or wolfSSL, TLS 1.3 cipher suites were set
4602+by using the \fI\-\-ciphers\fP option.
4603
4604 If --tls13-ciphers is provided several times, the last set value is used.
4605
4606 Example:
4607 .nf
4608- curl --tls13-ciphers TLS_AES_128_GCM_SHA256 https://example.com
4609+curl --tls13-ciphers TLS_AES_128_GCM_SHA256 https://example.com
4610 .fi
4611
4612-See also \fI\-\-ciphers\fP, \fI\-\-curves\fP and \fI\-\-proxy\-tls13\-ciphers\fP. Added in 7.61.0.
4613+Added in 7.61.0. See also \fI\-\-ciphers\fP, \fI\-\-proxy\-tls13\-ciphers\fP and \fI\-\-curves\fP.
4614 .IP "\-\-tlsauthtype <type>"
4615 (TLS) Set TLS authentication type. Currently, the only supported option is "SRP",
4616 for TLS\-SRP (RFC 5054). If \fI\-\-tlsuser\fP and \fI\-\-tlspassword\fP are specified but
4617@@ -5017,13 +5496,13 @@ If --tlsauthtype is provided several times, the last set value is used.
4618
4619 Example:
4620 .nf
4621- curl --tlsauthtype SRP https://example.com
4622+curl --tlsauthtype SRP https://example.com
4623 .fi
4624
4625 See also \fI\-\-tlsuser\fP.
4626 .IP "\-\-tlspassword <string>"
4627-(TLS) Set password for use with the TLS authentication method specified with
4628-\fI\-\-tlsauthtype\fP. Requires that \fI\-\-tlsuser\fP also be set.
4629+(TLS) Set password to use with the TLS authentication method specified with
4630+\fI\-\-tlsauthtype\fP. Requires that \fI\-\-tlsuser\fP is set.
4631
4632 This option does not work with TLS 1.3.
4633
4634@@ -5031,7 +5510,7 @@ If --tlspassword is provided several times, the last set value is used.
4635
4636 Example:
4637 .nf
4638- curl --tlspassword pwd --tlsuser user https://example.com
4639+curl --tlspassword pwd --tlsuser user https://example.com
4640 .fi
4641
4642 See also \fI\-\-tlsuser\fP.
4643@@ -5045,7 +5524,7 @@ If --tlsuser is provided several times, the last set value is used.
4644
4645 Example:
4646 .nf
4647- curl --tlspassword pwd --tlsuser user https://example.com
4648+curl --tlspassword pwd --tlsuser user https://example.com
4649 .fi
4650
4651 See also \fI\-\-tlspassword\fP.
4652@@ -5057,12 +5536,14 @@ Providing --tlsv1 multiple times has no extra effect.
4653
4654 Example:
4655 .nf
4656- curl --tlsv1 https://example.com
4657+curl --tlsv1 https://example.com
4658 .fi
4659
4660-See also \fI\-\-http1.1\fP and \fI\-\-http2\fP. \fI-1, \-\-tlsv1\fP requires that the underlying libcurl was built to support TLS. This option is mutually exclusive to \fI\-\-tlsv1.1\fP and \fI\-\-tlsv1.2\fP and \fI\-\-tlsv1.3\fP.
4661+\fI-1, \-\-tlsv1\fP requires that libcurl is built to support TLS.
4662+This option is mutually exclusive with \fI\-\-tlsv1.1\fP, \fI\-\-tlsv1.2\fP and \fI\-\-tlsv1.3\fP.
4663+See also \fI\-\-http1.1\fP and \fI\-\-http2\fP.
4664 .IP "\-\-tlsv1.0"
4665-(TLS) Forces curl to use TLS version 1.0 or later when connecting to a remote TLS server.
4666+(TLS) Force curl to use TLS version 1.0 or later when connecting to a remote TLS server.
4667
4668 In old versions of curl this option was documented to allow _only_ TLS 1.0.
4669 That behavior was inconsistent depending on the TLS library. Use \fI\-\-tls\-max\fP if
4670@@ -5072,12 +5553,12 @@ Providing --tlsv1.0 multiple times has no extra effect.
4671
4672 Example:
4673 .nf
4674- curl --tlsv1.0 https://example.com
4675+curl --tlsv1.0 https://example.com
4676 .fi
4677
4678 See also \fI\-\-tlsv1.3\fP.
4679 .IP "\-\-tlsv1.1"
4680-(TLS) Forces curl to use TLS version 1.1 or later when connecting to a remote TLS server.
4681+(TLS) Force curl to use TLS version 1.1 or later when connecting to a remote TLS server.
4682
4683 In old versions of curl this option was documented to allow _only_ TLS 1.1.
4684 That behavior was inconsistent depending on the TLS library. Use \fI\-\-tls\-max\fP if
4685@@ -5087,12 +5568,12 @@ Providing --tlsv1.1 multiple times has no extra effect.
4686
4687 Example:
4688 .nf
4689- curl --tlsv1.1 https://example.com
4690+curl --tlsv1.1 https://example.com
4691 .fi
4692
4693 See also \fI\-\-tlsv1.3\fP and \fI\-\-tls\-max\fP.
4694 .IP "\-\-tlsv1.2"
4695-(TLS) Forces curl to use TLS version 1.2 or later when connecting to a remote TLS server.
4696+(TLS) Force curl to use TLS version 1.2 or later when connecting to a remote TLS server.
4697
4698 In old versions of curl this option was documented to allow _only_ TLS 1.2.
4699 That behavior was inconsistent depending on the TLS library. Use \fI\-\-tls\-max\fP if
4700@@ -5102,12 +5583,12 @@ Providing --tlsv1.2 multiple times has no extra effect.
4701
4702 Example:
4703 .nf
4704- curl --tlsv1.2 https://example.com
4705+curl --tlsv1.2 https://example.com
4706 .fi
4707
4708 See also \fI\-\-tlsv1.3\fP and \fI\-\-tls\-max\fP.
4709 .IP "\-\-tlsv1.3"
4710-(TLS) Forces curl to use TLS version 1.3 or later when connecting to a remote TLS
4711+(TLS) Force curl to use TLS version 1.3 or later when connecting to a remote TLS
4712 server.
4713
4714 If the connection is done without TLS, this option has no effect. This
4715@@ -5119,10 +5600,10 @@ Providing --tlsv1.3 multiple times has no extra effect.
4716
4717 Example:
4718 .nf
4719- curl --tlsv1.3 https://example.com
4720+curl --tlsv1.3 https://example.com
4721 .fi
4722
4723-See also \fI\-\-tlsv1.2\fP and \fI\-\-tls\-max\fP. Added in 7.52.0.
4724+See also \fI\-\-tlsv1.2\fP and \fI\-\-tls\-max\fP.
4725 .IP "\-\-tr\-encoding"
4726 (HTTP) Request a compressed Transfer\-Encoding response using one of the algorithms
4727 curl supports, and uncompress the data while receiving it.
4728@@ -5132,7 +5613,7 @@ Disable it again with \-\-no-tr-encoding.
4729
4730 Example:
4731 .nf
4732- curl --tr-encoding https://example.com
4733+curl --tr-encoding https://example.com
4734 .fi
4735
4736 See also \fI\-\-compressed\fP.
4737@@ -5152,14 +5633,15 @@ If --trace is provided several times, the last set value is used.
4738
4739 Example:
4740 .nf
4741- curl --trace log.txt https://example.com
4742+curl --trace log.txt https://example.com
4743 .fi
4744
4745-See also \fI\-\-trace\-ascii\fP, \fI\-\-trace\-config\fP, \fI\-\-trace\-ids\fP and \fI\-\-trace\-time\fP. This option is mutually exclusive to \fI-v, \-\-verbose\fP and \fI\-\-trace\-ascii\fP.
4746+This option is mutually exclusive with \fI-v, \-\-verbose\fP and \fI\-\-trace\-ascii\fP.
4747+See also \fI\-\-trace\-ascii\fP, \fI\-\-trace\-config\fP, \fI\-\-trace\-ids\fP and \fI\-\-trace\-time\fP.
4748 .IP "\-\-trace\-ascii <file>"
4749 Save a full trace dump of all incoming and outgoing data, including
4750 descriptive information, in the given output file. Use "\-" as filename to have
4751-the output sent to stdout.
4752+the output sent to stdout. Use "%" as filename to send the output to stderr.
4753
4754 This is similar to \fI\-\-trace\fP, but leaves out the hex part and only shows the
4755 ASCII part of the dump. It makes smaller output that might be easier to read
4756@@ -5175,10 +5657,11 @@ If --trace-ascii is provided several times, the last set value is used.
4757
4758 Example:
4759 .nf
4760- curl --trace-ascii log.txt https://example.com
4761+curl --trace-ascii log.txt https://example.com
4762 .fi
4763
4764-See also \fI-v, \-\-verbose\fP and \fI\-\-trace\fP. This option is mutually exclusive to \fI\-\-trace\fP and \fI-v, \-\-verbose\fP.
4765+This option is mutually exclusive with \fI\-\-trace\fP and \fI-v, \-\-verbose\fP.
4766+See also \fI-v, \-\-verbose\fP and \fI\-\-trace\fP.
4767 .IP "\-\-trace\-config <string>"
4768 Set configuration for trace output. A comma\-separated list of components where
4769 detailed output can be made available from. Names are case\-insensitive.
4770@@ -5195,12 +5678,13 @@ This option is global and does not need to be specified for each use of --next.
4771
4772 Example:
4773 .nf
4774- curl --trace-config ids,http/2 https://example.com
4775+curl --trace-config ids,http/2 https://example.com
4776 .fi
4777
4778-See also \fI-v, \-\-verbose\fP and \fI\-\-trace\fP. Added in 8.3.0.
4779+Added in 8.3.0. See also \fI-v, \-\-verbose\fP and \fI\-\-trace\fP.
4780 .IP "\-\-trace\-ids"
4781-Prepends the transfer and connection identifiers to each trace or verbose line that curl displays.
4782+Prepend the transfer and connection identifiers to each trace or verbose line
4783+that curl displays.
4784
4785 This option is global and does not need to be specified for each use of --next.
4786
4787@@ -5209,12 +5693,12 @@ Disable it again with \-\-no-trace-ids.
4788
4789 Example:
4790 .nf
4791- curl --trace-ids --trace-ascii output https://example.com
4792+curl --trace-ids --trace-ascii output https://example.com
4793 .fi
4794
4795-See also \fI\-\-trace\fP and \fI-v, \-\-verbose\fP. Added in 8.2.0.
4796+Added in 8.2.0. See also \fI\-\-trace\fP and \fI-v, \-\-verbose\fP.
4797 .IP "\-\-trace\-time"
4798-Prepends a time stamp to each trace or verbose line that curl displays.
4799+Prepend a time stamp to each trace or verbose line that curl displays.
4800
4801 This option is global and does not need to be specified for each use of --next.
4802
4803@@ -5223,7 +5707,7 @@ Disable it again with \-\-no-trace-time.
4804
4805 Example:
4806 .nf
4807- curl --trace-time --trace-ascii output https://example.com
4808+curl --trace-time --trace-ascii output https://example.com
4809 .fi
4810
4811 See also \fI\-\-trace\fP and \fI-v, \-\-verbose\fP.
4812@@ -5234,7 +5718,7 @@ If --unix-socket is provided several times, the last set value is used.
4813
4814 Example:
4815 .nf
4816- curl --unix-socket socket-path https://example.com
4817+curl --unix-socket socket-path https://example.com
4818 .fi
4819
4820 See also \fI\-\-abstract\-unix\-socket\fP.
4821@@ -5248,7 +5732,7 @@ filename or curl thinks that your last directory name is the remote filename
4822 to use.
4823
4824 When putting the local filename at the end of the URL, curl ignores what is on
4825-the left side of any slash (/) or backslash (\\) used in the filename and only
4826+the left side of any slash (/) or backslash (\\\\) used in the filename and only
4827 appends what is on the right side of the rightmost such character.
4828
4829 Use the filename "\-" (a single dash) to use stdin instead of a given file.
4830@@ -5269,40 +5753,73 @@ formatted. It has to feature the necessary set of headers and mail body
4831 formatted correctly by the user as curl does not transcode nor encode it
4832 further in any way.
4833
4834---upload-file can be used several times in a command line
4835+--upload-file is associated with a single URL. Use it once per URL when you use several URLs in a command line.
4836
4837 Examples:
4838 .nf
4839- curl -T file https://example.com
4840- curl -T "img[1-1000].png" ftp://ftp.example.com/
4841- curl --upload-file "{file1,file2}" https://example.com
4842+curl -T file https://example.com
4843+curl -T "img[1-1000].png" ftp://ftp.example.com/
4844+curl --upload-file "{file1,file2}" https://example.com
4845+curl -T file -T file2 https://example.com https://example.com
4846 .fi
4847
4848 See also \fI-G, \-\-get\fP, \fI-I, \-\-head\fP, \fI-X, \-\-request\fP and \fI-d, \-\-data\fP.
4849-.IP "\-\-url <url>"
4850-Specify a URL to fetch.
4851+.IP "\-\-upload\-flags <flags>"
4852+Specify additional behavior to apply to uploaded files. Flags are
4853+specified as either a single flag value or a comma\-separated list
4854+of flag values. These values are case\-sensitive and may be negated
4855+by prepending them with a \(aq\-\(aq character. Currently the following
4856+flag values are accepted: answered, deleted, draft, flagged, and
4857+seen. The currently\-accepted flag values are used to set flags on
4858+IMAP uploads.
4859+
4860+If --upload-flags is provided several times, the last set value is used.
4861+
4862+Example:
4863+.nf
4864+curl --upload-flags Flagged,!Seen --upload-file local/dir/file https://example.com
4865+.fi
4866+
4867+Added in 8.13.0. See also \fI-T, \-\-upload\-file\fP.
4868+.IP "\-\-url <url/file>"
4869+Specify a URL to fetch or send data to.
4870
4871-If the given URL is missing a scheme name (such as "http://" or "ftp://" etc)
4872-then curl makes a guess based on the host. If the outermost subdomain name
4873-matches DICT, FTP, IMAP, LDAP, POP3 or SMTP then that protocol is used,
4874-otherwise HTTP is used. Guessing can be avoided by providing a full URL
4875-including the scheme, or disabled by setting a default protocol (added in
4876-7.45.0), see \fI\-\-proto\-default\fP for details.
4877+If the given URL is missing a scheme (such as "http://" or "ftp://" etc) curl
4878+guesses which scheme to use based on the hostname. If the outermost subdomain
4879+name matches DICT, FTP, IMAP, LDAP, POP3 or SMTP case insensitively, then that
4880+protocol is used, otherwise it assumes HTTP. Scheme guessing can be avoided by
4881+providing a full URL including the scheme, or disabled by setting a default
4882+protocol, see \fI\-\-proto\-default\fP for details.
4883
4884-To control where this URL is written, use the \fI\-o, \-\-output\fP or the \fI\-O, \-\-remote\-name\fP
4885-options.
4886+To control where the contents of a retrieved URL is written instead of the
4887+default stdout, use the \fI\-o, \-\-output\fP or the \fI\-O, \-\-remote\-name\fP options. When retrieving
4888+multiple URLs in a single invoke, each provided URL needs its own dedicated
4889+destination option unless \fI\-\-remote\-name\-all\fP is used.
4890
4891-\fBWARNING\fP: On Windows, particular "file://" accesses can be converted to
4892-network accesses by the operating system. Beware!
4893+On Windows, "file://" accesses can be converted to network accesses by the
4894+operating system.
4895+
4896+Starting in curl 8.13.0, curl can be told to download URLs provided in a text
4897+file, one URL per line. It is done with "\fI\-\-url\fP @filename": so instead of a
4898+URL, you specify a filename prefixed with the "@" symbol. It can be told to
4899+load the list of URLs from stdin by providing an argument like "@\-".
4900+
4901+When downloading URLs given in a file, it implies using \fI\-O, \-\-remote\-name\fP for each
4902+provided URL. The URLs are full, there is no globbing applied or done on
4903+these. Features such as \fI\-\-skip\-existing\fP work fine in combination with this.
4904+
4905+Lines in the URL file that start with "#" are treated as comments and are
4906+skipped.
4907
4908 --url can be used several times in a command line
4909
4910-Example:
4911+Examples:
4912 .nf
4913- curl --url https://example.com
4914+curl --url https://example.com
4915+curl --url @file
4916 .fi
4917
4918-See also \fI-:, \-\-next\fP and \fI-K, \-\-config\fP.
4919+See also \fI-:, \-\-next\fP, \fI-K, \-\-config\fP, \fI\-\-path\-as\-is\fP and \fI\-\-disallow\-username\-in\-url\fP.
4920 .IP "\-\-url\-query <data>"
4921 (all) Add a piece of data, usually a name + value pair, to the end of the URL query
4922 part. The syntax is identical to that used for \fI\-\-data\-urlencode\fP with one
4923@@ -5318,25 +5835,25 @@ end.
4924
4925 Examples:
4926 .nf
4927- curl --url-query name=val https://example.com
4928- curl --url-query =encodethis http://example.net/foo
4929- curl --url-query name@file https://example.com
4930- curl --url-query @fileonly https://example.com
4931- curl --url-query "+name=%20foo" https://example.com
4932+curl --url-query name=val https://example.com
4933+curl --url-query =encodethis http://example.net/foo
4934+curl --url-query name@file https://example.com
4935+curl --url-query @fileonly https://example.com
4936+curl --url-query "+name=%20foo" https://example.com
4937 .fi
4938
4939-See also \fI\-\-data\-urlencode\fP and \fI-G, \-\-get\fP. Added in 7.87.0.
4940+Added in 7.87.0. See also \fI\-\-data\-urlencode\fP and \fI-G, \-\-get\fP.
4941 .IP "\-B, \-\-use\-ascii"
4942 (FTP LDAP) Enable ASCII transfer mode. For FTP, this can also be enforced by using a URL
4943 that ends with ";type=A". This option causes data sent to stdout to be in text
4944-mode for win32 systems.
4945+mode for Win32 systems.
4946
4947 Providing --use-ascii multiple times has no extra effect.
4948 Disable it again with \-\-no-use-ascii.
4949
4950 Example:
4951 .nf
4952- curl -B ftp://example.com/README
4953+curl -B ftp://example.com/README
4954 .fi
4955
4956 See also \fI\-\-crlf\fP and \fI\-\-data\-ascii\fP.
4957@@ -5353,8 +5870,8 @@ still.
4958 On systems where it works, curl hides the given option argument from process
4959 listings. This is not enough to protect credentials from possibly getting seen
4960 by other users on the same system as they still are visible for a moment
4961-before cleared. Such sensitive data should be retrieved from a file instead or
4962-similar and never used in clear text in a command line.
4963+before being cleared. Such sensitive data should be retrieved from a file
4964+instead or similar and never used in clear text in a command line.
4965
4966 When using Kerberos V5 with a Windows based server you should include the
4967 Windows domain name in the username, in order for the server to successfully
4968@@ -5377,7 +5894,7 @@ If --user is provided several times, the last set value is used.
4969
4970 Example:
4971 .nf
4972- curl -u user:secret https://example.com
4973+curl -u user:secret https://example.com
4974 .fi
4975
4976 See also \fI-n, \-\-netrc\fP and \fI-K, \-\-config\fP.
4977@@ -5390,11 +5907,13 @@ If you give an empty argument to \fI\-A, \-\-user\-agent\fP (""), it removes the
4978 completely from the request. If you prefer a blank header, you can set it to a
4979 single space (" ").
4980
4981+By default, curl uses curl/VERSION, such as User\-Agent: curl/8.14.1.
4982+
4983 If --user-agent is provided several times, the last set value is used.
4984
4985 Example:
4986 .nf
4987- curl -A "Agent 007" https://example.com
4988+curl -A "Agent 007" https://example.com
4989 .fi
4990
4991 See also \fI-H, \-\-header\fP and \fI\-\-proxy\-header\fP.
4992@@ -5420,23 +5939,83 @@ the environment variable is not set, use \fI\-\-variable\fP %name=content or
4993 \fI\-\-variable\fP %name@content. Note that on some systems \- but not all \-
4994 environment variables are case insensitive.
4995
4996+Added in curl 8.12.0: you can get a byte range from the source by appending
4997+\&"[start\-end]" to the variable name, where \fIstart\fP and \fIend\fP are byte offsets
4998+to include from the contents. For example, asking for offset "2\-10" means
4999+offset two to offset ten, inclusive, resulting in 9 bytes in total. "2\-2"
5000+means a single byte at offset 2. Not providing a second number implies to the
5001+end of data. The start offset cannot be larger than the end offset. Asking for
5002+a range that is outside of the file size makes the variable contents empty.
5003+For example, getting the first one hundred bytes from a given file:
5004+
5005+.nf
5006+curl \--variable "fraction[0\-99]@filename"
5007+.fi
5008+
5009+Given a byte range that has no data results in an empty string. Asking for a
5010+range that is larger than the content makes curl use the piece of the data
5011+that exists.
5012+
5013+To assign a variable using contents from another variable, use
5014+\fI\-\-expand\-variable\fP. Like for example assigning a new variable using contents
5015+from two other:
5016+
5017+.nf
5018+curl \--expand\-variable "user={{firstname}} {{lastname}}"
5019+.fi
5020+
5021 When expanding variables, curl supports a set of functions that can make the
5022 variable contents more convenient to use. You apply a function to a variable
5023 expansion by adding a colon and then list the desired functions in a
5024 comma\-separated list that is evaluated in a left\-to\-right order. Variable
5025-content holding null bytes that are not encoded when expanded, causes an
5026+content holding null bytes that are not encoded when expanded causes an
5027 error.
5028
5029 Available functions:
5030 .RS
5031 .IP trim
5032 removes all leading and trailing white space.
5033+
5034+Example:
5035+
5036+.nf
5037+curl \--expand\-url https://example.com/{{var:trim}}
5038+.fi
5039 .IP json
5040 outputs the content using JSON string quoting rules.
5041+
5042+Example:
5043+
5044+.nf
5045+curl \--expand\-data {{data:json}} https://example.com
5046+.fi
5047 .IP url
5048 shows the content URL (percent) encoded.
5049+
5050+Example:
5051+
5052+.nf
5053+curl \--expand\-url https://example.com/{{path:url}}
5054+.fi
5055 .IP b64
5056 expands the variable base64 encoded
5057+
5058+Example:
5059+
5060+.nf
5061+curl \--expand\-url https://example.com/{{var:b64}}
5062+.fi
5063+.IP 64dec
5064+decodes a base64 encoded character sequence. If the sequence is not possible
5065+to decode, it instead outputs "[64dec\-fail]"
5066+
5067+Example:
5068+
5069+.nf
5070+curl \--expand\-url https://example.com/{{var:64dec}}
5071+.fi
5072+
5073+(Added in 8.13.0)
5074 .RE
5075 .IP
5076
5077@@ -5444,26 +6023,51 @@ expands the variable base64 encoded
5078
5079 Example:
5080 .nf
5081- curl --variable name=smith https://example.com
5082+curl --variable name=smith --expand-url "https://example.com/{{name}}"
5083 .fi
5084
5085-See also \fI-K, \-\-config\fP. Added in 8.3.0.
5086+Added in 8.3.0. See also \fI-K, \-\-config\fP.
5087 .IP "\-v, \-\-verbose"
5088-Makes curl verbose during the operation. Useful for debugging and seeing
5089-what\(aqs going on under the hood. A line starting with > means header data sent
5090-by curl, < means header data received by curl that is hidden in normal cases,
5091-and a line starting with * means additional info provided by curl.
5092+Make curl output verbose information during the operation. Useful for
5093+debugging and seeing what\(aqs going on under the hood. A line starting with >
5094+means header data sent by curl, < means header data received by curl that is
5095+hidden in normal cases, and a line starting with * means additional info
5096+provided by curl.
5097+
5098+If you only want HTTP headers in the output, \fI\-i, \-\-show\-headers\fP or \fI\-D, \-\-dump\-header\fP
5099+might be more suitable options.
5100+
5101+Since curl 8.10, mentioning this option several times in the same argument
5102+increases the level of the trace output. However, as before, a single
5103+\fI\-v, \-\-verbose\fP or \fI\-\-no\-verbose\fP reverts any additions by previous "\-vv" again. This
5104+means that "\-vv \-v" is equivalent to a single \-v. This avoids unwanted
5105+verbosity when the option is mentioned in the command line \fIand\fP curl config
5106+files.
5107
5108-If you only want HTTP headers in the output, \fI\-i, \-\-include\fP or \fI\-D, \-\-dump\-header\fP might
5109-be more suitable options.
5110+Using it twice, e.g. "\-vv", outputs time (\fI\-\-trace\-time\fP) and transfer ids
5111+(\fI\-\-trace\-ids\fP), as well as enabling tracing for all protocols (\fI\-\-trace\-config\fP
5112+protocol).
5113
5114-If you think this option still does not give you enough details, consider using
5115-\fI\-\-trace\fP or \fI\-\-trace\-ascii\fP instead.
5116+Adding a third verbose outputs transfer content (\fI\-\-trace\-ascii\fP %) and enables
5117+tracing of more components (\fI\-\-trace\-config\fP read,write,ssl).
5118+
5119+A fourth time adds tracing of all network components. (\fI\-\-trace\-config\fP network).
5120+
5121+Any addition of the verbose option after that has no effect.
5122+
5123+If you think this option does not give you the right details, consider using
5124+\fI\-\-trace\fP or \fI\-\-trace\-ascii\fP instead. Or use it only once and use \fI\-\-trace\-config\fP
5125+to trace the specific components you wish to see.
5126
5127 Note that verbose output of curl activities and network traffic might contain
5128 sensitive data, including usernames, credentials or secret data content. Be
5129 aware and be careful when sharing trace logs with others.
5130
5131+When the output contains protocol headers, those lines might include carriage
5132+return (ASCII code 13) characters, even on platforms that otherwise normally
5133+only use linefeed to signify line separations \- as curl shows the exact
5134+contents arriving from the server.
5135+
5136 This option is global and does not need to be specified for each use of --next.
5137
5138 Providing --verbose multiple times has no extra effect.
5139@@ -5471,16 +6075,27 @@ Disable it again with \-\-no-verbose.
5140
5141 Example:
5142 .nf
5143- curl --verbose https://example.com
5144+curl --verbose https://example.com
5145 .fi
5146
5147-See also \fI-i, \-\-include\fP, \fI-s, \-\-silent\fP, \fI\-\-trace\fP and \fI\-\-trace\-ascii\fP. This option is mutually exclusive to \fI\-\-trace\fP and \fI\-\-trace\-ascii\fP.
5148+This option is mutually exclusive with \fI\-\-trace\fP and \fI\-\-trace\-ascii\fP.
5149+See also \fI-i, \-\-show\-headers\fP, \fI-s, \-\-silent\fP, \fI\-\-trace\fP and \fI\-\-trace\-ascii\fP.
5150 .IP "\-V, \-\-version"
5151-Displays information about curl and the libcurl version it uses.
5152+Display information about curl and the libcurl version it uses.
5153
5154 The first line includes the full version of curl, libcurl and other 3rd party
5155 libraries linked with the executable.
5156
5157+This line may contain one or more TLS libraries. curl can be built to support
5158+more than one TLS library which then makes curl \- at start\-up \- select which
5159+particular backend to use for this invocation.
5160+
5161+If curl supports more than one TLS library like this, the ones that are \fInot\fP
5162+selected by default are listed within parentheses. Thus, if you do not specify
5163+which backend to use (with the "CURL_SSL_BACKEND" environment variable) the
5164+one listed without parentheses is used. Such builds also have "MultiSSL" set as
5165+a feature.
5166+
5167 The second line (starts with "Release\-Date:") shows the release date.
5168
5169 The third line (starts with "Protocols:") shows all protocols that libcurl
5170@@ -5489,79 +6104,97 @@ reports to support.
5171 The fourth line (starts with "Features:") shows specific features libcurl
5172 reports to offer. Available features include:
5173 .RS
5174-.IP `alt-svc`
5175+.IP alt-svc
5176 Support for the Alt\-Svc: header is provided.
5177-.IP `AsynchDNS`
5178+.IP AsynchDNS
5179 This curl uses asynchronous name resolves. Asynchronous name resolves can be
5180 done using either the c\-ares or the threaded resolver backends.
5181-.IP `brotli`
5182+.IP brotli
5183 Support for automatic brotli compression over HTTP(S).
5184-.IP `CharConv`
5185+.IP CharConv
5186 curl was built with support for character set conversions (like EBCDIC)
5187-.IP `Debug`
5188+.IP Debug
5189 This curl uses a libcurl built with Debug. This enables more error\-tracking
5190-and memory debugging etc. For curl\-developers only!
5191-.IP `ECH`
5192+and memory debugging etc. For curl\-developers only.
5193+.IP ECH
5194 ECH support is present.
5195-.IP `gsasl`
5196+.IP gsasl
5197 The built\-in SASL authentication includes extensions to support SCRAM because
5198 libcurl was built with libgsasl.
5199-.IP `GSS-API`
5200+.IP GSS-API
5201 GSS\-API is supported.
5202-.IP `HSTS`
5203+.IP HSTS
5204 HSTS support is present.
5205-.IP `HTTP2`
5206+.IP HTTP2
5207 HTTP/2 support has been built\-in.
5208-.IP `HTTP3`
5209+.IP HTTP3
5210 HTTP/3 support has been built\-in.
5211-.IP `HTTPS-proxy`
5212+.IP HTTPS-proxy
5213 This curl is built to support HTTPS proxy.
5214-.IP `IDN`
5215+.IP IDN
5216 This curl supports IDN \- international domain names.
5217-.IP `IPv6`
5218+.IP IPv6
5219 You can use IPv6 with this.
5220-.IP `Kerberos`
5221+.IP Kerberos
5222 Kerberos V5 authentication is supported.
5223-.IP `Largefile`
5224+.IP Largefile
5225 This curl supports transfers of large files, files larger than 2GB.
5226-.IP `libz`
5227+.IP libz
5228 Automatic decompression (via gzip, deflate) of compressed files over HTTP is
5229 supported.
5230-.IP `MultiSSL`
5231+.IP MultiSSL
5232 This curl supports multiple TLS backends.
5233-.IP `NTLM`
5234+.IP NTLM
5235 NTLM authentication is supported.
5236-.IP `NTLM_WB`
5237+.IP NTLM_WB
5238 NTLM delegation to winbind helper is supported.
5239-.IP `PSL`
5240+This feature was removed from curl in 8.8.0.
5241+.IP PSL
5242 PSL is short for Public Suffix List and means that this curl has been built
5243 with knowledge about "public suffixes".
5244-.IP `SPNEGO`
5245+.IP SPNEGO
5246 SPNEGO authentication is supported.
5247-.IP `SSL`
5248+.IP SSL
5249 SSL versions of various protocols are supported, such as HTTPS, FTPS, POP3S
5250 and so on.
5251-.IP `SSPI`
5252+.IP SSLS-EXPORT
5253+This build supports TLS session export/import, like with the \fI\-\-ssl\-sessions\fP.
5254+.IP SSPI
5255 SSPI is supported.
5256-.IP `TLS-SRP`
5257+.IP TLS-SRP
5258 SRP (Secure Remote Password) authentication is supported for TLS.
5259-.IP `TrackMemory`
5260+.IP TrackMemory
5261 Debug memory tracking is supported.
5262-.IP `Unicode`
5263+.IP Unicode
5264 Unicode support on Windows.
5265-.IP `UnixSockets`
5266+.IP UnixSockets
5267 Unix sockets support is provided.
5268-.IP `zstd`
5269+.IP zstd
5270 Automatic decompression (via zstd) of compressed files over HTTP is supported.
5271 .RE
5272 .IP
5273
5274 Example:
5275 .nf
5276- curl --version
5277+curl --version
5278 .fi
5279
5280 See also \fI-h, \-\-help\fP and \fI-M, \-\-manual\fP.
5281+.IP "\-\-vlan\-priority <priority>"
5282+(All) Set VLAN priority as defined in IEEE 802.1Q.
5283+
5284+This field is set on Ethernet level, and only works within a local network.
5285+
5286+The valid range for <priority> is 0 to 7.
5287+
5288+If --vlan-priority is provided several times, the last set value is used.
5289+
5290+Example:
5291+.nf
5292+curl --vlan-priority 4 https://example.com
5293+.fi
5294+
5295+Added in 8.9.0. See also \fI\-\-ip\-tos\fP.
5296 .IP "\-w, \-\-write\-out <format>"
5297 Make curl display information on stdout after a completed transfer. The format
5298 is a string that may contain plain text mixed with any number of variables.
5299@@ -5578,10 +6211,11 @@ output a newline by using \\n, a carriage return with \\r and a tab space with
5300 The output is by default written to standard output, but can be changed with
5301 %{stderr} and %output{}.
5302
5303-Output HTTP headers from the most recent request by using \fI%header{name}\fP
5304-where \fIname\fP is the case insensitive name of the header (without the trailing
5305-colon). The header contents are exactly as sent over the network, with leading
5306-and trailing whitespace trimmed (added in 7.84.0).
5307+Output HTTP header values from the transfer\(aqs most recent server response by
5308+using \fI%header{name}\fP where \fIname\fP is the case insensitive name of the header
5309+(without the trailing colon). The header contents are exactly as delivered over
5310+the network but with leading and trailing whitespace and newlines stripped off
5311+(added in 7.84.0).
5312
5313 Select a specific target destination file to write the output to, by using
5314 \fI%output{name}\fP (added in curl 8.3.0) where \fIname\fP is the full filename. The
5315@@ -5605,24 +6239,32 @@ possible.
5316
5317 The variables available are:
5318 .RS
5319-.IP `certs`
5320+.IP certs
5321 Output the certificate chain with details. Supported only by the OpenSSL,
5322-GnuTLS, Schannel and Secure Transport backends. (Added in 7.88.0)
5323-.IP `content_type`
5324+GnuTLS, Schannel, Rustls, and Secure Transport backends. (Added in 7.88.0)
5325+.IP conn_id
5326+The connection identifier last used by the transfer. The connection id is
5327+unique number among all connections using the same connection cache.
5328+(Added in 8.2.0)
5329+.IP content_type
5330 The Content\-Type of the requested document, if there was any.
5331-.IP `errormsg`
5332+.IP errormsg
5333 The error message. (Added in 7.75.0)
5334-.IP `exitcode`
5335+.IP exitcode
5336 The numerical exit code of the transfer. (Added in 7.75.0)
5337-.IP `filename_effective`
5338+.IP filename_effective
5339 The ultimate filename that curl writes out to. This is only meaningful if curl
5340 is told to write to a file with the \fI\-O, \-\-remote\-name\fP or \fI\-o, \-\-output\fP option. It is
5341-most useful in combination with the \fI\-J, \-\-remote\-header\-name\fP option. (Added in
5342-7.26.0)
5343-.IP `ftp_entry_path`
5344+most useful in combination with the \fI\-J, \-\-remote\-header\-name\fP option.
5345+
5346+.IP ftp_entry_path
5347 The initial path curl ended up in when logging on to the remote FTP
5348 server.
5349-.IP `header_json`
5350+.IP header{name}
5351+The value of header "name" from the transfer\(aqs most recent server response.
5352+Unlike other variables, the variable name "header" is not in braces. For
5353+example "%header{date}". Refer to \fI\-w, \-\-write\-out\fP remarks. (Added in 7.84.0)
5354+.IP header_json
5355 A JSON object with all HTTP response headers from the recent transfer. Values
5356 are provided as arrays, since in the case of multiple headers there can be
5357 multiple values. (Added in 7.83.0)
5358@@ -5630,162 +6272,188 @@ multiple values. (Added in 7.83.0)
5359 The header names provided in lowercase, listed in order of appearance over the
5360 wire. Except for duplicated headers. They are grouped on the first occurrence
5361 of that header, each value is presented in the JSON array.
5362-.IP `http_code`
5363+.IP http_code
5364 The numerical response code that was found in the last retrieved HTTP(S) or
5365 FTP(s) transfer.
5366-.IP `http_connect`
5367+.IP http_connect
5368 The numerical code that was found in the last response (from a proxy) to a
5369 curl CONNECT request.
5370-.IP `http_version`
5371-The http version that was effectively used. (Added in 7.50.0)
5372-.IP `json`
5373+.IP http_version
5374+The http version that was effectively used.
5375+.IP json
5376 A JSON object with all available keys. (Added in 7.70.0)
5377-.IP `local_ip`
5378+.IP local_ip
5379 The IP address of the local end of the most recently done connection \- can be
5380 either IPv4 or IPv6.
5381-.IP `local_port`
5382+.IP local_port
5383 The local port number of the most recently done connection.
5384-.IP `method`
5385+.IP method
5386 The http method used in the most recent HTTP request. (Added in 7.72.0)
5387-.IP `num_certs`
5388+.IP num_certs
5389 Number of server certificates received in the TLS handshake. Supported only by
5390-the OpenSSL, GnuTLS, Schannel and Secure Transport backends.
5391+the OpenSSL, GnuTLS, Schannel, Rustls and Secure Transport backends.
5392 (Added in 7.88.0)
5393-.IP `num_connects`
5394+.IP num_connects
5395 Number of new connects made in the recent transfer.
5396-.IP `num_headers`
5397+.IP num_headers
5398 The number of response headers in the most recent request (restarted at each
5399 redirect). Note that the status line IS NOT a header. (Added in 7.73.0)
5400-.IP `num_redirects`
5401+.IP num_redirects
5402 Number of redirects that were followed in the request.
5403-.IP `onerror`
5404+.IP num_retries
5405+Number of retries actually performed when "\fI\-\-retry\fP" has been used.
5406+(Added in 8.9.0)
5407+.IP onerror
5408 The rest of the output is only shown if the transfer returned a non\-zero error.
5409 (Added in 7.75.0)
5410-.IP `proxy_ssl_verify_result`
5411+.IP output{filename}
5412+From this point on, the \fI\-w, \-\-write\-out\fP output is written to the filename specified
5413+in braces. The filename can be prefixed with ">>" to append to the file. Unlike
5414+other variables, the variable name "output" is not in braces. For example
5415+\&"%output{>>stats.txt}". Refer to \fI\-w, \-\-write\-out\fP remarks. (Added in 8.3.0)
5416+.IP proxy_ssl_verify_result
5417 The result of the HTTPS proxy\(aqs SSL peer certificate verification that was
5418-requested. 0 means the verification was successful. (Added in 7.52.0)
5419-.IP `proxy_used`
5420+requested. 0 means the verification was successful.
5421+.IP proxy_used
5422 Returns 1 if the previous transfer used a proxy, otherwise 0. Useful to for
5423 example determine if a "NOPROXY" pattern matched the hostname or not. (Added
5424 in 8.7.0)
5425-.IP `redirect_url`
5426+.IP redirect_url
5427 When an HTTP request was made without \fI\-L, \-\-location\fP to follow redirects (or when
5428 \fI\-\-max\-redirs\fP is met), this variable shows the actual URL a redirect
5429 \fIwould\fP have gone to.
5430-.IP `referer`
5431+.IP referer
5432 The Referer: header, if there was any. (Added in 7.76.0)
5433-.IP `remote_ip`
5434+.IP remote_ip
5435 The remote IP address of the most recently done connection \- can be either
5436 IPv4 or IPv6.
5437-.IP `remote_port`
5438+.IP remote_port
5439 The remote port number of the most recently done connection.
5440-.IP `response_code`
5441+.IP response_code
5442 The numerical response code that was found in the last transfer (formerly
5443 known as "http_code").
5444-.IP `scheme`
5445-The URL scheme (sometimes called protocol) that was effectively used. (Added in 7.52.0)
5446-.IP `size_download`
5447+.IP scheme
5448+The URL scheme (sometimes called protocol) that was effectively used.
5449+.IP size_download
5450 The total amount of bytes that were downloaded. This is the size of the
5451 body/data that was transferred, excluding headers.
5452-.IP `size_header`
5453+.IP size_header
5454 The total amount of bytes of the downloaded headers.
5455-.IP `size_request`
5456+.IP size_request
5457 The total amount of bytes that were sent in the HTTP request.
5458-.IP `size_upload`
5459+.IP size_upload
5460 The total amount of bytes that were uploaded. This is the size of the
5461 body/data that was transferred, excluding headers.
5462-.IP `speed_download`
5463+.IP speed_download
5464 The average download speed that curl measured for the complete download. Bytes
5465 per second.
5466-.IP `speed_upload`
5467+.IP speed_upload
5468 The average upload speed that curl measured for the complete upload. Bytes per
5469 second.
5470-.IP `ssl_verify_result`
5471+.IP ssl_verify_result
5472 The result of the SSL peer certificate verification that was requested. 0
5473 means the verification was successful.
5474-.IP `stderr`
5475+.IP stderr
5476 From this point on, the \fI\-w, \-\-write\-out\fP output is written to standard
5477 error. (Added in 7.63.0)
5478-.IP `stdout`
5479+.IP stdout
5480 From this point on, the \fI\-w, \-\-write\-out\fP output is written to standard output.
5481 This is the default, but can be used to switch back after switching to stderr.
5482 (Added in 7.63.0)
5483-.IP `time_appconnect`
5484+.IP time_appconnect
5485 The time, in seconds, it took from the start until the SSL/SSH/etc
5486 connect/handshake to the remote host was completed.
5487-.IP `time_connect`
5488+.IP time_connect
5489 The time, in seconds, it took from the start until the TCP connect to the
5490 remote host (or proxy) was completed.
5491-.IP `time_namelookup`
5492+.IP time_namelookup
5493 The time, in seconds, it took from the start until the name resolving was
5494 completed.
5495-.IP `time_pretransfer`
5496+.IP time_posttransfer
5497+The time it took from the start until the last byte is sent by libcurl.
5498+In microseconds. (Added in 8.10.0)
5499+.IP time_pretransfer
5500 The time, in seconds, it took from the start until the file transfer was just
5501 about to begin. This includes all pre\-transfer commands and negotiations that
5502 are specific to the particular protocol(s) involved.
5503-.IP `time_redirect`
5504+.IP time_queue
5505+The time, in seconds, the transfer was queued during its run. This adds
5506+the queue time for each redirect step that may have happened. Transfers
5507+may be queued for significant amounts of time when connection or parallel
5508+limits are in place. (Added in 8.12.0)
5509+.IP time_redirect
5510 The time, in seconds, it took for all redirection steps including name lookup,
5511 connect, pretransfer and transfer before the final transaction was
5512 started. "time_redirect" shows the complete execution time for multiple
5513 redirections.
5514-.IP `time_starttransfer`
5515-The time, in seconds, it took from the start until the first byte is received.
5516+.IP time_starttransfer
5517+The time, in seconds, it took from the start until the first byte was received.
5518 This includes time_pretransfer and also the time the server needed to calculate
5519 the result.
5520-.IP `time_total`
5521+.IP time_total
5522 The total time, in seconds, that the full operation lasted.
5523-.IP `url`
5524+.IP tls_earlydata
5525+The amount of bytes that were sent as TLSv1.3 early data. This is 0
5526+if this TLS feature was not used and negative if the data sent had
5527+been rejected by the server. The use of early data is enabled via
5528+the command line option "\fI\-\-tls\-earlydata\fP". (Added in 8.12.0)
5529+.IP url
5530 The URL that was fetched. (Added in 7.75.0)
5531-.IP `url.scheme`
5532+.IP url.scheme
5533 The scheme part of the URL that was fetched. (Added in 8.1.0)
5534-.IP `url.user`
5535+.IP url.user
5536 The user part of the URL that was fetched. (Added in 8.1.0)
5537-.IP `url.password`
5538+.IP url.password
5539 The password part of the URL that was fetched. (Added in 8.1.0)
5540-.IP `url.options`
5541+.IP url.options
5542 The options part of the URL that was fetched. (Added in 8.1.0)
5543-.IP `url.host`
5544+.IP url.host
5545 The host part of the URL that was fetched. (Added in 8.1.0)
5546-.IP `url.port`
5547+.IP url.port
5548 The port number of the URL that was fetched. If no port number was specified
5549 and the URL scheme is known, that scheme\(aqs default port number is
5550 shown. (Added in 8.1.0)
5551-.IP `url.path`
5552+.IP url.path
5553 The path part of the URL that was fetched. (Added in 8.1.0)
5554-.IP `url.query`
5555+.IP url.query
5556 The query part of the URL that was fetched. (Added in 8.1.0)
5557-.IP `url.fragment`
5558+.IP url.fragment
5559 The fragment part of the URL that was fetched. (Added in 8.1.0)
5560-.IP `url.zoneid`
5561+.IP url.zoneid
5562 The zone id part of the URL that was fetched. (Added in 8.1.0)
5563-.IP `urle.scheme`
5564+.IP urle.scheme
5565 The scheme part of the effective (last) URL that was fetched. (Added in 8.1.0)
5566-.IP `urle.user`
5567+.IP urle.user
5568 The user part of the effective (last) URL that was fetched. (Added in 8.1.0)
5569-.IP `urle.password`
5570+.IP urle.password
5571 The password part of the effective (last) URL that was fetched. (Added in 8.1.0)
5572-.IP `urle.options`
5573+.IP urle.options
5574 The options part of the effective (last) URL that was fetched. (Added in 8.1.0)
5575-.IP `urle.host`
5576+.IP urle.host
5577 The host part of the effective (last) URL that was fetched. (Added in 8.1.0)
5578-.IP `urle.port`
5579+.IP urle.port
5580 The port number of the effective (last) URL that was fetched. If no port
5581 number was specified, but the URL scheme is known, that scheme\(aqs default port
5582 number is shown. (Added in 8.1.0)
5583-.IP `urle.path`
5584+.IP urle.path
5585 The path part of the effective (last) URL that was fetched. (Added in 8.1.0)
5586-.IP `urle.query`
5587+.IP urle.query
5588 The query part of the effective (last) URL that was fetched. (Added in 8.1.0)
5589-.IP `urle.fragment`
5590+.IP urle.fragment
5591 The fragment part of the effective (last) URL that was fetched. (Added in 8.1.0)
5592-.IP `urle.zoneid`
5593+.IP urle.zoneid
5594 The zone id part of the effective (last) URL that was fetched. (Added in 8.1.0)
5595-.IP `urlnum`
5596+.IP urlnum
5597 The URL index number of this transfer, 0\-indexed. Unglobbed URLs share the
5598 same index number as the origin globbed URL. (Added in 7.75.0)
5599-.IP `url_effective`
5600+.IP url_effective
5601 The URL that was fetched last. This is most meaningful if you have told curl
5602 to follow location: headers.
5603+.IP xfer_id
5604+The numerical identifier of the last transfer done. \-1 if no transfer has been
5605+started yet for the handle. The transfer id is unique among all transfers
5606+performed using the same connection cache.
5607+(Added in 8.2.0)
5608 .RE
5609 .IP
5610
5611@@ -5793,23 +6461,25 @@ If --write-out is provided several times, the last set value is used.
5612
5613 Example:
5614 .nf
5615- curl -w '%{response_code}\\n' https://example.com
5616+curl -w '%{response_code}\\n' https://example.com
5617 .fi
5618
5619 See also \fI-v, \-\-verbose\fP and \fI-I, \-\-head\fP.
5620 .IP "\-\-xattr"
5621+Store metadata in the extended file attributes.
5622+
5623 When saving output to a file, tell curl to store file metadata in extended
5624-file attributes. Currently, the URL is stored in the "xdg.origin.url"
5625-attribute and, for HTTP, the content type is stored in the "mime_type"
5626-attribute. If the file system does not support extended attributes, a warning
5627-is issued.
5628+file attributes. Currently, "curl" is stored in the "creator" attribute,
5629+the URL is stored in the "xdg.origin.url" attribute and, for HTTP, the content
5630+type is stored in the "mime_type" attribute. If the file system does not
5631+support extended attributes, a warning is issued.
5632
5633 Providing --xattr multiple times has no extra effect.
5634 Disable it again with \-\-no-xattr.
5635
5636 Example:
5637 .nf
5638- curl --xattr -o storage https://example.com
5639+curl --xattr -o storage https://example.com
5640 .fi
5641
5642 See also \fI-R, \-\-remote\-time\fP, \fI-w, \-\-write\-out\fP and \fI-v, \-\-verbose\fP.
5643@@ -5824,59 +6494,59 @@ available in lower case.
5644
5645 Using an environment variable to set the proxy has the same effect as using
5646 the \fI\-x, \-\-proxy\fP option.
5647-.IP "`http_proxy` [protocol://]<host>[:port]"
5648+.IP "http_proxy [protocol://]<host>[:port]"
5649 Sets the proxy server to use for HTTP.
5650-.IP "`HTTPS_PROXY` [protocol://]<host>[:port]"
5651+.IP "HTTPS_PROXY [protocol://]<host>[:port]"
5652 Sets the proxy server to use for HTTPS.
5653-.IP "`[url-protocol]_PROXY` [protocol://]<host>[:port]"
5654+.IP "[url-protocol]_PROXY [protocol://]<host>[:port]"
5655 Sets the proxy server to use for [url\-protocol], where the protocol is a
5656 protocol that curl supports and as specified in a URL. FTP, FTPS, POP3, IMAP,
5657 SMTP, LDAP, etc.
5658-.IP "`ALL_PROXY` [protocol://]<host>[:port]"
5659+.IP "ALL_PROXY [protocol://]<host>[:port]"
5660 Sets the proxy server to use if no protocol\-specific proxy is set.
5661-.IP "`NO_PROXY` <comma-separated list of hosts/domains>"
5662+.IP "NO_PROXY <comma-separated list of hosts/domains>"
5663 list of hostnames that should not go through any proxy. If set to an asterisk
5664 \(aq*\(aq only, it matches all hosts. Each name in this list is matched as either a
5665 domain name which contains the hostname, or the hostname itself.
5666
5667 This environment variable disables use of the proxy even when specified with
5668 the \fI\-x, \-\-proxy\fP option. That is
5669-.nf
5670
5671+.nf
5672 NO_PROXY=direct.example.com curl \-x http://proxy.example.com
5673 http://direct.example.com
5674 .fi
5675
5676 accesses the target URL directly, and
5677-.nf
5678
5679+.nf
5680 NO_PROXY=direct.example.com curl \-x http://proxy.example.com
5681 http://somewhere.example.com
5682 .fi
5683
5684 accesses the target URL through the proxy.
5685
5686-The list of hostnames can also be include numerical IP addresses, and IPv6
5687+The list of hostnames can also include numerical IP addresses, and IPv6
5688 versions should then be given without enclosing brackets.
5689
5690 IP addresses can be specified using CIDR notation: an appended slash and
5691 number specifies the number of "network bits" out of the address to use in the
5692 comparison (added in 7.86.0). For example "192.168.0.0/16" would match all
5693 addresses starting with "192.168".
5694-.IP "`APPDATA` <dir>"
5695+.IP "APPDATA <dir>"
5696 On Windows, this variable is used when trying to find the home directory. If
5697-the primary home variable are all unset.
5698-.IP "`COLUMNS` <terminal width>"
5699+the primary home variables are all unset.
5700+.IP "COLUMNS <terminal width>"
5701 If set, the specified number of characters is used as the terminal width when
5702 the alternative progress\-bar is shown. If not set, curl tries to figure it out
5703 using other ways.
5704-.IP "`CURL_CA_BUNDLE` <file>"
5705+.IP "CURL_CA_BUNDLE <file>"
5706 If set, it is used as the \fI\-\-cacert\fP value. This environment variable is ignored
5707 if Schannel is used as the TLS backend.
5708-.IP "`CURL_HOME` <dir>"
5709+.IP "CURL_HOME <dir>"
5710 If set, is the first variable curl checks when trying to find its home
5711 directory. If not set, it continues to check \fIXDG_CONFIG_HOME\fP
5712-.IP "`CURL_SSL_BACKEND` <TLS backend>"
5713+.IP "CURL_SSL_BACKEND <TLS backend>"
5714 If curl was built with support for "MultiSSL", meaning that it has built\-in
5715 support for more than one TLS backend, this environment variable can be set to
5716 the case insensitive name of the particular backend to use when curl is
5717@@ -5885,34 +6555,34 @@ with the default.
5718
5719 SSL backend names (case\-insensitive): \fBbearssl\fP, \fBgnutls\fP, \fBmbedtls\fP,
5720 \fBopenssl\fP, \fBrustls\fP, \fBschannel\fP, \fBsecure\-transport\fP, \fBwolfssl\fP
5721-.IP "`HOME` <dir>"
5722+.IP "HOME <dir>"
5723 If set, this is used to find the home directory when that is needed. Like when
5724 looking for the default .curlrc. \fICURL_HOME\fP and \fIXDG_CONFIG_HOME\fP
5725 have preference.
5726-.IP "`QLOGDIR` <directory name>"
5727+.IP "QLOGDIR <directory name>"
5728 If curl was built with HTTP/3 support, setting this environment variable to a
5729 local directory makes curl produce \fBqlogs\fP in that directory, using file
5730 names named after the destination connection id (in hex). Do note that these
5731 files can become rather large. Works with the ngtcp2 and quiche QUIC backends.
5732-.IP `SHELL`
5733-Used on VMS when trying to detect if using a \fBDCL\fP or a \fBunix\fP shell.
5734-.IP "`SSL_CERT_DIR` <dir>"
5735+.IP SHELL
5736+Used on VMS when trying to detect if using a \fBDCL\fP or a \fBUnix\fP shell.
5737+.IP "SSL_CERT_DIR <dir>"
5738 If set, it is used as the \fI\-\-capath\fP value. This environment variable is ignored
5739 if Schannel is used as the TLS backend.
5740-.IP "`SSL_CERT_FILE` <path>"
5741+.IP "SSL_CERT_FILE <path>"
5742 If set, it is used as the \fI\-\-cacert\fP value. This environment variable is ignored
5743 if Schannel is used as the TLS backend.
5744-.IP "`SSLKEYLOGFILE` <filename>"
5745+.IP "SSLKEYLOGFILE <filename>"
5746 If you set this environment variable to a filename, curl stores TLS secrets
5747 from its connections in that file when invoked to enable you to analyze the
5748 TLS traffic in real time using network analyzing tools such as Wireshark. This
5749 works with the following TLS backends: OpenSSL, LibreSSL (TLS 1.2 max),
5750-BoringSSL, GnuTLS and wolfSSL.
5751-.IP "`USERPROFILE` <dir>"
5752+BoringSSL, GnuTLS, wolfSSL and Rustls.
5753+.IP "USERPROFILE <dir>"
5754 On Windows, this variable is used when trying to find the home directory. If
5755-the other, primary, variable are all unset. If set, curl uses the path
5756+the other, primary, variables are all unset. If set, curl uses the path
5757 \fB"$USERPROFILE\\Application Data"\fP.
5758-.IP "`XDG_CONFIG_HOME` <dir>"
5759+.IP "XDG_CONFIG_HOME <dir>"
5760 If \fICURL_HOME\fP is not set, this variable is checked when looking for a
5761 default .curlrc file.
5762 .SH PROXY PROTOCOL PREFIXES
5763@@ -5968,14 +6638,14 @@ FTP accept failed. While waiting for the server to connect back when an active
5764 FTP session is used, an error code was sent over the control connection or
5765 similar.
5766 .IP 11
5767-FTP weird PASS reply. Curl could not parse the reply sent to the PASS request.
5768+FTP weird PASS reply. curl could not parse the reply sent to the PASS request.
5769 .IP 12
5770 During an active FTP session while waiting for the server to connect back to
5771 curl, the timeout expired.
5772 .IP 13
5773-FTP weird PASV reply, Curl could not parse the reply sent to the PASV request.
5774+FTP weird PASV reply, curl could not parse the reply sent to the PASV request.
5775 .IP 14
5776-FTP weird 227 format. Curl could not parse the 227\-line the server sent.
5777+FTP weird 227 format. curl could not parse the 227\-line the server sent.
5778 .IP 15
5779 FTP cannot use host. Could not resolve the host IP we got in the 227\-line.
5780 .IP 16
5781@@ -5996,7 +6666,7 @@ HTTP page not retrieved. The requested URL was not found or returned another
5782 error with the HTTP error code being 400 or above. This return code only
5783 appears if \fI\-f, \-\-fail\fP is used.
5784 .IP 23
5785-Write error. Curl could not write data to a local filesystem or similar.
5786+Write error. curl could not write data to a local filesystem or similar.
5787 .IP 25
5788 Failed starting the upload. For FTP, the server typically denied the STOR
5789 command.
5790@@ -6040,7 +6710,7 @@ Too many redirects. When following redirects, curl hit the maximum amount.
5791 .IP 48
5792 Unknown option specified to libcurl. This indicates that you passed a weird
5793 option to curl that was passed on to libcurl and rejected. Read up in the
5794-manual!
5795+manual.
5796 .IP 49
5797 Malformed telnet option.
5798 .IP 52
5799@@ -6110,7 +6780,7 @@ FTP chunk callback reported error.
5800 .IP 89
5801 No connection available, the session is queued.
5802 .IP 90
5803-SSL public key does not matched pinned public key.
5804+SSL public key does not match pinned public key.
5805 .IP 91
5806 Invalid SSL certificate status.
5807 .IP 92
5808@@ -6145,4 +6815,4 @@ found in the separate THANKS file.
5809 .SH WWW
5810 https://curl.se
5811 .SH SEE ALSO
5812-\fBftp (1)\fP, \fBwget (1)\fP
5813+\fBftp(1)\fP, \fBwget(1)\fP
+32,
-45
1@@ -1,14 +1,14 @@
2-/* #undef CARES_NO_DEPRECATED */
3-/* #undef CURLDEBUG */
4 #define CURL_CA_BUNDLE "/etc/ssl/cert.pem"
5 /* #undef CURL_CA_FALLBACK */
6 /* #undef CURL_CA_PATH */
7+/* #undef CURL_CA_SEARCH_SAFE */
8 /* #undef CURL_DEFAULT_SSL_BACKEND */
9 /* #undef CURL_DISABLE_ALTSVC */
10 /* #undef CURL_DISABLE_AWS */
11 /* #undef CURL_DISABLE_BASIC_AUTH */
12 /* #undef CURL_DISABLE_BEARER_AUTH */
13 /* #undef CURL_DISABLE_BINDLOCAL */
14+/* #undef CURL_DISABLE_CA_SEARCH */
15 /* #undef CURL_DISABLE_COOKIES */
16 /* #undef CURL_DISABLE_DICT */
17 /* #undef CURL_DISABLE_DIGEST_AUTH */
18@@ -23,6 +23,7 @@
19 /* #undef CURL_DISABLE_HTTP */
20 /* #undef CURL_DISABLE_HTTP_AUTH */
21 /* #undef CURL_DISABLE_IMAP */
22+/* #undef CURL_DISABLE_IPFS */
23 /* #undef CURL_DISABLE_KERBEROS_AUTH */
24 #define CURL_DISABLE_LDAP 1
25 #define CURL_DISABLE_LDAPS 1
26@@ -38,6 +39,7 @@
27 /* #undef CURL_DISABLE_PROGRESS_METER */
28 /* #undef CURL_DISABLE_PROXY */
29 /* #undef CURL_DISABLE_RTSP */
30+/* #undef CURL_DISABLE_SHA512_256 */
31 /* #undef CURL_DISABLE_SHUFFLE_DNS */
32 #define CURL_DISABLE_SMB 1
33 /* #undef CURL_DISABLE_SMTP */
34@@ -45,11 +47,13 @@
35 /* #undef CURL_DISABLE_TELNET */
36 /* #undef CURL_DISABLE_TFTP */
37 /* #undef CURL_DISABLE_VERBOSE_STRINGS */
38-#define CURL_EXTERN_SYMBOL __attribute__ ((__visibility__ ("default")))
39-#define CURL_SA_FAMILY_T sa_family_t
40+/* #undef CURL_DISABLE_WEBSOCKETS */
41+#define CURL_EXTERN_SYMBOL __attribute__((__visibility__("default")))
42+#define CURL_OS "x86_64-pc-linux-musl"
43 /* #undef CURL_WITH_MULTI_SSL */
44-/* #undef DEBUGBUILD */
45 #define GETHOSTNAME_TYPE_ARG2 size_t
46+#define HAVE_ACCEPT4 1
47+/* #undef HAVE_ADDRESS_FAMILY */
48 #define HAVE_ALARM 1
49 /* #undef HAVE_ARC4RANDOM */
50 #define HAVE_ARPA_INET_H 1
51@@ -63,13 +67,10 @@
52 #define HAVE_CLOCK_GETTIME_MONOTONIC_RAW 1
53 /* #undef HAVE_CLOSESOCKET */
54 /* #undef HAVE_CLOSESOCKET_CAMEL */
55-/* #undef HAVE_CRYPTO_H */
56 #define HAVE_DECL_FSEEKO 1
57-#define HAVE_DECL_GETPWUID_R 1
58-/* #undef HAVE_DECL_GETPWUID_R_MISSING */
59 #define HAVE_DIRENT_H 1
60 #define HAVE_DLFCN_H 1
61-/* #undef HAVE_ERR_H */
62+#define HAVE_EVENTFD 1
63 #define HAVE_FCNTL 1
64 #define HAVE_FCNTL_H 1
65 #define HAVE_FCNTL_O_NONBLOCK 1
66@@ -83,7 +84,6 @@
67 #define HAVE_GETADDRINFO 1
68 #define HAVE_GETADDRINFO_THREADSAFE 1
69 #define HAVE_GETEUID 1
70-#define HAVE_GETHOSTBYNAME 1
71 #define HAVE_GETHOSTBYNAME_R 1
72 /* #undef HAVE_GETHOSTBYNAME_R_3 */
73 /* #undef HAVE_GETHOSTBYNAME_R_5 */
74@@ -106,14 +106,12 @@
75 /* #undef HAVE_GSSAPI_GSSAPI_H */
76 /* #undef HAVE_GSSAPI_GSSAPI_KRB5_H */
77 /* #undef HAVE_GSSGNU */
78-/* #undef HAVE_HYPER_H */
79 /* #undef HAVE_IDN2_H */
80 #define HAVE_IFADDRS_H 1
81 #define HAVE_IF_NAMETOINDEX 1
82 #define HAVE_INET_NTOP 1
83 #define HAVE_INET_PTON 1
84 #define HAVE_INTTYPES_H 1
85-#define HAVE_IOCTL 1
86 /* #undef HAVE_IOCTLSOCKET */
87 /* #undef HAVE_IOCTLSOCKET_CAMEL */
88 /* #undef HAVE_IOCTLSOCKET_CAMEL_FIONBIO */
89@@ -131,7 +129,6 @@
90 #define HAVE_LIBGEN_H 1
91 /* #undef HAVE_LIBIDN2 */
92 /* #undef HAVE_LIBPSL_H */
93-/* #undef HAVE_LIBRESSL */
94 /* #undef HAVE_LIBRTMP_RTMP_H */
95 /* #undef HAVE_LIBSSH */
96 /* #undef HAVE_LIBSSH2 */
97@@ -158,18 +155,16 @@
98 /* #undef HAVE_NGTCP2_NGTCP2_H */
99 /* #undef HAVE_OLD_GSSMIT */
100 #define HAVE_OPENDIR 1
101-/* #undef HAVE_OPENSSL3 */
102 /* #undef HAVE_OPENSSL_CRYPTO_H */
103 /* #undef HAVE_OPENSSL_ERR_H */
104 /* #undef HAVE_OPENSSL_PEM_H */
105-/* #undef HAVE_OPENSSL_QUIC */
106 /* #undef HAVE_OPENSSL_RSA_H */
107 /* #undef HAVE_OPENSSL_SRP */
108 /* #undef HAVE_OPENSSL_SSL_H */
109 /* #undef HAVE_OPENSSL_X509_H */
110-/* #undef HAVE_PEM_H */
111 #define HAVE_PIPE 1
112-#define HAVE_POLL_FINE 1
113+#define HAVE_PIPE2 1
114+#define HAVE_POLL 1
115 #define HAVE_POLL_H 1
116 #define HAVE_POSIX_STRERROR_R 1
117 /* #undef HAVE_PROTO_BSDSOCKET_H */
118@@ -177,13 +172,14 @@
119 #define HAVE_PWD_H 1
120 /* #undef HAVE_QUICHE_CONN_SET_QLOG_FD */
121 /* #undef HAVE_QUICHE_H */
122+#define HAVE_REALPATH 1
123 #define HAVE_RECV 1
124-/* #undef HAVE_RSA_H */
125+#define HAVE_SA_FAMILY_T 1
126 #define HAVE_SCHED_YIELD 1
127 #define HAVE_SELECT 1
128 #define HAVE_SEND 1
129+#define HAVE_SENDMMSG 1
130 #define HAVE_SENDMSG 1
131-#define HAVE_SETJMP_H 1
132 #define HAVE_SETLOCALE 1
133 /* #undef HAVE_SETMODE */
134 #define HAVE_SETRLIMIT 1
135@@ -192,14 +188,12 @@
136 #define HAVE_SIGNAL 1
137 #define HAVE_SIGSETJMP 1
138 #define HAVE_SNPRINTF 1
139-/* #undef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID */
140+#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
141 #define HAVE_SOCKET 1
142 #define HAVE_SOCKETPAIR 1
143-/* #undef HAVE_SOCKET_H */
144-/* #undef HAVE_SSL_ECH_SET1_ECHCONFIG */
145-/* #undef HAVE_SSL_H */
146 /* #undef HAVE_SSL_SET0_WBIO */
147 /* #undef HAVE_SSL_SET1_ECH_CONFIG_LIST */
148+/* #undef HAVE_SSL_SET_QUIC_TLS_CBS */
149 /* #undef HAVE_SSL_SET_QUIC_USE_LEGACY_CODEPOINT */
150 #define HAVE_STDATOMIC_H 1
151 #define HAVE_STDBOOL_H 1
152@@ -214,11 +208,10 @@
153 #define HAVE_STRINGS_H 1
154 #define HAVE_STRING_H 1
155 #define HAVE_STROPTS_H 1
156-#define HAVE_STRTOK_R 1
157-#define HAVE_STRTOLL 1
158 #define HAVE_STRUCT_SOCKADDR_STORAGE 1
159 #define HAVE_STRUCT_TIMEVAL 1
160 #define HAVE_SUSECONDS_T 1
161+#define HAVE_SYS_EVENTFD_H 1
162 /* #undef HAVE_SYS_FILIO_H */
163 #define HAVE_SYS_IOCTL_H 1
164 #define HAVE_SYS_PARAM_H 1
165@@ -232,39 +225,40 @@
166 #define HAVE_SYS_TYPES_H 1
167 #define HAVE_SYS_UN_H 1
168 /* #undef HAVE_SYS_UTIME_H */
169-#define HAVE_SYS_WAIT_H 1
170 #define HAVE_SYS_XATTR_H 1
171 #define HAVE_TERMIOS_H 1
172 /* #undef HAVE_TERMIO_H */
173 /* #undef HAVE_TIME_T_UNSIGNED */
174+/* #undef HAVE_UNICODE_UIDNA_H */
175 #define HAVE_UNISTD_H 1
176 #define HAVE_UTIME 1
177 #define HAVE_UTIMES 1
178 #define HAVE_UTIME_H 1
179+/* #undef HAVE_UV_H */
180 /* #undef HAVE_WOLFSSH_SSH_H */
181+/* #undef HAVE_WOLFSSL_BIO_NEW */
182+/* #undef HAVE_WOLFSSL_BIO_SET_SHUTDOWN */
183 /* #undef HAVE_WOLFSSL_CTX_GENERATEECHCONFIG */
184 /* #undef HAVE_WOLFSSL_DES_ECB_ENCRYPT */
185-/* #undef HAVE_WOLFSSL_FULL_BIO */
186 /* #undef HAVE_WOLFSSL_GET_PEER_CERTIFICATE */
187+/* #undef HAVE_WOLFSSL_SET_QUIC_USE_LEGACY_CODEPOINT */
188 /* #undef HAVE_WOLFSSL_USEALPN */
189 #define HAVE_WRITABLE_ARGV 1
190-/* #undef HAVE_X509_H */
191 /* #undef HAVE_ZSTD */
192 /* #undef HAVE_ZSTD_H */
193-/* #undef HAVE__FSEEKI64 */
194+/* #undef HAVE__SETMODE */
195 #define LT_OBJDIR ".libs/"
196 /* #undef NEED_LBER_H */
197 /* #undef NEED_REENTRANT */
198 /* #undef NEED_THREAD_SAFE */
199-#define OS "x86_64-pc-linux-musl"
200+/* #undef OPENSSL_QUIC_API2 */
201 #define PACKAGE "curl"
202 #define PACKAGE_BUGREPORT "a suitable curl mailing list: https://curl.se/mail/"
203 #define PACKAGE_NAME "curl"
204 #define PACKAGE_STRING "curl -"
205 #define PACKAGE_TARNAME "curl"
206 #define PACKAGE_URL ""
207-#define PACKAGE_VERSION "8.8.0"
208-/* #undef RANDOM_FILE */
209+#define PACKAGE_VERSION "-"
210 #define SIZEOF_CURL_OFF_T 8
211 #define SIZEOF_CURL_SOCKET_T 4
212 #define SIZEOF_INT 4
213@@ -275,57 +269,50 @@
214 /* probe SIZEOF_TIME_T */
215 #define STDC_HEADERS 1
216 /* #undef USE_AMISSL */
217+/* #undef USE_APPLE_IDN */
218 /* #undef USE_ARES */
219 #define USE_BEARSSL 1
220 /* #undef USE_ECH */
221 /* #undef USE_GNUTLS */
222 /* #undef USE_GSASL */
223 /* #undef USE_HTTPSRR */
224-/* #undef USE_HYPER */
225-/* #undef USE_IPV6 */
226+#define USE_IPV6 1
227 /* #undef USE_LIBPSL */
228 /* #undef USE_LIBRTMP */
229 /* #undef USE_LIBSSH */
230 /* #undef USE_LIBSSH2 */
231-#define USE_MANUAL 1
232+/* #undef USE_LIBUV */
233 /* #undef USE_MBEDTLS */
234 /* #undef USE_MSH3 */
235 /* #undef USE_NGHTTP2 */
236 /* #undef USE_NGHTTP3 */
237 /* #undef USE_NGTCP2 */
238-/* #undef USE_NGTCP2_CRYPTO_BORINGSSL */
239-/* #undef USE_NGTCP2_CRYPTO_GNUTLS */
240-/* #undef USE_NGTCP2_CRYPTO_QUICTLS */
241-/* #undef USE_NGTCP2_CRYPTO_WOLFSSL */
242-/* #undef USE_NGTCP2_H3 */
243 /* #undef USE_OPENLDAP */
244 /* #undef USE_OPENSSL */
245-/* #undef USE_OPENSSL_H3 */
246 /* #undef USE_OPENSSL_QUIC */
247 /* #undef USE_QUICHE */
248 /* #undef USE_RUSTLS */
249 /* #undef USE_SCHANNEL */
250 /* #undef USE_SECTRANSP */
251+/* #undef USE_SSLS_EXPORT */
252 #define USE_THREADS_POSIX 1
253 /* #undef USE_THREADS_WIN32 */
254 /* #undef USE_TLS_SRP */
255 #define USE_UNIX_SOCKETS 1
256-/* #undef USE_WEBSOCKETS */
257+/* #undef USE_WATT32 */
258 /* #undef USE_WIN32_CRYPTO */
259 /* #undef USE_WIN32_IDN */
260 /* #undef USE_WIN32_LARGE_FILES */
261 /* #undef USE_WIN32_LDAP */
262-/* #undef USE_WIN32_SMALL_FILES */
263 /* #undef USE_WINDOWS_SSPI */
264 /* #undef USE_WOLFSSH */
265 /* #undef USE_WOLFSSL */
266-#define VERSION "8.8.0"
267+#define VERSION "-"
268 #ifndef _ALL_SOURCE
269 /* # undef _ALL_SOURCE */
270 #endif
271 /* #undef _FILE_OFFSET_BITS */
272 /* #undef _LARGE_FILES */
273 /* #undef const */
274-/* #undef in_addr_t */
275 /* #undef size_t */
276 /* #undef ssize_t */
+28,
-19
1@@ -8,6 +8,7 @@ cflags{
2 '-I $outdir/include/curl',
3 '-I $outdir/include',
4 '-I $srcdir/lib',
5+ '-I $srcdir/lib/curlx',
6 '-I $srcdir/src',
7 '-isystem $builddir/pkg/bearssl/include',
8 '-isystem $builddir/pkg/linux-headers/include',
9@@ -37,29 +38,34 @@ pkg.deps = {
10 -- src/lib/Makefile.inc:/^CSOURCES
11 lib('libcurl.a', [[
12 lib/(
13- altsvc.c amigaos.c asyn-ares.c asyn-thread.c base64.c bufq.c
14- bufref.c c-hyper.c cf-h1-proxy.c cf-h2-proxy.c cf-haproxy.c
15+ altsvc.c amigaos.c asyn-ares.c asyn-base.c asyn-thrdd.c bufq.c
16+ bufref.c cf-h1-proxy.c cf-h2-proxy.c cf-haproxy.c
17 cf-https-connect.c cf-socket.c cfilters.c conncache.c connect.c
18- content_encoding.c cookie.c curl_addrinfo.c curl_des.c
19+ content_encoding.c cookie.c cshutdn.c curl_addrinfo.c curl_des.c
20 curl_endian.c curl_fnmatch.c curl_get_line.c curl_gethostname.c
21- curl_gssapi.c curl_memrchr.c curl_multibyte.c curl_ntlm_core.c
22- curl_path.c curl_range.c curl_rtmp.c curl_sasl.c curl_sha512_256.c
23- curl_sspi.c curl_threads.c curl_trc.c cw-out.c dllmain.c
24- dict.c doh.c dynbuf.c dynhds.c easy.c easygetopt.c easyoptions.c
25- escape.c file.c fileinfo.c fopen.c formdata.c ftp.c
26+ curl_gssapi.c curl_memrchr.c curl_ntlm_core.c
27+ curl_range.c curl_rtmp.c curl_sasl.c curl_sha512_256.c
28+ curl_sspi.c curl_threads.c curl_trc.c cw-out.c cw-pause.c
29+ dict.c doh.c dynhds.c easy.c easygetopt.c easyoptions.c
30+ escape.c fake_addrinfo.c file.c fileinfo.c fopen.c formdata.c ftp.c
31 ftplistparser.c getenv.c getinfo.c gopher.c hash.c headers.c
32- hmac.c hostasyn.c hostip.c hostip4.c hostip6.c hostsyn.c hsts.c
33+ hmac.c hostip.c hostip4.c hostip6.c hsts.c
34 http.c http1.c http2.c http_aws_sigv4.c http_chunks.c
35- http_digest.c http_negotiate.c http_ntlm.c http_proxy.c idn.c
36- if2ip.c imap.c inet_ntop.c inet_pton.c krb5.c ldap.c llist.c
37+ http_digest.c http_negotiate.c http_ntlm.c http_proxy.c httpsrr.c
38+ idn.c if2ip.c imap.c inet_ntop.c krb5.c ldap.c llist.c
39 macos.c md4.c md5.c memdebug.c mime.c mprintf.c mqtt.c multi.c
40- netrc.c nonblock.c noproxy.c openldap.c parsedate.c pingpong.c
41+ multi_ev.c netrc.c noproxy.c openldap.c parsedate.c pingpong.c
42 pop3.c progress.c psl.c rand.c rename.c request.c rtsp.c
43 select.c sendf.c setopt.c sha256.c share.c slist.c smb.c smtp.c
44 socketpair.c socks.c socks_gssapi.c socks_sspi.c speedcheck.c
45- splay.c strcase.c strdup.c strerror.c strtok.c strtoofft.c
46- system_win32.c telnet.c tftp.c timediff.c timeval.c transfer.c
47- url.c urlapi.c version.c version_win32.c warnless.c ws.c
48+ splay.c strcase.c strdup.c strequal.c strerror.c
49+ system_win32.c telnet.c tftp.c transfer.c uint-bset.c uint-hash.c
50+ uint-spbset.c uint-table.c url.c urlapi.c version.c ws.c
51+ curlx/(
52+ base64.c dynbuf.c inet_pton.c multibyte.c nonblock.c
53+ strparse.c timediff.c timeval.c version_win32.c
54+ warnless.c winapi.c
55+ )
56 vauth/(
57 cleartext.c cram.c digest.c digest_sspi.c gsasl.c krb5_gssapi.c
58 krb5_sspi.c ntlm.c ntlm_sspi.c oauth2.c spnego_gssapi.c
59@@ -68,13 +74,14 @@ lib('libcurl.a', [[
60 vtls/(
61 bearssl.c cipher_suite.c gtls.c hostcheck.c keylog.c mbedtls.c
62 mbedtls_threadlock.c openssl.c rustls.c schannel.c
63- schannel_verify.c sectransp.c vtls.c wolfssl.c x509asn1.c
64+ schannel_verify.c sectransp.c vtls.c vtls_scache.c vtls_spack.c
65+ wolfssl.c x509asn1.c
66 )
67 vquic/(
68 curl_msh3.c curl_ngtcp2.c curl_osslq.c curl_quiche.c vquic.c
69 vquic-tls.c
70 )
71- vssh/(libssh.c libssh2.c wolfssh.c)
72+ vssh/(libssh.c libssh2.c curl_path.c wolfssh.c)
73 )
74 $builddir/pkg/bearssl/libbearssl.a
75 $builddir/pkg/zlib/libz.a
76@@ -83,14 +90,16 @@ lib('libcurl.a', [[
77 -- src/src/Makefile.inc:/^CURL_CFILES
78 exe('curl', [[
79 src/(
80+ config2setopts.c
81 slist_wc.c
82- tool_binmode.c
83+ terminal.c
84 tool_bname.c
85 tool_cb_dbg.c
86 tool_cb_hdr.c
87 tool_cb_prg.c
88 tool_cb_rea.c
89 tool_cb_see.c
90+ tool_cb_soc.c
91 tool_cb_wrt.c
92 tool_cfgable.c
93 tool_dirhie.c
94@@ -103,7 +112,6 @@ exe('curl', [[
95 tool_getpass.c
96 tool_help.c
97 tool_helpers.c
98- tool_hugehelp.c
99 tool_ipfs.c
100 tool_libinfo.c
101 tool_listhelp.c
102@@ -116,6 +124,7 @@ exe('curl', [[
103 tool_progress.c
104 tool_setopt.c
105 tool_sleep.c
106+ tool_ssls.c
107 tool_stderr.c
108 tool_strdup.c
109 tool_urlglob.c
1@@ -1,52 +0,0 @@
2-From 0c83f671f4f2a1b556a2f6a0cfd664cd13b077e0 Mon Sep 17 00:00:00 2001
3-From: Michael Forney <mforney@mforney.org>
4-Date: Fri, 16 Oct 2020 19:09:50 -0700
5-Subject: [PATCH] Reuse dynbuf symbols for curl tool
6-
7----
8- lib/dynbuf.h | 26 ++++++++++++--------------
9- 1 file changed, 12 insertions(+), 14 deletions(-)
10-
11-diff --git a/lib/dynbuf.h b/lib/dynbuf.h
12-index 31a913019..deabeb0e6 100644
13---- a/lib/dynbuf.h
14-+++ b/lib/dynbuf.h
15-@@ -26,23 +26,21 @@
16-
17- #include <curl/curl.h>
18-
19--#ifndef BUILDING_LIBCURL
20- /* this renames the functions so that the tool code can use the same code
21- without getting symbol collisions */
22--#define Curl_dyn_init(a,b) curlx_dyn_init(a,b)
23--#define Curl_dyn_add(a,b) curlx_dyn_add(a,b)
24--#define Curl_dyn_addn(a,b,c) curlx_dyn_addn(a,b,c)
25--#define Curl_dyn_addf curlx_dyn_addf
26--#define Curl_dyn_vaddf curlx_dyn_vaddf
27--#define Curl_dyn_free(a) curlx_dyn_free(a)
28--#define Curl_dyn_ptr(a) curlx_dyn_ptr(a)
29--#define Curl_dyn_uptr(a) curlx_dyn_uptr(a)
30--#define Curl_dyn_len(a) curlx_dyn_len(a)
31--#define Curl_dyn_reset(a) curlx_dyn_reset(a)
32--#define Curl_dyn_tail(a,b) curlx_dyn_tail(a,b)
33--#define Curl_dyn_setlen(a,b) curlx_dyn_setlen(a,b)
34-+#define curlx_dyn_init Curl_dyn_init
35-+#define curlx_dyn_add Curl_dyn_add
36-+#define curlx_dyn_addn Curl_dyn_addn
37-+#define curlx_dyn_addf Curl_dyn_addf
38-+#define curlx_dyn_vaddf Curl_dyn_vaddf
39-+#define curlx_dyn_free Curl_dyn_free
40-+#define curlx_dyn_ptr Curl_dyn_ptr
41-+#define curlx_dyn_uptr Curl_dyn_uptr
42-+#define curlx_dyn_len Curl_dyn_len
43-+#define curlx_dyn_reset Curl_dyn_reset
44-+#define curlx_dyn_tail Curl_dyn_tail
45-+#define curlx_dyn_setlen Curl_dyn_setlen
46- #define curlx_dynbuf dynbuf /* for the struct name */
47--#endif
48-
49- struct dynbuf {
50- char *bufr; /* point to a null-terminated allocated buffer */
51---
52-2.42.0
53-
R pkg/curl/patch/0002-bearssl-Remove-unnecessary-CA-blob-length-check.patch =>
pkg/curl/patch/0001-bearssl-Remove-unnecessary-CA-blob-length-check.patch
+4,
-4
1@@ -1,4 +1,4 @@
2-From f91719c41ecf96fe661a3fa03b5d22b8e6d52402 Mon Sep 17 00:00:00 2001
3+From e81451b1773b64d19392a4802b178b7b0f325b2a Mon Sep 17 00:00:00 2001
4 From: Michael Forney <mforney@mforney.org>
5 Date: Mon, 15 Nov 2021 13:10:02 -0800
6 Subject: [PATCH] bearssl: Remove unnecessary CA blob length check
7@@ -11,10 +11,10 @@ than INT_MAX.
8 1 file changed, 3 deletions(-)
9
10 diff --git a/lib/vtls/bearssl.c b/lib/vtls/bearssl.c
11-index 934149c..32d9a5b 100644
12+index 4b65244..0590d91 100644
13 --- a/lib/vtls/bearssl.c
14 +++ b/lib/vtls/bearssl.c
15-@@ -133,9 +133,6 @@ static CURLcode load_cafile(struct cafile_source *source,
16+@@ -135,9 +135,6 @@ static CURLcode load_cafile(struct cafile_source *source,
17 return CURLE_SSL_CACERT_BADFILE;
18 }
19
20@@ -25,5 +25,5 @@ index 934149c..32d9a5b 100644
21 ca.in_cert = FALSE;
22 ca.anchors = NULL;
23 --
24-2.42.0
25+2.49.0
26
1@@ -1,33 +0,0 @@
2-From b69fdc6b0b1d9a594f17775e12ee237d8960b88f Mon Sep 17 00:00:00 2001
3-From: Randy Palamar <palamar@ualberta.ca>
4-Date: Sun, 15 Oct 2023 13:11:17 -0600
5-Subject: [PATCH] Reuse base64 for curl tool
6-
7----
8- lib/curl_base64.h | 8 +++-----
9- 1 file changed, 3 insertions(+), 5 deletions(-)
10-
11-diff --git a/lib/curl_base64.h b/lib/curl_base64.h
12-index 7f7cd1d98..19c268549 100644
13---- a/lib/curl_base64.h
14-+++ b/lib/curl_base64.h
15-@@ -24,13 +24,11 @@
16- *
17- ***************************************************************************/
18-
19--#ifndef BUILDING_LIBCURL
20- /* this renames functions so that the tool code can use the same code
21- without getting symbol collisions */
22--#define Curl_base64_encode(a,b,c,d) curlx_base64_encode(a,b,c,d)
23--#define Curl_base64url_encode(a,b,c,d) curlx_base64url_encode(a,b,c,d)
24--#define Curl_base64_decode(a,b,c) curlx_base64_decode(a,b,c)
25--#endif
26-+#define curlx_base64_encode Curl_base64_encode
27-+#define curlx_base64url_encode Curl_base64url_encode
28-+#define curlx_base64_decode Curl_base64_decode
29-
30- CURLcode Curl_base64_encode(const char *inputbuff, size_t insize,
31- char **outptr, size_t *outlen);
32---
33-2.42.0
34-
+1,
-1
1@@ -1 +1 @@
2-0f58bb95fc330c8a46eeb3df5701b0d90c9d9bfcc42bd1cd08791d12551d4400 curl-8.8.0.tar.xz
3+f4619a1e2474c4bbfedc88a7c2191209c8334b48fa1f4e53fd584cc12e9120dd curl-8.14.1.tar.xz
+1,
-1
1@@ -1 +1 @@
2-url = "https://curl.se/download/curl-8.8.0.tar.xz"
3+url = "https://curl.se/download/curl-8.14.1.tar.xz"
+1,
-1
1@@ -1 +1 @@
2-8.8.0 r0
3+8.14.1 r0