]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
10 months agohyper: drop support
Daniel Stenberg [Sat, 21 Dec 2024 10:33:05 +0000 (11:33 +0100)] 
hyper: drop support

lib : remove all hyper code
configure: stop detecting hyper
docs: no more mention of hyper
tests: mo more special-handling of hyper builds
CI: no jobs using hyper

Closes #15120

10 months agoexamples: make them compile with compatibility functions disabled (Windows)
Viktor Szakats [Thu, 28 Nov 2024 13:59:35 +0000 (14:59 +0100)] 
examples: make them compile with compatibility functions disabled (Windows)

For MinGW this is `-DNO_OLDNAMES`, with MSVC it is
`-D_CRT_DECLARE_NONSTDC_NAMES=0`.

There have been some support for this before this patch.
After this patch this is extended to all examples.

(And also the standalone http/client programs, if here.)

Cherry-picked from #15652
Closes #15789

10 months agoexamples/complicated: fix warnings, bump deprecated callback, tidy up
Viktor Szakats [Fri, 20 Dec 2024 01:00:22 +0000 (02:00 +0100)] 
examples/complicated: fix warnings, bump deprecated callback, tidy up

Also: make them C89, add consts.

Closes #15785

10 months agolib: TLS session ticket caching reworked
Stefan Eissing [Wed, 18 Dec 2024 12:22:35 +0000 (13:22 +0100)] 
lib: TLS session ticket caching reworked

Described in detail in internal doc TLS-SESSIONS.md

Main points:
- use a new `ssl_peer_key` for cache lookups by connection filters
- recognize differences between TLSv1.3 and other tickets
  * TLSv1.3 tickets are single-use, cache can hold several of them for a peer
  * TLSv1.2 are reused, keep only a single one per peer
- differentiate between ticket BLOB to store (that could be persisted) and object instances
- use put/take/return pattern for cache access
- remember TLS version, ALPN protocol, time received and lifetime of ticket
- auto-expire tickets after their lifetime

Closes #15774

10 months agoGHA: update ngtcp2 and nghttp3
renovate[bot] [Thu, 19 Dec 2024 20:43:21 +0000 (20:43 +0000)] 
GHA: update ngtcp2 and nghttp3

- ngtcp2 to v1.10.0
- nghttp3 to v1.7.0

Closes #15783
Closes #15782

10 months agoexamples/synctime.c: remove references to dead URLs and functionality
Daniel Stenberg [Fri, 20 Dec 2024 07:42:20 +0000 (08:42 +0100)] 
examples/synctime.c: remove references to dead URLs and functionality

This example can use the Date: header of any server so there is no point
in linking to ancient URLs describeing a setup at NIST that no longer
exists.

Closes #15786

10 months agoconfig-mac: drop `MACOS_SSL_SUPPORT` macro
Viktor Szakats [Wed, 18 Dec 2024 14:43:39 +0000 (15:43 +0100)] 
config-mac: drop `MACOS_SSL_SUPPORT` macro

It has been a synonym for `USE_OPENSSL` since
709cf76f6bb7dbaca14e3e8df160ccfac04dcecb (2015).

The few uses of this on GitHub also set `USE_OPENSSL` and
should be fine. Those which don't, please replace
`-DMACOS_SSL_SUPPORT` with `-DUSE_OPENSSL`.

Closes #15777

10 months agocmake: drop redundant opening/closing `.*` from `MATCH` expressions
Viktor Szakats [Wed, 18 Dec 2024 11:47:33 +0000 (12:47 +0100)] 
cmake: drop redundant opening/closing `.*` from `MATCH` expressions

Also from a corresponding `REPLACE` expression.

CMake matches expressions anywhere within the value without an explicit
`.*`.

https://cmake.org/cmake/help/latest/command/if.html#matches
https://cmake.org/cmake/help/latest/command/string.html#regex-match

Closes #15773

10 months agoRELEASE-NOTES: synced
Daniel Stenberg [Fri, 20 Dec 2024 09:08:08 +0000 (10:08 +0100)] 
RELEASE-NOTES: synced

10 months agoVULN-DISCLOSURE-POLICY.md: mention the not setting CVSS
Daniel Stenberg [Thu, 19 Dec 2024 13:25:32 +0000 (14:25 +0100)] 
VULN-DISCLOSURE-POLICY.md: mention the not setting CVSS

Closes #15779

10 months agohttp_aws_sigv4: Fix invalid compare function handling zero-length pairs
Kuan-Wei Chiu [Wed, 18 Dec 2024 18:09:57 +0000 (02:09 +0800)] 
http_aws_sigv4: Fix invalid compare function handling zero-length pairs

The compare_func() can violate the antisymmetric property required by
qsort. Specifically, when both aa->len == 0 and bb->len == 0, the
function returns conflicting results (-1 for compare_func(a, b) and -1
for compare_func(b, a)).

This violates the rules of qsort and may lead to undefined behavior,
including incorrect sorting or memory corruption in glibc [1].

Add a check to return 0 when both lengths are zero, ensuring proper
behavior and preventing undefined behavior in the sorting process.

Ref: https://www.qualys.com/2024/01/30/qsort.txt [1]

Closes #15778

10 months agovtls: remove 'detach/attach' functions from TLS handler struct
Daniel Stenberg [Wed, 18 Dec 2024 13:43:43 +0000 (14:43 +0100)] 
vtls: remove 'detach/attach' functions from TLS handler struct

Unused since 7c8bae0d9c9b2dfeeb

Closes #15776

10 months agovtls: remove unusued 'check_cxn' from TLS handler struct
Daniel Stenberg [Wed, 18 Dec 2024 12:54:42 +0000 (13:54 +0100)] 
vtls: remove unusued 'check_cxn' from TLS handler struct

The last use was removed in 7c5637b8b4

Closes #15775

10 months agovtls: replace "none"-functions with NULL pointers
Daniel Stenberg [Wed, 18 Dec 2024 10:46:37 +0000 (11:46 +0100)] 
vtls: replace "none"-functions with NULL pointers

For TLS backends that don't need these functions, they now use plain
NULL pointers instead of setting a function that does nothing.

Helps making it clearer that a specific TLS handler does not provide
anything specific for that action.

Closes #15772

10 months agonetrc: fix password-only entries
Daniel Stenberg [Tue, 17 Dec 2024 22:56:42 +0000 (23:56 +0100)] 
netrc: fix password-only entries

