Commit Graph

5902 Commits

Author SHA1 Message Date
Daniel Stenberg
d135d040df
url: change default value for CURLOPT_MAXREDIRS to 30
It was previously unlimited by default, but that's not a sensible
default. While changing this has a remote risk of breaking an existing
use case, I figure it is more likely to actually save users from loops.

Closes #11581
2023-08-02 23:59:59 +02:00
Jay Satiro
b4f9ae5126 schannel: fix user-set legacy algorithms in Windows 10 & 11
- If the user set a legacy algorithm list (CURLOPT_SSL_CIPHER_LIST) then
  use the SCHANNEL_CRED legacy structure to pass the list to Schannel.

- If the user set both a legacy algorithm list and a TLS 1.3 cipher list
  then abort.

Although MS doesn't document it, Schannel will not negotiate TLS 1.3
when SCHANNEL_CRED is used. That means setting a legacy algorithm list
limits the user to earlier versions of TLS.

Prior to this change, since 8beff435 (precedes 7.85.0), libcurl would
ignore legacy algorithms in Windows 10 1809 and later.

Reported-by: zhihaoy@users.noreply.github.com

Fixes https://github.com/curl/curl/pull/10741
Closes https://github.com/curl/curl/pull/10746
2023-08-02 03:43:13 -04:00
Daniel Stenberg
4169943d15
variable.d: setting a variable again overwrites it
Reported-by: Niall McGee
Bug: https://twitter.com/niallmcgee/status/1686523075423322113
Closes #11571
2023-08-02 09:32:08 +02:00
Jay Satiro
783e4714d9 CURLOPT_PROXY_SSL_OPTIONS.3: sync formatting
- Re-wrap CURLSSLOPT_ALLOW_BEAST description.
2023-08-02 03:19:29 -04:00
Daniel Stenberg
fc1e42190f
docs: link to the website versions instead of markdowns
... to make the links work when the markdown is converted to webpages on
https://curl.se

Reported-by: Maurício Meneghini Fauth
Fixes https://github.com/curl/curl-www/issues/272
Closes #11569
2023-08-02 00:47:41 +02:00
Daniel Stenberg
f4ff8072f2
docs/cmdline-opts: spellfixes, typos and polish
To make them accepted by the spell checker

Closes #11562
2023-08-01 14:12:22 +02:00
Alexander Jaeger
959e613e7c
misc: fix various typos
Closes #11561
2023-08-01 14:09:32 +02:00
Daniel Stenberg
15c40a32b7
Revert "KNOWN_BUGS: build for iOS simulator on macOS 13.2 with Xcode 14"
This reverts commit 2e8a3d7cb7.

It's a user error for supplying incomplete information to the build system.

Reported-by: Ryan Schmidt
Ref: https://github.com/curl/curl/issues/11215#issuecomment-1658729367
2023-08-01 10:22:39 +02:00
Pablo Busse
11d46bcfb2 openssl: Support async cert verify callback
- Update the OpenSSL connect state machine to handle
  SSL_ERROR_WANT_RETRY_VERIFY.

This allows libcurl users that are using custom certificate validation
to suspend processing while waiting for external I/O during certificate
validation.

Closes https://github.com/curl/curl/pull/11499
2023-08-01 03:49:07 -04:00
Daniel Stenberg
1032f56efa
curl: make %output{} in -w specify a file to write to
It can be used multiple times. Use %output{>>name} to append.

Add docs. Test 990 and 991 verify.

Idea: #11400
Suggested-by: ed0d2b2ce19451f2
Closes #11416
2023-07-31 23:10:59 +02:00
Daniel Stenberg
2e160c9c65
tool: add "variable" support
Add support for command line variables. Set variables with --variable
name=content or --variable name@file (where "file" can be stdin if set
to a single dash (-)).

Variable content is expanded in option parameters using "{{name}}"
(without the quotes) if the option name is prefixed with
"--expand-". This gets the contents of the variable "name" inserted, or
a blank if the name does not exist as a variable. Insert "{{" verbatim
in the string by prefixing it with a backslash, like "\\{{".

Import an environment variable with --variable %name. It makes curl exit
with an error if the environment variable is not set. It can also rather
get a default value if the variable does not exist, using =content or
@file like shown above.

Example: get the USER environment variable into the URL:

 --variable %USER
 --expand-url = "https://example.com/api/{{USER}}/method"

When expanding variables, curl supports a set of functions that can make
the variable contents more convenient to use. It can trim leading and
trailing white space with "trim", output the contents as a JSON quoted
string with "json", URL encode it with "url" and base 64 encode it with
"b64". To apply functions to a variable expansion, add them colon
separated to the right side of the variable. They are then performed in
a left to right order.

