Commit Graph

37243 Commits

Author SHA1 Message Date
Viktor Szakats
cc285649dc
autotools: fix LargeFile feature display on Windows (after prev patch)
Always show it on Windows, regardless of the `--disable-largefile`
build option.

Follow-up to 163705db75 #19888
Closes #19922
2025-12-10 19:37:56 +01:00
Stefan Eissing
a73040ac8a
quiche: fix version for skip due to flakiness
0.24.6 is the quiche version without the fix for proper handling fo
RESET streams. Require a verion higher than that to run test_05_02.

Follow-up to 14478429e7 #19916

Closes #19921
2025-12-10 18:07:51 +01:00
Viktor Szakats
edbbcbb127
config-win32.h: drop unused/obsolete CURL_HAS_OPENLDAP_LDAPSDK
Meant for use from `Makefile.mk`. The suggested replacement is CMake or
autotools.

Follow-up to ba8752e556 #12224

Closes #19920
2025-12-10 16:02:56 +01:00
Viktor Szakats
0295c9401d
ldap: drop PP logic for old, unsupported, Windows SDKs
`LDAP_VENDOR_NAME` and `winber.h` are available in all supported
MS SDK and mingw-w64 versions. Stop checking for them.

Also drop redundant parenthesis in PP expression.

Closes #19918
2025-12-10 16:02:55 +01:00
Stefan Eissing
14478429e7
pytest: quiche flakiness
Let nghttpx only use http/1.1 to backend. This reproduces the bug in
quiche with higher frequency. Allow test_14_05 to now return a 400 in
addition to the 431 we get from a h2 backend to nghttpx.

Skip test_05_02 in h3 on quiche not newer than version 0.24.4 in which
its bug is fixed: https://github.com/cloudflare/quiche/pull/2278

Ref: https://github.com/cloudflare/quiche/issues/2277
Closes #19770 (original Issue)
Closes #19916
2025-12-10 15:26:27 +01:00
Viktor Szakats
0b96f7573f
GHA/checkurls: add dry run on push
To verify if the basics work.

Downside is that the scheduled (live) runs are intermixed with the dry
runs and less obvious to find in the default list:
https://github.com/curl/curl/actions/workflows/checkurls.yml

This URL filters for scheduled runs only:
https://github.com/curl/curl/actions/workflows/checkurls.yml?query=event%3Aschedule

Seems fine, because we're only interested in red runs.

Closes #19917
2025-12-10 15:11:12 +01:00
Daniel Stenberg
26d766596e
mdlinkcheck: add --dry-run to only show all found URLs
- remove the debug tracing leftovers from d9d2e339ce that made exit
  unconditonally

Closes #19914
2025-12-10 10:51:10 +01:00
Daniel Stenberg
2180d7b4bc
CURLOPT_FOLLOWLOCATION.md: s/Authentication:/Authorization:/
Closes #19915
2025-12-10 10:50:24 +01:00
Daniel Stenberg
b11b67c96f
test318: tweak the name a little
to make it properly differ from test 317
2025-12-10 09:29:43 +01:00
renovate[bot]
6532398af4
GHA: update dependencies and actions
- update dependency awslabs/aws-lc to v1.65.1
- update dependency pizlonator/fil-c to v0.676
- update github/codeql-action action to v4.31.7

Closes #19905
Closes #19912
Closes #19913
2025-12-10 03:46:23 +01:00
Viktor Szakats
d9d2e339ce
tidy-up: URLs (cont.) and mdlinkcheck
- add missing ending slashes.
  To avoid duplicates and to use canonical URLs.
- reapply lost updates.
  Follow-up to 2ae983bf4e #19879
- mdlinkcheck: include the `include` directory.
- mdlinkcheck: show unused whitelist items.
- mdlinkcheck: improve debug output.
- mdlinkcheck: delete redundant whitelist items.
- examples/simplessl: lowercase the protocol part.
- BINDINGS: replace one remaining HTTP URL with HTTPS.
  Issue: https://github.com/pycurl/pycurl/issues/892
- BINDINGS: fix a broken link.
- BINDINGS: follow a refresh content redirect.
- KNOWN_BUGS: whitespace.