When a specific hostname matched, and only a password is set before
another machine is specified in the netrc file, the parser would not be
happy and stop there and return the password-only state. It instead
continued and did not return a match.

Add test 2005 to verify this case

Regression from e9b9bba, shipped in 8.11.1.

Reported-by: Ben Zanin
Fixes #15767
Closes #15768

10 months agocd2nroff: support "none" as a TLS backend
Daniel Stenberg [Tue, 17 Dec 2024 23:18:06 +0000 (00:18 +0100)] 
cd2nroff: support "none" as a TLS backend

When we remove support for a specific TLS backend, it might be the only
one that supports a specific feature and then we need to be able to go
"none".

Closes #15769

10 months agoCURLOPT_RESOLVE.md: fix wording
dwickr [Tue, 17 Dec 2024 23:22:54 +0000 (17:22 -0600)] 
CURLOPT_RESOLVE.md: fix wording

(`*`) It's an asterisk, not an ampersand.

Closes https://github.com/curl/curl/pull/15770

10 months agoGHA/macos: drop custom `macos-version-min` options
Viktor Szakats [Tue, 17 Dec 2024 14:54:53 +0000 (15:54 +0100)] 
GHA/macos: drop custom `macos-version-min` options

Drop them, except for Secure Transport jobs where they may trigger
different code paths.

Also drop unused `matrix.build.cflags` variable.

Follow-up to ef90ee39e129eb463cf866898a8581250c824761 #15763
Closes #15766

10 months agolib: supress deprecation warnings in apple builds
Stefan Eissing [Tue, 17 Dec 2024 08:45:10 +0000 (09:45 +0100)] 
lib: supress deprecation warnings in apple builds

On apple builds, the gssapi/ldap/securetransport headers deprecate
almost everything which leads to a wall of compiler warnings on use in
code.

Suppress those warning that may hide other warnings/errors.

Closes #15763

10 months agotool_formparse: accept digits in --form type= strings
Daniel Stenberg [Tue, 17 Dec 2024 06:52:06 +0000 (07:52 +0100)] 
tool_formparse: accept digits in --form type= strings

Adjusted test 186 to verify.

Regression in 9664d5a5475fdc66, shipped in 8.11.1

Reported-by: IcedCoffeee on github
Assisted-by: Jay Satiro
Fixes #15761
Closes #15762

10 months agomultissl: make openssl + wolfssl builds work
Viktor Szakats [Sat, 16 Nov 2024 20:24:17 +0000 (21:24 +0100)] 
multissl: make openssl + wolfssl builds work

- make colliding vtls static function names unique.
- wolfssl: stop including an unused compatibility header.
- cmake: adapt detection logic for openssl+wolfssl coexist.
- wolfssl: fix to use native wolfSSL API in ECH codepath.
- openssl+wolfssl: fix ECH code to coexist.

Requires a post wolfSSL v5.7.4, recent master for `OPENSSL_COEXIST`
feature, and `CPPFLAGS=-DOPENSSL_COEXIST`.

Ref: https://github.com/wolfSSL/wolfssl/issues/8194

Closes #15596

10 months agochecksrc: fix the return() checker
Daniel Stenberg [Tue, 17 Dec 2024 10:08:13 +0000 (11:08 +0100)] 
checksrc: fix the return() checker

It would previously wrongly also catch function calls to function names
ending with 'return'

Amended test1185.

Reported-by: Stefan Eissing
Closes #15764

10 months agocmake: extend zlib's `AUTO` option to brotli, zstd and enable if found
Viktor Szakats [Mon, 28 Oct 2024 13:27:00 +0000 (14:27 +0100)] 
cmake: extend zlib's `AUTO` option to brotli, zstd and enable if found

- make `curl_dependency_option()` more generic.

- extend `CURL_BROTLI` and `CURL_ZSTD` options to accept
  `AUTO` in addition to existing `ON` and `OFF`.

- change `CURL_BROTLI` and `CURL_ZSTD` option default
  to `AUTO`. Was: `OFF`.
  It brings cmake behavior closer to `./configure`.
  Still different:
  - `./configure` defaults to `off` which means to check default
    locations. cmake checks more locations by default.
    (Also tried `NO_CMAKE_PATH`, but then it checked less locations.)
  - cmake returns both `brotlicommon` and `brotlidec` libs,
    while `./configure` only returns the latter.

- ci: drop explicit cmake options, that are now unnecessary.

- GHA/configure-vs-cmake: make adjustments to make tests pass.

Closes #15431

10 months agoRevert: cmake: enable `CURL_USE_PKGCONFIG` for cross-`MINGW`
Viktor Szakats [Tue, 17 Dec 2024 02:20:30 +0000 (03:20 +0100)] 
Revert: cmake: enable `CURL_USE_PKGCONFIG` for cross-`MINGW`

This reverts commit 39c06f7883f448c222082c0dbb3d9a4c5eae2826 #15005.