Example: get the contents of a file called $HOME/.secret into a variable
called "fix". Make sure that the content is trimmed and percent-encoded
sent as POST data:

  --variable %HOME=/home/default
  --expand-variable fix@{{HOME}}/.secret
  --expand-data "{{fix:trim:url}}"
  https://example.com/

Documented. Many new test cases.

Co-brainstormed-by: Emanuele Torre
Assisted-by: Jat Satiro
Closes #11346
2023-07-31 11:51:34 +02:00
Daniel Stenberg
47a3e6e577
KNOWN_BUGS: cygwin: make install installs curl-config.1 twice
Closes #8839
2023-07-31 08:55:26 +02:00
Daniel Stenberg
2e8a3d7cb7
KNOWN_BUGS: build for iOS simulator on macOS 13.2 with Xcode 14
Closes #11215
2023-07-31 08:53:55 +02:00
Daniel Stenberg
75afa92dc7
KNOWN_BUGS: cmake outputs: no version information available
Closes #11158
2023-07-31 08:51:32 +02:00
Daniel Stenberg
403e4dc1ed
KNOWN_BUGS: APOP authentication fails on POP3
Closes #10073
2023-07-31 08:47:22 +02:00
Daniel Stenberg
d54d5bfcbf
KNOWN_BUGS: hyper is slow
Closes #11203
2023-07-31 08:45:33 +02:00
Patrick Monnerat
038c46f61f
configure, cmake, lib: more form api deprecation
Introduce a --enable-form-api configure option to control its inclusion
in builds. The condition name defined for it is CURL_DISABLE_FORM_API.

Form api code is dependent of MIME: configure and CMake handle this
dependency automatically: CMake by making it a dependent option
explicitly, configure by inheriting the MIME value by default and
rejecting explicit incompatible values.

"form-api" is now a new hidden test feature.

Update libcurl modules to respect this option and adjust tests
accordingly.

Closes #9621
2023-07-31 08:31:38 +02:00
Disyer
4f9c20d49f
wolfssl: support loading system CA certificates
Closes #11452
2023-07-31 08:27:50 +02:00
Viktor Szakats
86eff0b0d5
nss: delete more NSS references
Fix the distcheck CI failure and delete more NSS references.

Follow-up to 7c8bae0d9c

Reviewed-by: Marcel Raad
Reviewed-by: Daniel Stenberg
Closes #11548
2023-07-30 21:55:29 +00:00
Daniel Stenberg
7c8bae0d9c
nss: remove support for this TLS library
Closes #11459
2023-07-29 23:44:28 +02:00
Daniel Stenberg
775018d273
KNOWN_BUGS: cygwin: "WARNING: UNPROTECTED PRIVATE KEY FILE!"
Closes #11244
2023-07-27 23:43:28 +02:00
Daniel Stenberg
a01f89d7d9
THANKS: add contributors from 8.2.1 2023-07-26 08:10:40 +02:00
Daniel Stenberg
934da11c0d
docs: provide more see also for cipher options
More cross references. Hide nroff errors.

Closes #11513
2023-07-25 22:30:09 +02:00
Daniel Stenberg
7b20ba311d
docs: mark two TLS options for TLS, not SSL
Closes #11514
2023-07-25 17:22:02 +02:00
bch
c06d7e25bf
curl_multi_wait.3: fix arg quoting to doc macro .BR
Closes #11511
2023-07-25 10:29:39 +02:00
Andrei Rybak
3c0a91077c
CONTRIBUTE: drop mention of copyright year ranges
Year ranges in copyrights were dropped in commits [1] and [2].
Verification of year ranges in copyrights was dropped from script
'scripts/copyright.pl' in commit [3].  However, the corresponding
passages in file 'docs/CONTRIBUTE.md' weren't updated.

Drop mentions of copyright year ranges from 'docs/CONTRIBUTE.md'.

[1] 2bc1d775f (copyright: update all copyright lines and remove year
    ranges, 2023-01-02)
[2] c46761bd8 (tests/http: remove year ranges from copyrights,
    2023-03-14)
[3] 0e293bacb (copyright.pl: cease doing year verifications, 2023-01-28)

Closes #11504
2023-07-23 23:47:35 +02:00
Andrei Rybak
971f03e5c0
CONTRIBUTE: fix syntax in commit message description
File 'docs/CONTRIBUTE.md' includes a description of how one should write
commit messages in the curl project.  Different possible parts of the
message are enclosed in square brackets.  One exception is the section
describing how the curl project doesn't use "Signed-off-by" commit
trailers [1], which is enclosed in an opening curly brace paired with a
closing square bracket.

Fix the enclosing square brackets in description of "Signed-off-by"
trailers in commit messages in file 'docs/CONTRIBUTE.md'.

[1] See description of option '--signoff' in Git documentation:
    https://git-scm.com/docs/git-commit

