Commit Graph

35764 Commits

Author SHA1 Message Date
z2_
d1145df24d
ws: handle blocked sends better
Closes #17496
2025-05-31 17:04:18 +02:00
Yedaya Katsman
2cf19c245e
tests: test mtls also w/ clientAuth EKU only
The google chrome root program will stop allowing roots that have both
clientAuth and ServerAuth [1].

In one of the mtls tests, use a certificate with only the clientAuth
EKU.

[1] https://googlechrome.github.io/chromerootprogram/#322-pki-hierarchies-included-in-the-chrome-root-store

Closes #17493
2025-05-31 15:20:25 +02:00
Yedaya Katsman
b53848738c
tests: test mtls with --insecure
Closes #17493
2025-05-31 15:20:25 +02:00
Yedaya Katsman
215b5f389a
tests: fix checks for https-mtls proto
If there were two tests using the "https-mtls" server there was a perl
unbound variable error, since certfile wan't set. Additionally, once the
responsiveserver function was actually called, it failed finding a
responsiveness function. For now I made it use the `verifypid` function,
since the curl execution in `verifyhttp` doesn't know about client
certificates.

Closes #17493
2025-05-31 15:20:21 +02:00
Stefan Eissing
4977747f0d
ftp: fix teardown of DATA connection in done
When ftp_done() is called to terminate the transfer, it needs to tear
down any open SECONDARY filter chain. The condition on when to do that
was relying on there to be a valid socket. This is not sufficient as the
socket is only set *after* happy eyeballing has decided on one.

Instead of checking for a valid conn->sock, check if any connection
filter is installed.

Fixes #17482
Reported-by: Rasmus Melchior Jacobsen
Closes #17491
2025-05-31 15:15:05 +02:00
Daniel Stenberg
4b76a821f8
RELEASE-NOTES: synced 2025-05-31 15:12:43 +02:00
Stefan Eissing
759d33a25c
tests: await portfile to be complete
When running under load, a started server may not produce a valid portfile
before the runner starts reading it. If the read is not successful, wait
for 100ms and try again, timing out after 15 seconds.

Fixes #17492
Closes #17495
2025-05-31 13:58:18 +02:00
Daniel Stenberg
fe81a80ae7
spelling: call it null-terminate consistently
With a dash, using two Ls. Also for different forms of the word.

Use NULL in all uppercase if it means a zero pointer.

Follow-up to 307b7543ea

Closes #17489
2025-05-30 17:29:45 +02:00
Stefan Eissing
54834b4ad3
wolfssl: fix sending of early data
Early data was reported as being sent, but was not. While everything was
aligned with the Gods and early data was reported as accepted, the
actual sending required another call to wolfSSL.

Fixes #17481
Reported-by: Ethan Everett
Closes #17488
2025-05-30 11:44:20 +02:00
Daniel Stenberg
bdb7d8b004
spelling: 'a' vs 'an'
Closes #17487
2025-05-30 11:38:35 +02:00
Viktor Szakats
7a14898264
GHA/non-native: drop AmigaOS jobs, toolchain no longer available
Fixing:
```
[...] https://github.com/bebbo/amiga-gcc/releases/download/Mechen/amiga-gcc.tgz
curl: (22) The requested URL returned error: 404
```
Ref: https://github.com/curl/curl/actions/runs/15342088546/job/43170188027#step:2:17

Reason:
"As a sign of protest against the refusal to restore 2FA accounts,
this account is now empty."
Ref: https://github.com/bebbo/

If someone happens to have a local copy of the toolchain, we may use it
to restore the AmigaOS jobs.

Closes #17486
2025-05-30 10:42:53 +02:00
Viktor Szakats
94d2ae6205
libssh: adjust indentation
Follow-up to 54d04e2536 #17478
2025-05-30 09:58:19 +02:00
Daniel Stenberg
b13a7a3ec4
misc: we write *an* IPv6 address
Add it as a "bad word"

Closes #17484
2025-05-30 07:53:31 +02:00
Daniel Stenberg
12d13b84fa
tool_getparam: remove two nextarg NULL checks
Because by checking for NULL when the argument can never be NULL, they
mislead the static analyzers into thinking it *can* be NULL and then the
analyzers tend to warn about other places in the code *without* the
check!

Closes #17483
2025-05-29 11:54:49 +02:00
Samuel Henrique
620401f193
docs: fix typos
After Gmail called out the typo I fixed on
532d89a866, I've decided to paste the
whole man page into Google docs and check what other issues it would
spot.

I know, it sounds silly, but I've just spent the last hour and a half
going over each one of them and fixing everything which was a true
finding and non-controversial.

Closes #17480
2025-05-29 10:21:52 +02:00
John Bampton
217fd5b424
misc: fix spelling
Closes #17479
2025-05-29 10:21:05 +02:00
Viktor Szakats
4c6b74e1e8
cmake: fix missed version number for multi-pkg-config detections
It broke cmake builds with OpenSSL 3.5.0 and ngtcp2 1.12.0 or newer,
when detected via `pkg-config`.