Combined with most Find modules now supporting `pkg-config`
(39c741b7b008b5959980b29ac721357ff75de3f5 #15408) this change made
mingw-cross builds fragile by picking up OS-native components. Also
adding `/usr/include` to the header path, confusing feature detection.

10 months agocmake: add native `pkg-config` detection for remaining Find modules
Viktor Szakats [Fri, 25 Oct 2024 00:26:33 +0000 (02:26 +0200)] 
cmake: add native `pkg-config` detection for remaining Find modules

brotli, c-ares, libpsl, libssh2, nghttp2, nghttp3, ntgcp2, zstd.

Also:

Add workaround for CMake reporting successful libssh2 detection, but
leaving the header directory empty, and causing `libssh2.h` not found
while compiling. It happens when `pkgconf` is not detecting libssh2
dependency libcrypto in Homebrew after `brew unlink openssl` (as in
GHA/macos). The workaround is to require a non-empty header directory
to consider the detection successful. This workaround may need to be
tweaked and/or applied to other Find modules.

Follow-up to 7bab201abe3915a0167c002f9308950cb8a06e4b #15193

Closes #15408

10 months agoMakefile.mk: drop in favour of autotools and cmake (MS-DOS, AmigaOS3)
Viktor Szakats [Sat, 16 Nov 2024 18:04:36 +0000 (19:04 +0100)] 
Makefile.mk: drop in favour of autotools and cmake (MS-DOS, AmigaOS3)

`Makefile.mk` supported MS-DOS and Amiga, but `./configure` also
supported them in a better tested and more flexible way.

This patch also adds CMake support for MS-DOS/DJGPP and Amiga OS 3.

`Makefile.mk` was not maintained. Delete it in favour of first-tier
build methods.

Also include some non-MS-DOS/AmigaOS-specific tidy-up, see details at
the end of this message.

Details:

- fix/silence all MS-DOS/DJGPP build warnings and issues.
- add MS-DOS support to cmake.
  - default to `ENABLE_THREADED_RESOLVER=OFF` for MS-DOS.
  - add support for `WATT_ROOT`.
  - use static libcurl with MS-DOS.
  - fixup default CMake suffixes/prefixes for DJGPP.
  - disable hidden symbols for MS-DOS. Not supported on MS-DOS.
  - opt-in MS-DOS into `USE_UNIX_SOCKETS`.
- improve MS-DOS support in autotools.
  - default to `--disable-threaded-resolver` for MS-DOS.
- make sure to use `close_s()` (from Watt-32) with autotools and cmake.
  `Makefile.mk` used it before this patch.
- GHA: add DJGPP cmake (~30s) and autotools (~60s) build jobs.
  Also build tests and examples with cmake.
- improve AmigaOS support in autotools:
  - configure: detect `CloseSocket()` when it's a macro.
  - configure: fix `IoctlSocket` detection on AmigaOS.
  - curl-amissl.m4: pass AmiSSL libs to tests/servers.
- add AmigaOS3 support to cmake:
  - cmake: fix `HAVE_IOCTLSOCKET_CAMEL` and
    `HAVE_IOCTLSOCKET_CAMEL_FIONBIO` detections.
  - set necessary system libs.
  - add AmiSSL support.
  - inet_ntop, inet_pton: fix using it for AmigaOS. cmake detects them,
    and they did not compile with AmigaOS.
  - cmake: better sync `gethostname` detection with autotools.
    Fixes detection for AmigaOS, where `gethostname` is a macro.
  - cmake: fix `sys/utime.h` detection on AmigaOS.
  - cmake: force-disable `getaddrinfo` for AmigaOS.
  - cmake: tweak threading and static/shared default for AmigaOS.
  - cmake: rely on manual variable `AMIGA` to enable the platform.
- GHA: add AmigaOS cmake and autotools (~45s) jobs.
  Also build tests and examples with cmake.
- INSTALL: update MS-DOS and AmigaOS build instructions.
- amigaos: fix `-Wpointer-sign` and
  `zero or negative size array '_args'` in `Printf()`.
- amigaos: fix `-Wpointer-sign`
- amigaos: fix `-Wredundant-decls` `errno` and `h_errno`.
- amigaos: brute-force silence `lseek()` size warnings.
- amigaos: server/resolve: silence `-Wdiscarded-qualifiers`.
- amigaos: server/resolve: fix `-Wpointer-sign`.
- amigaos: fix `CURL_SA_FAMILY_T` type.
- nonblock: prefer `HAVE_IOCTLSOCKET_CAMEL_FIONBIO` for AmigaOS.
  `ioctl` is also detected, but fails when used. Make the above override
  it for a successful build.
Authored-by: Darren Banfi
  Fixes #15537
  Closes #15603
- tftpd: prefer `HAVE_IOCTLSOCKET_CAMEL_FIONBIO` for AmigaOS.
- tftpd: tidy-up conditional code.
- curl: set stack size to 16384 for AmigaOS3/4
  Overriding the default 4096.
Suggested-by: Darren Banfi
  Ref: https://github.com/curl/curl/pull/15543#issuecomment-2498783123
  Ref: https://wiki.amigaos.net/wiki/Controlling_Application_Stack
- functypes.h: fix `SEND_QUAL_ARG2` for AmigaOS.
- tftp: add missing cast in sendto() call for AmigaOS.
- getinfo: fix warning with AmigaOS.
- tool_operate: silence warning with AmigaOS
- amigaos: fix building libtests due to missing `RLIMIT_NOFILE`.
- curl_gethostname: silence warning for AmigaOS.
- ftp: silence `-Wtype-limits` for AmigaOS.
- libtest: fix timeval initialization for AmigaOS.
- examples: fix `timeval` initialization for AmigaOS.
- examples: silence warning for AmigaOS.
- configure: fix IPv6 detection for cross-builds.
- netrc: fix to build with AmigaOS cleanly.
- buildinfo: detect and add `DOS` tag for MS-DOS builds.
- buildinfo: add `AMIGA` to buildinfo.txt in auttools.
- build: move `USE_WATT32` macro definition to cmake/configure.

Non-MS-DOS/AmigeOS-specific tidy-ups:

- configure: sync `sa_family_t` detection with cmake.
- configure: sync `ADDRESS_FAMILY` detection signals with cmake.
- doh: use `CURL_SA_FAMILY_T`.
- lib: drop mingw-specific `CURL_SA_FAMILY_T` workaround.
- cmake: extend instead of override check-specific
  configurations/requirements.
  This allows to honor global requirements added earlier.
  Necessary for AmigaOS for example.
- cmake: omit warning on disabled IPv6 for MS-DOS and AmigaOS.
  No IPv6 support on these platforms. Also sync with autotools.
- lib1960: use libcurl `inet_pton()` wrapper.
- cmake: detect LibreSSL (to match autotools).
- cmake: say the specific OpenSSL flavour detected.
- hostip: add missing `HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID` guard.
- lib: simplify classic mac feature guards.

Follow-up to a8861b6ccdd7ca35b6115588a578e36d765c9e38 #9764

Closes #15543

10 months agoINSTALL.md: sync with my brag slide "104 operating systems"
Daniel Stenberg [Mon, 16 Dec 2024 12:01:15 +0000 (13:01 +0100)] 
INSTALL.md: sync with my brag slide "104 operating systems"

Minoca, Nintendo 3DS and Maemo were missing.

Rename OS/400 to IBM I

Closes #15755

10 months agocmake: enable `CURL_USE_PKGCONFIG` for cross-`MINGW`
Viktor Szakats [Sun, 22 Sep 2024 17:58:48 +0000 (19:58 +0200)] 
cmake: enable `CURL_USE_PKGCONFIG` for cross-`MINGW`

Enable `CURL_USE_PKGCONFIG` by default for MinGW cross-builds.

Note: This may cause fallouts in certain envs where `pkg-config` picks
up native packages.

Follow-up to e1ab01d1bd13f0ec79c97ac7e19e4b8108dce270 #14658
Follow-up to c555ab469d74756b0e3a21f797237d53f9334ce3 #14575

Closes #15005

10 months agocmake: namespace functions and macros
Viktor Szakats [Wed, 6 Nov 2024 13:00:04 +0000 (14:00 +0100)] 
cmake: namespace functions and macros

Prefix (or suffix) curl-defined macro and function names with `curl`.
To avoid collisions with non-curl CMake and to make them recognizable
as curl-specific calls.

Closes #15498

10 months agocmake: clang-cl improvements
Viktor Szakats [Sat, 2 Nov 2024 20:11:28 +0000 (21:11 +0100)] 
cmake: clang-cl improvements

- drop `/clang:` prefix for `-W` options for clang-cl.
  Except for `-Wall` which gets interpreted as MSVC `/Wall`
  and translated to `-Weverything`, which is undesired.
  Related: https://github.com/llvm/llvm-project/issues/102982

- include `MSVC_VERSION` in target flags.
  Useful for clang-cl builds where this information doesn't appear
  elsewhere in the cmake configure log.

- suppress `-Wlanguage-extension-token` more for clang-cl.
  This fixes clang-cl builds with default `CURL_WERROR=OFF` and
  `PICKY_COMPILER=ON`.
  This warning is enabled by `-pedantic` as a warning and by
  `-pedantic-errors` as an error. Verifiable using llvm's
  `diagtool show-enabled -pedantic test.c`.
  Follow-up to fb711b50981e86c9dcdd6c2ba468b5d32edbcfce #15449

Closes #15478

10 months agocmake: replace `unset(VAR)` with `set(VAR "")` for init
Viktor Szakats [Wed, 6 Nov 2024 12:53:12 +0000 (13:53 +0100)] 
cmake: replace `unset(VAR)` with `set(VAR "")` for init

Also add cleanup `unset()`s where missing.

Reported-by: Kai Pastor
Bug: https://github.com/curl/curl/pull/15255#issuecomment-2458659626
Follow-up to 8b09138083640039ce35657a68eeb10b903ed0a5 #14610

Closes #15497

10 months agoGHA/codeql-analysis: install libpsl
Viktor Szakats [Mon, 16 Dec 2024 19:58:31 +0000 (20:58 +0100)] 
GHA/codeql-analysis: install libpsl

Stay with the default CMake build. It requires libpsl now, but
the latest Ubuntu runner no longer seems to provide it. Install it
manually.

Bug: https://github.com/curl/curl/pull/15464#issuecomment-2546602052
Follow-up to 7afbc39173f1dc00b99ebe3b08837d6d051672d6 #15464

Closes #15760

10 months agocmake: make libpsl required by default
Viktor Szakats [Thu, 31 Oct 2024 11:12:49 +0000 (12:12 +0100)] 
cmake: make libpsl required by default

As done earlier in `./configure`:

To force users to explictily disable it if they really don't want it
used and make it harder to accidentally miss it.

`-DCURL_USE_LIBPSL=OFF` is the option to use if PSL is not wanted.

Follow-up to 2998874bb61ac6ef3b72d6a61467cd2aaf6e53ea #12661

Closes #15464

10 months agocmake: add LDAP Find module
Viktor Szakats [Fri, 11 Oct 2024 21:40:37 +0000 (23:40 +0200)] 
cmake: add LDAP Find module

Move LDAP detection to its own Find module.

It supports `pkg-config` and the standard detection method used for
other dependencies, with version detection.

In curl CI it fixes LDAP detection in the OpenBSD job.

Closes #15273

10 months agolib: replace `inline` redefine with `CURL_INLINE` macro
Viktor Szakats [Fri, 8 Nov 2024 14:47:19 +0000 (15:47 +0100)] 
lib: replace `inline` redefine with `CURL_INLINE` macro

Instead of redefining the `inline` keyword, introduce curl's own
`CURL_INLINE` macro and set it depending on the compiler's capabilities,
or use its value set via custom C flags.

Also keep honoring a custom `inline` macro, if set.

Closes #15523

10 months agocmake: use `CMAKE_REQUIRED_LINK_DIRECTORIES`
Viktor Szakats [Sat, 12 Oct 2024 22:34:23 +0000 (00:34 +0200)] 
cmake: use `CMAKE_REQUIRED_LINK_DIRECTORIES`

Use `CMAKE_REQUIRED_LINK_DIRECTORIES` with CMake 3.31.0 and upper,
in local macro `curl_required_libpaths()`.

https://github.com/Kitware/CMake/commit/9e95bd49f278cd2a05caf21fd624a41e4bfaba60
https://gitlab.kitware.com/cmake/cmake/-/commit/9e95bd49f278cd2a05caf21fd624a41e4bfaba60
https://gitlab.kitware.com/cmake/cmake/-/merge_requests/9795
https://cmake.org/cmake/help/v3.31/module/CheckSymbolExists.html

Tested OK with cmake 3.31.0-rc1.

Follow-up to 01a81579977b3872935d508e306a735f0568d113 #15271
Follow-up to 7bab201abe3915a0167c002f9308950cb8a06e4b #15193

Closes #15280

10 months agocmake: drop redundant FOUND checks (libgsasl, libssh, libuv)
Viktor Szakats [Thu, 31 Oct 2024 11:26:37 +0000 (12:26 +0100)] 
cmake: drop redundant FOUND checks (libgsasl, libssh, libuv)

With `find_package(... REQUIRED)` the configuration fails and exits
if the package is not found. The `..._FOUND` check afterwards always
evaluates true and safe to delete.

Also true for brotli and zstd, but those are addressed differently
via #15431.

Closes #15465

10 months agocmake: improve `curl_dumpvars()` and move to `Utilities.cmake`
Viktor Szakats [Tue, 12 Nov 2024 20:37:07 +0000 (21:37 +0100)] 
cmake: improve `curl_dumpvars()` and move to `Utilities.cmake`

Also:
- dump variable types.
- show which variables are marked as advanced.
- use `IN ITEMS`.

Closes #15562

10 months agobuild: drop unused feature macros, update exception list
Viktor Szakats [Wed, 13 Nov 2024 21:38:58 +0000 (22:38 +0100)] 
build: drop unused feature macros, update exception list

- cmp-config.pl: add remaining exceptions. Sort list.

- drop unused `HAVE_SYS_WAIT_H`.
  Follow-up to 50def7c881ba560ab6e0235990e8f07fa69f4bc8 #13249

- drop unused `HAVE_FCHMOD`.
  Follow-up to 03cb1ff4d629d6110dab787c75c187626d58323d #12395

- autotools: stop promoting variables to macros:
  `USE_NGTCP2_CRYPTO_*`, `USE_NGTCP2_H3`, `USE_OPENSSL_H3`,
  `HAVE_LIBRESSL`.
  They are not used in the source.

- cmake: drop unused `HAVE_O_NONBLOCK`,
  `HAVE_DISABLED_NONBLOCKING`.

- lib: drop `NEED_MALLOC_H`.
  It was used in manual-build cases for Amiga/MS-DOS/Windows/WinCE, but
  never by autotools/cmake, thus apparently unnecessary.

- lib: drop unused `NEED_MEMORY_H`.

- lib: simplify classic mac feature guards,
  drop `HAVE_EXTRA_STRICMP_H` and `HAVE_EXTRA_STRDUP_H`.

- autotools: drop unused `HAVE_GETHOSTBYNAME` detection.

- autotools: drop unused OpenSSL feature tests:
  `HAVE_ERR_H`, `HAVE_PEM_H`, `HAVE_RSA_H`

- autotools: drop unused OpenSSL feature tests:
  `HAVE_X509_H`, `HAVE_CRYPTO_H`, `HAVE_SSL_H`.

  They performed a fallback check when the primary check missed
  `openssl/x509.h`. Though if any other prefixed headers were found,
  OpenSSL is already assumed detected.

  The fallback check was looking for 3 unprefixed OpenSSL headers, and
  if all found, marked OpenSSL found internally, but did not promote
  it to `curl_config.h` via `USE_OPENSSL`. Meaning it either didn't do
  anything or may have continued with an inconsistent state.
  Added in d99c20f62876457ca6880d706825e68f695bda18 (2008)

  At the time, there was an extra `AC_DEFINE(USE_SSLEAY, 1 ...` logic
  after this code, which kicked in in the fallback case, but that code
  was deleted in 709cf76f6bb7dbaca14e3e8df160ccfac04dcecb (2015)

  Follow-up to 709cf76f6bb7dbaca14e3e8df160ccfac04dcecb

- autotools: drop `AC_SUBST()` where the value is explicitly set anyway
  and the macro is unused.

- autotools: replace `AC_SUBST(VAR, 1)` with local variable assigments,
  where the `@VAR@` macro is unused. Also dedupe the local variable if
  there was a parallel one used for the same purpose.

- autotools: drop local feature variables that were never used.

- autotools: drop unused `CURL_CHECK_OPTION_NTLM_WB`,
  `CURL_CHECK_NTLM_WB`.
  Also stop setting unused `NTLM_WB_ENABLED` macro for VMS.
  Follow-up to 50def7c881ba560ab6e0235990e8f07fa69f4bc8 #13249

- autotools: drop unused `PKGADD_*`.
  Follow-up to bae0d473f5912d38fc8da1f9850a70b015b53c9e #3331

- autotools: drop unused `CURL_NETWORK_LIBS`.
  Follow-up to 3af75e18d691af24c4a11ee6cb1441de44b3a836 #14697

Closes #15577

10 months agoGHA: set `persist-credentials: false`
Viktor Szakats [Sat, 14 Dec 2024 23:45:04 +0000 (00:45 +0100)] 
GHA: set `persist-credentials: false`

Suggested by zizmor GHA analysis tool.

Also:
- Move GH variables within single-quotes.
- Prefer single-quotes in shell code. (tidy-up)

Ref: https://github.com/actions/checkout/issues/485
Ref: https://github.com/actions/checkout/pull/1687
Ref: https://woodruffw.github.io/zizmor/

Closes #15746

10 months agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 16 Dec 2024 09:09:22 +0000 (10:09 +0100)] 
RELEASE-NOTES: synced