Closes #11504
2023-07-23 23:47:16 +02:00
Daniel Stenberg
57f56cc374
KNOWN_BUGS: building for old macOS fails with gcc
Closes #11441
2023-07-23 17:00:29 +02:00
Jacob Hoffman-Andrews
69c536b9c0
rustls: update rustls-ffi 0.10.0
This brings in version 0.21.0 of the upstream rustls implementation,
which notable includes support for IP address certificates.

Closes #10865
2023-07-22 23:40:44 +02:00
Daniel Stenberg
7b4da487d5
TODO: Obey Retry-After in redirects
(remove "Set custom client ip when using haproxy protocol" which was
shipped in 8.2.0)

Mentioned-by: Yair Lenga
Closes #11447
2023-07-21 13:54:13 +02:00
MonkeybreadSoftware
dc8c14e782
libcurl-errors.3: add CURLUE_OK
Closes #11488
2023-07-20 23:36:58 +02:00
Daniel Stenberg
2900c29218
configure: check for nghttp2_session_get_stream_local_window_size
The http2 code uses it now. Introduced in nghttp2 1.15.0 (Sep 2016)

Fixes #11470
Reported-by: Paul Howarth
Closes #11473
2023-07-19 21:05:26 +02:00
John Haugabook
c0d05b2990
ciphers.d: put URL in first column
This makes the URL turn into a link properly when "webified".

Fixes https://github.com/curl/curl-www/issues/270
Closes #11464
2023-07-19 09:20:04 +02:00
Daniel Stenberg
8d6818eb68
THANKS-filter: strip out "GitHub" 2023-07-19 08:12:46 +02:00
Daniel Stenberg
69c025f245
THANKS: add contributors from 8.2.0 2023-07-19 08:12:46 +02:00
Daniel Stenberg
f2aac0d108
RELEASE-PROCEDURE.md: adjust the release dates 2023-07-18 12:06:50 +02:00
Derzsi Dániel
ebd83bfbae
wolfssl: support setting CA certificates as blob
Closes #11445
2023-07-16 23:37:14 +02:00
Daniel Stenberg
e53df4cf08
tool_parsecfg: accept line lengths up to 10M
Bumped from 100K set in 47dd957daf

Reported-by: Antoine du Hamel
Fixes #11431
Closes #11435
2023-07-13 15:16:41 +02:00
Karthikdasari0423
049e96da94
HTTP3.md: ngtcp2 updated to v0.17.0 and nghttp3 to v0.13.0
Follow-up to e0093b4b73

Closes #11433
2023-07-13 08:56:41 +02:00
Daniel Stenberg
d80c1008f6
CURLOPT_MIMEPOST.3: clarify what setting to NULL means
Follow-up to e08382a208

Closes #11430
2023-07-13 08:54:48 +02:00
James Fuller
97394caa20
example/maxconnects: set maxconnect example
Closes #11343
2023-07-11 20:13:25 +02:00
Daniel Stenberg
22c92a6d51
docs: use a space after RFC when spelling out RFC numbers
Closes #11382
2023-07-09 19:13:33 +02:00
Margu
9bf89bdc5b
imap-append.c: update to make it more likely to work
Fixes #10300
Closes #11397
2023-07-09 18:58:39 +02:00
Juan Cruz Viotti
2e0bad3f18
curl_easy_nextheader.3: add missing open parenthesis examples
Closes #11409
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
2023-07-08 22:22:17 +02:00
Emanuele Torre
55dfb9ea47
docs: add more .IP after .RE to fix indentation of generate paragraphs
follow-up from 099f41e097

I just thought of checking all the other files with .RE, and I found 6
other files that were missing .IP at the end.

Closes #11375
2023-06-22 18:04:26 +02:00
Daniel Stenberg
27242bbad3
connect-timeout.d: mention that the DNS lookup is included
Closes #11370
2023-06-22 15:00:24 +02:00
Emanuele Torre
099f41e097
quote.d: fix indentation of generated paragraphs
quote.d was missing a .IP at the end which caused the paragraphs
generated for See-also, Multi, and Example to not be indented correctly.

I also remove a redundant "This option can be used multiple times.", and
replaced .IP "item" with .TP .B "item" to make more clear which lines
are part of the list of commands and which aren't.

Closes #11371
2023-06-22 14:56:40 +02:00
Daniel Stenberg
96e4d6809c
TODO: "Support HTTP/2 for HTTP(S) proxies" *done* 2023-06-21 10:08:57 +02:00
Daniel Stenberg
67ebc0d5b0
example/connect-to: show CURLOPT_CONNECT_TO
Closes #11340
2023-06-20 09:13:54 +02:00
Daniel Stenberg
ff1e885632
example/opensslthreadlock: remove
This shows how to setup OpenSSL mutex callbacks, but this is not
necessary since OpenSSL 1.1.0 - meaning that no currently supported
OpenSSL version requires this anymore

Closes #11341
2023-06-20 09:06:23 +02:00