Closes #19911
2025-12-10 01:21:07 +01:00
Stefan Eissing
00f06127ce
memdebug: fix realloc logging
Do the whole realloc and the subsequent logging under mutex lock. This
fixed log entries that state allocation a memory location before realloc
logs it as being freed.

Closes #19900
2025-12-10 00:24:42 +01:00
Stefan Eissing
d371288de7
test: increase altsvc test reliability
Move new tests from test_12 to test_06 (eyeballing) where they better
fit. Increase reliability by check Alt-Svc redirects from h3 to a lower
version for a port where no h3 is available.

Closes #19903
2025-12-10 00:23:33 +01:00
Viktor Szakats
bd19433b0e
build: set -Wno-format-signedness
Explicitly disable these warnings to allow using `-Weverything`.

There are around 600 of them across the codebase.

Silencing them has some drawbacks:
- enums (`CURLcode` mostly) would have to be cast to int to avoid
  different signedness depending on C compiler.
  (llvm/gcc: unsigned, MSVC/clang-cl: signed by default)
- hex masks need casts to unsigned to avoid the warning.
- fixing remaining warnings is annoying without fixing the above.
- without fixing all warnings the option cannot be enabled, to keep
  the codebase warning free.

Ref: #18343 (silenced all warnings, but without the enum cast)
Follow-up to 92f215fea1 #18477
Closes #19907
2025-12-09 23:54:55 +01:00
Viktor Szakats
3fb932d492
mdlinkcheck: do not pick up single quote and backslash after URLs
Closes #19910
2025-12-09 23:54:55 +01:00
Viktor Szakats
920319855d
mdlinkcheck: exclude self from URL search
To avoid picking up the whitelist.

Closes #19909
2025-12-09 23:54:54 +01:00
Viktor Szakats
a7c974e038
DEPRECATE: add CMake <3.18 deprecation for April 2026
CMake 3.18 was released on 2020-07-15.

It enables using (and/or dropping workarounds) for these features:
LTO support, better performance and pkg-config support, `OBJECT` target,
`-S`, `-B`, `--verbose`, `--install` on the command-line, lib directory
support in interface targets, target_link_options(), LINK_OPTIONS,
FetchContent, `list(PREPEND ...)`, unity, Ninja, fixed imported global
issues.

Ref: https://github.com/curl/curl/discussions/18704

Closes #19902
2025-12-09 19:34:13 +01:00
Viktor Szakats
163705db75
windows: assume USE_WIN32_LARGE_FILES
All Windows platforms support it. It was permanently enabled with most
build methods. The exception is autotools where it is enabled by
default, with an option to disable it. It changed the build in a few
places for rarely tested code paths, but not bringing other advantages
(and used some 64-bit APIs anyway). This patch makes autotools'
`--disable-largefile` option a no-op for Windows.

Closes #19888
2025-12-09 19:34:13 +01:00
Daniel Stenberg
073b85cefe
GHA: make links get checked daily
Assisted-by: Viktor Szakats
Closes #19898
2025-12-09 16:28:23 +01:00
Viktor Szakats
74bc0c80b3
configure: delete unused variable
Follow-up to 4d73854462 #9044

Closes #19901
2025-12-09 16:23:58 +01:00
Viktor Szakats
197904d4b1
config-win32.h: delete obsolete, non-Windows comments
Closes #19899
2025-12-09 16:23:58 +01:00
Stefan Eissing
44e64919cf
pytest: socksd startup delay
Add a small delay after the startup of the danted socks daemon to
give it more time to become responsive.

Closes #19895
2025-12-09 16:03:38 +01:00
Stefan Eissing
9711c986ba
multi: remove MSTATE_TUNNELING
MSTATE_TUNNELING is no longer in use now that we have proxy connection
filters. Remove the state.

Remove the http handler `connect_it` method as it was merely a NOP.

Closes #19894
2025-12-09 16:01:51 +01:00
Stefan Eissing
5ed7b5b01b
alt-svc: more flexibility on same destination
When the Alt-Svc points to the same host and port, add the destination
ALPN to the `wanted` versions and set it also as the `preferred` version
in negotiations.