10 months agovariable.md: mention --expand-variable for variables to variables
Daniel Stenberg [Sun, 15 Dec 2024 22:07:57 +0000 (23:07 +0100)] 
variable.md: mention --expand-variable for variables to variables

To assign a variable using contents from another variable.

Closes #15752

10 months agotool_getparam: fix memory leak on error in parse_ech
Hermes Zhang [Mon, 16 Dec 2024 04:55:57 +0000 (12:55 +0800)] 
tool_getparam: fix memory leak on error in parse_ech

- Free tmpcfg memory before returning an error code if aprintf failed.

Closes https://github.com/curl/curl/pull/15753

10 months agows-docs: remove the outdated texts saying ws support is experimental
Daniel Stenberg [Sun, 15 Dec 2024 14:57:13 +0000 (15:57 +0100)] 
ws-docs: remove the outdated texts saying ws support is experimental

It stopped being experimental in 8.10.0

Fixes #15749
Reported-by: Mohammed Sadiq
Closes #15751

10 months agoaltsvc: avoid integer overflow in expire calculation
Daniel Stenberg [Sat, 14 Dec 2024 22:09:16 +0000 (23:09 +0100)] 
altsvc: avoid integer overflow in expire calculation

A bad value here just makes for a bad alt-svc experience, not a security
problem.