For brotli, mbedtls, LDAP, ngtcp2 builds, it caused their version
numbers missing from the configure log when detected via `pkg-config`.

Regression from 01e45f81bd #16980
Regression from 3b501976a9 #16479

Bug: https://github.com/curl/curl/pull/16980#issuecomment-2916811388
Reported-by: x-xiang on github

Closes #17476
2025-05-29 06:59:02 +02:00
John Bampton
54d04e2536
misc: fix spelling
Closes #17478
2025-05-28 22:47:12 +02:00
Daniel Stenberg
fa3f889752
tests: move test docs into /docs
In an attempt to make them easier to find.

The man pages runtests.md and testcurl.md are in /docs

The rest of the test documentation is in /docs/tests

Closes #17463
2025-05-28 15:00:03 +02:00
Daniel Stenberg
46733c585b
RELEASE-NOTES: synced
Bumped to 8.14.1
2025-05-28 14:55:59 +02:00
Stefan Eissing
71bb004c29
http: fail early when rewind of input failed when following redirects
When inspecting a possible follow HTTP request, the result of a rewind
of the upload data was ignored as it was not clear at that point in time
if the request would become a GET.

This initiated the followup, rewound again, which failed again and
terminated the follow up.

This was confusing to users as it was not clear of the follow up was
done or not.

Fix: fail the early rewind when the request is not converted to GET.

Fixes #17472
Closes #17474
Reported-by: Jeroen Ooms
2025-05-28 14:53:02 +02:00
Stefan Eissing
d16ccbd55d
multi: fix add_handle resizing
Due to someone being stupid, the resizing of the multi's transfer
table was actually shrinking it. Oh my.

Add test751 to reproduce, add code assertion.

Fixes #17473
Reported-by: Jeroen Ooms
Closes #17475
2025-05-28 14:48:44 +02:00
Daniel Stenberg
698491f444
tool_getparam: refactored, simplified
- add dedicated option functions for bools/none/strings
- simplify clearing (some) arguments, use '*' instead of ' '
- scripts/top-complexity: remove getparameter from whitelist
- handle --help separately
- getstr and getstrn do not allow a NULL input
- improve the ;auto check, it needs to be trailing
- add toggle bit helper function
- unify an error message for bad --no- use
- introduce generic handling of deprecated options: ARG_DEPR
- handle --no- prefix on more booleans:

    --cert-status
    --doh-cert-status
    --false-start
    --mptcp
    --ssl-no-revoke
    --ssl-revoke-best-effort
    --tcp-fastopen

Closes #17448
2025-05-28 14:25:32 +02:00
Daniel Stenberg
6eea7219a5
BUG-BOUNTY.md. mention the medium bounty amount in 2025
Closes #17470
2025-05-28 08:47:26 +02:00
Daniel Stenberg
4dacb79fcd
RELEASE-NOTES: synced
8.14.0 release
2025-05-28 07:40:54 +02:00
Daniel Stenberg
950ef272fa
docs/THANKS: updated from the 8.14.0 release 2025-05-28 07:40:54 +02:00
renovate[bot]
a71ea39a33
GHA: Update ngtcp2/nghttp3 to v1.10.1
Closes #17466
2025-05-27 17:10:53 +02:00
Samuel Henrique
d3a3d7afb6
wcurl: update to v2025.05.26
This release fixes a small issue with the retry strategy:

 * Increase number of retries to 5 (32 sec total time), fixing the
   problem with misleading output. Previously, it was showing a higher
   number of retries than what would be done and it always did only 3.

Closes #17461
2025-05-27 09:29:43 +02:00
Daniel Stenberg
c0d777c319
curl_url_get.md: don't call it normalized
Because that's not what it does.

Reported-by: Alberto Leiva Popper
Fixes #16829
Closes #17464
2025-05-27 09:25:32 +02:00
renovate[bot]
9e6d166860
GHA: Update ngtcp2/ngtcp2 to v1.13.0
Closes #17459
2025-05-26 22:13:08 +02:00
Samuel Henrique
532d89a866
docs: fix typo in retry.md
Closes #17443
2025-05-26 13:03:02 +02:00
Daniel Stenberg
783586b8fd
CURLOPT_FOLLOWLOCATION.md: switch to GET => no body
Clarify

URL: https://curl.se/mail/lib-2025-05/0026.html
Closes #17454
2025-05-26 13:00:38 +02:00
Daniel Stenberg
217c22f315
CURLOPT_READFUNCTION.md: mention the seek callback
Brought-up-by: Jeroen Ooms
URL: https://curl.se/mail/lib-2025-05/0030.html
Closes #17455
2025-05-26 12:59:43 +02:00
Kai Pastor
ac7e2c3dc6
asyn-ares: remove obsolete reference to local_ip6
7bf576064c moved local_ip6 from the parameter list to the actual
implementation of Curl_async_ares_set_dns_local_ip6. The no-op code for
!( defined(HAVE_CARES_SET_LOCAL) && defined(USE_IPV6) ) still had an
reference which is removed by this change.

