runtests: fold timing details with GHA, sync `-r` tflags- move timing details into a foldable group when run in GitHub Actions.
Spec:
https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#grouping-log-lines
- enable `-r` (run time stats) option in autotools' `test-ci` target,
syncing it with cmake.
Closes #14284
os400: workaround an IBM ASCII run-time library bugIBM-provided ASCII function puts() does not output an expected trailing
newline: emulate the correct behavior using other functions.
Closes #14281
transfer: speed limiting fix for 32bit systemsWhen checking if a speed limit on receives applies, compare the receive
sizes using the large int type to prevent an overflow on systems where
size_t is 32bit.
Fixes #14272
Reported-by: Mamoru Tasaka
Closes #14277
RELEASE-PROCEDURE.md: restore next release datePointed-out-by: extrimexxx on github
Bug: https://github.com/curl/curl/pull/14267#issuecomment-2247062235
RELEASE-PROCEDURE.md: remove the initial build stepBecause it is no longer needed to be done by a person as the dmaketgz
script does it by itself.
Removed two past release dates, added two new future ones
Closes #14267
conncache: connection shutdown, multi_socket handling- implement the socket hash user/reader/writer processing also
for connections that are being shut down by the connection cache.
- split out handling of current vs. last pollset socket event handling
into a function available in other code parts
- add `shutdown_poll` pollset to `connectdata` struct so that changes
in the pollset can be recorded during shutdown. (The internal handle
cann...
tool_cb_prg: output "flying saucers" with leading carriage returnBecause that is how the progress-bar is output, so when the progress-bar
has been shown at least once and the information is reset, like for a
redirect, there might be a moment where the size goes from known to
unknown and then the flying saucerts are shown after a brief display of
the progress-bar.
It could previously cause accidental character leftovers on the right
side of the bar when usin...
lib: Curl_posttransfer => multi_posttransferMoved from transfer.c to multi.c as it was only used within multi.c
Made a void, as it returned a fixed return code nothing checked.
Closes #14240
CURLOPT_SSL_VERIFYHOST.md: refreshMove mentions of old behavior to the HISTORY section to make it easier
to read about modern behavior.
Added a MATCHING section.
Closes #14241
md4: fix compilation with OpenSSL 1.x with md4 disabledIf OpenSSL 1.x is used, and it is configured with md4 disabled,
OPENSSL_NO_MD4 is defined in opensslconf.h, but this header was not
included before checking for this define.
Later in md4.c, openssl/md4.h is included, and it includes that header
indirectly, leading to inconsistency within md4.c.
Since the md4.h branch was taken, wincrypt.h (or others) is not
included, and later below the USE_W...
mbedtls: check version before getting tls versionmbedtls_ssl_get_version_number() was added in mbedtls 3.2.0. Check for
that version before using it.
Closes #14228
curldown: fixups- make DEFAULT sections less repetitive
- make historic mentions use HISTORY
- generate the protocols section on `# %PROTOCOLS%` instead of guessing
where to put it
- generate the availability section on `# %AVAILABILITY%` instead of
guessing where to put it
- make the protocols section more verbose
Closes #14227
GHA/macos: improve, fix gcc/llvm, add new test matrixThis PR began as an attempt to drop GCC support, after repeated reports
on fallouts when trying to use it on macOS.
Then it transformed into a 3-week project turning up the issues causing
the fallouts, ending up including llvm and all available Xcode / macOS
SDK, macOS runner image, build tools and compiler vendors and versions.
Accumulating 400 sub-commits.
I developed and tested all fixes u...
Revert "GHA/macos: improve, fix gcc/llvm, add new test matrix"This reverts commit 1e75edd372868048c9f805ac4ca6d2cb5a88ff5a.
Due to some parts of the commit message missing (my bad.)
GHA/macos: improve, fix gcc/llvm, add new test matrixThis PR began as an attempt to drop GCC support, after repeated reports
on fallouts when trying to use it on macOS.
Then it transformed into a 3-week project turning up the issues causing
the fallouts, ending up including llvm and all available Xcode / macOS
SDK, macOS runner image, build tools and compiler vendors and versions.
Accumulating 400 sub-commits.
I developed and tested all fixes u...
lib: send eos flagAdds a `bool eos` flag to send methods to indicate that the data is the
last chunk the invovled transfer wants to send to the server.
This will help protocol filters like HTTP/2 and 3 to forward the
stream's EOF flag and also allow to EAGAIN such calls when buffers are
not yet fully flushed.
Closes #14220
curldown: make 'added-in:' a mandatory header field- generate AVAILABILITY manpage sections automatically - for consistent
wording
- allows us to double-check against other documumentation (symbols-in-versions
etc)
- enables proper automation/scripting based on this data
- lots of them were wrong or missing in the manpages
- several of them repeated (sometimes mismatching) backend support info
Add test 1488 to verify "added-in" version...
doh: fix cleanupWhen removing an easy handle that had DoH sub-easy handles going, those
were not removed from the multi handle. Their memory was reclaimed on
curl_easy_cleanup() of the owning handle, but multi still had them in
their list.
Add `Curl_doh_close()` and `Curl_doh_cleanup()` as common point for
handling the DoH resource management. Use the `multi` present in the doh
handles (if so), for removal, a...
http/3: resume upload on ack if we have more data to sendCurrently we're waiting for sendbuf_len_in_flight to hit zero before
resuming upload which means we're blocking and waiting for _all_ acks to
arrive before sending more data. This causes significant delays especially
when ack delay is used on the server side.
The fix addresses several issues in h3 over ngtcp2:
- On ack we now call nghttp3_conn_resume_stream() when we have more
data to se...
pytests: scorecard upload tests- add upload tests to scorecard, invoke with
> python3 tests/http/scorecard.py -u h1|h2|h3
- add a reverse proxy setup from Caddy to httpd for
upload tests since Caddy does not have other PUT/POST handling
- add caddy tests in test_08 for POST/PUT
- increase read buffer in mod_curltest for larger reads
Closes #14208
runtests: show name and keywords for failed tests in summaryUseful to see what the numbers listed in the `TESTFAIL:` and `IGNORED:`
lines mean. Also list test keywords to help catching failure patterns.
Example:
```
FAIL 1034: 'HTTP over proxy with malformatted IDN host name' HTTP, HTTP GET, HTTP proxy, IDN, FAILURE, config file
FAIL 1035: 'HTTP over proxy with too long IDN host name' HTTP, HTTP GET, HTTP proxy, IDN, FAILURE
TESTFAIL: These test cases...
GHA/windows: add MSVC wolfSSL job with testFix the file of wolfssl.c because of this warning/error:
```
curl\lib\vtls\wolfssl.c(1017,42): error C2220: the following warning is treated as an error [curl\bld\lib\libcurl_object.vcxproj]
curl\lib\vtls\wolfssl.c(1017,42): warning C4267: 'function': conversion from 'size_t' to 'unsigned long', possible loss of data [curl\bld\lib\libcurl_object.vcxproj]
```
`size_t` in MSVC is different. Chan...
cmake: delete unused `HAVE_LIBSSH2`, `HAVE_LIBSOCKET` macros- `HAVE_LIBSSH2`: unused in source. Not defined in CMake.
- `HAVE_LIBSOCKET`: unused in source. Used internally in CMake.
autotools sets them implicitly, so add them to the flag comparison
ignore-list.
Closes #14178
cmake: create `configurehelp.pm` like autotools doesRequired by tests 1119 and 1167 to run a C preprocessor.
Tested OK: https://github.com/curl/curl/actions/runs/9915343826
Besides Apple, it also supports any gcc and clang builds, and MSVC.
For other platforms, it defaults to `cpp` (like autotools).
Follow-up to efc2c5184d008fe2e5910fd03263e1ab0331d4e6 #14124
Cherry-picked from #14097
Closes #14129
cmake: sync CA bundle/path detection with autotools- skip the entire CA logic if no selected TLS backend support CA
certs/bundles.
Follow-up to 082bb41311a832ae1b83bb8fe1dfdefcf4e68ea5 #2545
- sync bundle path detection logic with `./configure`.
- fix to not auto-detect CA bundle/path on Windows.
- fix to reflect that BearSSL has CA bundle support.
- show the detected bundle path (as with the cert bundle).
- tidy up CMake syntax, fix t...