Detected by OSS-Fuzz

Bug: https://issues.oss-fuzz.com/issues/383911309

Closes #15745

10 months agocmake/FindMbedTLS: drop lib duplicates early
Viktor Szakats [Wed, 6 Nov 2024 11:40:56 +0000 (12:40 +0100)] 
cmake/FindMbedTLS: drop lib duplicates early

When de-duplicating the list of raw libs, make sure to drop duplicates
from the beginning of the list.

Reported-by: Kai Pastor
Ref: https://github.com/curl/curl/pull/15273#pullrequestreview-2417191841
Closes #15495

10 months agovariable.md: show function use with examples
Daniel Stenberg [Sat, 14 Dec 2024 13:32:18 +0000 (14:32 +0100)] 
variable.md: show function use with examples

Closes #15743

10 months agodocs/BUGS.md: remove leading space from a link
Daniel Stenberg [Sat, 14 Dec 2024 12:31:52 +0000 (13:31 +0100)] 
docs/BUGS.md: remove leading space from a link

10 months agoscripts/mdlinkcheck: markdown link checker
Daniel Stenberg [Sat, 14 Dec 2024 12:29:10 +0000 (13:29 +0100)] 
scripts/mdlinkcheck: markdown link checker

This script parses all markdown files in the repository, extracts all
links and verifies that they work.

It makes sure to only check the URLs once, even if used in multiple
links. There is a whitelist for URLs we deem unnecessary to check.

It uses curl to do the checks.

As a bonus, this makes it easy to run this check locally.