This allows Alt-Svc for h3 to point to h2 and have it tried first. Also,
this allows Alt-Svc to say http/1.1 is preferred and changes the ALPN
protocol ordering for the TLS handshake.

Add tests in various combination to verify this works.

Reported-by: yushicheng7788 on github
Fixes #19740
Closes #19874
2025-12-09 15:59:09 +01:00
Viktor Szakats
f450f3801b
GHA/windows: re-enable taskkill
Nothing conclusive for the last ~30 days when `taskkill` was made
a no-op. Jobs remained flaky with all known failure modes. Sometimes
they finish green on the first run, sometimes they fail. Hard to say
more without comparing detailed stats for this period and the
preceding (or upcoming) one.

In almost all runs, the PID to be killed did not exist at the time of
check.

Follow-up to 2701ac6a4d #19421
Closes #19897
2025-12-09 14:46:00 +01:00
Yedaya Katsman
8e847fa536
gtls: Call keylog_close in cleanup 2025-12-09 14:14:50 +01:00
Yedaya Katsman
e76080fb73
test: add test 2090 for SSLKEYLOGFILE structure
Only the TLS 1.2 structure for now since it's simpler, and only has a
single label type. This has the bonus of also testing libressl that only
supports logging keys in TLS 1.2

Closes #19816
2025-12-09 14:14:50 +01:00
Viktor Szakats
e28dc58b65
examples: use 64-bit fstat on Windows
Closes #19896
2025-12-09 13:38:17 +01:00
Daniel Stenberg
b739102ea6
TODO: remove ancient entries no longer considered
- TCP Fast Open support on Windows

TFO doesn't really work on the internet and isn't really used anywhere.
We use QUIC now.

- get rid of PATH_MAX

Not a priority and when using 3rd party libraries not really up to us.

- auto-detect proxy

A dream we can just stop having.

- config file parsing

Let's not do that in our library.

- add asynch getaddrinfo support

Let's not add a limited glibc specific backend with bad API

- FTP HOST

If we managed this far without name based vhost FTP, let's not.

Closes #19890
2025-12-09 12:55:37 +01:00
Viktor Szakats
d14bf19fda
test1025, 1221: fold long command-lines
Closes #19893
2025-12-09 12:40:21 +01:00
Viktor Szakats
1dd758b36d
test1464: mark XML-compliant
Closes #19892
2025-12-09 12:40:21 +01:00
renovate[bot]
4fe629c12a
Dockerfile: update debian:bookworm-slim digest to e899040
Closes #19891
2025-12-09 12:40:18 +01:00
renovate[bot]
761750b9de
Dockerfile: update debian:bookworm-slim digest to 1371f81
Closes #19883
2025-12-09 12:02:48 +01:00
Daniel Stenberg
4fb609f963
FAQ: fix minor link syntax mistake 2025-12-09 11:13:31 +01:00
Daniel Stenberg
3dd1ffdeb0
FAQ/TODO/KNOWN_BUGS: convert to markdown
- convert to markdown
- auto-generate the TOCs on the website, remove them from the docs
- cleanups
- spellchecked
- updated links

Closes #19875
2025-12-09 10:52:56 +01:00
Daniel Stenberg
43c781a116
imap: check buffer length before accessing it
Pointed out by ZeroPath

Closes #19887
2025-12-09 10:50:29 +01:00
Daniel Stenberg
4c3614304f
headers: add length argument to Curl_headers_push()
- the length is already known by parent functions
- avoids strlen() calls
- avoids strchr() calls for trimming off newline characters

Closes #19886
2025-12-09 10:49:28 +01:00
Viktor Szakats
70d71e8761
tests/data: move section data to external files
To make the test files XML-compliant, and the expected results
possibly easier to manage by keeping them in `.md`, `.html`, `.1`
and `.txt` files.

Non-XML-compliant files are down to 31 (1.6%) after this patch.