Closes #17450
2025-05-26 10:12:28 +02:00
Stefan Eissing
745c3519a5
ftp: fix race in upload handling
When TYPE was skipped for an immediate STORE command and the server
replied fast and the EPRT data connection was not ready, the transfer
was not initated, leading to no upload.

Fixes #17394
Closes #17428
Reported-by: JoelAtWisetech on github
2025-05-25 11:56:16 +02:00
Daniel Stenberg
3816f84f43
RELEASE-NOTES: synced 2025-05-24 23:00:26 +02:00
Daniel Stenberg
aa00cb08c9
getparameter: move --npn, --sslv2 and --sslv3 to generic handler
For deprecated options.

Closes #17442
2025-05-24 22:49:34 +02:00
Daniel Stenberg
9b89fd6db7
curl: only warn once for --manual in manual-disabled build
It would previously say it twice.

Closes #17441
2025-05-24 22:48:24 +02:00
Daniel Stenberg
ed07f59841
tool_operate: split up single_transfer
Complexity reduced from 124 to 83

Remove whitelisting of this function from the complexity script.

Closes #17437
2025-05-24 15:43:08 +02:00
Daniel Stenberg
65e4444d67
curl: change the struct getout flags field into bitfields
As the flags were use mostly as individual booleans anyway, the code
gets simpler when we use bitfields instead of manual bitwise operations.

Closes #17436
2025-05-24 13:41:32 +02:00
Jacob Mealey
8ab73bb1ff
urlapi: move complex switch case to separate func
Move complex switch statement cases in curl_url_set
to their own functions and call them from switch.

Closes #17435
2025-05-24 13:39:34 +02:00
renovate[bot]
2a651525c8
GHA: Update awslabs/aws-lc to v1.52.0
Closes #17434
2025-05-23 23:15:48 +02:00
renovate[bot]
83116e1fca
Dockerfile: update debian:bookworm-slim Docker digest to 90522ee
Closes #17416
2025-05-23 23:14:33 +02:00
Daniel Stenberg
129719c29c
lib: change progress bitwise ops to bitfields
Since they are mostly independent, using them as bitfelds makes the code
easier.

- remove the unused struct field 'width'.

- convert 'speeder_c' to an unsigned char from int

Closes #17431
2025-05-23 23:13:03 +02:00
Stefan Eissing
37b25f7bb0
sasl: give help when unable to select AUTH
When SASL is unable to select an AUTH mechanism, give user help
in info message why no AUTH could be selected.

Fixes #17420
Closes #17427
Reported-by: Aditya Garg
2025-05-23 22:56:05 +02:00
Daniel Stenberg
b445031e94
urldata: remove the unused struct field 'hide_progress'
It was only set, never read.

Closes #17430
2025-05-23 17:15:32 +02:00
Daniel Stenberg
1fef013b81
setopt: create set_ssl_options()
Used for both CURLOPT_SSL_OPTIONS and CURLOPT_PROXY_SSL_OPTIONS

Also: make the DoH code use the full original argument value instead of
each individual flag. Makes it easier to keep all of these in synk.

Closes #17429
2025-05-23 17:15:00 +02:00
Viktor Szakats
a0a1df5af9
lib3026: drop DLL pre-load perf mitigation for old mingw
curl no longer supports old/legacy/classic mingw.

This mitigation was addressing slow perf seen in CI with old mingw.
The slow perf is not seen in current CI with supported compilers.

Remove the duplicate DLL load function from libtest. It's no longer
used after this patch.

Current CI run times for test3026 on GHA/windows:
```
test 3026...[curl_global_init thread-safety]
 # mingw, CM clang-x86_64 gnutls libssh
 -------e--- OK (1715 out of 1738, remaining: 00:02, took 0.196s, duration: 02:55)
 # dl-mingw, CM 9.5.0-x86_64 schannel
 -------e--- OK (1554 out of 1577, remaining: 00:02, took 0.217s, duration: 02:29)
 # msvc, CM x64-windows schannel +examples
 -------e--- OK (1578 out of 1601, remaining: 00:02, took 0.205s, duration: 02:50)
```

Follow-up to 38029101e2 #11625
Follow-up to 856b133f5d #9412
Ref: #17413

Closes #17414
2025-05-23 11:59:03 +02:00
renovate[bot]
76ab38d3b8
GHA: update rojopolis/spellcheck-github-actions digest to 584b2ae
Closes #17423
2025-05-23 11:42:35 +02:00
Daniel Stenberg
2b18866cd9
DEPRECATE.md: add version numbers to old deprecated items
For better tracking

Closes #17424
2025-05-23 11:01:13 +02:00