Closes #15742

10 months agotool_getparam: fix the ECH parser
Daniel Stenberg [Sat, 14 Dec 2024 09:41:05 +0000 (10:41 +0100)] 
tool_getparam: fix the ECH parser

The pn: and ecl: prefixes were not handled correctly.

CodeSonar helped me realize as it poined out an "Unreachable Data Flow"

Closes #15741

10 months agotool_getparam: fix "Ignored Return Value"
Daniel Stenberg [Sat, 14 Dec 2024 09:34:45 +0000 (10:34 +0100)] 
tool_getparam: fix "Ignored Return Value"

Follow-up from a300879b63b

Pointed out by CodeSonar

Closes #15740

10 months agotool_operate: make --etag-compare always accept a non-existing file
Daniel Stenberg [Thu, 12 Dec 2024 22:06:19 +0000 (23:06 +0100)] 
tool_operate: make --etag-compare always accept a non-existing file

Consider it a blank etag. It allows for more use cases when the file
just might not have been created yet.

Closes #15737

10 months agoRELEASE-NOTES: synced
Daniel Stenberg [Fri, 13 Dec 2024 10:50:43 +0000 (11:50 +0100)] 
RELEASE-NOTES: synced

10 months agoGHA: pin dependencies
renovate[bot] [Wed, 11 Dec 2024 12:06:23 +0000 (12:06 +0000)] 
GHA: pin dependencies

For recently added actions in checkdocs.yml and windows.yml

Closes #15722

10 months agocurl: return error if etag options are used with multiple URLs
Daniel Stenberg [Thu, 12 Dec 2024 16:03:59 +0000 (17:03 +0100)] 
curl: return error if etag options are used with multiple URLs

And document it.

Add tests 484 and 485

Fixes #15729
Reported-by: Tamir Duberstein
Closes #15731

10 months agonetrc: restore _netrc fallback logic
Kevin Sun [Fri, 13 Dec 2024 01:35:12 +0000 (17:35 -0800)] 
netrc: restore _netrc fallback logic

Regression from 05977f4f75fd08837a877, shipped in 8.11.0

Fixes #15734
Closes #15735

10 months agochecksrc: ban use of sscanf()
Daniel Stenberg [Thu, 12 Dec 2024 15:02:01 +0000 (16:02 +0100)] 
checksrc: ban use of sscanf()

Using sscanf() is not a (security) problem in itself, but we strongly
discorage using it for parsing input since it is hard to use right, easy
to mess up and often makes for sloppy error checking.

Allow it in examples and tests

Closes #15687

10 months agostrparse: string parsing helper functions
Daniel Stenberg [Fri, 6 Dec 2024 13:31:38 +0000 (14:31 +0100)] 
strparse: string parsing helper functions

Designed to aid converting off from sscanf parsers. sscanf is hard to
use right, easy to mess up and often makes for sloppy error checking.

The new parsers allow more exact and pedandic parsing.

This new set of functions should be possible to use (and extend) and
switch over other libcurl parser code to use going forward.

Adapts the following to use the new functions:

- altsvc.c
- hsts.c
- http_aws_sigv4.c

Bonus: fewer memory copies, fewer stack buffers.

Test: Unit test1664

Docs: docs/internals/STRPARSE.md

Closes #15692

10 months agoasync-thread: avoid closing eventfd twice
Andy Pan [Thu, 12 Dec 2024 12:48:56 +0000 (12:48 +0000)] 
async-thread: avoid closing eventfd twice

When employing eventfd for socketpair, there is only one file
descriptor. Closing that fd twice might result in fd corruption.
Thus, we should avoid closing the eventfd twice, following the
pattern in lib/multi.c.

Fixes #15725
Closes #15727
Reported-by: Christian Heusel
10 months agotests/http/clients: use proper sleep() call on NonStop
Randall S. Becker [Tue, 10 Dec 2024 20:02:00 +0000 (20:02 +0000)] 
tests/http/clients: use proper sleep() call on NonStop

This fix impacts ws-data.c and ws-pingpong.c. sleep() replaced with
system PROCESS_DELAY_() having the same resolution as usleep().

Fixes #15711
Closes #15712

Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
10 months agosystem.h: add 64-bit curl_off_t definitions for NonStop
Randall S. Becker [Wed, 11 Dec 2024 15:01:48 +0000 (15:01 +0000)] 
system.h: add 64-bit curl_off_t definitions for NonStop

Fixes #15723
Closes #15724

Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
10 months agosectransp: free certificate on error
Christian Schmitz [Wed, 11 Dec 2024 10:48:20 +0000 (11:48 +0100)] 
sectransp: free certificate on error

Otherwise the certificate memory was leaked.

Closes #15721

10 months agoconncache: result_cb comment removed from function docs
Christian Schmitz [Wed, 11 Dec 2024 10:41:27 +0000 (11:41 +0100)] 
conncache: result_cb comment removed from function docs

result_cb doesn't exist anymore

Closes #15720

10 months agoGHA/checkdocs: change markdown link checker to linkspector
Daniel Stenberg [Wed, 11 Dec 2024 10:26:13 +0000 (11:26 +0100)] 
GHA/checkdocs: change markdown link checker to linkspector

Fixes #15717
Closes #15719

10 months agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 11 Dec 2024 10:16:48 +0000 (11:16 +0100)] 
RELEASE-NOTES: synced

Start working on the next release

10 months agoRELEASE-PROCEDURE.md: mention how to publish security advisories
Daniel Stenberg [Wed, 11 Dec 2024 07:40:39 +0000 (08:40 +0100)] 
RELEASE-PROCEDURE.md: mention how to publish security advisories

As they are releated to the release procedure

Closes #15714

10 months agocookie: parse only the exact expire date
Daniel Stenberg [Tue, 10 Dec 2024 11:39:57 +0000 (12:39 +0100)] 
cookie: parse only the exact expire date

The date parser function is very forgiving and skips most "irrelevant"
characters in its hunt for a date to figure out. Therefore it is
important to make sure the date string is properly null terminated so
that it does not accidentally parse a piece of whatever text follows
after the date.

Add test483: test (overly) long expire dates in cookies

Closes #15709

10 months agolib517: extend the getdate test with quotes and leading "junk"
Daniel Stenberg [Tue, 10 Dec 2024 10:18:04 +0000 (11:18 +0100)] 
lib517: extend the getdate test with quotes and leading "junk"

Closes #15708