Closes #19882
2025-12-09 10:12:49 +01:00
Daniel Stenberg
bf70031518
RELEASE-NOTES: synced 2025-12-09 09:23:49 +01:00
Viktor Szakats
86f5bd3c6e
curl_setup.h: fix FMT_SOCKET_T to be unsigned on Windows
To match the Windows socket type.

Ref: https://learn.microsoft.com/windows/win32/winsock/socket-data-type-2

Cherry-picked from #18343
Closes #19881
2025-12-09 09:20:10 +01:00
Viktor Szakats
cce660693c
tests/data: use more %TESTNUMBER macro for previous patch
Follow-up to d75716e4e5 #19799
Cherry-picked from #19882
Closes #19885
2025-12-09 09:20:10 +01:00
Viktor Szakats
d75716e4e5
tests/data: move --libcurl output to external data files
To make the test files XML-compliant, and the expected results
possibly easier to manage by keeping them in `.c` files.

Non-XML-compliant files are down to 36 after this patch.

Also:
- make all macro expansions apply to `%includetext` contents.

Closes #19799
2025-12-09 00:19:10 +01:00
Viktor Szakats
2ae983bf4e
tidy-up: URLs
- to avoid dupes.
- missing slashes.
- drop `.git` suffix from GitHub git repo URLs for a few outliers.
- use short YouTube URL like curl-www does.
- sync two RFC doc URLs with others.

Closes #19879
2025-12-09 00:19:10 +01:00
Daniel Stenberg
09e48d5a04
mk-ca-bundle.md: the file format docs URL is permaredirected
Closes #19877
2025-12-08 22:07:32 +01:00
Daniel Stenberg
16f4b20385
KNOWN_BUGS: remove link to codepoints.net
The site is so slow it often triggers a failure for the link checker.

Closes #19878
2025-12-08 22:07:00 +01:00
Viktor Szakats
64a1092a79
IPFS.md: wrap long lines
Closes #19880
2025-12-08 17:28:43 +01:00
dependabot[bot]
cc853ddc3d
GHA: bump pip-dependencies ruff, psutil, pytest
- update `ruff` from 0.14.5 to 0.14.8
- update `psutil` from 7.1.2 to 7.1.3
- update `pytest` from 8.4.2 to 9.0.1

Closes #19876
2025-12-08 15:37:43 +01:00
Viktor Szakats
7dd5bb77c3
CI/windows: add torture tests with Schannel
With Schannel and Unicode, `-shallow=13`. It finishes in 12 minutes,
making it the slowest Windows job. It's still on par with torture jobs
on other platforms (though they manage to fit `-shallow=25`).

Also `-shallow=13` still caught leaks in multiple tests.

Also:
- test2300: exclude from CI Windows torture tests.
- experimental.

The downside of going with deeper torture tests, is that it requires
increasing the job timeout. This in turns means that a hung job takes
more minutes to be killed (due to GitHub bugs where a hung step does not
honor the per-step timeout on Windows, another bug where a hung job gets
killed +5 minutes above the workflow timeout, and another bug (or
feature?) where other failed/hung jobs in the the workflow cannot be
restarted till the last job finishes or gets killed. And all this
probably related to a Perl bug which makes it hang on fork errors, which
is turn related to Cygwin/MSYS2 runtime bugs which breaks fork in case
of curl's mixed MSYS2-Perl/native-curl-binaries environment.)
The end result in longer forced waits before being able to restart flaky
jobs, which slows down iterations and annoying.

Also tried:
- non-c-ares job: detected known issues much less often.
- replaced libidn2 with WinIDN: detected known issues much less often.
- runtests -j9-j20 values: did not make a difference.
- other `-shallow` values: 20 is the max feasible, but comes with the
  downside described above.

Ref: #19675 (reboot of)
Follow-up to f08417c425 #19863

Closes #19865
2025-12-08 13:08:14 +01:00
Daniel Stenberg
ab9beda1b3
docs: switch more URLs to https://
Normalize using https:// almost everywhere instead of http://

Closes #19872
2025-12-08 12:57:51 +01:00
Daniel Stenberg
a1c01b2015
mdlinkcheck: ignore IP numbers, allow '@' in raw URLs 2025-12-08 12:57:51 +01:00