10 months agoRELEASE: synced curl-8_11_1
Daniel Stenberg [Wed, 11 Dec 2024 07:05:13 +0000 (08:05 +0100)] 
RELEASE: synced

curl 8.11.1 release

10 months agoTHANKS: contributors from 8.11.1
Daniel Stenberg [Wed, 11 Dec 2024 07:05:13 +0000 (08:05 +0100)] 
THANKS: contributors from 8.11.1

11 months agobuild: fix tests when documentation/manual is disabled
Viktor Szakats [Mon, 9 Dec 2024 00:57:32 +0000 (01:57 +0100)] 
build: fix tests when documentation/manual is disabled

- build: fix to exclude 'documentation' tests when building
  the documentation is explicitly disabled. Both for cmake
  and `./configure`.

Reported-by: Daniel Engberg
  Fixes #15703

- test481, test482: fix for builds with no manual.

Reported-by: Daniel Engberg
  Fixes #15703

- configure: fix to always detect Perl. Running tests require
  it when run. Before this patch Perl wasn't detected when
  documentation/manual/embedded-CA were all disabled,
  making tests fail to start.

- test1177: add keyword `documentation`. It depends no
  `curl_version_info.3`.

- GHA/linux: test cmake and `./configure` with docs and
  manual disabled and tests run.

Closes #15704

11 months agoGHA: update four depencencies
renovate[bot] [Tue, 3 Dec 2024 14:02:51 +0000 (14:02 +0000)] 
GHA: update four depencencies

- github/codeql-action digest to aa57810
- cross-platform-actions/action action to v0.26.0
- actions/cache digest to 1bd1e32
- msys2/setup-msys2 digest to d44ca8e

Closes #15674
Closes #15686
Closes #15696
Closes #15702

11 months agodocs: bring back ALTSVC.md and HSTS.md
Daniel Stenberg [Mon, 9 Dec 2024 07:52:01 +0000 (08:52 +0100)] 
docs: bring back ALTSVC.md and HSTS.md

This partly reverts 0e06603b2318356ba78b2f

These file formats are not properly documented elsewhere, plus the
website uses these files to populate the documentation pages to which
users end up via the URLs that are mentioned within the alt-svc and hsts
files.

Fixes #15705
Reported-by: Jeffrey Bosboom
Closes #15706

11 months agotest2086: disable MSYS2's POSIX path conversion
Marcel Raad [Wed, 4 Dec 2024 00:12:50 +0000 (01:12 +0100)] 
test2086: disable MSYS2's POSIX path conversion

Older MSYS2 versions treat the URL as paths list and convert them from
UNIX to Windows format. There's no path here that needs to be
converted, so disable path conversion for this test as done for others.

Fixes https://github.com/curl/curl/pull/15644#issuecomment-2511313206
Closes https://github.com/curl/curl/pull/15677

11 months agomprintf: fix the integer overflow checks
Daniel Stenberg [Fri, 6 Dec 2024 15:01:50 +0000 (16:01 +0100)] 
mprintf: fix the integer overflow checks

When a floating point precision or string width are provided as a
base-10 number, the code could miss to detect integer overflows if the
provided value was exactly 2147483648 or 2147483649 (2147483647 being
the maxium value a signed integer can hold).

The chance that such values would actually ever be used is slim.

This change fixes the detection to also cover those edge cases.

Closes #15699

11 months agoRELEASE-NOTES: synced
Daniel Stenberg [Fri, 6 Dec 2024 08:24:45 +0000 (09:24 +0100)] 
RELEASE-NOTES: synced

11 months agotool_getparam: remove Redundant Condition
Daniel Stenberg [Fri, 6 Dec 2024 06:48:11 +0000 (07:48 +0100)] 
tool_getparam: remove Redundant Condition

Pointed out by CodeSonar

Closes #15698

11 months agohostip: don't use the resolver for FQDN localhost
Jay Satiro [Tue, 3 Dec 2024 20:56:07 +0000 (15:56 -0500)] 
hostip: don't use the resolver for FQDN localhost

- Treat `[<any>.]localhost.` (ie localhost with FQDN period terminator)
  as fixed value 127.0.0.1 and ::1 instead of querying the resolver.

Prior to this change, b5c0fe20 (precedes 7.85.0) did the same for
non-FQDN `<any>.localhost`.

Prior to this change, 1a0ebf66 (precedes 7.78.0) did the same for
non-FQDN `localhost`.

Ref: https://github.com/curl/curl/issues/15628#issuecomment-2515540315

Closes https://github.com/curl/curl/pull/15676

11 months agohttp_negotiate: allow for a one byte larger channel binding buffer
Daniel Stenberg [Thu, 5 Dec 2024 17:24:45 +0000 (18:24 +0100)] 
http_negotiate: allow for a one byte larger channel binding buffer

The channel binding data dynbuf was not set correctly making it fail with
CURLE_TOO_LARGE too easily.

Reported-by: galen11 on github
Fixes #15685
Closes #15694

11 months agocmake: set `CURL_STATICLIB` for static lib when `SHARE_LIB_OBJECT=OFF`
chemodax [Thu, 5 Dec 2024 16:52:12 +0000 (17:52 +0100)] 
cmake: set `CURL_STATICLIB` for static lib when `SHARE_LIB_OBJECT=OFF`

When compiled with BUILD_STATIC_LIBS=ON and SHARE_LIB_OBJECT=OFF compile
definition CURL_STATICLIB was not set for static library. It seems to be
copy-paste error in the lib/CMakeLists.txt.

This pull request fixes it.

Closes #15695

11 months agomime: fix reader stall on small read lengths
Stefan Eissing [Thu, 5 Dec 2024 11:37:38 +0000 (12:37 +0100)] 
mime: fix reader stall on small read lengths

The base64 mime encoder stalls when it cannot encode a full 3 byte input
set into the read buffer. The workaround for this limitation was
incomplete and could lead to stalled transfers when the last chunk to
upload was smaller than 4 bytes.

Use a tmp buffer on small reads to allow mime encoders more space to put
their things.

Add test case reproducing the issue and fix.

Reported-by: Alexis Savin
Fixes #15688
Closes #15691

11 months agodmaketgz: use --no-cache when building docker image
andrewkirillov-ibm [Thu, 5 Dec 2024 10:48:50 +0000 (10:48 +0000)] 
dmaketgz: use --no-cache when building docker image

Fixes #15689
Closes #15690

11 months agotool_getparam: parse --localport without using sscanf
Daniel Stenberg [Wed, 4 Dec 2024 10:53:21 +0000 (11:53 +0100)] 
tool_getparam: parse --localport without using sscanf

and switch to str2unummax() for the number parsings

Closes #15681

11 months agotool_formparse: remove use of sscanf()
Daniel Stenberg [Wed, 4 Dec 2024 12:59:52 +0000 (13:59 +0100)] 
tool_formparse: remove use of sscanf()

In the function for handling 'type=' in the -F command line arguments,
we make the code more lax to accept more strings and thereby also avoid
the use of sscanf().

Closes #15683

11 months agotool_urlglob: parse character globbing range without sscanf
Daniel Stenberg [Wed, 4 Dec 2024 12:45:21 +0000 (13:45 +0100)] 
tool_urlglob: parse character globbing range without sscanf

A step towards a future without sscanf() calls.

Closes #15682

11 months agodigest: produce a shorter cnonce in Digest headers
Daniel Stenberg [Tue, 3 Dec 2024 06:52:48 +0000 (07:52 +0100)] 
digest: produce a shorter cnonce in Digest headers

Other programs (Postman, Chrome, Python request) use a 16 byte cnonce
and there are instances of server-side implementations that don't
support the larger lengths curl used previously.

Fixes #15653
Reported-by: Florian Eckert
Closes #15670

11 months agocurl: do more command line parsing in sub functions
Daniel Stenberg [Wed, 4 Dec 2024 09:23:47 +0000 (10:23 +0100)] 
curl: do more command line parsing in sub functions

This moves argument parsing logic for a number of options into sub
functions to reduce the overall complexity of the single getparameter()
function. pmccabe says it takes complexity down from 234 to 147.

The command line options that now has dedicated parser funtions are:

 --continue-at, --ech, --header, --localport, --output, --quote, --range
 --remote-name, --time-cond, --upload-file, --url, --verbose, --writeout

These parsers were selected for thise because they had more than 15
lines of logic in the main switch(). Detected like this:

 git grep -hn 'case C_' tool_getparam.c |
  cut -d: -f1 |
  awk '{if(($1 - prev) > 15) { printf "%d\n", prev;} prev = $1;}'

Closes #15680

11 months agoopenssl: remove three "Useless Assignments"
Daniel Stenberg [Wed, 4 Dec 2024 06:17:43 +0000 (07:17 +0100)] 
openssl: remove three "Useless Assignments"

Pointed out by CodeSonar

Closes #15679

11 months agoliub: fixes for wolfSSL OPENSSL_COEXIST
Daniel Pouzzner [Tue, 3 Dec 2024 14:57:58 +0000 (08:57 -0600)] 
liub: fixes for wolfSSL OPENSSL_COEXIST

For MD4, MD5, and DES

Assisted-by: Viktor Szakats
Closes #15650

11 months agoKNOWN_BUGS: setting a disabled option should return CURLE_NOT_BUILT_IN
Daniel Stenberg [Tue, 3 Dec 2024 16:15:06 +0000 (17:15 +0100)] 
KNOWN_BUGS: setting a disabled option should return CURLE_NOT_BUILT_IN

Reported-by: Jeroen Ooms
Closes #15472
Closes #15675

11 months agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 3 Dec 2024 16:21:42 +0000 (17:21 +0100)] 
RELEASE-NOTES: synced

11 months agohttp_proxy: move dynhds_add_custom here from http.c
Daniel Stenberg [Tue, 3 Dec 2024 12:24:38 +0000 (13:24 +0100)] 
http_proxy: move dynhds_add_custom here from http.c

... and make it static. As it is not used anywhere else.

Closes #15672

11 months agoopenssl: stop using SSL_CTX_ function prefix for our functions
Daniel Stenberg [Tue, 3 Dec 2024 12:42:36 +0000 (13:42 +0100)] 
openssl: stop using SSL_CTX_ function prefix for our functions

It is a prefix already taken and is used by OpenSSL

Closes #15673

11 months agoDockerfile: Update debian:bookworm-slim Docker digest to b73bf02
renovate[bot] [Tue, 3 Dec 2024 07:48:02 +0000 (07:48 +0000)] 
Dockerfile: Update debian:bookworm-slim Docker digest to b73bf02

Closes #15671

11 months agoCI: update dependencies
renovate[bot] [Mon, 25 Nov 2024 15:18:48 +0000 (15:18 +0000)] 
CI: update dependencies

- ngtcp2/ngtcp2 to v1.9.1
- github/codeql-action digest to f09c1c0
- rustls/rustls-ffi to v0.14.1
- awslabs/aws-lc to v1.40.0

Closes #15616
Closes #15619
Closes #15629
Closes #15651

11 months agolibssh: use libssh sftp_aio to upload file
xiaofeng [Fri, 22 Nov 2024 07:02:00 +0000 (15:02 +0800)] 
libssh: use libssh sftp_aio to upload file

Support async sftp upload for curl built with libssh.

Closes #15625

11 months agocurl: --continue-at is mutually exclusive with --remove-on-error
Daniel Stenberg [Mon, 2 Dec 2024 13:12:29 +0000 (14:12 +0100)] 
curl: --continue-at is mutually exclusive with --remove-on-error

Test 482 verifies

Fixes #15645
Reported-by: Harry Sintonen
Closes #15668

11 months agocurl: --continue-at is mutually exclusive with --no-clobber
Daniel Stenberg [Mon, 2 Dec 2024 13:07:45 +0000 (14:07 +0100)] 
curl: --continue-at is mutually exclusive with --no-clobber

Test 481 verifies

Fixes #15645
Reported-by: Harry Sintonen
Closes #15668

11 months agocurl: use realtime in trace timestamps
Stefan Eissing [Tue, 26 Nov 2024 10:18:06 +0000 (11:18 +0100)] 
curl: use realtime in trace timestamps

Timestamps in trace logs used a mix of realtime and monotonic time
sources, leading to fractional seconds carrying wrong values. Use
realtime only, so the correct nanoseconds are printed.

Fixes #15614
Reported-by: jethrogb on github
Closes #15641

11 months agoOpenSSL: improvde error message on expired certificate
Stefan Eissing [Tue, 19 Nov 2024 13:44:02 +0000 (14:44 +0100)] 
OpenSSL: improvde error message on expired certificate

Fix regression that no longer printed the error messages about expired
certificates in openssl. Add test case for openssl/gnutls/wolfssl.

Fixes #15612
Reported-by: hiimmat on github
Closes #15613