8984 lines
240 KiB
Plaintext
8984 lines
240 KiB
Plaintext
|
_ _ ____ _
|
|||
|
___| | | | _ \| |
|
|||
|
/ __| | | | |_) | |
|
|||
|
| (__| |_| | _ <| |___
|
|||
|
\___|\___/|_| \_\_____|
|
|||
|
|
|||
|
Changelog
|
|||
|
|
|||
|
Version 8.3.0 (13 Sep 2023)
|
|||
|
|
|||
|
Daniel Stenberg (13 Sep 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: syn ced
|
|||
|
|
|||
|
curl 8.3.0 release
|
|||
|
|
|||
|
- THANKS: contributors from 8.3.0
|
|||
|
|
|||
|
Thorsten Klein (12 Sep 2023)
|
|||
|
|
|||
|
- cmake: set SIZEOF_LONG_LONG in curl_config.h
|
|||
|
|
|||
|
in order to support 32bit builds regarding wolfssl CTC_SETTINGS
|
|||
|
|
|||
|
Closes #11839
|
|||
|
|
|||
|
Jay Satiro (12 Sep 2023)
|
|||
|
|
|||
|
- curl_ngtcp2: fix error message
|
|||
|
|
|||
|
- http_aws_sigv4: handle no-value user header entries
|
|||
|
|
|||
|
- Handle user headers in format 'name:' and 'name;' with no value.
|
|||
|
|
|||
|
The former is used when the user wants to remove an internal libcurl
|
|||
|
header and the latter is used when the user actually wants to send a
|
|||
|
no-value header in the format 'name:' (note the semi-colon is converted
|
|||
|
by libcurl to a colon).
|
|||
|
|
|||
|
Prior to this change the AWS header import code did not special case
|
|||
|
either of those and the generated AWS SignedHeaders would be incorrect.
|
|||
|
|
|||
|
Reported-by: apparentorder@users.noreply.github.com
|
|||
|
|
|||
|
Ref: https://curl.se/docs/manpage.html#-H
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/11664
|
|||
|
Closes https://github.com/curl/curl/pull/11668
|
|||
|
|
|||
|
Dan Fandrich (11 Sep 2023)
|
|||
|
|
|||
|
- CI: run pytest with the -v option
|
|||
|
|
|||
|
This lists of the test cases being run so it can be tracked over time.
|
|||
|
|
|||
|
Closes #11824
|
|||
|
|
|||
|
Daniel Stenberg (11 Sep 2023)
|
|||
|
|
|||
|
- HTTP3: the msquic backend is not functional
|
|||
|
|
|||
|
I ask that we do not submit bugs for this backend just yet as we know it
|
|||
|
does not fully work.
|
|||
|
|
|||
|
Closes #11831
|
|||
|
Closes #11819
|
|||
|
|
|||
|
- aws_sigv4: the query canon code miscounted URL encoded input
|
|||
|
|
|||
|
Added some extra ampersands to test 439 to verify "blank" query parts
|
|||
|
|
|||
|
Follow-up to fc76a24c53b08cdf
|
|||
|
|
|||
|
Closes #11829
|
|||
|
|
|||
|
vvb2060 (11 Sep 2023)
|
|||
|
|
|||
|
- quic: don't set SNI if hostname is an IP address
|
|||
|
|
|||
|
We already do this for TLS connections.
|
|||
|
|
|||
|
RFC 6066 says: Literal IPv4 and IPv6 addresses are not permitted in
|
|||
|
"HostName".
|
|||
|
|
|||
|
Ref: https://www.rfc-editor.org/rfc/rfc6066#section-3
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/11827
|
|||
|
Closes https://github.com/curl/curl/pull/11828
|
|||
|
|
|||
|
Daniel Stenberg (10 Sep 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Benoit Pierre (10 Sep 2023)
|
|||
|
|
|||
|
- configure: fix `HAVE_TIME_T_UNSIGNED` check
|
|||
|
|
|||
|
The syntax was incorrect (need a proper main body), and the test
|
|||
|
condition was wrong (resulting in a signed `time_t` detected as
|
|||
|
unsigned).
|
|||
|
|
|||
|
Closes #11825
|
|||
|
|
|||
|
Daniel Stenberg (9 Sep 2023)
|
|||
|
|
|||
|
- THANKS-filter: pszlazak on github
|
|||
|
|
|||
|
pszlazak (9 Sep 2023)
|
|||
|
|
|||
|
- include.d: explain headers not printed with --fail before 7.75.0
|
|||
|
|
|||
|
Prior to 7.75.0 response headers were not printed if -f/--fail was used
|
|||
|
and an error was reported by server. This was fixed in ab525c0
|
|||
|
(precedes 7.75.0).
|
|||
|
|
|||
|
Closes #11822
|
|||
|
|
|||
|
Daniel Stenberg (8 Sep 2023)
|
|||
|
|
|||
|
- http_aws_sigv4: skip the op if the query pair is zero bytes
|
|||
|
|
|||
|
Follow-up to fc76a24c53b08cdf
|
|||
|
|
|||
|
Spotted by OSS-Fuzz
|
|||
|
|
|||
|
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62175
|
|||
|
Closes #11823
|
|||
|
|
|||
|
- cmdline-docs: use present tense, not future
|
|||
|
|
|||
|
+ some smaller cleanups
|
|||
|
|
|||
|
Closes #11821
|
|||
|
|
|||
|
- cmdline-docs: make sure to phrase it as "added in ...."
|
|||
|
|
|||
|
References to things that were added or changed in a specific version
|
|||
|
should be specified as "(added in [version]) for two reasons:
|
|||
|
|
|||
|
1 - consistency
|
|||
|
|
|||
|
2 - to allow gen.pl to strip them out if deemed referring to too old
|
|||
|
versions
|
|||
|
|
|||
|
Closes #11821
|
|||
|
|
|||
|
Jay Satiro (8 Sep 2023)
|
|||
|
|
|||
|
- docs: mark --ssl-revoke-best-effort as Schannel specific
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11760
|
|||
|
|
|||
|
Nathan Moinvaziri (8 Sep 2023)
|
|||
|
|
|||
|
- schannel: fix ordering of cert chain info
|
|||
|
|
|||
|
- Use CERT_CONTEXT's pbCertEncoded to determine chain order.
|
|||
|
|
|||
|
CERT_CONTEXT from SECPKG_ATTR_REMOTE_CERT_CONTEXT contains
|
|||
|
end-entity/server certificate in pbCertEncoded. We can use this pointer
|
|||
|
to determine the order of certificates when enumerating hCertStore using
|
|||
|
CertEnumCertificatesInStore.
|
|||
|
|
|||
|
This change is to help ensure that the ordering of the certificate chain
|
|||
|
requested by the user via CURLINFO_CERTINFO has the same ordering on all
|
|||
|
versions of Windows.
|
|||
|
|
|||
|
Prior to this change Schannel certificate order was reversed in 8986df80
|
|||
|
but that was later reverted in f540a39b when it was discovered that
|
|||
|
Windows 11 22H2 does the reversal on its own.
|
|||
|
|
|||
|
Ref: https://github.com/curl/curl/issues/9706
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11632
|
|||
|
|
|||
|
Chris Talbot (8 Sep 2023)
|
|||
|
|
|||
|
- digest: Use hostname to generate spn instead of realm
|
|||
|
|
|||
|
In https://www.rfc-editor.org/rfc/rfc2831#section-2.1.2
|
|||
|
|
|||
|
digest-uri-value should be serv-type "/" host , where host is:
|
|||
|
|
|||
|
The DNS host name or IP address for the service requested. The
|
|||
|
DNS host name must be the fully-qualified canonical name of the
|
|||
|
host. The DNS host name is the preferred form; see notes on server
|
|||
|
processing of the digest-uri.
|
|||
|
|
|||
|
Realm may not be the host, so we must specify the host explicitly.
|
|||
|
|
|||
|
Note this change only affects the non-SSPI digest code. The digest code
|
|||
|
used by SSPI builds already uses the hostname to generate the spn.
|
|||
|
|
|||
|
Ref: https://github.com/curl/curl/issues/11369
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11395
|
|||
|
|
|||
|
Daniel Stenberg (7 Sep 2023)
|
|||
|
|
|||
|
- docs: remove use of the word 'very'
|
|||
|
|
|||
|
It is mostly superfluous. proselint would complain.
|
|||
|
|
|||
|
Closes #11818
|
|||
|
|
|||
|
- curl_multi_remove_handle.3: clarify what happens with connection
|
|||
|
|
|||
|
Closes #11817
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- test439: verify query canonization for aws-sigv4
|
|||
|
|
|||
|
- tool_operate: make aws-sigv4 not require TLS to be used
|
|||
|
|
|||
|
Maybe not used too often, but we want it for testing and it should work.
|
|||
|
|
|||
|
- http_aws_sigv4: canonicalize the query
|
|||
|
|
|||
|
Percent encoding needs to be done using uppercase, and most
|
|||
|
non-alphanumerical must be percent-encoded.
|
|||
|
|
|||
|
Fixes #11794
|
|||
|
Reported-by: John Walker
|
|||
|
Closes #11806
|
|||
|
|
|||
|
Wyatt O'Day (7 Sep 2023)
|
|||
|
|
|||
|
- lib: add ability to disable auths individually
|
|||
|
|
|||
|
Both with configure and cmake
|
|||
|
|
|||
|
Closes #11490
|
|||
|
|
|||
|
Stefan Eissing (7 Sep 2023)
|
|||
|
|
|||
|
- ngtcp2: fix handling of large requests
|
|||
|
|
|||
|
- requests >64K are send in parts to the filter
|
|||
|
- fix parsing of the request to assemble it correctly
|
|||
|
from several sends
|
|||
|
- open a QUIC stream only when the complete request has
|
|||
|
been collected
|
|||
|
|
|||
|
Closes #11815
|
|||
|
|
|||
|
- openssl: when CURLOPT_SSL_CTX_FUNCTION is registered, init x509 store before
|
|||
|
|
|||
|
- we delay loading the x509 store to shorten the handshake time.
|
|||
|
However an application callback installed via CURLOPT_SSL_CTX_FUNCTION
|
|||
|
may need to have the store loaded and try to manipulate it.
|
|||
|
- load the x509 store before invoking the app callback
|
|||
|
|
|||
|
Fixes #11800
|
|||
|
Reported-by: guoxinvmware on github
|
|||
|
Cloes #11805
|
|||
|
|
|||
|
Daniel Stenberg (7 Sep 2023)
|
|||
|
|
|||
|
- krb5: fix "implicit conversion loses integer precision" warnings
|
|||
|
|
|||
|
conversions to/from enum and unsigned chars
|
|||
|
|
|||
|
Closes #11814
|
|||
|
|
|||
|
Stefan Eissing (7 Sep 2023)
|
|||
|
|
|||
|
- pytest: improvements
|
|||
|
|
|||
|
- set CURL_CI for pytest runs in CI environments
|
|||
|
- exclude timing sensitive tests from CI runs
|
|||
|
- for failed results, list only the log and stat of
|
|||
|
the failed transfer
|
|||
|
|
|||
|
- fix type in http.c comment
|
|||
|
|
|||
|
Closes #11812
|
|||
|
|
|||
|
- CI: move on to ngtcp2 v0.19.1
|
|||
|
|
|||
|
Closes #11809
|
|||
|
|
|||
|
Dan Fandrich (5 Sep 2023)
|
|||
|
|
|||
|
- CI: run Circle macOS builds on x86 for now
|
|||
|
|
|||
|
The ARM machines aren't ready for us and requesting them now causes
|
|||
|
warnings e-mails to be sent to some PR pushers.
|
|||
|
|
|||
|
Ref: #11771
|
|||
|
|
|||
|
Viktor Szakats (5 Sep 2023)
|
|||
|
|
|||
|
- http3: adjust cast for ngtcp2 v0.19.0
|
|||
|
|
|||
|
ngtcp2 v0.19.0 made size of `ecn` member of `ngtcp2_pkt_info`
|
|||
|
an `uint8_t` (was: `uint32_t`). Adjust our local cast accordingly.
|
|||
|
|
|||
|
Fixes:
|
|||
|
```
|
|||
|
./curl/lib/vquic/curl_ngtcp2.c:1912:12: warning: implicit conversion loses in
|
|||
|
teger precision: 'uint32_t' (aka 'unsigned int') to 'uint8_t' (aka 'unsigned
|
|||
|
char') [-Wimplicit-int-conversion]
|
|||
|
pi.ecn = (uint32_t)ecn;
|
|||
|
~ ^~~~~~~~~~~~~
|
|||
|
```
|
|||
|
|
|||
|
Also bump ngtcp2, nghttp3 and nghttp2 to their latest versions in our
|
|||
|
docs and CI.
|
|||
|
|
|||
|
Ref: https://github.com/ngtcp2/ngtcp2/commit/80447281bbc94af53f8aa7a4cfc19175
|
|||
|
782894a3
|
|||
|
Ref: https://github.com/ngtcp2/ngtcp2/pull/877
|
|||
|
Closes #11798
|
|||
|
|
|||
|
Stefan Eissing (5 Sep 2023)
|
|||
|
|
|||
|
- http: fix sending of large requests
|
|||
|
|
|||
|
- refs #11342 where errors with git https interactions
|
|||
|
were observed
|
|||
|
- problem was caused by 1st sends of size larger than 64KB
|
|||
|
which resulted in later retries of 64KB only
|
|||
|
- limit sending of 1st block to 64KB
|
|||
|
- adjust h2/h3 filters to cope with parsing the HTTP/1.1
|
|||
|
formatted request in chunks
|
|||
|
|
|||
|
- introducing Curl_nwrite() as companion to Curl_write()
|
|||
|
for the many cases where the sockindex is already known
|
|||
|
|
|||
|
Fixes #11342 (again)
|
|||
|
Closes #11803
|
|||
|
|
|||
|
- pytest: fix check for slow_network skips to only apply when intended
|
|||
|
|
|||
|
Closes #11801
|
|||
|
|
|||
|
Daniel Stenberg (5 Sep 2023)
|
|||
|
|
|||
|
- curl_url_get/set.3: add missing semicolon in SYNOPSIS
|
|||
|
|
|||
|
- CURLOPT_URL.3: explain curl_url_set() uses the same parser
|
|||
|
|
|||
|
- CURLOPT_URL.3: add two URL API calls in the see-also section
|
|||
|
|
|||
|
Dan Fandrich (4 Sep 2023)
|
|||
|
|
|||
|
- CI: add a 32-bit i686 Linux build
|
|||
|
|
|||
|
This is done by cross-compiling under regular x86_64 Linux. Since the
|
|||
|
kernel offers backwards compatibility, the binaries can be tested as
|
|||
|
normal.
|
|||
|
|
|||
|
Closes #11799
|
|||
|
|
|||
|
- tests: fix a type warning on 32-bit x86
|
|||
|
|
|||
|
Viktor Szakats (4 Sep 2023)
|
|||
|
|
|||
|
- tests: delete stray `.orig` file
|
|||
|
|
|||
|
Follow-up to 331b89a319d0067fa1e6441719307cfef9c7960f
|
|||
|
Closes #11797
|
|||
|
|
|||
|
Daniel Stenberg (4 Sep 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Viktor Szakats (4 Sep 2023)
|
|||
|
|
|||
|
- lib: silence compiler warning in inet_ntop6
|
|||
|
|
|||
|
```
|
|||
|
./curl/lib/inet_ntop.c:121:21: warning: possible misuse of comma operator her
|
|||
|
e [-Wcomma]
|
|||
|
cur.base = i, cur.len = 1;
|
|||
|
^
|
|||
|
./curl/lib/inet_ntop.c:121:9: note: cast expression to void to silence warnin
|
|||
|
g
|
|||
|
cur.base = i, cur.len = 1;
|
|||
|
^~~~~~~~~~~~
|
|||
|
(void)( )
|
|||
|
```
|
|||
|
|
|||
|
Closes #11790
|
|||
|
|
|||
|
Daniel Stenberg (4 Sep 2023)
|
|||
|
|
|||
|
- transfer: also stop the sending on closed connection
|
|||
|
|
|||
|
Previously this cleared the receiving bit only but in some cases it is
|
|||
|
also still sending (like a request-body) when disconnected and neither
|
|||
|
direction can continue then.
|
|||
|
|
|||
|
Fixes #11769
|
|||
|
Reported-by: Oleg Jukovec
|
|||
|
Closes #11795
|
|||
|
|
|||
|
John Bampton (4 Sep 2023)
|
|||
|
|
|||
|
- docs: change `sub-domain` to `subdomain`
|
|||
|
|
|||
|
https://en.wikipedia.org/wiki/Subdomain
|
|||
|
|
|||
|
Closes #11793
|
|||
|
|
|||
|
Stefan Eissing (4 Sep 2023)
|
|||
|
|
|||
|
- multi: more efficient pollfd count for poll
|
|||
|
|
|||
|
- do not use separate pollfds for sockets that have POLLIN+POLLOUT
|
|||
|
|
|||
|
Closes #11792
|
|||
|
|
|||
|
- http2: polish things around POST
|
|||
|
|
|||
|
- added test cases for various code paths
|
|||
|
- fixed handling of blocked write when stream had
|
|||
|
been closed inbetween attempts
|
|||
|
- re-enabled DEBUGASSERT on send with smaller data size
|
|||
|
|
|||
|
- in debug builds, environment variables can be set to simulate a slow
|
|||
|
network when sending data. cf-socket.c and vquic.c support
|
|||
|
* CURL_DBG_SOCK_WBLOCK: percentage of send() calls that should be
|
|||
|
answered with a EAGAIN. TCP/UNIX sockets.
|
|||
|
This is chosen randomly.
|
|||
|
* CURL_DBG_SOCK_WPARTIAL: percentage of data that shall be written
|
|||
|
to the network. TCP/UNIX sockets.
|
|||
|
Example: 80 means a send with 1000 bytes would only send 800
|
|||
|
This is applied to every send.
|
|||
|
* CURL_DBG_QUIC_WBLOCK: percentage of send() calls that should be
|
|||
|
answered with EAGAIN. QUIC only.
|
|||
|
This is chosen randomly.
|
|||
|
|
|||
|
Closes #11756
|
|||
|
|
|||
|
Daniel Stenberg (4 Sep 2023)
|
|||
|
|
|||
|
- docs: add curl_global_trace to some SEE ALSO sections
|
|||
|
|
|||
|
Closes #11791
|
|||
|
|
|||
|
- os400: fix checksrc nits
|
|||
|
|
|||
|
Closes #11789
|
|||
|
|
|||
|
Nicholas Nethercote (3 Sep 2023)
|
|||
|
|
|||
|
- hyper: remove `hyptransfer->endtask`
|
|||
|
|
|||
|
`Curl_hyper_stream` needs to distinguish between two kinds of
|
|||
|
`HYPER_TASK_EMPTY` tasks: (a) the `foreach` tasks it creates itself, and
|
|||
|
(b) background tasks that hyper produces. It does this by recording the
|
|||
|
address of any `foreach` task in `hyptransfer->endtask` before pushing
|
|||
|
it into the executor, and then comparing that against the address of
|
|||
|
tasks later polled out of the executor.
|
|||
|
|
|||
|
This works right now, but there is no guarantee from hyper that the
|
|||
|
addresses are stable. `hyper_executor_push` says "The executor takes
|
|||
|
ownership of the task, which should not be accessed again unless
|
|||
|
returned back to the user with `hyper_executor_poll`". That wording is a
|
|||
|
bit ambiguous but with my Rust programmer's hat on I read it as meaning
|
|||
|
the task returned with `hyper_executor_poll` may be conceptually the
|
|||
|
same as a task that was pushed, but that there are no other guarantees
|
|||
|
and comparing addresses is a bad idea.
|
|||
|
|
|||
|
This commit instead uses `hyper_task_set_userdata` to mark the `foreach`
|
|||
|
task with a `USERDATA_RESP_BODY` value which can then be checked for,
|
|||
|
removing the need for `hyptransfer->endtask`. This makes the code look
|
|||
|
more like that hyper C API examples, which use userdata for every task
|
|||
|
and never look at task addresses.
|
|||
|
|
|||
|
Closes #11779
|
|||
|
|
|||
|
Dave Cottlehuber (3 Sep 2023)
|
|||
|
|
|||
|
- ws: fix spelling mistakes in examples and tests
|
|||
|
|
|||
|
Closes #11784
|
|||
|
|
|||
|
Daniel Stenberg (3 Sep 2023)
|
|||
|
|
|||
|
- tool_filetime: make -z work with file dates before 1970
|
|||
|
|
|||
|
Fixes #11785
|
|||
|
Reported-by: Harry Sintonen
|
|||
|
Closes #11786
|
|||
|
|
|||
|
Dan Fandrich (1 Sep 2023)
|
|||
|
|
|||
|
- build: fix portability of mancheck and checksrc targets
|
|||
|
|
|||
|
At least FreeBSD preserves cwd across makefile lines, so rules
|
|||
|
consisting of more than one "cd X; do_something" must be explicitly run
|
|||
|
in a subshell to avoid this. This problem caused the Cirrus FreeBSD
|
|||
|
build to fail when parallel make jobs were enabled.
|
|||
|
|
|||
|
- CI: adjust labeler match patterns for new & obsolete files
|
|||
|
|
|||
|
- configure: trust pkg-config when it's used for zlib
|
|||
|
|
|||
|
The library flags retrieved from pkg-config were later thrown out and
|
|||
|
harded-coded, which negates the whole reason to use pkg-config.
|
|||
|
Also, previously, the assumption was made that --libs-only-l and
|
|||
|
--libs-only-L are the full decomposition of --libs, which is untrue and
|
|||
|
would not allow linking against a static zlib. The new approach is
|
|||
|
better in that it uses --libs, although only if --libs-only-l returns
|
|||
|
nothing.
|
|||
|
|
|||
|
Bug: https://curl.se/mail/lib-2023-08/0081.html
|
|||
|
Reported-by: Randall
|
|||
|
Closes #11778
|
|||
|
|
|||
|
Stefan Eissing (1 Sep 2023)
|
|||
|
|
|||
|
- CI/ngtcp2: clear wolfssl for when cache is ignored
|
|||
|
|
|||
|
Closes #11783
|
|||
|
|
|||
|
Daniel Stenberg (1 Sep 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Nicholas Nethercote (1 Sep 2023)
|
|||
|
|
|||
|
- hyper: fix a progress upload counter bug
|
|||
|
|
|||
|
`Curl_pgrsSetUploadCounter` should be a passed a total count, not an
|
|||
|
increment.
|
|||
|
|
|||
|
This changes the failing diff for test 579 with hyper from this:
|
|||
|
```
|
|||
|
Progress callback called with UL 0 out of 0[LF]
|
|||
|
-Progress callback called with UL 8 out of 0[LF]
|
|||
|
-Progress callback called with UL 16 out of 0[LF]
|
|||
|
-Progress callback called with UL 26 out of 0[LF]
|
|||
|
-Progress callback called with UL 61 out of 0[LF]
|
|||
|
-Progress callback called with UL 66 out of 0[LF]
|
|||
|
+Progress callback called with UL 29 out of 0[LF]
|
|||
|
```
|
|||
|
to this:
|
|||
|
```
|
|||
|
Progress callback called with UL 0 out of 0[LF]
|
|||
|
-Progress callback called with UL 8 out of 0[LF]
|
|||
|
-Progress callback called with UL 16 out of 0[LF]
|
|||
|
-Progress callback called with UL 26 out of 0[LF]
|
|||
|
-Progress callback called with UL 61 out of 0[LF]
|
|||
|
-Progress callback called with UL 66 out of 0[LF]
|
|||
|
+Progress callback called with UL 40 out of 0[LF]
|
|||
|
```
|
|||
|
Presumably a step in the right direction.
|
|||
|
|
|||
|
Closes #11780
|
|||
|
|
|||
|
Daniel Stenberg (1 Sep 2023)
|
|||
|
|
|||
|
- awssiv4: avoid freeing the date pointer on error
|
|||
|
|
|||
|
Since it was not allocated, don't free it even if it was wrong syntax
|
|||
|
|
|||
|
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=61908
|
|||
|
|
|||
|
Follow-up to b137634ba3adb
|
|||
|
|
|||
|
Closes #11782
|
|||
|
|
|||
|
Stefan Eissing (1 Sep 2023)
|
|||
|
|
|||
|
- CI: ngtcp2-linux: use separate caches for tls libraries
|
|||
|
|
|||
|
allow ever changing master for wolfssl
|
|||
|
|
|||
|
Closes #11766
|
|||
|
|
|||
|
- replace `master` as wolfssl-version with recent commit
|
|||
|
|
|||
|
- wolfssl, use master again in CI
|
|||
|
|
|||
|
- with the shared session update fix landed in master, it
|
|||
|
is time to use that in our CI again
|
|||
|
|
|||
|
Nicholas Nethercote (31 Aug 2023)
|
|||
|
|
|||
|
- tests: fix formatting errors in `FILEFORMAT.md`.
|
|||
|
|
|||
|
Without the surrounding backticks, these tags get swallowed when the
|
|||
|
markdown is rendered.
|
|||
|
|
|||
|
Closes #11777
|
|||
|
|
|||
|
Viktor Szakats (31 Aug 2023)
|
|||
|
|
|||
|
- cmake: add support for `CURL_DEFAULT_SSL_BACKEND`
|
|||
|
|
|||
|
Allow overriding the default TLS backend via a CMake setting.
|
|||
|
|
|||
|
E.g.:
|
|||
|
`cmake [...] -DCURL_DEFAULT_SSL_BACKEND=mbedtls`
|
|||
|
|
|||
|
Accepted values: bearssl, gnutls, mbedtls, openssl, rustls,
|
|||
|
schannel, secure-transport, wolfssl
|
|||
|
|
|||
|
The passed string is baked into the curl/libcurl binaries.
|
|||
|
The value is case-insensitive.
|
|||
|
|
|||
|
We added a similar option to autotools in 2017 via
|
|||
|
c7170e20d0a18ec8a514b4daa53bcdbb4dcb3a05.
|
|||
|
|
|||
|
TODO: Convert to lowercase to improve reproducibility.
|
|||
|
|
|||
|
Closes #11774
|
|||
|
|
|||
|
- sectransp: fix compiler warnings
|
|||
|
|
|||
|
https://github.com/curl/curl-for-win/actions/runs/6037489221/job/16381860220#
|
|||
|
step:3:11046
|
|||
|
```
|
|||
|
/Users/runner/work/curl-for-win/curl-for-win/curl/lib/vtls/sectransp.c:2435:1
|
|||
|
4: warning: unused variable 'success' [-Wunused-variable]
|
|||
|
OSStatus success;
|
|||
|
^
|
|||
|
/Users/runner/work/curl-for-win/curl-for-win/curl/lib/vtls/sectransp.c:3300:4
|
|||
|
4: warning: unused parameter 'sha256len' [-Wunused-parameter]
|
|||
|
size_t sha256len)
|
|||
|
^
|
|||
|
```
|
|||
|
|
|||
|
Closes #11773
|
|||
|
|
|||
|
- tidy-up: mostly whitespace nits
|
|||
|
|
|||
|
- delete completed TODO from `./CMakeLists.txt`.
|
|||
|
- convert a C++ comment to C89 in `./CMake/CurlTests.c`.
|
|||
|
- delete duplicate EOLs from EOF.
|
|||
|
- add missing EOL at EOF.
|
|||
|
- delete whitespace at EOL (except from expected test results).
|
|||
|
- convert tabs to spaces.
|
|||
|
- convert CRLF EOLs to LF in GHA yaml.
|
|||
|
- text casing fixes in `./CMakeLists.txt`.
|
|||
|
- fix a codespell typo in `packages/OS400/initscript.sh`.
|
|||
|
|
|||
|
Closes #11772
|
|||
|
|
|||
|
Dan Fandrich (31 Aug 2023)
|
|||
|
|
|||
|
- CI: remove Windows builds from Cirrus, without replacement
|
|||
|
|
|||
|
If we don't do this, all coverage on Cirrus will cease in a few days. By
|
|||
|
removing the Windows builds, the FreeBSD one should still continue
|
|||
|
as before. The Windows builds will need be moved to another service to
|
|||
|
maintain test coverage.
|
|||
|
|
|||
|
Closes #11771
|
|||
|
|
|||
|
- CI: switch macOS ARM build from Cirrus to Circle CI
|
|||
|
|
|||
|
Cirrus is drastically reducing their free tier on Sept. 1, so they will
|
|||
|
no longer perform all these builds for us. All but one build has been
|
|||
|
moved, with the LibreSSL one being dropped because of linking problems
|
|||
|
on Circle.
|
|||
|
|
|||
|
One important note about this change is that Circle CI is currently
|
|||
|
directing all these builds to x86_64 hardware, despite them requesting
|
|||
|
ARM. This is because ARM nodes are scheduled to be available on the
|
|||
|
free tier only in December. This reduces our architectural diversity
|
|||
|
until then but it should automatically come back once those machines are
|
|||
|
enabled.
|
|||
|
|
|||
|
- CI: use the right variable for BSD make
|
|||
|
|
|||
|
BSD uses MAKEFLAGS instead of MAKE_FLAGS so it wasn't doing parallel
|
|||
|
builds before.
|
|||
|
|
|||
|
- CI: drop the FreeBSD 12.X build
|
|||
|
|
|||
|
Cirrus' new free tier won't let us have many builds, so drop the
|
|||
|
nonessential ones. The FreeBSD 13.X build will still give us the most
|
|||
|
relevant FreeBSD coverage.
|
|||
|
|
|||
|
- CI: move the Alpine build from Cirrus to GHA
|
|||
|
|
|||
|
Cirrus is reducing their free tier to next to nothing, so we must move
|
|||
|
builds elsewhere.
|
|||
|
|
|||
|
Stefan Eissing (30 Aug 2023)
|
|||
|
|
|||
|
- test_07_upload.py: fix test_07_34 curl args
|
|||
|
|
|||
|
- Pass correct filename to --data-binary.
|
|||
|
|
|||
|
Prior to this change --data-binary was passed an incorrect filename due
|
|||
|
to a missing separator in the arguments list. Since aacbeae7 curl will
|
|||
|
error on incorrect filenames for POST.
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/11761
|
|||
|
Closes https://github.com/curl/curl/pull/11763
|
|||
|
|
|||
|
Nicholas Nethercote (30 Aug 2023)
|
|||
|
|
|||
|
- tests: document which tests fail due to hyper's lack of trailer support.
|
|||
|
|
|||
|
Closes #11762
|
|||
|
|
|||
|
- docs: removing "pausing transfers" from HYPER.md.
|
|||
|
|
|||
|
It's a reference to #8600, which was fixed by #9070.
|
|||
|
|
|||
|
Closes #11764
|
|||
|
|
|||
|
Patrick Monnerat (30 Aug 2023)
|
|||
|
|
|||
|
- os400: handle CURL_TEMP_PRINTF() while building bind source
|
|||
|
|
|||
|
Closes #11547
|
|||
|
|
|||
|
- os400: build test servers
|
|||
|
|
|||
|
Also fix a non-compliant main prototype in disabled.c.
|
|||
|
|
|||
|
Closes #11547
|
|||
|
|
|||
|
- tests: fix compilation error for os400
|
|||
|
|
|||
|
OS400 uses BSD 4.3 setsockopt() prototype by default: this does not
|
|||
|
define parameter as const, resulting in an error if actual parameter is
|
|||
|
const. Remove the const keyword from the actual parameter cast: this
|
|||
|
works in all conditions, even if the formal parameter uses it.
|
|||
|
|
|||
|
Closes #11547
|
|||
|
|
|||
|
- os400: make programs and command name configurable
|
|||
|
|
|||
|
Closes #11547
|
|||
|
|
|||
|
- os400: move build configuration parameters to a separate script
|
|||
|
|
|||
|
They can then easily be overriden in a script named "config400.override"
|
|||
|
that is not part of the distribution.
|
|||
|
|
|||
|
Closes #11547
|
|||
|
|
|||
|
- os400: implement CLI tool
|
|||
|
|
|||
|
This is provided as a QADRT (ascii) program, a link to it in the IFS and
|
|||
|
a minimal CL command.
|
|||
|
|
|||
|
Closes #11547
|
|||
|
|
|||
|
Matthias Gatto (30 Aug 2023)
|
|||
|
|
|||
|
- lib: fix aws-sigv4 having date header twice in some cases
|
|||
|
|
|||
|
When the user was providing the header X-XXX-Date, the header was
|
|||
|
re-added during signature computation, and we had it twice in the
|
|||
|
request.
|
|||
|
|
|||
|
Reported-by: apparentorder@users.noreply.github.com
|
|||
|
|
|||
|
Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
|
|||
|
|
|||
|
Fixes: https://github.com/curl/curl/issues/11738
|
|||
|
Closes: https://github.com/curl/curl/pull/11754
|
|||
|
|
|||
|
Jay Satiro (30 Aug 2023)
|
|||
|
|
|||
|
- multi: remove 'processing: <url>' debug message
|
|||
|
|
|||
|
- Remove debug message added by e024d566.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11759
|
|||
|
|
|||
|
- ftp: fix temp write of ipv6 address
|
|||
|
|
|||
|
- During the check to differentiate between a port and IPv6 address
|
|||
|
without brackets, write the binary IPv6 address to an in6_addr.
|
|||
|
|
|||
|
Prior to this change the binary IPv6 address was erroneously written to
|
|||
|
a sockaddr_in6 'sa6' when it should have been written to its in6_addr
|
|||
|
member 'sin6_addr'. There's no fallout because no members of 'sa6' are
|
|||
|
accessed before it is later overwritten.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11747
|
|||
|
|
|||
|
- tool: change some fopen failures from warnings to errors
|
|||
|
|
|||
|
- Error on missing input file for --data, --data-binary,
|
|||
|
--data-urlencode, --header, --variable, --write-out.
|
|||
|
|
|||
|
Prior to this change if a user of the curl tool specified an input file
|
|||
|
for one of the above options and that file could not be opened then it
|
|||
|
would be treated as zero length data instead of an error. For example, a
|
|||
|
POST using `--data @filenametypo` would cause a zero length POST which
|
|||
|
is probably not what the user intended.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11677
|
|||
|
|
|||
|
- hostip: fix typo
|
|||
|
|
|||
|
Davide Masserut (29 Aug 2023)
|
|||
|
|
|||
|
- tool: avoid including leading spaces in the Location hyperlink
|
|||
|
|
|||
|
Co-authored-by: Dan Fandrich <dan@coneharvesters.com>
|
|||
|
|
|||
|
Closes #11735
|
|||
|
|
|||
|
Daniel Stenberg (29 Aug 2023)
|
|||
|
|
|||
|
- SECURITY-PROCESS.md: not a sec issue: Tricking user to run a cmdline
|
|||
|
|
|||
|
Closes #11757
|
|||
|
|
|||
|
- connect: stop halving the remaining timeout when less than 600 ms left
|
|||
|
|
|||
|
When curl wants to connect to a host, it always has a TIMEOUT. The
|
|||
|
maximum time it is allowed to spend until a connect is confirmed.
|
|||
|
|
|||
|
curl will try to connect to each of the IP adresses returned for the
|
|||
|
host. Two loops, one for each IP family.
|
|||
|
|
|||
|
During the connect loop, while curl has more than one IP address left to
|
|||
|
try within a single address family, curl has traditionally allowed (time
|
|||
|
left/2) for *this* connect attempt. This, to not get stuck on the
|
|||
|
initial addresses in case the timeout but still allow later addresses to
|
|||
|
get attempted.
|
|||
|
|
|||
|
This has the downside that when users set a very short timeout and the
|
|||
|
host has a large number of IP addresses, the effective result might be
|
|||
|
that every attempt gets a little too short time.
|
|||
|
|
|||
|
This change stop doing the divided-by-two if the total time left is
|
|||
|
below a threshold. This threshold is 600 milliseconds.
|
|||
|
|
|||
|
Closes #11693
|
|||
|
|
|||
|
- asyn-ares: reduce timeout to 2000ms
|
|||
|
|
|||
|
When UDP packets get lost this makes for slightly faster retries. This
|
|||
|
lower timeout is used by @c-ares itself by default starting next
|
|||
|
release.
|
|||
|
|
|||
|
Closes #11753
|
|||
|
|
|||
|
John Bampton (29 Aug 2023)
|
|||
|
|
|||
|
- misc: remove duplicate words
|
|||
|
|
|||
|
Closes #11740
|
|||
|
|
|||
|
Daniel Stenberg (29 Aug 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- wolfSSL: avoid the OpenSSL compat API when not needed
|
|||
|
|
|||
|
... and instead call wolfSSL functions directly.
|
|||
|
|
|||
|
Closes #11752
|
|||
|
|
|||
|
Viktor Szakats (28 Aug 2023)
|
|||
|
|
|||
|
- lib: fix null ptr derefs and uninitialized vars (h2/h3)
|
|||
|
|
|||
|
Fixing compiler warnings with gcc 13.2.0 in unity builds.
|
|||
|
|
|||
|
Assisted-by: Jay Satiro
|
|||
|
Assisted-by: Stefan Eissing
|
|||
|
Closes #11739
|
|||
|
|
|||
|
Jay Satiro (28 Aug 2023)
|
|||
|
|
|||
|
- secureserver.pl: fix stunnel version parsing
|
|||
|
|
|||
|
- Allow the stunnel minor-version version part to be zero.
|
|||
|
|
|||
|
Prior to this change with the stunnel version scheme of <major>.<minor>
|
|||
|
if either part was 0 then version parsing would fail, causing
|
|||
|
secureserver.pl to fail with error "No stunnel", causing tests that use
|
|||
|
the SSL protocol to be skipped. As a practical matter this bug can only
|
|||
|
be caused by a minor-version part of 0, since the major-version part is
|
|||
|
always greater than 0.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11722
|
|||
|
|
|||
|
- secureserver.pl: fix stunnel path quoting
|
|||
|
|
|||
|
- Store the stunnel path in the private variable $stunnel unquoted and
|
|||
|
instead quote it in the command strings.
|
|||
|
|
|||
|
Prior to this change the quoted stunnel path was passed to perl's file
|
|||
|
operators which cannot handle quoted paths. For example:
|
|||
|
|
|||
|
$stunnel = "\"/C/Program Files (x86)/stunnel/bin/tstunnel\"";
|
|||
|
if(-x $stunnel or -x "$stunnel")
|
|||
|
# false even if path exists and is executable
|
|||
|
|
|||
|
Our other test scripts written in perl, unlike this one, use servers.pm
|
|||
|
which has a global $stunnel variable with the path stored unquoted and
|
|||
|
therefore those scripts don't have this problem.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11721
|
|||
|
|
|||
|
Daniel Stenberg (28 Aug 2023)
|
|||
|
|
|||
|
- altsvc: accept and parse IPv6 addresses in response headers
|
|||
|
|
|||
|
Store numerical IPv6 addresses in the alt-svc file with the brackets
|
|||
|
present.
|
|||
|
|
|||
|
Verify with test 437 and 438
|
|||
|
|
|||
|
Fixes #11737
|
|||
|
Reported-by: oliverpool on github
|
|||
|
Closes #11743
|
|||
|
|
|||
|
- libtest: use curl_free() to free libcurl allocated data
|
|||
|
|
|||
|
In several test programs. These mistakes are not detected or a problem
|
|||
|
as long as memdebug.h is included, as that provides the debug wrappers
|
|||
|
for all memory functions in the same style libcurl internals do it,
|
|||
|
which makes curl_free and free effectively the same call.
|
|||
|
|
|||
|
Reported-by: Nicholas Nethercote
|
|||
|
Closes #11746
|
|||
|
|
|||
|
Jay Satiro (28 Aug 2023)
|
|||
|
|
|||
|
- disable.d: explain --disable not implemented prior to 7.50.0
|
|||
|
|
|||
|
Option -q/--disable was added in 5.0 but only -q was actually
|
|||
|
implemented. Later --disable was implemented in e200034 (precedes
|
|||
|
7.49.0), but incorrectly, and fixed in 6dbc23c (precedes 7.50.0).
|
|||
|
|
|||
|
Reported-by: pszlazak@users.noreply.github.com
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/11710
|
|||
|
Closes #11712
|
|||
|
|
|||
|
Nicholas Nethercote (28 Aug 2023)
|
|||
|
|
|||
|
- hyper: fix ownership problems
|
|||
|
|
|||
|
Some of these changes come from comparing `Curl_http` and
|
|||
|
`start_CONNECT`, which are similar, and adding things to them that are
|
|||
|
present in one and missing in another.
|
|||
|
|
|||
|
The most important changes:
|
|||
|
- In `start_CONNECT`, add a missing `hyper_clientconn_free` call on the
|
|||
|
happy path.
|
|||
|
- In `start_CONNECT`, add a missing `hyper_request_free` on the error
|
|||
|
path.
|
|||
|
- In `bodysend`, add a missing `hyper_body_free` on an early-exit path.
|
|||
|
- In `bodysend`, remove an unnecessary `hyper_body_free` on a different
|
|||
|
error path that would cause a double-free.
|
|||
|
https://docs.rs/hyper/latest/hyper/ffi/fn.hyper_request_set_body.html
|
|||
|
says of `hyper_request_set_body`: "This takes ownership of the
|
|||
|
hyper_body *, you must not use it or free it after setting it on the
|
|||
|
request." This is true even if `hyper_request_set_body` returns an
|
|||
|
error; I confirmed this by looking at the hyper source code.
|
|||
|
|
|||
|
Other changes are minor but make things slightly nicer.
|
|||
|
|
|||
|
Closes #11745
|
|||
|
|
|||
|
Daniel Stenberg (28 Aug 2023)
|
|||
|
|
|||
|
- multi.h: the 'revents' field of curl_waitfd is supported
|
|||
|
|
|||
|
Since 6d30f8ebed34e7276
|
|||
|
|
|||
|
Reported-by: Nicolás Ojeda Bär
|
|||
|
Ref: #11748
|
|||
|
Closes #11749
|
|||
|
|
|||
|
Gerome Fournier (27 Aug 2023)
|
|||
|
|
|||
|
- tool_paramhlp: improve str2num(): avoid unnecessary call to strlen()
|
|||
|
|
|||
|
Closes #11742
|
|||
|
|
|||
|
Daniel Stenberg (27 Aug 2023)
|
|||
|
|
|||
|
- docs: mention critical files in same directories as curl saves
|
|||
|
|
|||
|
... cannot be fully protected. Don't do it.
|
|||
|
|
|||
|
Co-authored-by: Jay Satiro
|
|||
|
Reported-by: Harry Sintonen
|
|||
|
Fixes #11530
|
|||
|
Closes #11701
|
|||
|
|
|||
|
John Hawthorn (26 Aug 2023)
|
|||
|
|
|||
|
- OpenSSL: clear error queue after SSL_shutdown
|
|||
|
|
|||
|
We've seen errors left in the OpenSSL error queue (specifically,
|
|||
|
"shutdown while in init") by adding some logging it revealed that the
|
|||
|
source was this file.
|
|||
|
|
|||
|
Since we call SSL_read and SSL_shutdown here, but don't check the return
|
|||
|
code for an error, we should clear the OpenSSL error queue in case one
|
|||
|
was raised.
|
|||
|
|
|||
|
This didn't affect curl because we call ERR_clear_error before every
|
|||
|
write operation (a0dd9df9ab35528eb9eb669e741a5df4b1fb833c), but when
|
|||
|
libcurl is used in a process with other OpenSSL users, they may detect
|
|||
|
an OpenSSL error pushed by libcurl's SSL_shutdown as if it was their
|
|||
|
own.
|
|||
|
|
|||
|
Co-authored-by: Satana de Sant'Ana <satana@skylittlesystem.org>
|
|||
|
|
|||
|
Closes #11736
|
|||
|
|
|||
|
Alexander Kanavin (25 Aug 2023)
|
|||
|
|
|||
|
- tests: update cookie expiry dates to far in the future
|
|||
|
|
|||
|
This allows testing Y2038 with system time set to after that, so that
|
|||
|
actual Y2038 issues can be exposed, and not masked by expiry errors.
|
|||
|
|
|||
|
Fixes #11576
|
|||
|
Closes #11610
|
|||
|
|
|||
|
John Bampton (25 Aug 2023)
|
|||
|
|
|||
|
- misc: fix spelling
|
|||
|
|
|||
|
Closes #11733
|
|||
|
|
|||
|
Daniel Stenberg (25 Aug 2023)
|
|||
|
|
|||
|
- cmdline-opts/page-header: clarify stronger that !opt == URL
|
|||
|
|
|||
|
Everything provided on the command line that is not an option (or an
|
|||
|
argument to an option) is treated as a URL.
|
|||
|
|
|||
|
Closes #11734
|
|||
|
|
|||
|
- tests/runner: fix %else handling
|
|||
|
|
|||
|
Getting the show state proper for %else and %endif did not properly work
|
|||
|
in nested cases.
|
|||
|
|
|||
|
Follow-up to 3d089c41ea9
|
|||
|
|
|||
|
Closes #11731
|
|||
|
|
|||
|
Nicholas Nethercote (25 Aug 2023)
|
|||
|
|
|||
|
- docs: Remove mention of #10803 from `KNOWN_BUGS`.
|
|||
|
|
|||
|
Because the leaks have been fixed.
|
|||
|
|
|||
|
- c-hyper: fix another memory leak in `Curl_http`.
|
|||
|
|
|||
|
There is a `hyper_clientconn_free` call on the happy path, but not one
|
|||
|
on the error path. This commit adds one.
|
|||
|
|
|||
|
Fixes the second memory leak reported by Valgrind in #10803.
|
|||
|
|
|||
|
Fixes #10803
|
|||
|
Closes #11729
|
|||
|
|
|||
|
- c-hyper: fix a memory leak in `Curl_http`.
|
|||
|
|
|||
|
A request created with `hyper_request_new` must be consumed by either
|
|||
|
`hyper_clientconn_send` or `hyper_request_free`.
|
|||
|
|
|||
|
This is not terrifically clear from the hyper docs --
|
|||
|
`hyper_request_free` is documented only with "Free an HTTP request if
|
|||
|
not going to send it on a client" -- but a perusal of the hyper code
|
|||
|
confirms it.
|
|||
|
|
|||
|
This commit adds a `hyper_request_free` to the `error:` path in
|
|||
|
`Curl_http` so that the request is consumed when an error occurs after
|
|||
|
the request is created but before it is sent.
|
|||
|
|
|||
|
Fixes the first memory leak reported by Valgrind in #10803.
|
|||
|
|
|||
|
Closes #11729
|
|||
|
|
|||
|
Daniel Stenberg (25 Aug 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
John Bampton (25 Aug 2023)
|
|||
|
|
|||
|
- misc: spellfixes
|
|||
|
|
|||
|
Closes #11730
|
|||
|
|
|||
|
Daniel Stenberg (25 Aug 2023)
|
|||
|
|
|||
|
- tests: add support for nested %if conditions
|
|||
|
|
|||
|
Provides more flexiblity to test cases.
|
|||
|
|
|||
|
Also warn and bail out if there is an '%else' or %endif' without a
|
|||
|
preceeding '%if'.
|
|||
|
|
|||
|
Ref: #11610
|
|||
|
Closes #11728
|
|||
|
|
|||
|
- time-cond.d: mention what happens on a missing file
|
|||
|
|
|||
|
Closes #11727
|
|||
|
|
|||
|
Christian Hesse (24 Aug 2023)
|
|||
|
|
|||
|
- docs/cmdline-opts: match the current output
|
|||
|
|
|||
|
The release date has been added in output, reflect that in documentation.
|
|||
|
|
|||
|
Closes #11723
|
|||
|
|
|||
|
Daniel Stenberg (24 Aug 2023)
|
|||
|
|
|||
|
- lib: minor comment corrections
|
|||
|
|
|||
|
- docs: rewrite to present tense
|
|||
|
|
|||
|
... instead of using future tense.
|
|||
|
|
|||
|
+ numerous cleanups and improvements
|
|||
|
+ stick to "reuse" not "re-use"
|
|||
|
+ fewer contractions
|
|||
|
|
|||
|
Closes #11713
|
|||
|
|
|||
|
- urlapi: setting a blank URL ("") is not an ok URL
|
|||
|
|
|||
|
Test it in 1560
|
|||
|
Fixes #11714
|
|||
|
Reported-by: ad0p on github
|
|||
|
Closes #11715
|
|||
|
|
|||
|
- spelling: use 'reuse' not 're-use' in code and elsewhere
|
|||
|
|
|||
|
Unify the spelling as both versions were previously used intermittently
|
|||
|
|
|||
|
Closes #11717
|
|||
|
|
|||
|
Michael Osipov (23 Aug 2023)
|
|||
|
|
|||
|
- system.h: add CURL_OFF_T definitions on HP-UX with HP aCC
|
|||
|
|
|||
|
HP-UX on IA64 provides two modes: 32 and 64 bit while 32 bit being the
|
|||
|
default one. Use "long long" in 32 bit mode and just "long" in 64 bit
|
|||
|
mode.
|
|||
|
|
|||
|
Closes #11718
|
|||
|
|
|||
|
Dan Fandrich (22 Aug 2023)
|
|||
|
|
|||
|
- tests: don't call HTTP errors OK in test cases
|
|||
|
|
|||
|
Some HTTP errors codes were accompanied by the text OK, which causes
|
|||
|
some cognitive dissonance when reading them.
|
|||
|
|
|||
|
- http: close the connection after a late 417 is received
|
|||
|
|
|||
|
In this situation, only part of the data has been sent before aborting
|
|||
|
so the connection is no longer usable.
|
|||
|
|
|||
|
Assisted-by: Jay Satiro
|
|||
|
Fixes #11678
|
|||
|
Closes #11679
|
|||
|
|
|||
|
- runtests: slightly increase the longest log file displayed
|
|||
|
|
|||
|
The new limit provides enough space for a 64 KiB data block to be logged
|
|||
|
in a trace file, plus a few lines at the start and end for context. This
|
|||
|
happens to be the amount of data sent at a time in a PUT request.
|
|||
|
|
|||
|
- tests: add delay command to the HTTP server
|
|||
|
|
|||
|
This adds a delay after client connect.
|
|||
|
|
|||
|
Daniel Stenberg (22 Aug 2023)
|
|||
|
|
|||
|
- cirrus: install everthing with pkg, avoid pip
|
|||
|
|
|||
|
Assisted-by: Sevan Janiyan
|
|||
|
|
|||
|
Closes #11711
|
|||
|
|
|||
|
- curl_url*.3: update function descriptions
|
|||
|
|
|||
|
- expand and clarify several descriptions
|
|||
|
- avoid using future tense all over
|
|||
|
|
|||
|
Closes #11708
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Stefan Eissing (21 Aug 2023)
|
|||
|
|
|||
|
- CI/cirrus: disable python install on FreeBSD
|
|||
|
|
|||
|
- python cryptography package does not build build FreeBSD
|
|||
|
- install just mentions "error"
|
|||
|
- this gets the build and the main test suite going again
|
|||
|
|
|||
|
Closes #11705
|
|||
|
|
|||
|
- test2600: fix flakiness on low cpu
|
|||
|
|
|||
|
- refs #11355 where failures to to low cpu resources in CI
|
|||
|
are reported
|
|||
|
- vastly extend CURLOPT_CONNECTTIMEOUT_MS and max durations
|
|||
|
to test cases
|
|||
|
- trigger Curl_expire() in test filter to allow re-checks before
|
|||
|
the usual 1second interval
|
|||
|
|
|||
|
Closes #11690
|
|||
|
|
|||
|
Maksim Sciepanienka (20 Aug 2023)
|
|||
|
|
|||
|
- tool_urlglob: use the correct format specifier for curl_off_t in msnprintf
|
|||
|
|
|||
|
Closes #11698
|
|||
|
|
|||
|
Daniel Stenberg (20 Aug 2023)
|
|||
|
|
|||
|
- test687/688: two more basic --xattr tests
|
|||
|
|
|||
|
Closes #11697
|
|||
|
|
|||
|
- cmdline-opts/docs: mentioned the negative option part
|
|||
|
|
|||
|
... for --no-alpn and --no-buffer in the same style done for other --no-
|
|||
|
options:
|
|||
|
|
|||
|
"Note that this is the negated option name documented."
|
|||
|
|
|||
|
Closes #11695
|
|||
|
|
|||
|
Emanuele Torre (19 Aug 2023)
|
|||
|
|
|||
|
- tool/var: also error when expansion result starts with NUL
|
|||
|
|
|||
|
Expansions whose output starts with NUL were being expanded to the empty
|
|||
|
string, and not being recognised as values that contain a NUL byte, and
|
|||
|
should error.
|
|||
|
|
|||
|
Closes #11694
|
|||
|
|
|||
|
Daniel Stenberg (19 Aug 2023)
|
|||
|
|
|||
|
- tests: add 'large-time' as a testable feature
|
|||
|
|
|||
|
This allows test cases to require this feature to run and to be used in
|
|||
|
%if conditions.
|
|||
|
|
|||
|
Large here means larger than 32 bits. Ie does not suffer from y2038.
|
|||
|
|
|||
|
Closes #11696
|
|||
|
|
|||
|
- tests/Makefile: add check-translatable-options.pl to tarball
|
|||
|
|
|||
|
Used in test 1544
|
|||
|
|
|||
|
Follow-up to ae806395abc8c
|
|||
|
|
|||
|
- gen.pl: fix a long version generation mistake
|
|||
|
|
|||
|
Too excessive escaping made the parsing not find the correct long names
|
|||
|
later and instead add "wrong" links.
|
|||
|
|
|||
|
Follow-up to 439ff2052e219
|
|||
|
|
|||
|
Reported-by: Lukas Tribus
|
|||
|
Fixes #11688
|
|||
|
Closes #11689
|
|||
|
|
|||
|
- lib: move mimepost data from ->req.p.http to ->state
|
|||
|
|
|||
|
When the legacy CURLOPT_HTTPPOST option is used, it gets converted into
|
|||
|
the modem mimpost struct at first use. This data is (now) kept for the
|
|||
|
entire transfer and not only per single HTTP request. This re-enables
|
|||
|
rewind in the beginning of the second request instead of in end of the
|
|||
|
first, as brought by 1b39731.
|
|||
|
|
|||
|
The request struct is per-request data only.
|
|||
|
|
|||
|
Extend test 650 to verify.
|
|||
|
|
|||
|
Fixes #11680
|
|||
|
Reported-by: yushicheng7788 on github
|
|||
|
Closes #11682
|
|||
|
|
|||
|
Patrick Monnerat (17 Aug 2023)
|
|||
|
|
|||
|
- os400: do not check translatable options at build time
|
|||
|
|
|||
|
Now that there is a test for this, the build time check is not needed
|
|||
|
anymore.
|
|||
|
|
|||
|
Closes #11650
|
|||
|
|
|||
|
- test1554: check translatable string options in OS400 wrapper
|
|||
|
|
|||
|
This test runs a perl script that checks all string options are properly
|
|||
|
translated by the OS400 character code conversion wrapper. It also
|
|||
|
verifies these options are listed in alphanumeric order in the wrapper
|
|||
|
switch statement.
|
|||
|
|
|||
|
Closes #11650
|
|||
|
|
|||
|
Daniel Stenberg (17 Aug 2023)
|
|||
|
|
|||
|
- unit3200: skip testing if function is not present
|
|||
|
|
|||
|
Fake a successful run since we have no easy mechanism to skip this test
|
|||
|
for this advanced condition.
|
|||
|
|
|||
|
- unit2600: fix build warning if built without verbose messages
|
|||
|
|
|||
|
- test1608: make it build and get skipped without shuffle DNS support
|
|||
|
|
|||
|
- lib: --disable-bindlocal builds curl without local binding support
|
|||
|
|
|||
|
- test1304: build and skip without netrc support
|
|||
|
|
|||
|
- lib: build fixups when built with most things disabled
|
|||
|
|
|||
|
Closes #11687
|
|||
|
|
|||
|
- workflows/macos.yml: disable zstd and alt-svc in the http-only build
|
|||
|
|
|||
|
Closes #11683
|
|||
|
|
|||
|
Stefan Eissing (17 Aug 2023)
|
|||
|
|
|||
|
- bearssl: handshake fix, provide proper get_select_socks() implementation
|
|||
|
|
|||
|
- bring bearssl handshake times down from +200ms down to other TLS backends
|
|||
|
- vtls: improve generic get_select_socks() implementation
|
|||
|
- tests: provide Apache with a suitable ssl session cache
|
|||
|
|
|||
|
Closes #11675
|
|||
|
|
|||
|
- tests: TLS session sharing test
|
|||
|
|
|||
|
- test TLS session sharing with special test client
|
|||
|
- expect failure with wolfSSL
|
|||
|
- disable flaky wolfSSL test_02_07b
|
|||
|
|
|||
|
Closes #11675
|
|||
|
|
|||
|
Daniel Stenberg (17 Aug 2023)
|
|||
|
|
|||
|
- CURLOPT_*TIMEOUT*: extend and clarify
|
|||
|
|
|||
|
Closes #11686
|
|||
|
|
|||
|
- urlapi: return CURLUE_BAD_HOSTNAME if puny2idn encoding fails
|
|||
|
|
|||
|
And document it. Only return out of memory when it actually is a memory
|
|||
|
problem.
|
|||
|
|
|||
|
Pointed-out-by: Jacob Mealey
|
|||
|
Closes #11674
|
|||
|
|
|||
|
Mathew Benson (17 Aug 2023)
|
|||
|
|
|||
|
- cmake: add GnuTLS option
|
|||
|
|
|||
|
- Option to use GNUTLS was missing. Hence was not able to use GNUTLS
|
|||
|
with ngtcp2 for http3.
|
|||
|
|
|||
|
Closes #11685
|
|||
|
|
|||
|
Daniel Stenberg (16 Aug 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- http: remove the p_pragma struct field
|
|||
|
|
|||
|
unused since 40e8b4e52 (2008)
|
|||
|
|
|||
|
Closes #11681
|
|||
|
|
|||
|
Jay Satiro (16 Aug 2023)
|
|||
|
|
|||
|
- CURLINFO_CERTINFO.3: better explain curl_certinfo struct
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11666
|
|||
|
|
|||
|
- CURLINFO_TLS_SSL_PTR.3: clarify a recommendation
|
|||
|
|
|||
|
- Remove the out-of-date SSL backend list supported by
|
|||
|
CURLOPT_SSL_CTX_FUNCTION.
|
|||
|
|
|||
|
It makes more sense to just refer to that document instead of having
|
|||
|
a separate list that has to be kept in sync.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11665
|
|||
|
|
|||
|
- write-out.d: clarify %{time_starttransfer}
|
|||
|
|
|||
|
sync it up with CURLINFO_STARTTRANSFER_TIME_T
|
|||
|
|
|||
|
Daniel Stenberg (15 Aug 2023)
|
|||
|
|
|||
|
- transfer: don't set TIMER_STARTTRANSFER on first send
|
|||
|
|
|||
|
The time stamp is for measuring the first *received* byte
|
|||
|
|
|||
|
Fixes #11669
|
|||
|
Reported-by: JazJas on github
|
|||
|
Closes #11670
|
|||
|
|
|||
|
trrui-huawei (15 Aug 2023)
|
|||
|
|
|||
|
- quiche: enable quiche to handle timeout events
|
|||
|
|
|||
|
In parallel with ngtcp2, quiche also offers the `quiche_conn_on_timeout`
|
|||
|
interface for the application to invoke upon timer
|
|||
|
expiration. Therefore, invoking the `on_timeout` function of the
|
|||
|
Connection is crucial to ensure seamless functionality of quiche with
|
|||
|
timeout events.
|
|||
|
|
|||
|
Closes #11654
|
|||
|
|
|||
|
- quiche: adjust quiche `QUIC_IDLE_TIMEOUT` to 60s
|
|||
|
|
|||
|
Set the `QUIC_IDLE_TIMEOUT` parameter to match ngtcp2 for consistency.
|
|||
|
|
|||
|
Daniel Stenberg (15 Aug 2023)
|
|||
|
|
|||
|
- KNOWN_BUGS: LDAPS requests to ActiveDirectory server hang
|
|||
|
|
|||
|
Closes #9580
|
|||
|
|
|||
|
- imap: add a check for failing strdup()
|
|||
|
|
|||
|
- imap: remove the only sscanf() call in the IMAP code
|
|||
|
|
|||
|
Avoids the use of a stack buffer.
|
|||
|
|
|||
|
Closes #11673
|
|||
|
|
|||
|
- imap: use a dynbuf in imap_atom
|
|||
|
|
|||
|
Avoid a calculation + malloc. Build the output in a dynbuf.
|
|||
|
|
|||
|
Closes #11672
|
|||
|
|
|||
|
Marin Hannache (14 Aug 2023)
|
|||
|
|
|||
|
- http: do not require a user name when using CURLAUTH_NEGOTIATE
|
|||
|
|
|||
|
In order to get Negotiate (SPNEGO) authentication to work in HTTP you
|
|||
|
used to be required to provide a (fake) user name (this concerned both
|
|||
|
curl and the lib) because the code wrongly only considered
|
|||
|
authentication if there was a user name provided, as in:
|
|||
|
|
|||
|
curl -u : --negotiate https://example.com/
|
|||
|
|
|||
|
This commit leverages the `struct auth` want member to figure out if the
|
|||
|
user enabled CURLAUTH_NEGOTIATE, effectively removing the requirement of
|
|||
|
setting a user name both in curl and the lib.
|
|||
|
|
|||
|
Signed-off-by: Marin Hannache <git@mareo.fr>
|
|||
|
Reported-by: Enrico Scholz
|
|||
|
Fixes https://sourceforge.net/p/curl/bugs/440/
|
|||
|
Fixes #1161
|
|||
|
Closes #9047
|
|||
|
|
|||
|
Viktor Szakats (13 Aug 2023)
|
|||
|
|
|||
|
- build: streamline non-UWP wincrypt detections
|
|||
|
|
|||
|
- with CMake, use the variable `WINDOWS_STORE` to detect an UWP build
|
|||
|
and disable our non-UWP-compatible use the Windows crypto API. This
|
|||
|
allows to drop two dynamic feature checks.
|
|||
|
|
|||
|
`WINDOWS_STORE` is true when invoking CMake with
|
|||
|
`CMAKE_SYSTEM_NAME` == `WindowsStore`. Introduced in CMake v3.1.
|
|||
|
|
|||
|
Ref: https://cmake.org/cmake/help/latest/variable/WINDOWS_STORE.html
|
|||
|
|
|||
|
- with autotools, drop the separate feature check for `wincrypt.h`. On
|
|||
|
one hand this header has been present for long (even Borland C 5.5 had
|
|||
|
it from year 2000), on the other we used the check result solely to
|
|||
|
enable another check for certain crypto functions. This fails anyway
|
|||
|
with the header not present. We save one dynamic feature check at the
|
|||
|
configure stage.
|
|||
|
|
|||
|
Reviewed-by: Marcel Raad
|
|||
|
Closes #11657
|
|||
|
|
|||
|
Nicholas Nethercote (13 Aug 2023)
|
|||
|
|
|||
|
- docs/HYPER.md: update hyper build instructions
|
|||
|
|
|||
|
Nightly Rust and `-Z unstable-options` are not needed.
|
|||
|
|
|||
|
The instructions here now match the hyper docs exactly:
|
|||
|
https://github.com/hyperium/hyper/commit/bd7928f3dd6a8461f0f0fdf7ee0fd95c2f15
|
|||
|
6f88
|
|||
|
|
|||
|
Closes #11662
|
|||
|
|
|||
|
Daniel Stenberg (13 Aug 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- urlapi: CURLU_PUNY2IDN - convert from punycode to IDN name
|
|||
|
|
|||
|
Asssisted-by: Jay Satiro
|
|||
|
Closes #11655
|
|||
|
|
|||
|
- spellcheck: adapt to backslashed minuses
|
|||
|
|
|||
|
As the curl.1 has more backslashed minus, the cleanup sed lines xneed to
|
|||
|
adapt.
|
|||
|
|
|||
|
Adjusted some docs slighly.
|
|||
|
|
|||
|
Follow-up to 439ff2052e
|
|||
|
|
|||
|
Closes #11663
|
|||
|
|
|||
|
- gen: escape more minus
|
|||
|
|
|||
|
Detected since it was still hard to search for option names using dashes
|
|||
|
in the middle in the man page.
|
|||
|
|
|||
|
Closes #11660
|
|||
|
|
|||
|
- cookie-jar.d: enphasize that this option is ONLY writing cookies
|
|||
|
|
|||
|
Reported-by: Dan Jacobson
|
|||
|
Tweaked-by: Jay Satiro
|
|||
|
Ref: #11642
|
|||
|
Closes #11661
|
|||
|
|
|||
|
Nicholas Nethercote (11 Aug 2023)
|
|||
|
|
|||
|
- docs/HYPER.md: document a workaround for a link error
|
|||
|
|
|||
|
Closes #11653
|
|||
|
|
|||
|
Jay Satiro (11 Aug 2023)
|
|||
|
|
|||
|
- schannel: verify hostname independent of verify cert
|
|||
|
|
|||
|
Prior to this change when CURLOPT_SSL_VERIFYPEER (verifypeer) was off
|
|||
|
and CURLOPT_SSL_VERIFYHOST (verifyhost) was on we did not verify the
|
|||
|
hostname in schannel code.
|
|||
|
|
|||
|
This fixes KNOWN_BUG 2.8 "Schannel disable CURLOPT_SSL_VERIFYPEER and
|
|||
|
verify hostname". We discussed a fix several years ago in #3285 but it
|
|||
|
went stale.
|
|||
|
|
|||
|
Assisted-by: Daniel Stenberg
|
|||
|
|
|||
|
Bug: https://curl.haxx.se/mail/lib-2018-10/0113.html
|
|||
|
Reported-by: Martin Galvan
|
|||
|
|
|||
|
Ref: https://github.com/curl/curl/pull/3285
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/3284
|
|||
|
Closes https://github.com/curl/curl/pull/10056
|
|||
|
|
|||
|
Daniel Stenberg (11 Aug 2023)
|
|||
|
|
|||
|
- curl_quiche: remove superfluous NULL check
|
|||
|
|
|||
|
'stream' is always non-NULL at this point
|
|||
|
|
|||
|
Pointed out by Coverity
|
|||
|
|
|||
|
Closes #11656
|
|||
|
|
|||
|
- curl/urlapi.h: tiny typo
|
|||
|
|
|||
|
- github/labeler: make HYPER.md set Hyper and not TLS
|
|||
|
|
|||
|
- docs/cmdline-opts/gen.pl: hide "added in" before 7.50.0
|
|||
|
|
|||
|
7.50.0 shipped on Jul 21 2016, over seven years ago. We no longer need
|
|||
|
to specify version changes for earlier releases in the generated output.
|
|||
|
|
|||
|
This ups the limit from the previous 7.30.0 (Apr 12 2013)
|
|||
|
|
|||
|
This hides roughly 35 "added in" mentions.
|
|||
|
|
|||
|
Closes #11651
|
|||
|
|
|||
|
Jay Satiro (10 Aug 2023)
|
|||
|
|
|||
|
- bug_report: require reporters to specify curl and os versions
|
|||
|
|
|||
|
- Change curl version and os sections from single-line input to
|
|||
|
multi-line textarea.
|
|||
|
|
|||
|
- Require curl version and os sections to be filled out before report
|
|||
|
can be submitted.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11636
|
|||
|
|
|||
|
Daniel Stenberg (9 Aug 2023)
|
|||
|
|
|||
|
- gen.pl: replace all single quotes with aq
|
|||
|
|
|||
|
- this prevents man from using a unicode sequence for them
|
|||
|
- which then allows search to work properly
|
|||
|
|
|||
|
Closes #11645
|
|||
|
|
|||
|
Viktor Szakats (9 Aug 2023)
|
|||
|
|
|||
|
- cmake: fix to use variable for the curl namespace
|
|||
|
|
|||
|
Replace (wrong) literal with a variable to specify the curl
|
|||
|
namespace.
|
|||
|
|
|||
|
Follow-up to 1199308dbc902c52be67fc805c72dd2582520d30 #11505
|
|||
|
|
|||
|
Reported-by: balikalina on Github
|
|||
|
Fixes https://github.com/curl/curl/commit/1199308dbc902c52be67fc805c72dd25825
|
|||
|
20d30#r123923098
|
|||
|
Closes #11629
|
|||
|
|
|||
|
- cmake: allow `SHARE_LIB_OBJECT=ON` on all platforms
|
|||
|
|
|||
|
2ebc74c36a19a1700af394c16855ce144d9878e3 #11546 introduced sharing
|
|||
|
libcurl objects for shared and static targets.
|
|||
|
|
|||
|
The above automatically enabled for Windows builds, with an option to
|
|||
|
disable with `SHARE_LIB_OBJECT=OFF`.
|
|||
|
|
|||
|
This patch extend this feature to all platforms as a manual option.
|
|||
|
You can enable it by setting `SHARE_LIB_OBJECT=ON`. Then shared objects
|
|||
|
are built in PIC mode, meaning the static lib will also have PIC code.
|
|||
|
|
|||
|
[EXPERIMENTAL]
|
|||
|
|
|||
|
Closes #11627
|
|||
|
|
|||
|
- cmake: assume `wldap32` availability on Windows
|
|||
|
|
|||
|
This system library first shipped with Windows ME, available as an extra
|
|||
|
install for some older releases (according to [1]). The import library
|
|||
|
was present already in old MinGW 3.4.2 (year 2007).
|
|||
|
|
|||
|
Drop the feature check and its associated `HAVE_WLDAP32` variable.
|
|||
|
|
|||
|
To manually disable `wldap32`, you can use the `USE_WIN32_LDAP=OFF`
|
|||
|
CMake option, like before.
|
|||
|
|
|||
|
[1]: https://dlcdn.apache.org/httpd/binaries/win32/LEGACY.html
|
|||
|
|
|||
|
Reviewed-by: Jay Satiro
|
|||
|
Closes #11624
|
|||
|
|
|||
|
Daniel Stenberg (9 Aug 2023)
|
|||
|
|
|||
|
- page-header: move up a URL paragraph from GLOBBING to URL
|
|||
|
|
|||
|
- variable.d: output the function names table style
|
|||
|
|
|||
|
Also correct the url function name in the header
|
|||
|
|
|||
|
Closes #11641
|
|||
|
|
|||
|
- haproxy-clientip.d: remove backticks
|
|||
|
|
|||
|
This is not markdown
|
|||
|
|
|||
|
Follow-up to 0a75964d0d94a4
|
|||
|
|
|||
|
Closes #11639
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- gen.pl: escape all dashes (ascii minus) to avoid unicode hyphens
|
|||
|
|
|||
|
Reported-by: FC Stegerman
|
|||
|
Fixes #11635
|
|||
|
Closes #11637
|
|||
|
|
|||
|
- cmdline-opts/page-header: reorder, clean up
|
|||
|
|
|||
|
- removed some unnecessary blurb to focus
|
|||
|
- moved up the more important URL details
|
|||
|
- put "globbing" into its own subtitle and moved down a little
|
|||
|
- mention the online man page in the version section
|
|||
|
|
|||
|
Closes #11638
|
|||
|
|
|||
|
- c-hyper: adjust the hyper to curlcode conversion
|
|||
|
|
|||
|
Closes #11621
|
|||
|
|
|||
|
- test2306: make it use a persistent connection
|
|||
|
|
|||
|
+ enable verbose already from the start
|
|||
|
|
|||
|
Closes #11621
|
|||
|
|
|||
|
eppesuig (8 Aug 2023)
|
|||
|
|
|||
|
- list-only.d: mention SFTP as supported protocol
|
|||
|
|
|||
|
Closes #11628
|
|||
|
|
|||
|
Daniel Stenberg (8 Aug 2023)
|
|||
|
|
|||
|
- request.d: use .TP for protocol "labels"
|
|||
|
|
|||
|
To render the section nicer in man page.
|
|||
|
|
|||
|
Closes #11630
|
|||
|
|
|||
|
- cf-haproxy: make CURLOPT_HAPROXY_CLIENT_IP set the *source* IP
|
|||
|
|
|||
|
... as documented.
|
|||
|
|
|||
|
Update test 3201 and 3202 accordingly.
|
|||
|
|
|||
|
Reported-by: Markus Sommer
|
|||
|
Fixes #11619
|
|||
|
Closes #11626
|
|||
|
|
|||
|
- page-footer: QLOGDIR works with ngtcp2 and quiche
|
|||
|
|
|||
|
It previously said "both" backends which is confusing as we currently
|
|||
|
have three...
|
|||
|
|
|||
|
Closes #11631
|
|||
|
|
|||
|
Stefan Eissing (8 Aug 2023)
|
|||
|
|
|||
|
- http3: quiche, handshake optimization, trace cleanup
|
|||
|
|
|||
|
- load x509 store after clienthello
|
|||
|
- cleanup of tracing
|
|||
|
|
|||
|
Closes #11618
|
|||
|
|
|||
|
Daniel Stenberg (8 Aug 2023)
|
|||
|
|
|||
|
- ngtcp2: remove dead code
|
|||
|
|
|||
|
'result' is always zero (CURLE_OK) at this point
|
|||
|
|
|||
|
Detected by Coverity
|
|||
|
|
|||
|
Closes #11622
|
|||
|
|
|||
|
Viktor Szakats (8 Aug 2023)
|
|||
|
|
|||
|
- openssl: auto-detect `SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED`
|
|||
|
|
|||
|
OpenSSL 1.1.1 defines this macro, but no ealier version, or any of the
|
|||
|
popular forks (yet). Use the macro itself to detect its presence,
|
|||
|
replacing the hard-wired fork-specific conditions.
|
|||
|
|
|||
|
This way the feature will enable automatically when forks implement it,
|
|||
|
while also shorter and possibly requiring less future maintenance.
|
|||
|
|
|||
|
Follow-up to 94241a9e78397a2aaf89a213e6ada61e7de7ee02 #6721
|
|||
|
|
|||
|
Reviewed-by: Jay Satiro
|
|||
|
Closes #11617
|
|||
|
|
|||
|
- openssl: use `SSL_CTX_set_ciphersuites` with LibreSSL 3.4.1
|
|||
|
|
|||
|
LibreSSL 3.4.1 (2021-10-14) added support for
|
|||
|
`SSL_CTX_set_ciphersuites`.
|
|||
|
|
|||
|
Ref: https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.4.1-relnotes.txt
|
|||
|
|
|||
|
Reviewed-by: Jay Satiro
|
|||
|
Closes #11616
|
|||
|
|
|||
|
- openssl: use `SSL_CTX_set_keylog_callback` with LibreSSL 3.5.0
|
|||
|
|
|||
|
LibreSSL 3.5.0 (2022-02-24) added support for
|
|||
|
`SSL_CTX_set_keylog_callback`.
|
|||
|
|
|||
|
Ref: https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.5.0-relnotes.txt
|
|||
|
|
|||
|
Reviewed-by: Jay Satiro
|
|||
|
Closes #11615
|
|||
|
|
|||
|
- cmake: drop `HAVE_LIBWINMM` and `HAVE_LIBWS2_32` feature checks
|
|||
|
|
|||
|
- `HAVE_LIBWINMM` was detected but unused. The `winmm` system library is
|
|||
|
also not used by curl, but it is by its optional dependency `librtmp`.
|
|||
|
Change the logic to always add `winmm` when `USE_LIBRTMP` is set. This
|
|||
|
library has been available since the early days of Windows.
|
|||
|
|
|||
|
- `HAVE_LIBWS2_32` detected `ws2_32` lib on Windows. This lib is present
|
|||
|
since Windows 95 OSR2 (AFAIR). Winsock1 already wasn't supported and
|
|||
|
other existing logic already assumed this lib being present, so delete
|
|||
|
the check and replace the detection variable with `WIN32` and always
|
|||
|
add `ws2_32` on Windows.
|
|||
|
|
|||
|
Closes #11612
|
|||
|
|
|||
|
Daniel Gustafsson (8 Aug 2023)
|
|||
|
|
|||
|
- crypto: ensure crypto initialization works
|
|||
|
|
|||
|
Make sure that context initialization during hash setup works to avoid
|
|||
|
going forward with the risk of a null pointer dereference.
|
|||
|
|
|||
|
Reported-by: Philippe Antoine on HackerOne
|
|||
|
Assisted-by: Jay Satiro
|
|||
|
Assisted-by: Daniel Stenberg
|
|||
|
|
|||
|
Closes #11614
|
|||
|
|
|||
|
Viktor Szakats (7 Aug 2023)
|
|||
|
|
|||
|
- openssl: switch to modern init for LibreSSL 2.7.0+
|
|||
|
|
|||
|
LibreSSL 2.7.0 (2018-03-21) introduced automatic initialization,
|
|||
|
`OPENSSL_init_ssl()` function and deprecated the old, manual init
|
|||
|
method, as seen in OpenSSL 1.1.0. Switch to the modern method when
|
|||
|
available.
|
|||
|
|
|||
|
Ref: https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.7.0-relnotes.txt
|
|||
|
|
|||
|
Reviewed-by: Daniel Stenberg
|
|||
|
Closes #11611
|
|||
|
|
|||
|
Daniel Stenberg (7 Aug 2023)
|
|||
|
|
|||
|
- gskit: remove
|
|||
|
|
|||
|
We remove support for building curl with gskit.
|
|||
|
|
|||
|
- This is a niche TLS library, only running on some IBM systems
|
|||
|
- no regular curl contributors use this backend
|
|||
|
- no CI builds use or verify this backend
|
|||
|
- gskit, or the curl adaption for it, lacks many modern TLS features
|
|||
|
making it an inferior solution
|
|||
|
- build breakages in this code take weeks or more to get detected
|
|||
|
- fixing gskit code is mostly done "flying blind"
|
|||
|
|
|||
|
This removal has been advertized in DEPRECATED in Jan 2, 2023 and it has
|
|||
|
been mentioned on the curl-library mailing list.
|
|||
|
|
|||
|
It could be brought back, this is not a ban. Given proper effort and
|
|||
|
will, gskit support is welcome back into the curl TLS backend family.
|
|||
|
|
|||
|
Closes #11460
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Dan Fandrich (7 Aug 2023)
|
|||
|
|
|||
|
- THANKS-filter: add a name typo
|
|||
|
|
|||
|
Stefan Eissing (7 Aug 2023)
|
|||
|
|
|||
|
- http3/ngtcp2: shorten handshake, trace cleanup
|
|||
|
|
|||
|
- shorten handshake timing by delayed x509 store load (OpenSSL)
|
|||
|
as we do for HTTP/2
|
|||
|
- cleanup of trace output, align with HTTP/2 output
|
|||
|
|
|||
|
Closes #11609
|
|||
|
|
|||
|
Daniel Stenberg (7 Aug 2023)
|
|||
|
|
|||
|
- headers: accept leading whitespaces on first response header
|
|||
|
|
|||
|
This is a bad header fold but since the popular browsers accept this
|
|||
|
violation, so does curl now. Unless built with hyper.
|
|||
|
|
|||
|
Add test 1473 to verify and adjust test 2306.
|
|||
|
|
|||
|
Reported-by: junsik on github
|
|||
|
Fixes #11605
|
|||
|
Closes #11607
|
|||
|
|
|||
|
- include/curl/mprintf.h: add __attribute__ for the prototypes
|
|||
|
|
|||
|
- if gcc or clang is used
|
|||
|
- if __STDC_VERSION__ >= 199901L, which means greater than C90
|
|||
|
- if not using mingw
|
|||
|
- if CURL_NO_FMT_CHECKS is not defined
|
|||
|
|
|||
|
Closes #11589
|
|||
|
|
|||
|
- tests: fix bad printf format flags in test code
|
|||
|
|
|||
|
- tests: fix header scan tools for attribute edits in mprintf.h
|
|||
|
|
|||
|
- cf-socket: log successful interface bind
|
|||
|
|
|||
|
When the setsockopt SO_BINDTODEVICE operation succeeds, output that in
|
|||
|
the verbose output.
|
|||
|
|
|||
|
Ref: #11599
|
|||
|
Closes #11608
|
|||
|
|
|||
|
- CURLOPT_SSL_VERIFYPEER.3: mention it does not load CA certs when disabled
|
|||
|
|
|||
|
Ref: #11457
|
|||
|
Closes #11606
|
|||
|
|
|||
|
- CURLOPT_SSL_VERIFYPEER.3: add two more see also options
|
|||
|
|
|||
|
CURLINFO_CAINFO and CURLINFO_CAPATH
|
|||
|
|
|||
|
Closes #11603
|
|||
|
|
|||
|
- KNOWN_BUGS: aws-sigv4 does not behave well with AWS VPC Lattice
|
|||
|
|
|||
|
Closes #11007
|
|||
|
|
|||
|
Graham Campbell (6 Aug 2023)
|
|||
|
|
|||
|
- CI: use openssl 3.0.10+quic, nghttp3 0.14.0, ngtcp2 0.18.0
|
|||
|
|
|||
|
Closes #11585
|
|||
|
|
|||
|
Daniel Stenberg (6 Aug 2023)
|
|||
|
|
|||
|
- TODO: add *5* entries for aws-sigv4
|
|||
|
|
|||
|
Closes #7559
|
|||
|
Closes #8107
|
|||
|
Closes #8810
|
|||
|
Closes #9717
|
|||
|
Closes #10129
|
|||
|
|
|||
|
- TODO: LDAP Certificate-Based Authentication
|
|||
|
|
|||
|
Closes #9641
|
|||
|
|
|||
|
Stefan Eissing (6 Aug 2023)
|
|||
|
|
|||
|
- http2: cleanup trace messages
|
|||
|
|
|||
|
- more compact format with bracketed stream id
|
|||
|
- all frames traced in and out
|
|||
|
|
|||
|
Closes #11592
|
|||
|
|
|||
|
Daniel Stenberg (6 Aug 2023)
|
|||
|
|
|||
|
- tests/tftpd+mqttd: make variables static to silence picky warnings
|
|||
|
|
|||
|
Closes #11594
|
|||
|
|
|||
|
- docs/cmdline: remove repeated working for negotiate + ntlm
|
|||
|
|
|||
|
The extra wording is added automatically by the gen.pl tool
|
|||
|
|
|||
|
Closes #11597
|
|||
|
|
|||
|
- docs/cmdline: add small "warning" to verbose options
|
|||
|
|
|||
|
"Note that verbose output of curl activities and network traffic might
|
|||
|
contain sensitive data, including user names, credentials or secret data
|
|||
|
content. Be aware and be careful when sharing trace logs with others."
|
|||
|
|
|||
|
Closes #11596
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- pingpong: don't use *bump_headersize
|
|||
|
|
|||
|
We use that for HTTP(S) only.
|
|||
|
|
|||
|
Follow-up to 3ee79c1674fd6
|
|||
|
|
|||
|
Closes #11590
|
|||
|
|
|||
|
- urldata: remove spurious parenthesis to unbreak no-proxy build
|
|||
|
|
|||
|
Follow-up to e12b39e13382
|
|||
|
|
|||
|
Closes #11591
|
|||
|
|
|||
|
- easy: don't call Curl_trc_opt() in disabled-verbose builds
|
|||
|
|
|||
|
Follow-up to e12b39e133822c6a0
|
|||
|
|
|||
|
Closes #11588
|
|||
|
|
|||
|
- http: use %u for printfing int
|
|||
|
|
|||
|
Follow-up to 3ee79c1674fd6f99e8efca5
|
|||
|
|
|||
|
Closes #11587
|
|||
|
|
|||
|
Goro FUJI (3 Aug 2023)
|
|||
|
|
|||
|
- vquic: show stringified messages for errno
|
|||
|
|
|||
|
Closes #11584
|
|||
|
|
|||
|
Stefan Eissing (3 Aug 2023)
|
|||
|
|
|||
|
- trace: make tracing available in non-debug builds
|
|||
|
|
|||
|
Add --trace-config to curl
|
|||
|
|
|||
|
Add curl_global_trace() to libcurl
|
|||
|
|
|||
|
Closes #11421
|
|||
|
|
|||
|
Daniel Stenberg (3 Aug 2023)
|
|||
|
|
|||
|
- TODO: remove "Support intermediate & root pinning for PINNEDPUBLICKEY"
|
|||
|
|
|||
|
See also https://github.com/curl/curl/pull/7507
|
|||
|
|
|||
|
- TODO: add "WebSocket read callback"
|
|||
|
|
|||
|
remove "Upgrade to websockets" as we already have this
|
|||
|
|
|||
|
Closes #11402
|
|||
|
|
|||
|
- test497: verify rejecting too large incoming headers
|
|||
|
|
|||
|
- http: return error when receiving too large header set
|
|||
|
|
|||
|
To avoid abuse. The limit is set to 300 KB for the accumulated size of
|
|||
|
all received HTTP headers for a single response. Incomplete research
|
|||
|
suggests that Chrome uses a 256-300 KB limit, while Firefox allows up to
|
|||
|
1MB.
|
|||
|
|
|||
|
Closes #11582
|
|||
|
|
|||
|
Stefan Eissing (3 Aug 2023)
|
|||
|
|
|||
|
- http2: upgrade tests and add fix for non-existing stream
|
|||
|
|
|||
|
- check in h2 filter recv that stream actually exists
|
|||
|
and return error if not
|
|||
|
- add test for parallel, extreme h2 upgrades that fail if
|
|||
|
connections get reused before fully switched
|
|||
|
- add h2 upgrade upload test just for completeness
|
|||
|
|
|||
|
Closes #11563
|
|||
|
|
|||
|
Viktor Szakats (3 Aug 2023)
|
|||
|
|
|||
|
- tests: ensure `libcurl.def` contains all exports
|
|||
|
|
|||
|
Add `test1279` to verify that `libcurl.def` lists all exported API
|
|||
|
functions found in libcurl headers.
|
|||
|
|
|||
|
Also:
|
|||
|
|
|||
|
- extend test suite XML `stdout` tag with the `loadfile` attribute.
|
|||
|
|
|||
|
- fix `tests/extern-scan.pl` and `test1135` to include websocket API.
|
|||
|
|
|||
|
- use all headers (sorted) in `test1135` instead of a manual list.
|
|||
|
|
|||
|
- add options `--sort`, `--heading=` to `tests/extern-scan.pl`.
|
|||
|
|
|||
|
- add `libcurl.def` to the auto-labeler GHA task.
|
|||
|
|
|||
|
Follow-up to 2ebc74c36a19a1700af394c16855ce144d9878e3
|
|||
|
|
|||
|
Closes #11570
|
|||
|
|
|||
|
Daniel Stenberg (2 Aug 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
- lib: fix a few *printf() flag mistakes
|
|||
|
|
|||
|
Reported-by: Gisle Vanem
|
|||
|
Ref: #11574
|
|||
|
Closes #11579
|
|||
|
|
|||
|
Samuel Chiang (2 Aug 2023)
|
|||
|
|
|||
|
- openssl: make aws-lc version support OCSP
|
|||
|
|
|||
|
And bump version in CI
|
|||
|
|
|||
|
Closes #11568
|
|||
|
|
|||
|
Daniel Stenberg (2 Aug 2023)
|
|||
|
|
|||
|
- tool: make the length argument an int for printf()-.* flags
|
|||
|
|
|||
|
Closes #11578
|
|||
|
|
|||
|
- tool_operate: fix memory leak when SSL_CERT_DIR is used
|
|||
|
|
|||
|
Detected by Coverity
|
|||
|
|
|||
|
Follow-up to 29bce9857a12b6cfa726a5
|
|||
|
|
|||
|
Closes #11577
|
|||
|
|
|||
|
- tool/var: free memory on OOM
|
|||
|
|
|||
|
Coverity detected this memory leak in OOM situation
|
|||
|
|
|||
|
Follow-up to 2e160c9c652504e
|
|||
|
|
|||
|
Closes #11575
|
|||
|
|
|||
|
Viktor Szakats (2 Aug 2023)
|
|||
|
|
|||
|
- gha: bump libressl and mbedtls versions
|
|||
|
|
|||
|
Closes #11573
|
|||
|
|
|||
|
Jay Satiro (2 Aug 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
Daniel Stenberg (2 Aug 2023)
|
|||
|
|
|||
|
- variable.d: setting a variable again overwrites it
|
|||
|
|
|||
|
Reported-by: Niall McGee
|
|||
|
Bug: https://twitter.com/niallmcgee/status/1686523075423322113
|
|||
|
Closes #11571
|
|||
|
|
|||
|
Jay Satiro (2 Aug 2023)
|
|||
|
|
|||
|
- CURLOPT_PROXY_SSL_OPTIONS.3: sync formatting
|
|||
|
|
|||
|
- Re-wrap CURLSSLOPT_ALLOW_BEAST description.
|
|||
|
|
|||
|
Daniel Stenberg (2 Aug 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- resolve: use PF_INET6 family lookups when CURL_IPRESOLVE_V6 is set
|
|||
|
|
|||
|
Previously it would always do PF_UNSPEC if CURL_IPRESOLVE_V4 is not
|
|||
|
used, thus unnecessarily asking for addresses that will not be used.
|
|||
|
|
|||
|
Reported-by: Joseph Tharayil
|
|||
|
Fixes #11564
|
|||
|
Closes #11565
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
Viktor Szakats (1 Aug 2023)
|
|||
|
|
|||
|
- cmake: cache more config and delete unused ones
|
|||
|
|
|||
|
- cache more Windows config results for faster initialization.
|
|||
|
|
|||
|
- delete unused config macros `HAVE_SYS_UTSNAME_H`, `HAVE_SSL_H`.
|
|||
|
|
|||
|
- delete dead references to `sys/utsname.h`.
|
|||
|
|
|||
|
Closes #11551
|
|||
|
|
|||
|
- egd: delete feature detection and related source code
|
|||
|
|
|||
|
EGD is Entropy Gathering Daemon, a socket-based entropy source supported
|
|||
|
by pre-OpenSSL v1.1 versions and now deprecated. curl also deprecated it
|
|||
|
a while ago.
|
|||
|
|
|||
|
Its detection in CMake was broken all along because OpenSSL libs were
|
|||
|
not linked at the point of feature check.
|
|||
|
|
|||
|
Delete detection from both cmake and autotools, along with the related
|
|||
|
source snippet, and the `--with-egd-socket=` `./configure` option.
|
|||
|
|
|||
|
Closes #11556
|
|||
|
|
|||
|
Stefan Eissing (1 Aug 2023)
|
|||
|
|
|||
|
- tests: fix h3 server check and parallel instances
|
|||
|
|
|||
|
- fix check for availability of nghttpx server
|
|||
|
- add `tcp` frontend config for same port as quic, as
|
|||
|
without this, port 3000 is bound which clashes for parallel
|
|||
|
testing
|
|||
|
|
|||
|
Closes #11553
|
|||
|
|
|||
|
Daniel Stenberg (1 Aug 2023)
|
|||
|
|
|||
|
- docs/cmdline-opts: spellfixes, typos and polish
|
|||
|
|
|||
|
To make them accepted by the spell checker
|
|||
|
|
|||
|
Closes #11562
|
|||
|
|
|||
|
- CI/spellcheck: build curl.1 and spellcheck it
|
|||
|
|
|||
|
Added acceptable words
|
|||
|
|
|||
|
Closes #11562
|
|||
|
|
|||
|
Alexander Jaeger (1 Aug 2023)
|
|||
|
|
|||
|
- misc: fix various typos
|
|||
|
|
|||
|
Closes #11561
|
|||
|
|
|||
|
Daniel Stenberg (1 Aug 2023)
|
|||
|
|
|||
|
- http2: avoid too early connection re-use/multiplexing
|
|||
|
|
|||
|
HTTP/1 connections that are upgraded to HTTP/2 should not be picked up
|
|||
|
for reuse and multiplexing by other handles until the 101 switching
|
|||
|
process is completed.
|
|||
|
|
|||
|
Lots-of-debgging-by: Stefan Eissing
|
|||
|
Reported-by: Richard W.M. Jones
|
|||
|
Bug: https://curl.se/mail/lib-2023-07/0045.html
|
|||
|
Closes #11557
|
|||
|
|
|||
|
- Revert "KNOWN_BUGS: build for iOS simulator on macOS 13.2 with Xcode 14"
|
|||
|
|
|||
|
This reverts commit 2e8a3d7cb73c85a9aa151e263315f8a496dbb9d4.
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
Viktor Szakats (1 Aug 2023)
|
|||
|
|
|||
|
- cmake: add support for single libcurl compilation pass
|
|||
|
|
|||
|
Before this patch CMake builds used two separate compilation passes to
|
|||
|
build the shared and static libcurl respectively. This patch allows to
|
|||
|
reduce that to a single pass if the target platform and build settings
|
|||
|
allow it.
|
|||
|
|
|||
|
This reduces CMake build times when building both static and shared
|
|||
|
libcurl at the same time, making these dual builds an almost zero-cost
|
|||
|
option.
|
|||
|
|
|||
|
Enable this feature for Windows builds, where the difference between the
|
|||
|
two passes was the use of `__declspec(dllexport)` attribute for exported
|
|||
|
API functions for the shared builds. This patch replaces this method
|
|||
|
with the use of `libcurl.def` at DLL link time.
|
|||
|
|
|||
|
Also update `Makefile.mk` to use `libcurl.def` to export libcurl API
|
|||
|
symbols on Windows. This simplifies (or fixes) this build method (e.g.
|
|||
|
in curl-for-win, which generated a `libcurl.def` from `.h` files using
|
|||
|
an elaborate set of transformations).
|
|||
|
|
|||
|
`libcurl.def` has the maintenance cost of keeping the list of public
|
|||
|
libcurl API symbols up-to-date. This list seldom changes, so the cost
|
|||
|
is low.
|
|||
|
|
|||
|
Closes #11546
|
|||
|
|
|||
|
- cmake: detect `SSL_set0_wbio` in OpenSSL
|
|||
|
|
|||
|
Present in OpenSSL 1.1.0 and BoringSSL.
|
|||
|
Missing from LibreSSL 3.8.0.
|
|||
|
|
|||
|
Follow-up to f39472ea9f4f4e12cfbc0500c4580a8d52ce4a59
|
|||
|
|
|||
|
While here, also fix `RAND_egd()` detection which was broken, likely all
|
|||
|
along. This feature is probably broken with CMake builds and also
|
|||
|
requires a sufficiently obsolete OpenSSL version, so this part of the
|
|||
|
update was not tested.
|
|||
|
|
|||
|
Closes #11555
|
|||
|
|
|||
|
- cmake: fixup H2 duplicate symbols for unity builds
|
|||
|
|
|||
|
Closes #11550
|
|||
|
|
|||
|
Pablo Busse (1 Aug 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
Jay Satiro (1 Aug 2023)
|
|||
|
|
|||
|
- tool_cb_wrt: fix invalid unicode for windows console
|
|||
|
|
|||
|
- Suppress an incomplete UTF-8 sequence at the end of the buffer.
|
|||
|
|
|||
|
- Attempt to reconstruct incomplete UTF-8 sequence from prior call(s)
|
|||
|
in current call.
|
|||
|
|
|||
|
Prior to this change, in Windows console UTF-8 sequences split between
|
|||
|
two or more calls to the write callback would cause invalid "replacement
|
|||
|
characters" U+FFFD to be printed instead of the actual Unicode
|
|||
|
character. This is because in Windows only UTF-16 encoded characters are
|
|||
|
printed to the console, therefore we convert the UTF-8 contents to
|
|||
|
UTF-16, which cannot be done with partial UTF-8 sequences.
|
|||
|
|
|||
|
Reported-by: Maksim Arhipov
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/9841
|
|||
|
Closes https://github.com/curl/curl/pull/10890
|
|||
|
|
|||
|
Daniel Stenberg (1 Aug 2023)
|
|||
|
|
|||
|
- sectransp: prevent CFRelease() of NULL
|
|||
|
|
|||
|
When SecCertificateCopyCommonName() returns NULL, the common_name
|
|||
|
pointer remains set to NULL which apparently when calling CFRelease() on
|
|||
|
(sometimes?) crashes.
|
|||
|
|
|||
|
Reported-by: Guillaume Algis
|
|||
|
Fixes #9194
|
|||
|
Closes #11554
|
|||
|
|
|||
|
Jay Satiro (1 Aug 2023)
|
|||
|
|
|||
|
- vtls: clarify "ALPN: offers" message
|
|||
|
|
|||
|
Before:
|
|||
|
* ALPN: offers h2,http/1.1
|
|||
|
|
|||
|
After:
|
|||
|
* ALPN: curl offers h2,http/1.1
|
|||
|
|
|||
|
Bug: https://curl.se/mail/lib-2023-07/0041.html
|
|||
|
Reported-by: Richard W.M. Jones
|
|||
|
Closes #11544
|
|||
|
|
|||
|
Daniel Stenberg (1 Aug 2023)
|
|||
|
|
|||
|
- urlapi: make sure zoneid is also duplicated in curl_url_dup
|
|||
|
|
|||
|
Add several curl_url_dup() tests to the general lib1560 test.
|
|||
|
|
|||
|
Reported-by: Rutger Broekhoff
|
|||
|
Bug: https://curl.se/mail/lib-2023-07/0047.html
|
|||
|
Closes #11549
|
|||
|
|
|||
|
Sergey (1 Aug 2023)
|
|||
|
|
|||
|
- urlapi: fix heap buffer overflow
|
|||
|
|
|||
|
`u->path = Curl_memdup(path, pathlen + 1);` accesses bytes after the null-ter
|
|||
|
minator.
|
|||
|
|
|||
|
```
|
|||
|
==2676==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x04d48c75 a
|
|||
|
t pc 0x0112708a bp 0x006fb7e0 sp 0x006fb3c4
|
|||
|
READ of size 78 at 0x04d48c75 thread T0
|
|||
|
#0 0x1127089 in __asan_wrap_memcpy D:\a\_work\1\s\src\vctools\asan\llvm\c
|
|||
|
ompiler-rt\lib\sanitizer_common\sanitizer_common_interceptors.inc:840
|
|||
|
#1 0x1891a0e in Curl_memdup C:\actions-runner\_work\client\client\third_p
|
|||
|
arty\curl\lib\strdup.c:97
|
|||
|
#2 0x18db4b0 in parseurl C:\actions-runner\_work\client\client\third_part
|
|||
|
y\curl\lib\urlapi.c:1297
|
|||
|
#3 0x18db819 in parseurl_and_replace C:\actions-runner\_work\client\clien
|
|||
|
t\third_party\curl\lib\urlapi.c:1342
|
|||
|
#4 0x18d6e39 in curl_url_set C:\actions-runner\_work\client\client\third_
|
|||
|
party\curl\lib\urlapi.c:1790
|
|||
|
#5 0x1877d3e in parseurlandfillconn C:\actions-runner\_work\client\client
|
|||
|
\third_party\curl\lib\url.c:1768
|
|||
|
#6 0x1871acf in create_conn C:\actions-runner\_work\client\client\third_p
|
|||
|
arty\curl\lib\url.c:3403
|
|||
|
#7 0x186d8dc in Curl_connect C:\actions-runner\_work\client\client\third_
|
|||
|
party\curl\lib\url.c:3888
|
|||
|
#8 0x1856b78 in multi_runsingle C:\actions-runner\_work\client\client\thi
|
|||
|
rd_party\curl\lib\multi.c:1982
|
|||
|
#9 0x18531e3 in curl_multi_perform C:\actions-runner\_work\client\client\
|
|||
|
third_party\curl\lib\multi.c:2756
|
|||
|
```
|
|||
|
|
|||
|
Closes #11560
|
|||
|
|
|||
|
Daniel Stenberg (31 Jul 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
- KNOWN_BUGS: cygwin: make install installs curl-config.1 twice
|
|||
|
|
|||
|
Closes #8839
|
|||
|
|
|||
|
- KNOWN_BUGS: build for iOS simulator on macOS 13.2 with Xcode 14
|
|||
|
|
|||
|
Closes #11215
|
|||
|
|
|||
|
- KNOWN_BUGS: cmake outputs: no version information available
|
|||
|
|
|||
|
Closes #11158
|
|||
|
|
|||
|
- KNOWN_BUGS: APOP authentication fails on POP3
|
|||
|
|
|||
|
Closes #10073
|
|||
|
|
|||
|
- KNOWN_BUGS: hyper is slow
|
|||
|
|
|||
|
Closes #11203
|
|||
|
|
|||
|
Patrick Monnerat (31 Jul 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
Daniel Stenberg (31 Jul 2023)
|
|||
|
|
|||
|
- mailmap: add Derzsi Dániel
|
|||
|
|
|||
|
Derzsi Dániel (31 Jul 2023)
|
|||
|
|
|||
|
- wolfssl: support loading system CA certificates
|
|||
|
|
|||
|
Closes #11452
|
|||
|
|
|||
|
Viktor Szakats (30 Jul 2023)
|
|||
|
|
|||
|
- nss: delete more NSS references
|
|||
|
|
|||
|
Fix the distcheck CI failure and delete more NSS references.
|
|||
|
|
|||
|
Follow-up to 7c8bae0d9c9b2dfeeb008b9a316117d7b9675175
|
|||
|
|
|||
|
Reviewed-by: Marcel Raad
|
|||
|
Reviewed-by: Daniel Stenberg
|
|||
|
Closes #11548
|
|||
|
|
|||
|
Daniel Stenberg (29 Jul 2023)
|
|||
|
|
|||
|
- nss: remove support for this TLS library
|
|||
|
|
|||
|
Closes #11459
|
|||
|
|
|||
|
Ryan Schmidt (29 Jul 2023)
|
|||
|
|
|||
|
- macOS: fix target detection more
|
|||
|
|
|||
|
Now SCDynamicStoreCopyProxies is called (and the required frameworks are
|
|||
|
linked in) on all versions of macOS and only on macOS. Fixes crash due
|
|||
|
to undefined symbol when built with the macOS 10.11 SDK or earlier.
|
|||
|
|
|||
|
CURL_OSX_CALL_COPYPROXIES is renamed to CURL_MACOS_CALL_COPYPROXIES and
|
|||
|
is now only defined when SCDynamicStoreCopyProxies will actually be
|
|||
|
called. Previously, it was defined when ENABLE_IPV6 was not defined but
|
|||
|
SCDynamicStoreCopyProxies is not called in that case.
|
|||
|
|
|||
|
TARGET_OS_OSX is only defined in the macOS 10.12 SDK and later and only
|
|||
|
when dynamic targets are enabled. TARGET_OS_MAC is always defined but
|
|||
|
means any Mac OS or derivative including macOS, iOS, tvOS, and watchOS.
|
|||
|
TARGET_OS_IPHONE means any Darwin OS other than macOS.
|
|||
|
|
|||
|
Follow-up to c73b2f82
|
|||
|
|
|||
|
Fixes #11502
|
|||
|
Closes #11516
|
|||
|
|
|||
|
Daniel Stenberg (29 Jul 2023)
|
|||
|
|
|||
|
- tool_operate: allow SSL_CERT_FILE and SSL_CERT_DIR
|
|||
|
|
|||
|
... used at once.
|
|||
|
|
|||
|
Reported-by: Gabriel Corona
|
|||
|
Fixes #11325
|
|||
|
Closes #11531
|
|||
|
|
|||
|
Thomas M. DuBuisson (29 Jul 2023)
|
|||
|
|
|||
|
- CI: remove Lift's configuration
|
|||
|
|
|||
|
The Lift tool is being retired. Their site reads:
|
|||
|
|
|||
|
"Sonatype Lift will be retiring on Sep 12, 2023, with its analysis
|
|||
|
stopping on Aug 12, 2023."
|
|||
|
|
|||
|
Closes #11541
|
|||
|
|
|||
|
Nathan Moinvaziri (29 Jul 2023)
|
|||
|
|
|||
|
- Revert "schannel: reverse the order of certinfo insertions"
|
|||
|
|
|||
|
This reverts commit 8986df802db9b5338d9d50a54232ebae4dbcf6dd.
|
|||
|
|
|||
|
Windows does not guarantee a particular certificate ordering, even
|
|||
|
though TLS may have its own ordering/relationship guarantees. Recent
|
|||
|
versions of Windows 11 reversed the ordering of ceritifcates returned by
|
|||
|
CertEnumCertificatesInStore, therefore this commit no longer works as
|
|||
|
initially intended. libcurl makes no guarantees about certificate
|
|||
|
ordering if the operating system can't.
|
|||
|
|
|||
|
Ref: https://github.com/curl/curl/issues/9706
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11536
|
|||
|
|
|||
|
wangzhikun (29 Jul 2023)
|
|||
|
|
|||
|
- winbuild: improve check for static zlib
|
|||
|
|
|||
|
- Check for zlib static library name zlibstatic.lib.
|
|||
|
|
|||
|
zlib's static library has a different name depending on how it was
|
|||
|
built. zlibstatic.lib is output by cmake. zlibstat.lib is output by
|
|||
|
their pre-generated Visual Studio project files (in the contrib
|
|||
|
directory) and defines ZLIB_WINAPI (ie it's meant to use stdcall
|
|||
|
instead of cdecl if you end up exporting the zlib functions).
|
|||
|
|
|||
|
Prior to this change the makefile only checked for the latter.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11521
|
|||
|
|
|||
|
Daniel Stenberg (29 Jul 2023)
|
|||
|
|
|||
|
- configure: use the pkg-config --libs-only-l flag for libssh2
|
|||
|
|
|||
|
... instead of --libs, as that one also returns -L flags.
|
|||
|
|
|||
|
Reported-by: Wilhelm von Thiele
|
|||
|
Fixes #11538
|
|||
|
Closes #11539
|
|||
|
|
|||
|
Viktor Szakats (29 Jul 2023)
|
|||
|
|
|||
|
- cmake: support building static and shared libcurl in one go
|
|||
|
|
|||
|
This patch adds the ability to build a static and shared libcurl library
|
|||
|
in a single build session. It also adds an option to select which one to
|
|||
|
use when building the curl executable.
|
|||
|
|
|||
|
New build options:
|
|||
|
- `BUILD_STATIC_LIBS`. Default: `OFF`.
|
|||
|
Enabled automatically if `BUILD_SHARED_LIBS` is `OFF`.
|
|||
|
- `BUILD_STATIC_CURL`. Default: `OFF`.
|
|||
|
Requires `BUILD_STATIC_LIBS` enabled.
|
|||
|
Enabled automatically if building static libcurl only.
|
|||
|
- `STATIC_LIB_SUFFIX`. Default: empty.
|
|||
|
- `IMPORT_LIB_SUFFIX`. Default: `_imp` if implib filename would collide
|
|||
|
with static lib name (typically with MSVC) in Windows builds.
|
|||
|
Otherwise empty.
|
|||
|
|
|||
|
Also:
|
|||
|
|
|||
|
- Stop setting the `CURL_STATICLIB` macro via `curl_config.h`, and pass
|
|||
|
it directly to the compiler. This also allows to delete a condition
|
|||
|
from `tests/server/CMakeLists.txt`.
|
|||
|
|
|||
|
- Complete a TODO by following the logic used in autotools (also for
|
|||
|
`LIBCURL_NO_SHARED`), and set `-DCURL_STATICLIB` in `Cflags:` of
|
|||
|
`libcurl.pc` for _static-only_ curl builds.
|
|||
|
|
|||
|
- Convert an existing CI test to build both shared and static libcurl.
|
|||
|
|
|||
|
Closes #11505
|
|||
|
|
|||
|
Stefan Eissing (28 Jul 2023)
|
|||
|
|
|||
|
- CI/awslc: add cache for build awslc library
|
|||
|
|
|||
|
Closes #11535
|
|||
|
|
|||
|
- GHA/linux.yml: add caching
|
|||
|
|
|||
|
Closes #11532
|
|||
|
|
|||
|
Daniel Stenberg (27 Jul 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Bump working version to 8.3.0
|
|||
|
|
|||
|
- url: remove infof() output for "still name resolving"
|
|||
|
|
|||
|
The message does not help and might get spewed a lot during times.
|
|||
|
|
|||
|
Reported-by: yushicheng7788 on github
|
|||
|
Fixes #11394
|
|||
|
Closes #11529
|
|||
|
|
|||
|
- KNOWN_BUGS: cygwin: "WARNING: UNPROTECTED PRIVATE KEY FILE!"
|
|||
|
|
|||
|
Closes #11244
|
|||
|
|
|||
|
Stefan Eissing (27 Jul 2023)
|
|||
|
|
|||
|
- CI: quiche updates
|
|||
|
|
|||
|
- remove quiche from standard `linux` workflow
|
|||
|
- add mod_h2 caching to quiche workflow
|
|||
|
- rename quiche to quiche-linux
|
|||
|
- move version definitions into env section
|
|||
|
|
|||
|
Closes #11528
|
|||
|
|
|||
|
- http2: disable asssertion blocking OSSFuzz testing
|
|||
|
|
|||
|
- not clear how this triggers and it blocks OSSFuzz testing other
|
|||
|
things. Since we handle the case with an error return, disabling the
|
|||
|
assertion for now seems the best way forward.
|
|||
|
|
|||
|
Fixes #11500
|
|||
|
Closes #11519
|
|||
|
|
|||
|
- http2: fix in h2 proxy tunnel: progress in ingress on sending
|
|||
|
|
|||
|
- depending on what is tunneled, the proxy may never get invoked for
|
|||
|
receiving data explicitly. Not progressing ingress may lead to stalls
|
|||
|
due to missed WINDOW_UPDATEs.
|
|||
|
|
|||
|
CI:
|
|||
|
- add a chache for building mod_h2
|
|||
|
|
|||
|
Closes #11527
|
|||
|
|
|||
|
- CI ngtcp2+quictls: use nghttpx cache as in quiche build
|
|||
|
|
|||
|
Jay Satiro (27 Jul 2023)
|
|||
|
|
|||
|
- bearssl: don't load CA certs when peer verification is disabled
|
|||
|
|
|||
|
We already do this for other SSL backends.
|
|||
|
|
|||
|
Bug: https://github.com/curl/curl/pull/11457#issuecomment-1644587473
|
|||
|
Reported-by: kyled-dell@users.noreply.github.com
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11497
|
|||
|
|
|||
|
Daniel Stenberg (26 Jul 2023)
|
|||
|
|
|||
|
- easy: remove #ifdefs to make code easier on the eye
|
|||
|
|
|||
|
Closes #11525
|
|||
|
|
|||
|
Stefan Eissing (26 Jul 2023)
|
|||
|
|
|||
|
- GHA: adding quiche workflow
|
|||
|
|
|||
|
- adding separate quiche workflow to also build nghttpx server for testing
|
|||
|
|
|||
|
Closes #11517
|
|||
|
|
|||
|
Version 8.2.1 (26 Jul 2023)
|
|||
|
|
|||
|
Daniel Stenberg (26 Jul 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
curl 8.2.1 release
|
|||
|
|
|||
|
- THANKS: add contributors from 8.2.1
|
|||
|
|
|||
|
- docs: provide more see also for cipher options
|
|||
|
|
|||
|
More cross references. Hide nroff errors.
|
|||
|
|
|||
|
Closes #11513
|
|||
|
|
|||
|
- docs: mark two TLS options for TLS, not SSL
|
|||
|
|
|||
|
Closes #11514
|
|||
|
|
|||
|
Brad Harder (25 Jul 2023)
|
|||
|
|
|||
|
- curl_multi_wait.3: fix arg quoting to doc macro .BR
|
|||
|
|
|||
|
Closes #11511
|
|||
|
|
|||
|
Daniel Stenberg (24 Jul 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Viktor Szakats (24 Jul 2023)
|
|||
|
|
|||
|
- cmake: update ngtcp2 detection
|
|||
|
|
|||
|
Replace `OpenSSL` with `quictls` to follow the same change
|
|||
|
in the v0.17.0 ngtcp2 release.
|
|||
|
|
|||
|
Follow-up to e0093b4b732f6495b0fb1cd6747cbfedcdcf63ed
|
|||
|
|
|||
|
Closes #11508
|
|||
|
|
|||
|
Stefan Eissing (24 Jul 2023)
|
|||
|
|
|||
|
- http: VLH, very large header test and fixes
|
|||
|
|
|||
|
- adding tests using very large passwords in auth
|
|||
|
- fixes general http sending to treat h3 like h2, and
|
|||
|
not like http1.1
|
|||
|
- eliminate H2_HEADER max definitions and use the commmon
|
|||
|
DYN_HTTP_REQUEST everywhere, different limits do not help
|
|||
|
- fix http2 handling of requests denied by nghttp2 on send
|
|||
|
to immediately report the refused stream
|
|||
|
|
|||
|
Closes #11509
|
|||
|
|
|||
|
Andrei Rybak (23 Jul 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
Daniel Stenberg (23 Jul 2023)
|
|||
|
|
|||
|
- src/mkhelp: strip off escape sequences
|
|||
|
|
|||
|
At some point the nroff command stopped stripping off escape sequences,
|
|||
|
so then this script needs to do the job instead.
|
|||
|
|
|||
|
Reported-by: VictorVG on github
|
|||
|
Fixes #11501
|
|||
|
Closes #11503
|
|||
|
|
|||
|
- KNOWN_BUGS: building for old macOS fails with gcc
|
|||
|
|
|||
|
Closes #11441
|
|||
|
|
|||
|
Jacob Hoffman-Andrews (22 Jul 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
Brad Harder (22 Jul 2023)
|
|||
|
|
|||
|
- websocket: rename arguments/variables to match docs
|
|||
|
|
|||
|
Pedantry/semantic-alignment between functions, docs, comments with
|
|||
|
respect to websocket protocol code; No functional change intended.
|
|||
|
|
|||
|
* "totalsize", "framesize" becomes "fragsize" (we deal in frame fragments).
|
|||
|
|
|||
|
* "sendflags" becomes "flags"
|
|||
|
|
|||
|
* use canonical CURL *handle
|
|||
|
|
|||
|
Closes #11493
|
|||
|
|
|||
|
Jan Macku (21 Jul 2023)
|
|||
|
|
|||
|
- bug_report: use issue forms instead of markdown template
|
|||
|
|
|||
|
Issue forms allow you to define web-like input forms using YAML
|
|||
|
syntax. It allows you to guide the reporter to get the required
|
|||
|
information.
|
|||
|
|
|||
|
Signed-off-by: Jan Macku <jamacku@redhat.com>
|
|||
|
Closes #11474
|
|||
|
|
|||
|
Daniel Stenberg (21 Jul 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Oliver Roberts (21 Jul 2023)
|
|||
|
|
|||
|
- amissl: fix AmiSSL v5 detection
|
|||
|
|
|||
|
Due to changes in the AmiSSL SDK, the detection needed adjusting.
|
|||
|
|
|||
|
Closes #11477
|
|||
|
|
|||
|
Alois Klink (21 Jul 2023)
|
|||
|
|
|||
|
- unittest/makefile: remove unneeded unit1621_LDADD
|
|||
|
|
|||
|
The `unit1621_LDADD` variable has the exact same value as the `LDADD`
|
|||
|
flag in `Makefile.am`, except without `@LDFLAGS@ @LIBCURL_LIBS@`.
|
|||
|
|
|||
|
This was originally added by [98e6629][], but I can't see any reason
|
|||
|
why it exists, so we should remove it to clean things up.
|
|||
|
|
|||
|
[98e6629]: https://github.com/curl/curl/commit/98e6629154044e4ab1ee7cff8351c7
|
|||
|
ebcb131e88
|
|||
|
|
|||
|
Closes #11494
|
|||
|
|
|||
|
- unittest/makefile: remove unneeded unit1394_LDADD
|
|||
|
|
|||
|
These custom `unit1394_LDADD` and similar automake overrides are no
|
|||
|
longer neded. They were originally added by added by [8dac7be][] for
|
|||
|
metalink support, but are no longer after [265b14d][] removed metalink.
|
|||
|
|
|||
|
[8dac7be]: https://github.com/curl/curl/commit/8dac7be438512a8725d3c71e9139bd
|
|||
|
fdcac1ed8c
|
|||
|
[265b14d]: https://github.com/curl/curl/commit/265b14d6b37c4298bd5556fabcbc37
|
|||
|
d36f911693
|
|||
|
|
|||
|
Closes #11494
|
|||
|
|
|||
|
- cmake: add `libcurlu`/`libcurltool` for unit tests
|
|||
|
|
|||
|
Add a `libcurlu`/`libcurltool` static library that is compiled only for
|
|||
|
unit tests. We use `EXCLUDE_FROM_ALL` to make sure that they're not
|
|||
|
built by default, they're only built if unit tests are built.
|
|||
|
|
|||
|
These libraries allow us to compile every unit test with CMake.
|
|||
|
|
|||
|
Closes #11446
|
|||
|
|
|||
|
Daniel Stenberg (21 Jul 2023)
|
|||
|
|
|||
|
- test979: test -u with redirect to (the same) absolute host
|
|||
|
|
|||
|
Verifies #11492
|
|||
|
|
|||
|
- transfer: do not clear the credentials on redirect to absolute URL
|
|||
|
|
|||
|
Makes test 979 work. Regression shipped in 8.2.0 from commit
|
|||
|
dd4d1a26959f63a2c
|
|||
|
|
|||
|
Fixes #11486
|
|||
|
Reported-by: Cloudogu Siebels
|
|||
|
Closes #11492
|
|||
|
|
|||
|
Jon Rumsey (20 Jul 2023)
|
|||
|
|
|||
|
- os400: correct EXPECTED_STRING_LASTZEROTERMINATED
|
|||
|
|
|||
|
Correct EXPECTED_STRING_LASTZEROTERMINATED to account for
|
|||
|
CURLOPT_HAPROXY_CLIENT_IP which requires EBCDIC to ASCII conversion when
|
|||
|
passed into curl_easy_setopt().
|
|||
|
|
|||
|
Closes #11476
|
|||
|
|
|||
|
Oliver Roberts (20 Jul 2023)
|
|||
|
|
|||
|
- amissl: add missing signal.h include
|
|||
|
|
|||
|
In some environments, signal.h is already included, but not in others
|
|||
|
which cause compilation to fail, so explictly include it.
|
|||
|
|
|||
|
Closes #11478
|
|||
|
|
|||
|
- amigaos: fix sys/mbuf.h m_len macro clash
|
|||
|
|
|||
|
The updated Curl_http_req_make and Curl_http_req_make2 functions spawned
|
|||
|
a parameter called m_len. The AmigaOS networking headers, derived from
|
|||
|
NetBSD, contain "#define m_len m_hdr.mh_len" which clashes with
|
|||
|
this. Since we do not actually use mbuf, force the include file to be
|
|||
|
ignored, removing the clash.
|
|||
|
|
|||
|
Closes #11479
|
|||
|
|
|||
|
Daniel Stenberg (20 Jul 2023)
|
|||
|
|
|||
|
- socks: print ipv6 address within brackets
|
|||
|
|
|||
|
Fixes #11483
|
|||
|
Closes #11484
|
|||
|
|
|||
|
Christian Schmitz (20 Jul 2023)
|
|||
|
|
|||
|
- libcurl-errors.3: add CURLUE_OK
|
|||
|
|
|||
|
Closes #11488
|
|||
|
|
|||
|
Oliver Roberts (20 Jul 2023)
|
|||
|
|
|||
|
- cfilters: rename close/connect functions to avoid clashes
|
|||
|
|
|||
|
Rename `close` and `connect` in `struct Curl_cftype` for
|
|||
|
consistency and to avoid clashes with macros of the same name
|
|||
|
(the standard AmigaOS networking connect() function is implemented
|
|||
|
via a macro).
|
|||
|
|
|||
|
Closes #11491
|
|||
|
|
|||
|
Stefan Eissing (20 Jul 2023)
|
|||
|
|
|||
|
- http2: fix regression on upload EOF handling
|
|||
|
|
|||
|
- a regression introduced by c9ec85121110d7cbbbed2990024222c8f5b8afe5
|
|||
|
where optimization of small POST bodies leads to a new code path
|
|||
|
for such uploads that did not trigger the "done sending" event
|
|||
|
- add triggering this event for early "upload_done" situations
|
|||
|
|
|||
|
Fixes #11485
|
|||
|
Closes #11487
|
|||
|
Reported-by: Aleksander Mazur
|
|||
|
|
|||
|
Daniel Stenberg (19 Jul 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
Stefan Eissing (19 Jul 2023)
|
|||
|
|
|||
|
- quiche: fix segfault and other things
|
|||
|
|
|||
|
- refs #11449 where a segfault is reported when IP Eyeballing did
|
|||
|
not immediately connect but made several attempts
|
|||
|
- The transfer initiating the eyeballing was initialized too early,
|
|||
|
leadding to references to the filter instance that was then
|
|||
|
replaced in the subsequent eyeball attempts. That led to a use
|
|||
|
after free in the buffer handling for the transfer
|
|||
|
- transfers are initiated now more lazy (like in the ngtcp2 filter),
|
|||
|
when the stream is actually opened
|
|||
|
- suppress reporting on quiche event errors for "other" transfers
|
|||
|
than the current one to not fail a transfer due to faults in
|
|||
|
another one.
|
|||
|
- revert recent return value handling for quiche_h3_recv_body()
|
|||
|
to not indicate an error but an EAGAIN situation. We wish quiche
|
|||
|
would document what functions return.
|
|||
|
|
|||
|
Fixes #11449
|
|||
|
Closes #11469
|
|||
|
Reported-by: ウさん
|
|||
|
|
|||
|
Daniel Stenberg (19 Jul 2023)
|
|||
|
|
|||
|
- hostip: return IPv6 first for localhost resolves
|
|||
|
|
|||
|
Fixes #11465
|
|||
|
Reported-by: Chilledheart on github
|
|||
|
Closes #11466
|
|||
|
|
|||
|
Harry Sintonen (19 Jul 2023)
|
|||
|
|
|||
|
- tool: fix tool_seek_cb build when SIZEOF_CURL_OFF_T > SIZEOF_OFF_T
|
|||
|
|
|||
|
- a variable was renamed, and some use of it wasn't. this fixes the
|
|||
|
build.
|
|||
|
|
|||
|
Closes #11468
|
|||
|
|
|||
|
Stefan Eissing (19 Jul 2023)
|
|||
|
|
|||
|
- quiche: fix lookup of transfer at multi
|
|||
|
|
|||
|
- refs #11449 where weirdness in quiche multi connection tranfers was
|
|||
|
observed
|
|||
|
- fixes lookup of transfer for a quiche event to take the connection
|
|||
|
into account
|
|||
|
- formerly, a transfer with the same stream_id, but on another connection
|
|||
|
could be found
|
|||
|
|
|||
|
Closes #11462
|
|||
|
|
|||
|
Daniel Stenberg (19 Jul 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
bump to 8.2.1
|
|||
|
|
|||
|
John Haugabook (19 Jul 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
Version 8.2.0 (19 Jul 2023)
|
|||
|
|
|||
|
Daniel Stenberg (19 Jul 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
8.2.0 release
|
|||
|
|
|||
|
- THANKS-filter: strip out "GitHub"
|
|||
|
|
|||
|
- THANKS: add contributors from 8.2.0
|
|||
|
|
|||
|
- RELEASE-PROCEDURE.md: adjust the release dates
|
|||
|
|
|||
|
Stefan Eissing (17 Jul 2023)
|
|||
|
|
|||
|
- quiche: fix defects found in latest coverity report
|
|||
|
|
|||
|
Closes #11455
|
|||
|
|
|||
|
Daniel Stenberg (17 Jul 2023)
|
|||
|
|
|||
|
- quiche: avoid NULL deref in debug logging
|
|||
|
|
|||
|
Coverity reported "Dereference after null check"
|
|||
|
|
|||
|
If stream is NULL and the function exits, the logging must not deref it.
|
|||
|
|
|||
|
Closes #11454
|
|||
|
|
|||
|
Stefan Eissing (17 Jul 2023)
|
|||
|
|
|||
|
- http2: treat initial SETTINGS as a WINDOW_UPDATE
|
|||
|
|
|||
|
- refs #11426 where spurious stalls on large POST requests
|
|||
|
are reported
|
|||
|
- the issue seems to involve the following
|
|||
|
* first stream on connection adds up to 64KB of POST
|
|||
|
data, which is the max default HTTP/2 stream window size
|
|||
|
transfer is set to HOLD
|
|||
|
* initial SETTINGS from server arrive, enlarging the stream
|
|||
|
window. But no WINDOW_UPDATE is received.
|
|||
|
* curl stalls
|
|||
|
- the fix un-HOLDs a stream on receiving SETTINGS, not
|
|||
|
relying on a WINDOW_UPDATE from lazy servers
|
|||
|
|
|||
|
Closes #11450
|
|||
|
|
|||
|
Daniel Stenberg (17 Jul 2023)
|
|||
|
|
|||
|
- ngtcp2: assigning timeout, but value is overwritten before used
|
|||
|
|
|||
|
Reported by Coverity
|
|||
|
|
|||
|
Closes #11453
|
|||
|
|
|||
|
- krb5: add typecast to please Coverity
|
|||
|
|
|||
|
Derzsi Dániel (16 Jul 2023)
|
|||
|
|
|||
|
- wolfssl: support setting CA certificates as blob
|
|||
|
|
|||
|
Closes #11445
|
|||
|
|
|||
|
- wolfssl: detect when TLS 1.2 support is not built into wolfssl
|
|||
|
|
|||
|
Closes #11444
|
|||
|
|
|||
|
Graham Campbell (15 Jul 2023)
|
|||
|
|
|||
|
- CI: bump nghttp2 from 1.55.0 to 1.55.1
|
|||
|
|
|||
|
Closes #11442
|
|||
|
|
|||
|
Daniel Stenberg (15 Jul 2023)
|
|||
|
|
|||
|
- curl: return error when asked to use an unsupported HTTP version
|
|||
|
|
|||
|
When one of the following options are used but the libcurl in use does
|
|||
|
not support it:
|
|||
|
|
|||
|
--http2
|
|||
|
--http2-prior-knowledge
|
|||
|
--proxy-http2
|
|||
|
|
|||
|
Closes #11440
|
|||
|
|
|||
|
Chris Paulson-Ellis (14 Jul 2023)
|
|||
|
|
|||
|
- cf-socket: don't bypass fclosesocket callback if cancelled before connect
|
|||
|
|
|||
|
After upgrading to 8.1.2 from 7.84.0, I found that sockets were being
|
|||
|
closed without calling the fclosesocket callback if a request was
|
|||
|
cancelled after the associated socket was created, but before the socket
|
|||
|
was connected. This lead to an imbalance of fopensocket & fclosesocket
|
|||
|
callbacks, causing problems with a custom event loop integration using
|
|||
|
the multi-API.
|
|||
|
|
|||
|
This was caused by cf_socket_close() calling sclose() directly instead
|
|||
|
of calling socket_close() if the socket was not active. For regular TCP
|
|||
|
client connections, the socket is activated by cf_socket_active(), which
|
|||
|
is only called when the socket completes the connect.
|
|||
|
|
|||
|
As far as I can tell, this issue has existed since 7.88.0. That is,
|
|||
|
since the code in question was introduced by:
|
|||
|
commit 71b7e0161032927cdfb4e75ea40f65b8898b3956
|
|||
|
Author: Stefan Eissing <stefan@eissing.org>
|
|||
|
Date: Fri Dec 30 09:14:55 2022 +0100
|
|||
|
|
|||
|
lib: connect/h2/h3 refactor
|
|||
|
|
|||
|
Closes #11439
|
|||
|
|
|||
|
Daniel Stenberg (13 Jul 2023)
|
|||
|
|
|||
|
- tool_parsecfg: accept line lengths up to 10M
|
|||
|
|
|||
|
Bumped from 100K set in 47dd957daff9
|
|||
|
|
|||
|
Reported-by: Antoine du Hamel
|
|||
|
Fixes #11431
|
|||
|
Closes #11435
|
|||
|
|
|||
|
Stefan Eissing (13 Jul 2023)
|
|||
|
|
|||
|
- CI: brew fix for openssl in default path
|
|||
|
|
|||
|
If brew install/update links openssl into /usr/local, it will be found
|
|||
|
before anything we add with `-isystem path` to CPP/LDLFAGS. Get rid of
|
|||
|
that by unlinking the keg.
|
|||
|
|
|||
|
Fixes #11413
|
|||
|
Closes #11436
|
|||
|
|
|||
|
Daniel Stenberg (13 Jul 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Ondřej Koláček (13 Jul 2023)
|
|||
|
|
|||
|
- sectransp: fix EOF handling
|
|||
|
|
|||
|
Regression since the large refactor from 2022
|
|||
|
|
|||
|
Closes #11427
|
|||
|
|
|||
|
Daniel Stenberg (13 Jul 2023)
|
|||
|
|
|||
|
- checksrc: quote the file name to work with "funny" letters
|
|||
|
|
|||
|
Closes #11437
|
|||
|
|
|||
|
Karthikdasari0423 (13 Jul 2023)
|
|||
|
|
|||
|
- HTTP3.md: ngtcp2 updated to v0.17.0 and nghttp3 to v0.13.0
|
|||
|
|
|||
|
Follow-up to e0093b4b732f6
|
|||
|
|
|||
|
Closes #11433
|
|||
|
|
|||
|
Daniel Stenberg (13 Jul 2023)
|
|||
|
|
|||
|
- CURLOPT_MIMEPOST.3: clarify what setting to NULL means
|
|||
|
|
|||
|
Follow-up to e08382a208d4e480
|
|||
|
|
|||
|
Closes #11430
|
|||
|
|
|||
|
Tatsuhiro Tsujikawa (12 Jul 2023)
|
|||
|
|
|||
|
- ngtcp2: build with 0.17.0 and nghttp3 0.13.0
|
|||
|
|
|||
|
- ngtcp2_crypto_openssl was renamed to ngtcp2_crypto_quictls.
|
|||
|
|
|||
|
Closes #11428
|
|||
|
|
|||
|
- CI: Bump ngtcp2, nghttp3, and nghttp2
|
|||
|
|
|||
|
Closes #11428
|
|||
|
|
|||
|
James Fuller (11 Jul 2023)
|
|||
|
|
|||
|
- example/maxconnects: set maxconnect example
|
|||
|
|
|||
|
Closes #11343
|
|||
|
|
|||
|
Pontakorn Prasertsuk (11 Jul 2023)
|
|||
|
|
|||
|
- http2: send HEADER & DATA together if possible
|
|||
|
|
|||
|
Closes #11420
|
|||
|
|
|||
|
Daniel Stenberg (11 Jul 2023)
|
|||
|
|
|||
|
- CI: use wolfSSL 5.6.3 in builds
|
|||
|
|
|||
|
No using master anymore
|
|||
|
|
|||
|
Closes #11424
|
|||
|
|
|||
|
SaltyMilk (11 Jul 2023)
|
|||
|
|
|||
|
- fopen: optimize
|
|||
|
|
|||
|
Closes #11419
|
|||
|
|
|||
|
Daniel Stenberg (11 Jul 2023)
|
|||
|
|
|||
|
- cmake: make use of snprintf
|
|||
|
|
|||
|
Follow-up to 935b1bd4544a23a91d68
|
|||
|
|
|||
|
Closes #11423
|
|||
|
|
|||
|
Stefan Eissing (11 Jul 2023)
|
|||
|
|
|||
|
- macOS: fix taget detection
|
|||
|
|
|||
|
- TARGET_OS_OSX is not always defined on macOS
|
|||
|
- this leads to missing symbol Curl_macos_init()
|
|||
|
- TargetConditionals.h seems to define these only when
|
|||
|
dynamic targets are enabled (somewhere?)
|
|||
|
- this PR fixes that on my macOS 13.4.1
|
|||
|
- I have no clue why CI builds worked without it
|
|||
|
|
|||
|
Follow-up to c7308592fb8ba213fc2c1
|
|||
|
Closes #11417
|
|||
|
|
|||
|
Stan Hu (9 Jul 2023)
|
|||
|
|
|||
|
- hostip.c: Move macOS-specific calls into global init call
|
|||
|
|
|||
|
https://github.com/curl/curl/pull/7121 introduced a macOS system call
|
|||
|
to `SCDynamicStoreCopyProxies`, which is invoked every time an IP
|
|||
|
address needs to be resolved.
|
|||
|
|
|||
|
However, this system call is not thread-safe, and macOS will kill the
|
|||
|
process if the system call is run first in a fork. To make it possible
|
|||
|
for the parent process to call this once and prevent the crash, only
|
|||
|
invoke this system call in the global initialization routine.
|
|||
|
|
|||
|
In addition, this change is beneficial because it:
|
|||
|
|
|||
|
1. Avoids extra macOS system calls for every IP lookup.
|
|||
|
2. Consolidates macOS-specific initialization in a separate file.
|
|||
|
|
|||
|
Fixes #11252
|
|||
|
Closes #11254
|
|||
|
|
|||
|
Daniel Stenberg (9 Jul 2023)
|
|||
|
|
|||
|
- docs: use a space after RFC when spelling out RFC numbers
|
|||
|
|
|||
|
Closes #11382
|
|||
|
|
|||
|
Margu (9 Jul 2023)
|
|||
|
|
|||
|
- imap-append.c: update to make it more likely to work
|
|||
|
|
|||
|
Fixes #10300
|
|||
|
Closes #11397
|
|||
|
|
|||
|
Emanuele Torre (9 Jul 2023)
|
|||
|
|
|||
|
- tool_writeout_json: fix encoding of control characters
|
|||
|
|
|||
|
Control characters without a special escape sequence e.g. %00 or %06
|
|||
|
were being encoded as "u0006" instead of "\u0006".
|
|||
|
|
|||
|
Ref: https://github.com/curl/trurl/pull/214#discussion_r1257487858
|
|||
|
Closes #11414
|
|||
|
|
|||
|
Stefan Eissing (9 Jul 2023)
|
|||
|
|
|||
|
- http3/ngtcp2: upload EAGAIN handling
|
|||
|
|
|||
|
- refs #11389 where IDLE timeouts on upload are reported
|
|||
|
- reword ngtcp2 expiry handling to apply to both send+recv
|
|||
|
calls into the filter
|
|||
|
- EAGAIN uploads similar to the recent changes in HTTP/2, e.g.
|
|||
|
report success only when send data was ACKed.
|
|||
|
- HOLD sending of EAGAINed uploads to avoid cpu busy loops
|
|||
|
- rename internal function for consistency with HTTP/2
|
|||
|
implementation
|
|||
|
|
|||
|
Fixes #11389
|
|||
|
Closes #11390
|
|||
|
|
|||
|
Brian Nixon (9 Jul 2023)
|
|||
|
|
|||
|
- tool_easysrc.h: correct `easysrc_perform` for `CURL_DISABLE_LIBCURL_OPTION`
|
|||
|
|
|||
|
Closes #11398
|
|||
|
|
|||
|
Daniel Stenberg (9 Jul 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- transfer: clear credentials when redirecting to absolute URL
|
|||
|
|
|||
|
Make sure the user and password for the second request is taken from the
|
|||
|
redirected-to URL.
|
|||
|
|
|||
|
Add test case 899 to verify.
|
|||
|
|
|||
|
Reported-by: James Lucas
|
|||
|
Fixes #11410
|
|||
|
Closes #11412
|
|||
|
|
|||
|
Stefan Eissing (8 Jul 2023)
|
|||
|
|
|||
|
- hyper: fix EOF handling on input
|
|||
|
|
|||
|
We ran out of disc space due to an infinite loop with debug logging
|
|||
|
|
|||
|
Fixes #11377
|
|||
|
Closes #11385
|
|||
|
Reported-by: Dan Fandrich
|
|||
|
|
|||
|
- http2: raise header limitations above and beyond
|
|||
|
|
|||
|
- not quite to infinity
|
|||
|
- rewrote the implementation of our internal HTTP/1.x request
|
|||
|
parsing to work with very large lines using dynbufs.
|
|||
|
- new default limit is `DYN_HTTP_REQUEST`, aka 1MB, which
|
|||
|
is also the limit of curl's general HTTP request processing.
|
|||
|
|
|||
|
Fixes #11405
|
|||
|
Closes #11407
|
|||
|
|
|||
|
Juan Cruz Viotti (8 Jul 2023)
|
|||
|
|
|||
|
- curl_easy_nextheader.3: add missing open parenthesis examples
|
|||
|
|
|||
|
Closes #11409
|
|||
|
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
|
|||
|
|
|||
|
Dan Fandrich (7 Jul 2023)
|
|||
|
|
|||
|
- CI: enable verbose test output on pytest
|
|||
|
|
|||
|
This shows individual pass/fail status on tests and makes this output
|
|||
|
consistent with other jobs' pytest invocations.
|
|||
|
|
|||
|
Stefan Eissing (28 Jun 2023)
|
|||
|
|
|||
|
- http2: fix crash in handling stream weights
|
|||
|
|
|||
|
- Delay the priority handling until the stream has been opened.
|
|||
|
|
|||
|
- Add test2404 to reproduce and verify.
|
|||
|
|
|||
|
Weights may change "on the run", which is why there are checks in
|
|||
|
general egress handling. These must not trigger when the stream has not
|
|||
|
been opened yet.
|
|||
|
|
|||
|
Reported-by: jbgoog@users.noreply.github.com
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/11379
|
|||
|
Closes https://github.com/curl/curl/pull/11384
|
|||
|
|
|||
|
- tests/http: Add mod_h2 directive `H2ProxyRequests`
|
|||
|
|
|||
|
master of mod_h2 now requires H2ProxyRequests directives for forward
|
|||
|
proxying with HTTP/2 to work.
|
|||
|
|
|||
|
Ref: https://github.com/icing/mod_h2/commit/3897a7086
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11392
|
|||
|
|
|||
|
Dan Fandrich (28 Jun 2023)
|
|||
|
|
|||
|
- CI: make Appveyor job names unique
|
|||
|
|
|||
|
Two otherwise identical mingw-w64 jobs now have their differing compiler
|
|||
|
versions mentioned in their names.
|
|||
|
|
|||
|
Sheshadri.V (25 Jun 2023)
|
|||
|
|
|||
|
- curl.h: include <sys/select.h> for vxworks
|
|||
|
|
|||
|
Closes #11356
|
|||
|
|
|||
|
Dan Fandrich (24 Jun 2023)
|
|||
|
|
|||
|
- CI: enable parallel make in more builds
|
|||
|
|
|||
|
Most CI services provide at least two cores, so enable parallel make
|
|||
|
jobs to take advantage of that for builds. Some dependencies aren't safe
|
|||
|
to build in parallel so leave those as-is. Also, rename a few
|
|||
|
workflows to eliminate duplicate names and provide a better idea what
|
|||
|
they're about.
|
|||
|
|
|||
|
- CI: don't install impacket if tests are not run
|
|||
|
|
|||
|
It just wastes time and bandwidth and isn't even used.
|
|||
|
|
|||
|
divinity76 (24 Jun 2023)
|
|||
|
|
|||
|
- configure: the --without forms of the options are also gone
|
|||
|
|
|||
|
--without-darwin-ssl and --without-metalink
|
|||
|
|
|||
|
Closes #11378
|
|||
|
|
|||
|
Daniel Stenberg (23 Jun 2023)
|
|||
|
|
|||
|
- configure: add check for ldap_init_fd
|
|||
|
|
|||
|
... as otherwise the configure script will say it is OpenLDAP in the
|
|||
|
summary, but not set the USE_OPENLDAP define, therefor not using the
|
|||
|
intended OpenLDAP code paths.
|
|||
|
|
|||
|
Regression since 4d7385446 (7.85.0)
|
|||
|
Fixes #11372
|
|||
|
Closes #11374
|
|||
|
Reported-by: vlkl-sap on github
|
|||
|
|
|||
|
Michał Petryka (23 Jun 2023)
|
|||
|
|
|||
|
- cmake: stop CMake from quietly ignoring missing Brotli
|
|||
|
|
|||
|
The CMake project was set to `QUIET` for Brotli instead of
|
|||
|
`REQUIRED`. This makes builds unexpectedly ignore missing Brotli even
|
|||
|
when `CURL_BROTLI` is enabled.
|
|||
|
|
|||
|
Closes #11376
|
|||
|
|
|||
|
Emanuele Torre (22 Jun 2023)
|
|||
|
|
|||
|
- docs: add more .IP after .RE to fix indentation of generate paragraphs
|
|||
|
|
|||
|
follow-up from 099f41e097c030077b8ec078f2c2d4038d31353b
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
Stefan Eissing (22 Jun 2023)
|
|||
|
|
|||
|
- http2: h2 and h2-PROXY connection alive check fixes
|
|||
|
|
|||
|
- fix HTTP/2 check to not declare a connection dead when
|
|||
|
the read attempt results in EAGAIN
|
|||
|
- add H2-PROXY alive check as for HTTP/2 that was missing
|
|||
|
and is needed
|
|||
|
- add attach/detach around Curl_conn_is_alive() and remove
|
|||
|
these in filter methods
|
|||
|
- add checks for number of connections used in some test_10
|
|||
|
proxy tunneling tests
|
|||
|
|
|||
|
Closes #11368
|
|||
|
|
|||
|
- http2: error stream resets with code CURLE_HTTP2_STREAM
|
|||
|
|
|||
|
- refs #11357, where it was reported that HTTP/1.1 downgrades
|
|||
|
no longer works
|
|||
|
- fixed with suggested change
|
|||
|
- added test_05_03 and a new handler in the curltest module
|
|||
|
to reproduce that downgrades work
|
|||
|
|
|||
|
Fixes #11357
|
|||
|
Closes #11362
|
|||
|
Reported-by: Jay Satiro
|
|||
|
|
|||
|
Daniel Stenberg (22 Jun 2023)
|
|||
|
|
|||
|
- connect-timeout.d: mention that the DNS lookup is included
|
|||
|
|
|||
|
Closes #11370
|
|||
|
|
|||
|
Emanuele Torre (22 Jun 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
Paul Wise (22 Jun 2023)
|
|||
|
|
|||
|
- checksrc: modernise perl file open
|
|||
|
|
|||
|
Use regular variables and separate file open modes from filenames.
|
|||
|
|
|||
|
Suggested by perlcritic
|
|||
|
|
|||
|
Copied from https://github.com/curl/trurl/commit/f2784a9240f47ee28a845
|
|||
|
|
|||
|
Closes #11358
|
|||
|
|
|||
|
Dan Fandrich (21 Jun 2023)
|
|||
|
|
|||
|
- runtests: work around a perl without SIGUSR1
|
|||
|
|
|||
|
At least msys2 perl v5.32.1 doesn't seem to define this signal. Since
|
|||
|
this signal is only used for debugging, just ignore if setting it fails.
|
|||
|
|
|||
|
Reported-by: Marcel Raad
|
|||
|
Fixes #11350
|
|||
|
Closes #11366
|
|||
|
|
|||
|
- runtests: include missing valgrind package
|
|||
|
|
|||
|
use valgrind was missing which caused torture tests with valgrind
|
|||
|
enabled to fail.
|
|||
|
|
|||
|
Reported-by: Daniel Stenberg
|
|||
|
Fixes #11364
|
|||
|
Closes #11365
|
|||
|
|
|||
|
- runtests: use more consistent failure lines
|
|||
|
|
|||
|
After a test failure log a consistent log message to make it easier to
|
|||
|
parse the log file. Also, log a consistent message with "ignored" for
|
|||
|
failures that cause the test to be not considered at all. These should
|
|||
|
perhaps be counted in the skipped category, but this commit does not
|
|||
|
change that behaviour.
|
|||
|
|
|||
|
- runtests: consistently write the test check summary block
|
|||
|
|
|||
|
The memory check character was erroneously omitted if the memory
|
|||
|
checking file was not available for some reason, making the block of
|
|||
|
characters an inconsistent length.
|
|||
|
|
|||
|
- test2600: fix the description
|
|||
|
|
|||
|
It looks like it was cut-and-pasted.
|
|||
|
|
|||
|
Closes #11354
|
|||
|
|
|||
|
Daniel Stenberg (21 Jun 2023)
|
|||
|
|
|||
|
- TODO: "Support HTTP/2 for HTTP(S) proxies" *done*
|
|||
|
|
|||
|
humbleacolyte (21 Jun 2023)
|
|||
|
|
|||
|
- cf-socket: move ctx declaration under HAVE_GETPEERNAME
|
|||
|
|
|||
|
Closes #11352
|
|||
|
|
|||
|
Daniel Stenberg (20 Jun 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- example/connect-to: show CURLOPT_CONNECT_TO
|
|||
|
|
|||
|
Closes #11340
|
|||
|
|
|||
|
Stefan Eissing (20 Jun 2023)
|
|||
|
|
|||
|
- hyper: unslow
|
|||
|
|
|||
|
- refs #11203 where hyper was reported as being slow
|
|||
|
- fixes hyper_executor_poll to loop until it is out of
|
|||
|
tasks as advised by @seanmonstar in https://github.com/hyperium/hyper/issue
|
|||
|
s/3237
|
|||
|
- added a fix in hyper io handling for detecting EAGAIN
|
|||
|
- added some debug logs to see IO results
|
|||
|
- pytest http/1.1 test cases pass
|
|||
|
- pytest h2 test cases fail on connection reuse. HTTP/2
|
|||
|
connection reuse does not seem to work. Hyper submits
|
|||
|
a request on a reused connection, curl's IO works and
|
|||
|
thereafter hyper declares `Hyper: [1] operation was canceled: connection cl
|
|||
|
osed`
|
|||
|
on stderr without any error being logged before.
|
|||
|
|
|||
|
Fixes #11203
|
|||
|
Reported-by: Gisle Vanem
|
|||
|
Advised-by: Sean McArthur
|
|||
|
Closes #11344
|
|||
|
|
|||
|
- HTTP/2: upload handling fixes
|
|||
|
|
|||
|
- fixes #11242 where 100% CPU on uploads was reported
|
|||
|
- fixes possible stalls on last part of a request body when
|
|||
|
that information could not be fully send on the connection
|
|||
|
due to an EAGAIN
|
|||
|
- applies the same EGAIN handling to HTTP/2 proxying
|
|||
|
|
|||
|
Reported-by: Sergey Alirzaev
|
|||
|
Fixed #11242
|
|||
|
Closes #11342
|
|||
|
|
|||
|
Daniel Stenberg (20 Jun 2023)
|
|||
|
|
|||
|
- 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
|
|||
|
|
|||
|
Dan Fandrich (19 Jun 2023)
|
|||
|
|
|||
|
- libtest: display the times after a test timeout error
|
|||
|
|
|||
|
This is to help with test failure debugging.
|
|||
|
|
|||
|
Ref: #11328
|
|||
|
Closes #11329
|
|||
|
|
|||
|
- test2600: bump a test timeout
|
|||
|
|
|||
|
Case 1 failed at least once on GHA by going 30 msec too long.
|
|||
|
|
|||
|
Ref: #11328
|
|||
|
|
|||
|
- runtests: better detect and handle pipe errors in the controller
|
|||
|
|
|||
|
Errors reading and writing to the pipes are now better detected and
|
|||
|
propagated up to the main test loop so it can be cleanly shut down. Such
|
|||
|
errors are usually due to a runner dying so it doesn't make much sense
|
|||
|
to try to continue the test run.
|
|||
|
|
|||
|
- runtests: cleanly abort the runner if the controller dies
|
|||
|
|
|||
|
If the controller dies unexpectedly, have the runner stop its servers
|
|||
|
and exit cleanly. Otherwise, the orphaned servers will stay running in
|
|||
|
the background.
|
|||
|
|
|||
|
- runtests: improve error logging
|
|||
|
|
|||
|
Give more information about test harness error conditions to help figure
|
|||
|
out what might be wrong. Print some internal test state when SIGUSR1 is
|
|||
|
sent to runtests.pl.
|
|||
|
|
|||
|
Ref: #11328
|
|||
|
|
|||
|
- runtests: better handle ^C during slow tests
|
|||
|
|
|||
|
Since the SIGINT handler now just sets a flag that must be checked in the
|
|||
|
main controller loop, make sure that runs periodically. Rather than
|
|||
|
blocking on a response from a test runner near the end of the test run,
|
|||
|
add a short timeout to allow it.
|
|||
|
|
|||
|
- runtests: rename server command file
|
|||
|
|
|||
|
The name ftpserver.cmd was historical and has been used for more than
|
|||
|
ftp for many years now. Rename it to plain server.cmd to reduce
|
|||
|
confusion.
|
|||
|
|
|||
|
- tests: improve reliability of TFTP tests
|
|||
|
|
|||
|
Stop checking the timeout used by the client under test (for most
|
|||
|
tests). The timeout will change if the TFTP test server is slow (such as
|
|||
|
happens on an overprovisioned CI server) because the client will retry
|
|||
|
and reduce its timeout, and the actual value is not important for most
|
|||
|
tests.
|
|||
|
|
|||
|
test285 is changed a different way, by increasing the connect timeout.
|
|||
|
This improves test coverage by allowing the changed timeout value to be
|
|||
|
checked, but improves reliability with a carefully-chosen timeout that
|
|||
|
not only allows twice the time to respond as before, but also allows
|
|||
|
several retries before the client will change its timeout value.
|
|||
|
|
|||
|
Ref: #11328
|
|||
|
|
|||
|
Daniel Stenberg (19 Jun 2023)
|
|||
|
|
|||
|
- cf-socket: skip getpeername()/getsockname for TFTP
|
|||
|
|
|||
|
Since the socket is not connected then the call fails. When the call
|
|||
|
fails, failf() is called to write an error message that is then
|
|||
|
surviving and is returned when the *real* error occurs later. The
|
|||
|
earlier, incorrect, error therefore hides the actual error message.
|
|||
|
|
|||
|
This could be seen in stderr for test 1007
|
|||
|
|
|||
|
Test 1007 has now been extended to verify the stderr message.
|
|||
|
|
|||
|
Closes #11332
|
|||
|
|
|||
|
- example/crawler: make it use a few more options
|
|||
|
|
|||
|
For show, but reasonable
|
|||
|
|
|||
|
- libcurl-ws.3: mention raw mode
|
|||
|
|
|||
|
Closes #11339
|
|||
|
|
|||
|
- example/default-scheme: set the default scheme for schemeless URLs
|
|||
|
|
|||
|
Closes #11338
|
|||
|
|
|||
|
- example/hsts-preload: show one way to HSTS preload
|
|||
|
|
|||
|
Closes #11337
|
|||
|
|
|||
|
- examples/http-options: show how to send "OPTIONS *"
|
|||
|
|
|||
|
With CURLOPT_REQUEST_TARGET.
|
|||
|
|
|||
|
Also add use of CURLOPT_QUICK_EXIT to show.
|
|||
|
|
|||
|
Closes #11333
|
|||
|
|
|||
|
- examples: make use of CURLOPT_(REDIR_|)PROTOCOLS_STR
|
|||
|
|
|||
|
To show how to use them
|
|||
|
|
|||
|
Closes #11334
|
|||
|
|
|||
|
- examples/smtp-mime: use CURLOPT_MAIL_RCPT_ALLOWFAILS
|
|||
|
|
|||
|
For show
|
|||
|
|
|||
|
Closes #11335
|
|||
|
|
|||
|
- http: rectify the outgoing Cookie: header field size check
|
|||
|
|
|||
|
Previously it would count the size of the entire outgoing request and
|
|||
|
not just the size of only the Cookie: header field - which was the
|
|||
|
intention.
|
|||
|
|
|||
|
This could make the check be off by several hundred bytes in some cases.
|
|||
|
|
|||
|
Closes #11331
|
|||
|
|
|||
|
Jay Satiro (17 Jun 2023)
|
|||
|
|
|||
|
- lib: fix some format specifiers
|
|||
|
|
|||
|
- Use CURL_FORMAT_CURL_OFF_T where %zd was erroneously used for some
|
|||
|
curl_off_t variables.
|
|||
|
|
|||
|
- Use %zu where %zd was erroneously used for some size_t variables.
|
|||
|
|
|||
|
Prior to this change some of the Windows CI tests were failing because
|
|||
|
in Windows 32-bit targets have a 32-bit size_t and a 64-bit curl_off_t.
|
|||
|
When %zd was used for some curl_off_t variables then only the lower
|
|||
|
32-bits was read and the upper 32-bits would be read for part or all of
|
|||
|
the next specifier.
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/11327
|
|||
|
Closes https://github.com/curl/curl/pull/11321
|
|||
|
|
|||
|
Marcel Raad (16 Jun 2023)
|
|||
|
|
|||
|
- test427: add `cookies` feature and keyword
|
|||
|
|
|||
|
This test doesn't work with `--disable-cookies`.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11320
|
|||
|
|
|||
|
Chris Talbot (15 Jun 2023)
|
|||
|
|
|||
|
- imap: Provide method to disable SASL if it is advertised
|
|||
|
|
|||
|
- Implement AUTH=+LOGIN for CURLOPT_LOGIN_OPTIONS to prefer plaintext
|
|||
|
LOGIN over SASL auth.
|
|||
|
|
|||
|
Prior to this change there was no method to be able to fall back to
|
|||
|
LOGIN if an IMAP server advertises SASL capabilities. However, this may
|
|||
|
be desirable for e.g. a misconfigured server.
|
|||
|
|
|||
|
Per: https://www.ietf.org/rfc/rfc5092.html#section-3.2
|
|||
|
|
|||
|
";AUTH=<enc-auth-type>" looks to be the correct way to specify what
|
|||
|
authenication method to use, regardless of SASL or not.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10041
|
|||
|
|
|||
|
Daniel Stenberg (15 Jun 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- examples/multi-debugcallback.c: avoid the bool typedef
|
|||
|
|
|||
|
Apparently this cannot be done in c23
|
|||
|
|
|||
|
Reported-by: Cristian Rodríguez
|
|||
|
Fixes #11299
|
|||
|
Closes #11319
|
|||
|
|
|||
|
- docs/libcurl/libcurl.3: cleanups and improvements
|
|||
|
|
|||
|
Closes #11317
|
|||
|
|
|||
|
- libcurl-ws.3: fix typo
|
|||
|
|
|||
|
- curl_ws_*.3: enhance
|
|||
|
|
|||
|
- all: SEE ALSO the libcurl-ws man page
|
|||
|
- send: add example and return value information
|
|||
|
- meta: mention that the returned data is read-only
|
|||
|
|
|||
|
Closes #11318
|
|||
|
|
|||
|
- docs/libcurl/libcurl-ws.3: see also CURLOPT_WS_OPTIONS
|
|||
|
|
|||
|
- docs/libcurl/libcurl-ws.3: minor polish
|
|||
|
|
|||
|
- libcurl-ws.3. WebSocket API overview
|
|||
|
|
|||
|
Closes #11314
|
|||
|
|
|||
|
- libcurl-url.3: also mention CURLUPART_ZONEID
|
|||
|
|
|||
|
... and sort the two part-using lists alphabetically
|
|||
|
|
|||
|
Marcel Raad (14 Jun 2023)
|
|||
|
|
|||
|
- fopen: fix conversion warning on 32-bit Android
|
|||
|
|
|||
|
When building for 32-bit ARM or x86 Android, `st_mode` is defined as
|
|||
|
`unsigned int` instead of `mode_t`, resulting in a
|
|||
|
-Wimplicit-int-conversion clang warning because `mode_t` is
|
|||
|
`unsigned short`. Add a cast to silence the warning.
|
|||
|
|
|||
|
Ref: https://android.googlesource.com/platform/bionic/+/refs/tags/ndk-r25c/li
|
|||
|
bc/include/sys/stat.h#86
|
|||
|
Closes https://github.com/curl/curl/pull/11313
|
|||
|
|
|||
|
- http2: fix variable type
|
|||
|
|
|||
|
`max_recv_speed` is `curl_off_t`, so using `size_t` might result in
|
|||
|
-Wconversion GCC warnings for 32-bit `size_t`. Visible in the NetBSD
|
|||
|
ARM autobuilds.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11312
|
|||
|
|
|||
|
Daniel Stenberg (13 Jun 2023)
|
|||
|
|
|||
|
- vtls: fix potentially uninitialized local variable warnings
|
|||
|
|
|||
|
Follow-up from a4a5e438ae533c
|
|||
|
|
|||
|
Closes #11310
|
|||
|
|
|||
|
- timeval: use CLOCK_MONOTONIC_RAW if available
|
|||
|
|
|||
|
Reported-by: Harry Sintonen
|
|||
|
Ref: #11288
|
|||
|
Closes #11291
|
|||
|
|
|||
|
Stefan Eissing (12 Jun 2023)
|
|||
|
|
|||
|
- tool: add curl command line option `--trace-ids`
|
|||
|
|
|||
|
- added and documented --trace-ids to prepend (after the timestamp)
|
|||
|
the transfer and connection identifiers to each verbose log line
|
|||
|
- format is [n-m] with `n` being the transfer id and `m` being the
|
|||
|
connection id. In case there is not valid connection id, print 'x'.
|
|||
|
- Log calls with a handle that has no transfer id yet, are written
|
|||
|
without any ids.
|
|||
|
|
|||
|
Closes #11185
|
|||
|
|
|||
|
- lib: add CURLINFO_CONN_ID and CURLINFO_XFER_ID
|
|||
|
|
|||
|
- add an `id` long to Curl_easy, -1 on init
|
|||
|
- once added to a multi (or its own multi), it gets
|
|||
|
a non-negative number assigned by the connection cache
|
|||
|
- `id` is unique among all transfers using the same
|
|||
|
cache until reaching LONG_MAX where it will wrap
|
|||
|
around. So, not unique eternally.
|
|||
|
- CURLINFO_CONN_ID returns the connection id attached to
|
|||
|
data or, if none present, data->state.lastconnect_id
|
|||
|
- variables and type declared in tool for write out
|
|||
|
|
|||
|
Closes #11185
|
|||
|
|
|||
|
Daniel Stenberg (12 Jun 2023)
|
|||
|
|
|||
|
- CURLOPT_INFILESIZE.3: mention -1 triggers chunked
|
|||
|
|
|||
|
Ref: #11300
|
|||
|
Closes #11304
|
|||
|
|
|||
|
Philip Heiduck (12 Jun 2023)
|
|||
|
|
|||
|
- CI: openssl-3.0.9+quic
|
|||
|
|
|||
|
Closes #11296
|
|||
|
|
|||
|
Karthikdasari0423 (12 Jun 2023)
|
|||
|
|
|||
|
- HTTP3.md: update openssl version
|
|||
|
|
|||
|
Closes #11297
|
|||
|
|
|||
|
Daniel Stenberg (12 Jun 2023)
|
|||
|
|
|||
|
- vtls: avoid memory leak if sha256 call fails
|
|||
|
|
|||
|
... in the pinned public key handling function.
|
|||
|
|
|||
|
Reported-by: lizhuang0630 on github
|
|||
|
Fixes #11306
|
|||
|
Closes #11307
|
|||
|
|
|||
|
- examples/ipv6: disable on win32
|
|||
|
|
|||
|
I can't make if_nametoindex() work there
|
|||
|
|
|||
|
Follow-up to c23dc42f3997acf23
|
|||
|
|
|||
|
Closes #11305
|
|||
|
|
|||
|
- tool_operate: allow cookie lines up to 8200 bytes
|
|||
|
|
|||
|
Since this option might set multiple cookies in the same line, it does
|
|||
|
not make total sense to cap this at 4096 bytes, which is the limit for a
|
|||
|
single cookie name or value.
|
|||
|
|
|||
|
Closes #11303
|
|||
|
|
|||
|
- test427: verify sending more cookies than fit in a 8190 bytes line
|
|||
|
|
|||
|
curl will then only populate the header with cookies that fit, dropping
|
|||
|
ones that otherwise would have been sent
|
|||
|
|
|||
|
Ref: https://curl.se/mail/lib-2023-06/0020.html
|
|||
|
|
|||
|
Closes #11303
|
|||
|
|
|||
|
- testutil: allow multiple %-operators on the same line
|
|||
|
|
|||
|
Closes #11303
|
|||
|
|
|||
|
Oleg Jukovec (12 Jun 2023)
|
|||
|
|
|||
|
- docs: update CURLOPT_UPLOAD.3
|
|||
|
|
|||
|
The behavior of CURLOPT_UPLOAD differs from what is described in the
|
|||
|
documentation. The option automatically adds the 'Transfer-Encoding:
|
|||
|
chunked' header if the upload size is unknown.
|
|||
|
|
|||
|
Closes #11300
|
|||
|
|
|||
|
Daniel Stenberg (12 Jun 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- CURLOPT_AWS_SIGV4.3: remove unused variable from example
|
|||
|
|
|||
|
Closes #11302
|
|||
|
|
|||
|
- examples/https.c: use CURLOPT_CA_CACHE_TIMEOUT
|
|||
|
|
|||
|
for demonstration purposes
|
|||
|
|
|||
|
Closes #11290
|
|||
|
|
|||
|
- example/ipv6: feature CURLOPT_ADDRESS_SCOPE in use
|
|||
|
|
|||
|
Closes #11282
|
|||
|
|
|||
|
Karthikdasari0423 (10 Jun 2023)
|
|||
|
|
|||
|
- docs: Update HTTP3.md for newer ngtcp2 and nghttp3
|
|||
|
|
|||
|
Follow-up to fb9b9b58
|
|||
|
|
|||
|
Ref: #11184
|
|||
|
Closes #11295
|
|||
|
|
|||
|
Dan Fandrich (10 Jun 2023)
|
|||
|
|
|||
|
- docs: update the supported ngtcp2 and nghttp3 versions
|
|||
|
|
|||
|
Follow-up to cae9d10b
|
|||
|
|
|||
|
Ref: #11184
|
|||
|
Closes #11294
|
|||
|
|
|||
|
- tests: fix error messages & handling around sockets
|
|||
|
|
|||
|
The wrong error code was checked on Windows on UNIX socket failures,
|
|||
|
which could have caused all UNIX sockets to be reported as having
|
|||
|
errored and the tests therefore skipped. Also, a useless error message
|
|||
|
was displayed on socket errors in many test servers on Windows because
|
|||
|
strerror() doesn't work on WinSock error codes; perror() is overridden
|
|||
|
there to work on all errors and is used instead.
|
|||
|
|
|||
|
Ref #11258
|
|||
|
Closes #11265
|
|||
|
|
|||
|
Daniel Stenberg (9 Jun 2023)
|
|||
|
|
|||
|
- CURLOPT_SSH_PRIVATE_KEYFILE.3: expand on the file search
|
|||
|
|
|||
|
Reported-by: atjg on github
|
|||
|
Ref: #11287
|
|||
|
Closes #11289
|
|||
|
|
|||
|
Stefan Eissing (9 Jun 2023)
|
|||
|
|
|||
|
- ngtcp2: use ever increasing timestamp in io
|
|||
|
|
|||
|
- ngtcp2 v0.16.0 asserts that timestamps passed to its function
|
|||
|
will only ever increase.
|
|||
|
- Use a context shared between ingress/egress operations that
|
|||
|
uses a shared timestamp, regularly updated during calls.
|
|||
|
|
|||
|
Closes #11288
|
|||
|
|
|||
|
Daniel Stenberg (9 Jun 2023)
|
|||
|
|
|||
|
- GHA: use nghttp2 1.54.0 for the ngtcp2 jobs
|
|||
|
|
|||
|
Philip Heiduck (9 Jun 2023)
|
|||
|
|
|||
|
- GHA: ngtcp2: use 0.16.0 and nghttp3 0.12.0
|
|||
|
|
|||
|
Daniel Stenberg (9 Jun 2023)
|
|||
|
|
|||
|
- ngtcp2: build with 0.16.0 and nghttp3 0.12.0
|
|||
|
|
|||
|
- moved to qlog_write
|
|||
|
- crypto => encryption
|
|||
|
- CRYPTO => ENCRYPTION
|
|||
|
- removed "_is_"
|
|||
|
- ngtcp2_conn_shutdown_stream_read and
|
|||
|
ngtcp2_conn_shutdown_stream_write got flag arguments
|
|||
|
- the nghttp3_callbacks struct got a recv_settings callback
|
|||
|
|
|||
|
Closes #11184
|
|||
|
|
|||
|
- example/http2-download: set CURLOPT_BUFFERSIZE
|
|||
|
|
|||
|
Primarily because no other example sets it, and remove the disabling of
|
|||
|
the certificate check because we should not recommend that.
|
|||
|
|
|||
|
Closes #11284
|
|||
|
|
|||
|
- example/crawler: also set CURLOPT_AUTOREFERER
|
|||
|
|
|||
|
Could make sense, and it was not used in any example before.
|
|||
|
|
|||
|
Closes #11283
|
|||
|
|
|||
|
Wyatt OʼDay (9 Jun 2023)
|
|||
|
|
|||
|
- tls13-ciphers.d: include Schannel
|
|||
|
|
|||
|
Closes #11271
|
|||
|
|
|||
|
Daniel Stenberg (9 Jun 2023)
|
|||
|
|
|||
|
- curl_pushheader_byname/bynum.3: document in their own man pages
|
|||
|
|
|||
|
These two functions were added in 7.44.0 when CURLMOPT_PUSHFUNCTION was
|
|||
|
introduced but always lived a life in the shadows, embedded in the
|
|||
|
CURLMOPT_PUSHFUNCTION man page. Until now.
|
|||
|
|
|||
|
It makes better sense and gives more visibility to document them in
|
|||
|
their own stand-alone man pages.
|
|||
|
|
|||
|
Closes #11286
|
|||
|
|
|||
|
- curl_mprintf.3: minor fix of the example
|
|||
|
|
|||
|
- curl_url_set: enforce the max string length check for all parts
|
|||
|
|
|||
|
Update the docs and test 1559 accordingly
|
|||
|
|
|||
|
Closes #11273
|
|||
|
|
|||
|
- examples/ftpuploadresume.c: add use of CURLOPT_ACCEPTTIMEOUT_MS
|
|||
|
|
|||
|
For show
|
|||
|
|
|||
|
Closes #11277
|
|||
|
|
|||
|
- examples/unixsocket.c: example using CURLOPT_UNIX_SOCKET_PATH
|
|||
|
|
|||
|
and alternatively CURLOPT_ABSTRACT_UNIX_SOCKET
|
|||
|
|
|||
|
Closes #11276
|
|||
|
|
|||
|
Anssi Kolehmainen (8 Jun 2023)
|
|||
|
|
|||
|
- docs: fix missing parameter names in examples
|
|||
|
|
|||
|
Closes #11278
|
|||
|
|
|||
|
Daniel Stenberg (8 Jun 2023)
|
|||
|
|
|||
|
- urlapi: have *set(PATH) prepend a slash if one is missing
|
|||
|
|
|||
|
Previously the code would just do that for the path when extracting the
|
|||
|
full URL, which made a subsequent curl_url_get() of the path to
|
|||
|
(unexpectedly) still return it without the leading path.
|
|||
|
|
|||
|
Amend lib1560 to verify this. Clarify the curl_url_set() docs about it.
|
|||
|
|
|||
|
Bug: https://curl.se/mail/lib-2023-06/0015.html
|
|||
|
Closes #11272
|
|||
|
Reported-by: Pedro Henrique
|
|||
|
|
|||
|
Dan Fandrich (7 Jun 2023)
|
|||
|
|
|||
|
- runtests; give each server a unique log lock file
|
|||
|
|
|||
|
Logs are written by several servers and all of them must be finished
|
|||
|
writing before the test results can be determined. This means each
|
|||
|
server must have its own lock file rather than sharing a single one,
|
|||
|
which is how it was done up to now. Previously, the first server to
|
|||
|
complete a test would clear the lock before the other server was done,
|
|||
|
which caused flaky tests.
|
|||
|
|
|||
|
Lock files are now all found in their own directory, so counting locks
|
|||
|
equals counting the files in that directory. The result is that the
|
|||
|
proxy logs are now reliably written which actually changes the expected
|
|||
|
output for two tests.
|
|||
|
|
|||
|
Fixes #11231
|
|||
|
Closes #11259
|
|||
|
|
|||
|
- runtests: make test file directories in log/N
|
|||
|
|
|||
|
Test files in subdirectories were not created after parallel test log
|
|||
|
directories were moved down a level due to a now-bad comparison.
|
|||
|
|
|||
|
Follow-up to 92d7dd39
|
|||
|
|
|||
|
Ref #11264
|
|||
|
Closes #11267
|
|||
|
|
|||
|
Daniel Stenberg (7 Jun 2023)
|
|||
|
|
|||
|
- ws: make the curl_ws_meta() return pointer a const
|
|||
|
|
|||
|
The returned info is read-only for the user.
|
|||
|
|
|||
|
Closes #11261
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- runtests: move parallel log dirs from logN to log/N
|
|||
|
|
|||
|
Having several hundreds of them in there gets annoying.
|
|||
|
|
|||
|
Closes #11264
|
|||
|
|
|||
|
Dan Fandrich (7 Jun 2023)
|
|||
|
|
|||
|
- test447: move the test file into %LOGDIR
|
|||
|
|
|||
|
Viktor Szakats (7 Jun 2023)
|
|||
|
|
|||
|
- cmake: add support for "unity" builds
|
|||
|
|
|||
|
Aka "jumbo" or "amalgamation" builds. It means to compile all sources
|
|||
|
per target as a single C source. This is experimental.
|
|||
|
|
|||
|
You can enable it by passing `-DCMAKE_UNITY_BUILD=ON` to cmake.
|
|||
|
It requires CMake 3.16 or newer.
|
|||
|
|
|||
|
It makes builds (much) faster, allows for better optimizations and tends
|
|||
|
to promote less ambiguous code.
|
|||
|
|
|||
|
Also add a new AppVeyor CI job and convert an existing one to use
|
|||
|
"unity" mode (one MSVC, one MinGW), and enable it for one macOS CI job.
|
|||
|
|
|||
|
Fix related issues:
|
|||
|
- add missing include guard to `easy_lock.h`.
|
|||
|
- rename static variables and functions (and a macro) with names reused
|
|||
|
across sources, or shadowed by local variables.
|
|||
|
- add an `#undef` after use.
|
|||
|
- add a missing `#undef` before use.
|
|||
|
- move internal definitions from `ftp.h` to `ftp.c`.
|
|||
|
- `curl_memory.h` fixes to make it work when included repeatedly.
|
|||
|
- stop building/linking curlx bits twice for a static-mode curl tool.
|
|||
|
These caused doubly defined symbols in unity builds.
|
|||
|
- silence missing extern declarations compiler warning for ` _CRT_glob`.
|
|||
|
- fix extern declarations for `tool_freq` and `tool_isVistaOrGreater`.
|
|||
|
- fix colliding static symbols in debug mode: `debugtime()` and
|
|||
|
`statename`.
|
|||
|
- rename `ssl_backend_data` structure to unique names for each
|
|||
|
TLS-backend, along with the `ssl_connect_data` struct member
|
|||
|
referencing them. This required adding casts for each access.
|
|||
|
- add workaround for missing `[P]UNICODE_STRING` types in certain Windows
|
|||
|
builds when compiling `lib/ldap.c`. To support "unity" builds, we had
|
|||
|
to enable `SCHANNEL_USE_BLACKLISTS` for Schannel (a Windows
|
|||
|
`schannel.h` option) _globally_. This caused an indirect inclusion of
|
|||
|
Windows `schannel.h` from `ldap.c` via `winldap.h` to have it enabled
|
|||
|
as well. This requires `[P]UNICODE_STRING` types, which is apperantly
|
|||
|
not defined automatically (as seen with both MSVS and mingw-w64).
|
|||
|
This patch includes `<subauth.h>` to fix it.
|
|||
|
Ref: https://github.com/curl/curl/runs/13987772013
|
|||
|
Ref: https://dev.azure.com/daniel0244/curl/_build/results?buildId=15827&vie
|
|||
|
w=logs&jobId=2c9f582d-e278-56b6-4354-f38a4d851906&j=2c9f582d-e278-56b6-4354-f
|
|||
|
38a4d851906&t=90509b00-34fa-5a81-35d7-5ed9569d331c
|
|||
|
- tweak unity builds to compile `lib/memdebug.c` separately in memory
|
|||
|
trace builds to avoid PP confusion.
|
|||
|
- force-disable unity for test programs.
|
|||
|
- do not compile and link libcurl sources to libtests _twice_ when libcurl
|
|||
|
is built in static mode.
|
|||
|
|
|||
|
KNOWN ISSUES:
|
|||
|
- running tests with unity builds may fail in cases.
|
|||
|
- some build configurations/env may not compile in unity mode. E.g.:
|
|||
|
https://ci.appveyor.com/project/curlorg/curl/builds/47230972/job/51wfesgnfu
|
|||
|
auwl8q#L250
|
|||
|
|
|||
|
Ref: https://github.com/libssh2/libssh2/issues/1034
|
|||
|
Ref: https://cmake.org/cmake/help/latest/prop_tgt/UNITY_BUILD.html
|
|||
|
Ref: https://en.wikipedia.org/wiki/Unity_build
|
|||
|
|
|||
|
Closes #11095
|
|||
|
|
|||
|
Daniel Stenberg (7 Jun 2023)
|
|||
|
|
|||
|
- examples/websocket.c: websocket example using CONNECT_ONLY
|
|||
|
|
|||
|
Closes #11262
|
|||
|
|
|||
|
- websocket-cb: example doing WebSocket download using callback
|
|||
|
|
|||
|
Very basic
|
|||
|
|
|||
|
Closes #11260
|
|||
|
|
|||
|
- test/.gitignore: ignore log*
|
|||
|
|
|||
|
Dan Fandrich (5 Jun 2023)
|
|||
|
|
|||
|
- runtests: document the -j parallel testing option
|
|||
|
|
|||
|
Reported-by: Daniel Stenberg
|
|||
|
Ref: #10818
|
|||
|
Closes #11255
|
|||
|
|
|||
|
- runtests: create multiple test runners when requested
|
|||
|
|
|||
|
Parallel testing is enabled by using a nonzero value for the -j option
|
|||
|
to runtests.pl. Performant values seem to be about 7*num CPU cores, or
|
|||
|
1.3*num CPU cores if Valgrind is in use.
|
|||
|
|
|||
|
Flaky tests due to improper log locking (bug #11231) are exacerbated
|
|||
|
while parallel testing, so it is not enabled by default yet.
|
|||
|
|
|||
|
Fixes #10818
|
|||
|
Closes #11246
|
|||
|
|
|||
|
- runtests: handle repeating tests in multiprocess mode
|
|||
|
|
|||
|
Such as what happens with the --repeat option. Some functions are
|
|||
|
changed to pass the runner ID instead of relying on the non-unique test
|
|||
|
number.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: buffer logmsg while running singletest()
|
|||
|
|
|||
|
This allows all messages relating to a single test case to be displayed
|
|||
|
together at the end of the test.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: call initserverconfig() in the runner
|
|||
|
|
|||
|
This must be done so variables pick up the runner's unique $LOGDIR.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: use a per-runner random seed
|
|||
|
|
|||
|
Each runner needs a unique random seed to reduce the chance of port
|
|||
|
number collisions. The new scheme uses a consistent per-runner source of
|
|||
|
randomness which results in deterministic behaviour, as it did before.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: complete main test loop refactor for multiple runners
|
|||
|
|
|||
|
The main test loop is now able to handle multiple runners, or no
|
|||
|
additional runner processes at all. At most one process is still
|
|||
|
created, however.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: prepare main test loop for multiple runners
|
|||
|
|
|||
|
Some variables are expanded to arrays and hashes so that multiple
|
|||
|
runners can be used for running tests.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
Stefan Eissing (5 Jun 2023)
|
|||
|
|
|||
|
- bufq: make write/pass methods more robust
|
|||
|
|
|||
|
- related to #11242 where curl enters busy loop when
|
|||
|
sending http2 data to the server
|
|||
|
|
|||
|
Closes #11247
|
|||
|
|
|||
|
Boris Verkhovskiy (5 Jun 2023)
|
|||
|
|
|||
|
- tool_getparam: fix comment
|
|||
|
|
|||
|
Closes #11253
|
|||
|
|
|||
|
Raito Bezarius (5 Jun 2023)
|
|||
|
|
|||
|
- haproxy: add --haproxy-clientip flag to spoof client IPs
|
|||
|
|
|||
|
CURLOPT_HAPROXY_CLIENT_IP in the library
|
|||
|
|
|||
|
Closes #10779
|
|||
|
|
|||
|
Daniel Stenberg (5 Jun 2023)
|
|||
|
|
|||
|
- curl: add --ca-native and --proxy-ca-native
|
|||
|
|
|||
|
These are two boolean options to ask curl to use the native OS's CA
|
|||
|
store when verifying TLS servers. For peers and for proxies
|
|||
|
respectively.
|
|||
|
|
|||
|
They currently only have an effect for curl on Windows when built to use
|
|||
|
OpenSSL for TLS.
|
|||
|
|
|||
|
Closes #11049
|
|||
|
|
|||
|
Viktor Szakats (5 Jun 2023)
|
|||
|
|
|||
|
- build: drop unused/redundant `HAVE_WINLDAP_H`
|
|||
|
|
|||
|
Sources did not use it. Autotools used it when checking for the
|
|||
|
`winldap` library, which is redundant.
|
|||
|
|
|||
|
With CMake, detection was broken:
|
|||
|
```
|
|||
|
Run Build Command(s):/usr/local/Cellar/cmake/3.26.3/bin/cmake -E env VERBOSE=
|
|||
|
1 /usr/bin/make -f Makefile cmTC_2d8fe/fast && /Library/Developer/CommandLine
|
|||
|
Tools/usr/bin/make -f CMakeFiles/cmTC_2d8fe.dir/build.make CMakeFiles/cmTC_2
|
|||
|
d8fe.dir/build
|
|||
|
Building C object CMakeFiles/cmTC_2d8fe.dir/HAVE_WINLDAP_H.c.obj
|
|||
|
/usr/local/opt/llvm/bin/clang --target=x86_64-w64-mingw32 --sysroot=/usr/loca
|
|||
|
l/opt/mingw-w64/toolchain-x86_64 -D_WINSOCKAPI_="" -I/my/quictls/x64-ucrt/usr
|
|||
|
/include -I/my/zlib/x64-ucrt/usr/include -I/my/brotli/x64-ucrt/usr/include -W
|
|||
|
no-unused-command-line-argument -D_UCRT -DCURL_HIDDEN_SYMBOLS -DHAVE_SSL_SE
|
|||
|
T0_WBIO -DHAS_ALPN -DNGHTTP2_STATICLIB -DNGHTTP3_STATICLIB -DNGTCP2_STATICLIB
|
|||
|
-DUSE_MANUAL=1 -fuse-ld=lld -Wl,-s -static-libgcc -lucrt -Wextra -Wall -p
|
|||
|
edantic -Wbad-function-cast -Wconversion -Winline -Wmissing-declarations -Wmi
|
|||
|
ssing-prototypes -Wnested-externs -Wno-long-long -Wno-multichar -Wpointer-ari
|
|||
|
th -Wshadow -Wsign-compare -Wundef -Wunused -Wwrite-strings -Wcast-align -Wde
|
|||
|
claration-after-statement -Wempty-body -Wendif-labels -Wfloat-equal -Wignored
|
|||
|
-qualifiers -Wno-format-nonliteral -Wno-sign-conversion -Wno-system-headers -
|
|||
|
Wstrict-prototypes -Wtype-limits -Wvla -Wshift-sign-overflow -Wshorten-64-to-
|
|||
|
32 -Wdouble-promotion -Wenum-conversion -Wunused-const-variable -Wcomma -Wmis
|
|||
|
sing-variable-declarations -Wassign-enum -Wextra-semi-stmt -MD -MT CMakeFile
|
|||
|
s/cmTC_2d8fe.dir/HAVE_WINLDAP_H.c.obj -MF CMakeFiles/cmTC_2d8fe.dir/HAVE_WINL
|
|||
|
DAP_H.c.obj.d -o CMakeFiles/cmTC_2d8fe.dir/HAVE_WINLDAP_H.c.obj -c /my/curl/b
|
|||
|
ld-cmake-llvm-x64-shared/CMakeFiles/CMakeScratch/TryCompile-3JP6dR/HAVE_WINLD
|
|||
|
AP_H.c
|
|||
|
In file included from /my/curl/bld-cmake-llvm-x64-shared/CMakeFiles/CMakeScra
|
|||
|
tch/TryCompile-3JP6dR/HAVE_WINLDAP_H.c:2:
|
|||
|
In file included from /usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mi
|
|||
|
ngw32/include/winldap.h:17:
|
|||
|
In file included from /usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mi
|
|||
|
ngw32/include/schnlsp.h:9:
|
|||
|
In file included from /usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mi
|
|||
|
ngw32/include/schannel.h:10:
|
|||
|
/usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mingw32/include/wincrypt
|
|||
|
.h:5041:254: error: unknown type name 'PSYSTEMTIME'
|
|||
|
WINIMPM PCCERT_CONTEXT WINAPI CertCreateSelfSignCertificate (HCRYPTPROV_OR_
|
|||
|
NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey, PCERT_NAME_BLOB pSubjectIssuerBlob,
|
|||
|
DWORD dwFlags, PCRYPT_KEY_PROV_INFO pKeyProvInfo, PCRYPT_ALGORITHM_IDENTIFIER
|
|||
|
pSignatureAlgorithm, PSYSTEMTIME pStartTime, PSYSTEMTIME pEndTime, PCERT_EXT
|
|||
|
ENSIONS pExtensions);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
^
|
|||
|
/usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mingw32/include/wincrypt
|
|||
|
.h:5041:278: error: unknown type name 'PSYSTEMTIME'
|
|||
|
WINIMPM PCCERT_CONTEXT WINAPI CertCreateSelfSignCertificate (HCRYPTPROV_OR_
|
|||
|
NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey, PCERT_NAME_BLOB pSubjectIssuerBlob,
|
|||
|
DWORD dwFlags, PCRYPT_KEY_PROV_INFO pKeyProvInfo, PCRYPT_ALGORITHM_IDENTIFIER
|
|||
|
pSignatureAlgorithm, PSYSTEMTIME pStartTime, PSYSTEMTIME pEndTime, PCERT_EXT
|
|||
|
ENSIONS pExtensions);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
^
|
|||
|
2 errors generated.
|
|||
|
make[1]: *** [CMakeFiles/cmTC_2d8fe.dir/HAVE_WINLDAP_H.c.obj] Error 1
|
|||
|
make: *** [cmTC_2d8fe/fast] Error 2
|
|||
|
exitCode: 2
|
|||
|
```
|
|||
|
|
|||
|
Cherry-picked from #11095 88e4a21ff70ccef391cf99c8165281ff81374503
|
|||
|
Reviewed-by: Daniel Stenberg
|
|||
|
Closes #11245
|
|||
|
|
|||
|
Daniel Stenberg (5 Jun 2023)
|
|||
|
|
|||
|
- urlapi: scheme starts with alpha
|
|||
|
|
|||
|
Add multiple tests to lib1560 to verify
|
|||
|
|
|||
|
Fixes #11249
|
|||
|
Reported-by: ad0p on github
|
|||
|
Closes #11250
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- CURLOPT_MAIL_RCPT_ALLOWFAILS: replace CURLOPT_MAIL_RCPT_ALLLOWFAILS
|
|||
|
|
|||
|
Deprecate the name using three Ls and prefer the name with two.
|
|||
|
|
|||
|
Replaces #10047
|
|||
|
Closes #11218
|
|||
|
|
|||
|
- tests/servers: generate temp names in /tmp for unix domain sockets
|
|||
|
|
|||
|
... instead of putting them in the regular pid directories because
|
|||
|
systems generally have strict length requirements for the path name to
|
|||
|
be shorter than 107 bytes and we easily hit that boundary otherwise.
|
|||
|
|
|||
|
The new concept generates two random names: one for the socks daemon and
|
|||
|
one for http.
|
|||
|
|
|||
|
Reported-by: Andy Fiddaman
|
|||
|
Fixes #11152
|
|||
|
Closes #11166
|
|||
|
|
|||
|
Stefan Eissing (2 Jun 2023)
|
|||
|
|
|||
|
- http2: better support for --limit-rate
|
|||
|
|
|||
|
- leave transfer loop when --limit-rate is in effect and has
|
|||
|
been received
|
|||
|
- adjust stream window size to --limit-rate plus some slack
|
|||
|
to make the server observe the pacing we want
|
|||
|
- add test case to confirm behaviour
|
|||
|
|
|||
|
Closes #11115
|
|||
|
|
|||
|
- curl_log: evaluate log statement only when transfer is verbose
|
|||
|
|
|||
|
Closes #11238
|
|||
|
|
|||
|
Daniel Stenberg (2 Jun 2023)
|
|||
|
|
|||
|
- libssh2: provide error message when setting host key type fails
|
|||
|
|
|||
|
Ref: https://curl.se/mail/archive-2023-06/0001.html
|
|||
|
|
|||
|
Closes #11240
|
|||
|
|
|||
|
Igor Todorovski (2 Jun 2023)
|
|||
|
|
|||
|
- system.h: remove __IBMC__/__IBMCPP__ guards and apply to all z/OS compiles
|
|||
|
|
|||
|
Closes #11241
|
|||
|
|
|||
|
Daniel Stenberg (2 Jun 2023)
|
|||
|
|
|||
|
- docs/SECURITY-PROCESS.md: link to example of previous critical flaw
|
|||
|
|
|||
|
Mark Seuffert (2 Jun 2023)
|
|||
|
|
|||
|
- README.md: updated link to opencollective
|
|||
|
|
|||
|
Closes #11232
|
|||
|
|
|||
|
Daniel Stenberg (1 Jun 2023)
|
|||
|
|
|||
|
- libssh2: use custom memory functions
|
|||
|
|
|||
|
Because of how libssh2_userauth_keyboard_interactive_ex() works: the
|
|||
|
libcurl callback allocates memory that is later free()d by libssh2, we
|
|||
|
must set the custom memory functions.
|
|||
|
|
|||
|
Reverts 8b5f100db388ee60118c08aa28
|
|||
|
|
|||
|
Ref: https://github.com/libssh2/libssh2/issues/1078
|
|||
|
Closes #11235
|
|||
|
|
|||
|
- test447: test PUTting a file that grows
|
|||
|
|
|||
|
... and have curl trim the end when it reaches the expected total amount
|
|||
|
of bytes instead of over-sending.
|
|||
|
|
|||
|
Reported-by: JustAnotherArchivist on github
|
|||
|
Closes #11223
|
|||
|
|
|||
|
- curl: count uploaded data to stop at the originally given size
|
|||
|
|
|||
|
Closes #11223
|
|||
|
Fixes #11222
|
|||
|
Reported-by: JustAnotherArchivist on github
|
|||
|
|
|||
|
- tool: remove exclamation marks from error/warning messages
|
|||
|
|
|||
|
- tool: use errorf() for error output
|
|||
|
|
|||
|
Convert a number of fprintf() calls.
|
|||
|
|
|||
|
- tool: remove newlines from all helpf/notef/warnf/errorf calls
|
|||
|
|
|||
|
Make voutf() always add one.
|
|||
|
|
|||
|
Closes #11226
|
|||
|
|
|||
|
- tests/servers.pm: pick unused port number with a server socket
|
|||
|
|
|||
|
This change replaces the previous method of picking a port number at
|
|||
|
random to try to start servers on, then retrying up to ten times with
|
|||
|
new random numbers each time, with a function that creates a server
|
|||
|
socket on port zero, thereby getting a suitable random port set by the
|
|||
|
kernel. That server socket is then closed and that port number is used
|
|||
|
to setup the actual test server on.
|
|||
|
|
|||
|
There is a risk that *another* server can be started on the machine in
|
|||
|
the time gap, but the server verification feature will detect that.
|
|||
|
|
|||
|
Closes #11220
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
bump to 8.2.0
|
|||
|
|
|||
|
Alejandro R. Sedeño (31 May 2023)
|
|||
|
|
|||
|
- configure: fix run-compiler for old /bin/sh
|
|||
|
|
|||
|
If you try to assign and export on the same line on some older /bin/sh
|
|||
|
implementations, it complains:
|
|||
|
|
|||
|
```
|
|||
|
$ export "NAME=value"
|
|||
|
NAME=value: is not an identifier
|
|||
|
```
|
|||
|
|
|||
|
This commit rewrites run-compiler's assignments and exports to work with
|
|||
|
old /bin/sh, splitting assignment and export into two separate
|
|||
|
statements, and only quote the value. So now we have:
|
|||
|
|
|||
|
```
|
|||
|
NAME="value"
|
|||
|
export NAME
|
|||
|
```
|
|||
|
|
|||
|
While we're here, make the same change to the two supporting
|
|||
|
assign+export lines preceeding the script to be consistent with how
|
|||
|
exports work throughout the rest of configure.ac.
|
|||
|
|
|||
|
Closes #11228
|
|||
|
|
|||
|
Philip Heiduck (31 May 2023)
|
|||
|
|
|||
|
- circleci: install impacket & wolfssl 5.6.0
|
|||
|
|
|||
|
Closes #11221
|
|||
|
|
|||
|
Daniel Stenberg (31 May 2023)
|
|||
|
|
|||
|
- tool_urlglob: use curl_off_t instead of longs
|
|||
|
|
|||
|
To handle more globs better (especially on Windows)
|
|||
|
|
|||
|
Closes #11224
|
|||
|
|
|||
|
Dan Fandrich (30 May 2023)
|
|||
|
|
|||
|
- scripts: Fix GHA matrix job detection in cijobs.pl
|
|||
|
|
|||
|
The parsing is pretty brittle and it broke detecting some jobs at some
|
|||
|
point. Also, detect if Windows is used in GHA.
|
|||
|
|
|||
|
- runtests: abort test run after failure without -a
|
|||
|
|
|||
|
This was broken in a recent refactor and test runs would not stop.
|
|||
|
|
|||
|
Follow-up to d4a1b5b6
|
|||
|
|
|||
|
Reported-by: Daniel Stenberg
|
|||
|
Fixes #11225
|
|||
|
Closes #11227
|
|||
|
|
|||
|
Version 8.1.2 (30 May 2023)
|
|||
|
|
|||
|
Daniel Stenberg (30 May 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
8.1.2 release
|
|||
|
|
|||
|
- THANKS: contributors from 8.1.2
|
|||
|
|
|||
|
- lib1560: verify more scheme guessing
|
|||
|
|
|||
|
- on 2nd level domains
|
|||
|
- on names without dots
|
|||
|
|
|||
|
As mentioned in #11161, "imap.com" will be guessed IMAP
|
|||
|
|
|||
|
Closes #11219
|
|||
|
|
|||
|
- page-header: minor wording polish in the URL segment
|
|||
|
|
|||
|
Closes #11217
|
|||
|
|
|||
|
- page-header: mention curl version and how to figure out current release
|
|||
|
|
|||
|
Closes #11216
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- configure: without pkg-config and no custom path, use -lnghttp2
|
|||
|
|
|||
|
Reported-by: correctmost on github
|
|||
|
Fixes #11186
|
|||
|
Closes #11210
|
|||
|
|
|||
|
Stefan Eissing (28 May 2023)
|
|||
|
|
|||
|
- curl: cache the --trace-time value for a second
|
|||
|
|
|||
|
- caches HH:MM:SS computed and reuses it for logging during
|
|||
|
the same second.
|
|||
|
- common function for plain log line start formatting
|
|||
|
|
|||
|
Closes #11211
|
|||
|
|
|||
|
Kev Jackson (28 May 2023)
|
|||
|
|
|||
|
- libcurl.m4: remove trailing 'dnl' that causes this to break autoconf
|
|||
|
|
|||
|
Closes #11212
|
|||
|
|
|||
|
Stefan Eissing (26 May 2023)
|
|||
|
|
|||
|
- http3: send EOF indicator early as possible
|
|||
|
|
|||
|
- ngtcp2 and quiche implementations relied on the DONE_SEND event
|
|||
|
to forward the EOF for uploads to the libraries. This often
|
|||
|
result in a last 0 length EOF data. Tracking the amount of
|
|||
|
data left to upload allows EOF indication earlier.
|
|||
|
- refs #11205 where CloudFlare DoH servers did not like to
|
|||
|
receive the initial upload DATA without EOF and returned
|
|||
|
a 400 Bad Request
|
|||
|
|
|||
|
Reported-by: Sergey Fionov
|
|||
|
Fixes #11205
|
|||
|
Closes #11207
|
|||
|
|
|||
|
Daniel Stenberg (26 May 2023)
|
|||
|
|
|||
|
- scripts/contri*sh: no longer grep -v ' '
|
|||
|
|
|||
|
Originally these scripts filtered out names that have no space so that
|
|||
|
they better avoid nick names not intended for credits. Such names are
|
|||
|
not too commonly used, plus we now give credit even to those.
|
|||
|
|
|||
|
Additionally: non-latin names, like Asian, don't have spaces at all so
|
|||
|
they were also filtered out and had to be manually added which made it
|
|||
|
an error-prone operation where Asian names eventually easily fell off by
|
|||
|
mistake.
|
|||
|
|
|||
|
Closes #11206
|
|||
|
|
|||
|
- cf-socket: restore Curl_sock_assign_addr()
|
|||
|
|
|||
|
Regression since it was not private. Also used by msh3.c
|
|||
|
|
|||
|
Follow-up to 8e85764b7bd7f05f5
|
|||
|
Reported-by: Gisle Vanem
|
|||
|
Fixes #11202
|
|||
|
Closes #11204
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Taken down to 8.1.2 now for pending patch release
|
|||
|
|
|||
|
- libssh: when keyboard-interactive auth fails, try password
|
|||
|
|
|||
|
The state machine had a mistake in that it would not carry on to that
|
|||
|
next step.
|
|||
|
|
|||
|
This also adds a verbose output what methods that are available from the
|
|||
|
server and renames the macros that change to the next auth methods to
|
|||
|
try.
|
|||
|
|
|||
|
Reported-by: 左潇峰
|
|||
|
Fixes #11196
|
|||
|
Closes #11197
|
|||
|
|
|||
|
Emanuele Torre (25 May 2023)
|
|||
|
|
|||
|
- configure: fix build with arbitrary CC and LD_LIBRARY_PATH
|
|||
|
|
|||
|
Since ./configure and processes that inherit its environment variables
|
|||
|
are the only callers of the run-compiler script, we can just save the
|
|||
|
current value of the LD_LIBRARY_PATH and CC variables to another pair of
|
|||
|
environment variables, and make run-compiler a static script that
|
|||
|
simply restores CC and LD_LIBRARY_PATH to the saved value, and before
|
|||
|
running the compiler.
|
|||
|
|
|||
|
This avoids having to inject the values of the variables in the script,
|
|||
|
possibly causing problems if they contains spaces, quotes, and other
|
|||
|
special characters.
|
|||
|
|
|||
|
Also add exports in the script just in case LD_LIBRARY_PATH and CC are
|
|||
|
not already in the environment.
|
|||
|
|
|||
|
follow-up from 471dab2
|
|||
|
|
|||
|
Closes #11182
|
|||
|
|
|||
|
Daniel Stenberg (25 May 2023)
|
|||
|
|
|||
|
- urlapi: remove superfluous host name check
|
|||
|
|
|||
|
... as it is checked later more proper.
|
|||
|
|
|||
|
Closes #11195
|
|||
|
|
|||
|
Stefan Eissing (25 May 2023)
|
|||
|
|
|||
|
- http2: fix EOF handling on uploads with auth negotiation
|
|||
|
|
|||
|
- doing a POST with `--digest` does an override on the initial request
|
|||
|
with `Content-Length: 0`, but the http2 filter was unaware of that
|
|||
|
and expected the originally request body. It did therefore not
|
|||
|
send a final DATA frame with EOF flag to the server.
|
|||
|
- The fix overrides any initial notion of post size when the `done_send`
|
|||
|
event is triggered by the transfer loop, leading to the EOF that
|
|||
|
is necessary.
|
|||
|
- refs #11194. The fault did not happen in testing, as Apache httpd
|
|||
|
never tries to read the request body of the initial request,
|
|||
|
sends the 401 reply and closes the stream. The server used in the
|
|||
|
reported issue however tried to read the EOF and timed out on the
|
|||
|
request.
|
|||
|
|
|||
|
Reported-by: Aleksander Mazur
|
|||
|
Fixes #11194
|
|||
|
Cloes #11200
|
|||
|
|
|||
|
Daniel Stenberg (23 May 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
bump to 8.2.0
|
|||
|
|
|||
|
- lib: remove unused functions, make single-use static
|
|||
|
|
|||
|
Closes #11174
|
|||
|
|
|||
|
- scripts/singleuse.pl: add more API calls
|
|||
|
|
|||
|
Christian Hesse (23 May 2023)
|
|||
|
|
|||
|
- configure: quote the assignments for run-compiler
|
|||
|
|
|||
|
Building for multilib failed, as the compiler command contains an
|
|||
|
extra argument. That needs quoting.
|
|||
|
|
|||
|
Regression from b78ca50cb3dda361f9c1
|
|||
|
|
|||
|
Fixes #11179
|
|||
|
Closes #11180
|
|||
|
|
|||
|
Daniel Stenberg (23 May 2023)
|
|||
|
|
|||
|
- misc: fix spelling mistakes
|
|||
|
|
|||
|
Reported-by: musvaage on github
|
|||
|
Fixes #11171
|
|||
|
Closes #11172
|
|||
|
|
|||
|
Version 8.1.1 (23 May 2023)
|
|||
|
|
|||
|
Daniel Stenberg (23 May 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
curl 8.1.1
|
|||
|
|
|||
|
- THANKS: contributors from the 8.1.1 release
|
|||
|
|
|||
|
Dan Fandrich (22 May 2023)
|
|||
|
|
|||
|
- docs: fix fuzzing documentation link
|
|||
|
|
|||
|
Follow-up to 4c712a1b
|
|||
|
|
|||
|
- CI: add an Alpine build with MUSL
|
|||
|
|
|||
|
MUSL is another libc implementation which has its own unique issues
|
|||
|
worth testing.
|
|||
|
|
|||
|
Ref: #11140
|
|||
|
Closes #11178
|
|||
|
|
|||
|
- runtests: add a missing \n at the end of a log message
|
|||
|
|
|||
|
correctmost on github (22 May 2023)
|
|||
|
|
|||
|
- SECURITY-PROCESS.md: link security advisory doc and fix typo
|
|||
|
|
|||
|
Closes #11177
|
|||
|
|
|||
|
Daniel Stenberg (22 May 2023)
|
|||
|
|
|||
|
- TODO: build curl with Windows Unicode support
|
|||
|
|
|||
|
Closes #7229
|
|||
|
|
|||
|
- KNOWN_BUGS: hyper memory-leaks
|
|||
|
|
|||
|
Closes #10803
|
|||
|
|
|||
|
Stefan Eissing (22 May 2023)
|
|||
|
|
|||
|
- http/2: unstick uploads
|
|||
|
|
|||
|
- refs #11157 and #11175 where uploads get stuck or lead to RST streams
|
|||
|
- fixes our h2 send behaviour to continue sending in the nghttp2 session
|
|||
|
as long as it wants to. This will empty our send buffer as long as
|
|||
|
the remote stream/connection window allows.
|
|||
|
- in case the window is exhausted, the data remaining in the send buffer
|
|||
|
will wait for a WINDOW_UPDATE from the server. Which is a socket event
|
|||
|
that engages our transfer loop again
|
|||
|
- the problem in the issue was that we did not exhaust the window, but
|
|||
|
left data in the sendbuffer and no further socket events did happen.
|
|||
|
The server was just waiting for us to send more.
|
|||
|
- relatedly, there was an issue fixed that closing a stream with KEEP_HOLD
|
|||
|
set kept the transfer from shutting down - as it should have - leading
|
|||
|
to a timeout.
|
|||
|
|
|||
|
Closes #11176
|
|||
|
|
|||
|
Daniel Stenberg (21 May 2023)
|
|||
|
|
|||
|
- workflows/macos: add a job using gcc + debug + secure transport
|
|||
|
|
|||
|
Jay Satiro (21 May 2023)
|
|||
|
|
|||
|
- lib: fix conversion warnings with gcc on macOS
|
|||
|
|
|||
|
Daniel Stenberg (21 May 2023)
|
|||
|
|
|||
|
- sectransp.c: make the code c89 compatible
|
|||
|
|
|||
|
Follow-up to dd2bb485521c2ec713001b3a
|
|||
|
|
|||
|
Reported-by: FeignClaims on github
|
|||
|
Fixes #11155
|
|||
|
Closes #11159
|
|||
|
|
|||
|
Emanuele Torre (21 May 2023)
|
|||
|
|
|||
|
- Revert "urlapi: respect CURLU_ALLOW_SPACE and CURLU_NO_AUTHORITY for redirect
|
|||
|
s"
|
|||
|
|
|||
|
This reverts commit df6c2f7b544f1f35f2a3e0be11f345affeb6fe9c.
|
|||
|
(It only keep the test case that checks redirection to an absolute URL
|
|||
|
without hostname and CURLU_NO_AUTHORITY).
|
|||
|
|
|||
|
I originally wanted to make CURLU_ALLOW_SPACE accept spaces in the
|
|||
|
hostname only because I thought
|
|||
|
curl_url_set(CURLUPART_URL, CURLU_ALLOW_SPACE) was already accepting
|
|||
|
them, and they were only not being accepted in the hostname when
|
|||
|
curl_url_set(CURLUPART_URL) was used for a redirection.
|
|||
|
|
|||
|
That is not actually the case, urlapi never accepted hostnames with
|
|||
|
spaces, and a hostname with a space in it never makes sense.
|
|||
|
I probably misread the output of my original test when I they were
|
|||
|
normally accepted when using CURLU_ALLOW_SPACE, and not redirecting.
|
|||
|
|
|||
|
Some other URL parsers seems to allow space in the host part of the URL,
|
|||
|
e.g. both python3's urllib.parse module, and Chromium's javascript URL
|
|||
|
object allow spaces (chromium percent escapes the spaces with %20),
|
|||
|
(they also both ignore TABs, and other whitespace characters), but those
|
|||
|
URLs with spaces in the hostname are useless, neither python3's requests
|
|||
|
module nor Chromium's window.location can actually use them.
|
|||
|
|
|||
|
There is no reason to add support for URLs with spaces in the host,
|
|||
|
since it was not a inconsistency bug; let's revert that patch before it
|
|||
|
makes it into release. Sorry about that.
|
|||
|
|
|||
|
I also reverted the extra check for CURLU_NO_AUTHORITY since that does
|
|||
|
not seem to be necessary, CURLU_NO_AUTHORITY already worked for
|
|||
|
redirects.
|
|||
|
|
|||
|
Closes #11169
|
|||
|
|
|||
|
Dan Fandrich (20 May 2023)
|
|||
|
|
|||
|
- runtests: use the correct fd after select
|
|||
|
|
|||
|
The code was using the wrong fd when determining which runner was ready
|
|||
|
with a response.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Closes #11160
|
|||
|
|
|||
|
- test425: fix the log directory for the upload
|
|||
|
|
|||
|
This must be %LOGDIR to let it work with parallel tests.
|
|||
|
|
|||
|
Ref: #10969
|
|||
|
|
|||
|
- runtests: handle interrupted reads from IPC pipes
|
|||
|
|
|||
|
These can be interrupted by signals, especially SIGINT to shut down, and
|
|||
|
must be restarted so the IPC call arrives correctly. If the read just
|
|||
|
returns an error instead, the IPC calling state will go out of sync and
|
|||
|
a proper shutdown won't happen.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
Stefan Eissing (20 May 2023)
|
|||
|
|
|||
|
- http2: upload improvements
|
|||
|
|
|||
|
Make send buffer smaller to have progress and "upload done" reporting
|
|||
|
closer to reality. Fix handling of send "drain" condition to no longer
|
|||
|
trigger once the transfer loop reports it is done sending. Also do not
|
|||
|
trigger the send "drain" on RST streams.
|
|||
|
|
|||
|
Background:
|
|||
|
- a upload stall was reported in #11157 that timed out
|
|||
|
- test_07_33a reproduces a problem with such a stall if the
|
|||
|
server 404s the request and RSTs the stream.
|
|||
|
- test_07_33b verifies a successful PUT, using the parameters
|
|||
|
from #11157 and checks success
|
|||
|
|
|||
|
Ref: #11157
|
|||
|
Closes #11165
|
|||
|
|
|||
|
- http2: increase stream window size to 10 MB
|
|||
|
|
|||
|
Reported-by: pandada8 on github
|
|||
|
|
|||
|
Fixes #11162
|
|||
|
Closes #11167
|
|||
|
|
|||
|
Daniel Stenberg (20 May 2023)
|
|||
|
|
|||
|
- lib: rename struct 'http_req' to 'httpreq'
|
|||
|
|
|||
|
Because FreeBSD 14 kidnapped the name.
|
|||
|
Ref: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271526
|
|||
|
|
|||
|
Fixes #11163
|
|||
|
Closes #11164
|
|||
|
|
|||
|
Viktor Szakats (20 May 2023)
|
|||
|
|
|||
|
- cmake: avoid `list(PREPEND)` for compatibility
|
|||
|
|
|||
|
`list(PREPEND)` requires CMake v3.15, our minimum is v3.7.
|
|||
|
|
|||
|
Ref: https://cmake.org/cmake/help/latest/command/list.html#prepend
|
|||
|
|
|||
|
Regression from 1e3319a167d2f32d295603167486e9e88af9bb4e
|
|||
|
|
|||
|
Reported-by: Keitagit-kun on Github
|
|||
|
Fixes #11141
|
|||
|
Closes #11144
|
|||
|
|
|||
|
Daniel Stenberg (19 May 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Stefan Eissing (19 May 2023)
|
|||
|
|
|||
|
- ngtcp2: proper handling of uint64_t when adjusting send buffer
|
|||
|
|
|||
|
Fixes #11149
|
|||
|
Closes #11153
|
|||
|
|
|||
|
- ngtcp2: fix compiler warning about possible null-deref
|
|||
|
|
|||
|
- compiler analyzer did not include the call context for this
|
|||
|
static function where the condition had already been checked.
|
|||
|
- eleminating the problem by making stream a call parameter
|
|||
|
|
|||
|
Fixes #11147
|
|||
|
Closes #11151
|
|||
|
|
|||
|
Emanuele Torre (19 May 2023)
|
|||
|
|
|||
|
- docs: document that curl_url_cleanup(NULL) is a safe no-op
|
|||
|
|
|||
|
This has always been the case, but it was not documented.
|
|||
|
|
|||
|
The paragraph was copied verbatim from curl_easy_cleanup.3
|
|||
|
|
|||
|
Closes #11150
|
|||
|
|
|||
|
Antoine Pitrou (19 May 2023)
|
|||
|
|
|||
|
- select: avoid returning an error on EINTR from select() or poll()
|
|||
|
|
|||
|
This was already done for the poll() and select() calls
|
|||
|
made directly from Curl_poll(), but was missed in
|
|||
|
Curl_wait_ms(), which is called when there are no fds
|
|||
|
to wait on.
|
|||
|
|
|||
|
Fixes #11135
|
|||
|
Closes #11143
|
|||
|
|
|||
|
Daniel Stenberg (19 May 2023)
|
|||
|
|
|||
|
- vquic.c: make recvfrom_packets static, avoid compiler warning
|
|||
|
|
|||
|
warning: no previous prototype for 'recvfrom_packets'
|
|||
|
|
|||
|
Reported-by: Keitagit-kun on github
|
|||
|
Fixes #11146
|
|||
|
Closes #11148
|
|||
|
|
|||
|
- urlapi: allow numerical parts in the host name
|
|||
|
|
|||
|
It can only be an IPv4 address if all parts are all digits and no more than
|
|||
|
four parts, otherwise it is a host name. Even slightly wrong IPv4 will now be
|
|||
|
passed through as a host name.
|
|||
|
|
|||
|
Regression from 17a15d88467 shipped in 8.1.0
|
|||
|
|
|||
|
Extended test 1560 accordingly.
|
|||
|
|
|||
|
Reported-by: Pavel Kalyugin
|
|||
|
Fixes #11129
|
|||
|
Closes #11131
|
|||
|
|
|||
|
Emilio Cobos Álvarez (19 May 2023)
|
|||
|
|
|||
|
- http2: double http request parser max line length
|
|||
|
|
|||
|
This works around #11138, by doubling the limit, and should be a
|
|||
|
relatively safe fix.
|
|||
|
|
|||
|
Ideally the buffer would grow as needed and there would be no need for a
|
|||
|
limit? But that might be follow-up material.
|
|||
|
|
|||
|
Fixes #11138
|
|||
|
Closes #11139
|
|||
|
|
|||
|
Emanuele Torre (18 May 2023)
|
|||
|
|
|||
|
- configure: fix --help alignment
|
|||
|
|
|||
|
AC_ARG_ENABLE seems to only trim off whitespace from the start and end
|
|||
|
of its help-string argument, while prepending two spaces of indentation
|
|||
|
to all lines.
|
|||
|
|
|||
|
This means that the two spaces of indentation between the --enable-rtsp
|
|||
|
and the --disable-rtsp line were not removed causing ./configure --help
|
|||
|
to print:
|
|||
|
|
|||
|
Optional Features:
|
|||
|
[...]
|
|||
|
--enable-rtsp Enable RTSP support
|
|||
|
--disable-rtsp Disable RTSP support
|
|||
|
|
|||
|
I removed the indentation to fix the issue, now it prints:
|
|||
|
|
|||
|
Optional Features:
|
|||
|
[...]
|
|||
|
--enable-rtsp Enable RTSP support
|
|||
|
--disable-rtsp Disable RTSP support
|
|||
|
|
|||
|
The --enable-hsts and --disable-hsts lines had the same problems, and
|
|||
|
have been fixed too.
|
|||
|
|
|||
|
Closes #11142
|
|||
|
|
|||
|
Deal(一线灵) (18 May 2023)
|
|||
|
|
|||
|
- cmake: repair cross compiling
|
|||
|
|
|||
|
It cannot *run* code for testing purposes when cross-compiling.
|
|||
|
|
|||
|
Closes #11130
|
|||
|
|
|||
|
Daniel Stenberg (18 May 2023)
|
|||
|
|
|||
|
- configure: generate a script to run the compiler
|
|||
|
|
|||
|
in the CURL_RUN_IFELSE macro, with LD_LIBRARY_PATH set to the value of
|
|||
|
the configure invoke, and not the value that might be used later,
|
|||
|
intended for the execution of the output the compiler ouputs.
|
|||
|
|
|||
|
For example when the compiler uses the same library (like libz) that
|
|||
|
configure checks for.
|
|||
|
|
|||
|
Reported-by: Jonas Bülow
|
|||
|
Fixes #11114
|
|||
|
Closes #11120
|
|||
|
|
|||
|
Stefan Eissing (18 May 2023)
|
|||
|
|
|||
|
- cf-socket: completely remove the disabled USE_RECV_BEFORE_SEND_WORKAROUND
|
|||
|
|
|||
|
Closes #11118
|
|||
|
|
|||
|
Emanuele Torre (18 May 2023)
|
|||
|
|
|||
|
- urlapi: respect CURLU_ALLOW_SPACE and CURLU_NO_AUTHORITY for redirects
|
|||
|
|
|||
|
curl_url_set(uh, CURLUPART_URL, redirurl, flags) was not respecing
|
|||
|
CURLU_ALLOW_SPACE and CURLU_NO_AUTHORITY in the host part of redirurl
|
|||
|
when redirecting to an absolute URL.
|
|||
|
|
|||
|
Closes #11136
|
|||
|
|
|||
|
Colin Cross (18 May 2023)
|
|||
|
|
|||
|
- hostip: move easy_lock.h include above curl_memory.h
|
|||
|
|
|||
|
Similar to #9561, move easy_lock.h above curl_memory.h to fix building
|
|||
|
against musl libc.
|
|||
|
|
|||
|
Closes #11140
|
|||
|
|
|||
|
Hind Montassif (18 May 2023)
|
|||
|
|
|||
|
- curl_easy_getinfo: clarify on return data types
|
|||
|
|
|||
|
Closes #11126
|
|||
|
|
|||
|
Emanuele Torre (18 May 2023)
|
|||
|
|
|||
|
- checksrc: disallow spaces before labels
|
|||
|
|
|||
|
Out of 415 labels throughout the code base, 86 of those labels were
|
|||
|
not at the start of the line. Which means labels always at the start of
|
|||
|
the line is the favoured style overall with 329 instances.
|
|||
|
|
|||
|
Out of the 86 labels not at the start of the line:
|
|||
|
* 75 were indented with the same indentation level of the following line
|
|||
|
* 8 were indented with exactly one space
|
|||
|
* 2 were indented with one fewer indentation level then the following
|
|||
|
line
|
|||
|
* 1 was indented with the indentation level of the following line minus
|
|||
|
three space (probably unintentional)
|
|||
|
|
|||
|
Co-Authored-By: Viktor Szakats
|
|||
|
|
|||
|
Closes #11134
|
|||
|
|
|||
|
Daniel Stenberg (18 May 2023)
|
|||
|
|
|||
|
- cookie: update the comment on cookie length and size limits
|
|||
|
|
|||
|
To refer to the proper cookie RFC and the upcoming RFC refresh.
|
|||
|
|
|||
|
Closes #11127
|
|||
|
|
|||
|
- url: provide better error message when URLs fail to parse
|
|||
|
|
|||
|
By providing the URL API error message into the error message.
|
|||
|
|
|||
|
Ref: #11129
|
|||
|
Closes #11137
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
bumped to 8.1.1
|
|||
|
|
|||
|
Jon Rumsey (18 May 2023)
|
|||
|
|
|||
|
- os400: update chkstrings.c
|
|||
|
|
|||
|
Compensate changes for recent changes to urldata.h to reclassify
|
|||
|
STRING_AWS_SIGV4.
|
|||
|
|
|||
|
Fixes #11132
|
|||
|
Closes #11133
|
|||
|
|
|||
|
Version 8.1.0 (17 May 2023)
|
|||
|
|
|||
|
Daniel Stenberg (17 May 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- THANKS: contributors from the 8.1.0 release
|
|||
|
|
|||
|
- hostip: include easy_lock.h before using GLOBAL_INIT_IS_THREADSAFE
|
|||
|
|
|||
|
Since that header file is the only place that define can be defined.
|
|||
|
|
|||
|
Reported-by: Marc Deslauriers
|
|||
|
|
|||
|
Follow-up to 13718030ad4b3209
|
|||
|
|
|||
|
Closes #11121
|
|||
|
|
|||
|
Thomas Taylor (16 May 2023)
|
|||
|
|
|||
|
- aws-sigv4.d: fix region identifier in example
|
|||
|
|
|||
|
Closes #11117
|
|||
|
|
|||
|
Philip Heiduck (15 May 2023)
|
|||
|
|
|||
|
- mlc_config.json: remove this linkcheck CI job config file
|
|||
|
|
|||
|
Closes #11113
|
|||
|
|
|||
|
Daniel Silverstone (15 May 2023)
|
|||
|
|
|||
|
- ssh: Add support for libssh2 read timeout
|
|||
|
|
|||
|
Hook the new (1.11.0 or newer) libssh2 support for setting a read timeout
|
|||
|
into the SERVER_RESPONSE_TIMEOUT option. With this done, clients can use
|
|||
|
the standard curl response timeout setting to also control the time that
|
|||
|
libssh2 will wait for packets from a slow server. This is necessary to
|
|||
|
enable use of very slow SFTP servers.
|
|||
|
|
|||
|
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|||
|
|
|||
|
Closes #10965
|
|||
|
|
|||
|
Osama Albahrani (14 May 2023)
|
|||
|
|
|||
|
- GIT-INFO: add --with-openssl
|
|||
|
|
|||
|
Closes #11110
|
|||
|
|
|||
|
Daniel Stenberg (13 May 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Marcel Raad (13 May 2023)
|
|||
|
|
|||
|
- md(4|5): don't use deprecated iOS functions
|
|||
|
|
|||
|
They are marked as deprecated in iOS 13.0, which might result in
|
|||
|
warnings-as-errors.
|
|||
|
|
|||
|
Also, use `*_MIN_REQUIRED` instead of `*_MIN_ALLOWED`, which seems to
|
|||
|
be what's currently used.
|
|||
|
|
|||
|
Bug: https://github.com/curl/curl/issues/11098
|
|||
|
Closes https://github.com/curl/curl/pull/11102
|
|||
|
|
|||
|
- md4: only build when used
|
|||
|
|
|||
|
Its only usage in curl_ntlm_core.c is guarded by `USE_CURL_NTLM_CORE`,
|
|||
|
so let's use this here too.
|
|||
|
|
|||
|
Ref: https://github.com/curl/curl/issues/11098
|
|||
|
Closes https://github.com/curl/curl/pull/11102
|
|||
|
|
|||
|
Vítor Galvão (12 May 2023)
|
|||
|
|
|||
|
- write-out.d: Use response_code in example
|
|||
|
|
|||
|
Closes #11107
|
|||
|
|
|||
|
Shohei Maeda (12 May 2023)
|
|||
|
|
|||
|
- url: fix null dispname for --connect-to option
|
|||
|
|
|||
|
Closes #11106
|
|||
|
|
|||
|
Daniel Stenberg (12 May 2023)
|
|||
|
|
|||
|
- test2306: verify getting a second response with folded headers
|
|||
|
|
|||
|
Reproduces the isue #11101 and verifies the fix.
|
|||
|
|
|||
|
Verifies a17b2a503f
|
|||
|
|
|||
|
- headers: clear (possibly) lingering pointer in init
|
|||
|
|
|||
|
The "prevhead" pointer is used for the headers storage but was not
|
|||
|
cleared correctly in init, which made it possible to act up when a
|
|||
|
handle is reused.
|
|||
|
|
|||
|
Reported-by: Steve Herrell
|
|||
|
Fixes #11101
|
|||
|
Closes #11103
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- ngtcp2: use 0.15.0
|
|||
|
|
|||
|
- nghttp3 0.11.0
|
|||
|
- nghttp2 1.53.0
|
|||
|
|
|||
|
Adapt to new API calls
|
|||
|
|
|||
|
Closes #11031
|
|||
|
|
|||
|
Jay Satiro (10 May 2023)
|
|||
|
|
|||
|
- openssl: fix indent
|
|||
|
|
|||
|
Daniel Stenberg (10 May 2023)
|
|||
|
|
|||
|
- CURLOPT_DNS_CACHE_TIMEOUT.3: fix spelling
|
|||
|
|
|||
|
Follow-up to 9ed7d56e044f5aa1b29
|
|||
|
|
|||
|
Closes #11096
|
|||
|
|
|||
|
- hostip: use time_t for storing oldest DNS entry
|
|||
|
|
|||
|
Theoretically, the oldest time could overflow an int. In practice that
|
|||
|
won't happen, but let's do this to please analyzers.
|
|||
|
|
|||
|
Follow-up to 9ed7d56e044f5aa1b2928ccde6245d0
|
|||
|
|
|||
|
Pointed out by Coverity.
|
|||
|
Closes #11094
|
|||
|
|
|||
|
- http: free the url before storing a new copy
|
|||
|
|
|||
|
To avoid a memory-leak.
|
|||
|
|
|||
|
Reported-by: Hiroki Kurosawa
|
|||
|
|
|||
|
Closes #11093
|
|||
|
|
|||
|
- compressed.d: clarify the words on "not notifying headers"
|
|||
|
|
|||
|
Reported-by: Dylan Anthony
|
|||
|
Fixes #11091
|
|||
|
Closes #11092
|
|||
|
|
|||
|
- libssh2: free fingerprint better
|
|||
|
|
|||
|
Reported-by: Wei Chong Tan
|
|||
|
Closes #11088
|
|||
|
|
|||
|
- CURLOPT_IPRESOLVE.3: clarify that this for host names, not IP addresses
|
|||
|
|
|||
|
Reported-by: Harry Sintonen
|
|||
|
Closes #11087
|
|||
|
|
|||
|
- hostip: enforce a maximum DNS cache size independent of timeout value
|
|||
|
|
|||
|
To reduce the damage an application can cause if using -1 or other
|
|||
|
ridiculous timeout values and letting the cache live long times.
|
|||
|
|
|||
|
The maximum number of entries in the DNS cache is now totally
|
|||
|
arbitrarily and hard-coded set to 29999.
|
|||
|
|
|||
|
Closes #11084
|
|||
|
|
|||
|
- hostip: store dns timeout as 'int'
|
|||
|
|
|||
|
... because it set and held as an 'int' elsewhere and can never be
|
|||
|
larger.
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- tool_operate: refuse (--data or --form) and --continue-at combo
|
|||
|
|
|||
|
libcurl assumes that a --continue-at resumption is done to continue an
|
|||
|
upload using the read callback and neither --data nor --form use
|
|||
|
that and thus won't do what the user wants. Whatever the user wants
|
|||
|
with this strange combination.
|
|||
|
|
|||
|
Add test 426 to verify.
|
|||
|
|
|||
|
Reported-by: Smackd0wn on github
|
|||
|
Fixes #11081
|
|||
|
Closes #11083
|
|||
|
|
|||
|
- transfer: refuse POSTFIELDS + RESUME_FROM combo
|
|||
|
|
|||
|
The code assumes that such a resume is wanting to continue an upload
|
|||
|
using the read callback, and since POSTFIELDS is done without callback
|
|||
|
libcurl will just misbehave.
|
|||
|
|
|||
|
This combo will make the transfer fail with CURLE_BAD_FUNCTION_ARGUMENT
|
|||
|
with an explanation in the error message.
|
|||
|
|
|||
|
Reported-by: Smackd0wn on github
|
|||
|
Fixes #11081
|
|||
|
Closes #11083
|
|||
|
|
|||
|
- ipv4.d/ipv6.d: they are "mutex", not "boolean"
|
|||
|
|
|||
|
... which for example means they do not have --no-* versions.
|
|||
|
|
|||
|
Reported-by: Harry Sintonen
|
|||
|
Fixes #11085
|
|||
|
Closes #11086
|
|||
|
|
|||
|
- docs/SECURITY-ADVISORY.md: how to write a curl security advisory
|
|||
|
|
|||
|
Closes #11080
|
|||
|
|
|||
|
nobedee on github (5 May 2023)
|
|||
|
|
|||
|
- MANUAL.md: add dict example for looking up a single definition
|
|||
|
|
|||
|
Closes #11077
|
|||
|
|
|||
|
Dan Fandrich (5 May 2023)
|
|||
|
|
|||
|
- runtests: fix -c option when run with valgrind
|
|||
|
|
|||
|
The curl binary argument wasn't being quoted properly. This seems to
|
|||
|
have broken at some point after quoting was added in commit 606b29fe.
|
|||
|
|
|||
|
Reported-by: Daniel Stenberg
|
|||
|
Ref: #11073
|
|||
|
Fixes #11074
|
|||
|
Closes #11076
|
|||
|
|
|||
|
- runtests: support creating more than one runner process
|
|||
|
|
|||
|
The controller currently only creates and uses one, but more are now
|
|||
|
possible.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: spawn a new process for the test runner
|
|||
|
|
|||
|
When the -j option is given, a new process is spawned in which the test
|
|||
|
programs are run and from which test servers are started. Only one
|
|||
|
process can be started at once, but this is sufficient to test that the
|
|||
|
infrastructure can isolate those functions in a new task. There should
|
|||
|
be no visible difference between the two modes at the moment.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Closes #11064
|
|||
|
|
|||
|
- runtests: turn singletest() into a state machine
|
|||
|
|
|||
|
This allows it to run in a non-blocking manner.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: change runner interface to be asynchronous
|
|||
|
|
|||
|
Program arguments are marshalled and then written to the end of a pipe
|
|||
|
which is later read from and the arguments unmarshalled before the
|
|||
|
desired function is called normally. The function return values are
|
|||
|
then marshalled and written into another pipe when is later read from
|
|||
|
and unmarshalled before being returned to the caller.
|
|||
|
|
|||
|
The implementation is currently blocking but can be made non-blocking
|
|||
|
without any changes to the API. This allows calling multiple runners
|
|||
|
without blocking in the future.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: call citest_finishtest in singletest
|
|||
|
|
|||
|
This is where citest_starttest is called.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: add a runner initialization function
|
|||
|
|
|||
|
This sets up the runner environment to start running tests.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: remove directory from server filename variables
|
|||
|
|
|||
|
There will soon be multiple log directories so the paths will no longer
|
|||
|
be static in runtests.pl. Also, get rid of $SERVER2IN which was not
|
|||
|
used.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: reduce package exports after refactoring
|
|||
|
|
|||
|
Some recent refactoring made these export no longer necessary. Also,
|
|||
|
stop displaying the Unix socket paths at startup since there will soon
|
|||
|
be many of them and they're not that interesting.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: use a function to obtain $LOGDIR for a test
|
|||
|
|
|||
|
This will no longer be static soon.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
Jay Satiro (5 May 2023)
|
|||
|
|
|||
|
- tool_cb_hdr: Fix 'Location:' formatting for early VTE terminals
|
|||
|
|
|||
|
- Disable hyperlink formatting for the 'Location:' header value in VTE
|
|||
|
0.48.1 and earlier, since it is buggy in some of those versions.
|
|||
|
|
|||
|
Prior to this change those terminals may show the location header value
|
|||
|
as gibberish or show it twice.
|
|||
|
|
|||
|
Ref: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda#backw
|
|||
|
ard-compatibility
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/10428
|
|||
|
Closes https://github.com/curl/curl/pull/11071
|
|||
|
|
|||
|
François Michel (3 May 2023)
|
|||
|
|
|||
|
- quiche: disable pacing while pacing is not actually performed
|
|||
|
|
|||
|
Closes #11068
|
|||
|
|
|||
|
Daniel Stenberg (2 May 2023)
|
|||
|
|
|||
|
- easy_cleanup: require a "good" handle to act
|
|||
|
|
|||
|
By insisting that the passed in handle is "good" (the magic number is
|
|||
|
intact), this can limit the potential damage if a bad pointer is passed
|
|||
|
in. Like when this function is called twice on the same handle pointer.
|
|||
|
|
|||
|
Ref: #10964
|
|||
|
Closes #11061
|
|||
|
|
|||
|
Andreas Falkenhahn (1 May 2023)
|
|||
|
|
|||
|
- amiga: Fix CA certificate paths for AmiSSL and MorphOS
|
|||
|
|
|||
|
AmiSSL stores certificates in `AmiSSL:Certs` and MorphOS stores them in
|
|||
|
`MOSSYS:Data/SSL/curl-ca-bundle.crt`.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11059
|
|||
|
|
|||
|
Daniel Stenberg (30 Apr 2023)
|
|||
|
|
|||
|
- http2: (void)-mark when we explicitly ignore the return code
|
|||
|
|
|||
|
When h2_progress_egress() is called. Pointed out by Coverity.
|
|||
|
|
|||
|
Closes #11057
|
|||
|
|
|||
|
- checksrc: find bad indentation in conditions without open brace
|
|||
|
|
|||
|
If the previous line starts with if/while/for AND ends with a closed
|
|||
|
parenthesis and there's an equal number of open and closed parentheses
|
|||
|
on that line, verify that this line is indented $indent more steps, if
|
|||
|
not a cpp line.
|
|||
|
|
|||
|
Also adjust the fall-out from this fix.
|
|||
|
|
|||
|
Closes #11054
|
|||
|
|
|||
|
Diogo Teles Sant'Anna (28 Apr 2023)
|
|||
|
|
|||
|
- CI: Set minimal permissions on workflow ngtcp2-quictls.yml
|
|||
|
|
|||
|
Signed-off-by: Diogo Teles Sant'Anna <diogoteles@google.com>
|
|||
|
|
|||
|
Closes #11055
|
|||
|
|
|||
|
Dan Fandrich (28 Apr 2023)
|
|||
|
|
|||
|
- CI: use another glob syntax for matching files on Appveyor
|
|||
|
|
|||
|
The previous globbing syntax was not matching files recursively in
|
|||
|
directories, so try appending a /* to more closely match the examples at
|
|||
|
https://www.appveyor.com/docs/how-to/filtering-commits/
|
|||
|
|
|||
|
Daniel Stenberg (28 Apr 2023)
|
|||
|
|
|||
|
- multi: add multi-ignore logic to multi_socket_action
|
|||
|
|
|||
|
The multi-ignore logic that was previously applied to
|
|||
|
curl_multi_perform() (#10750) is here applied to the loop within
|
|||
|
curl_multi_socket_action() to make it use the same optimization: most
|
|||
|
handles have the same signal-ignore option state so this drastically
|
|||
|
reduces the number of ignore/unignore calls per libcurl function invoke.
|
|||
|
|
|||
|
Follow-up to bc90308328afb8
|
|||
|
|
|||
|
Closes #11045
|
|||
|
|
|||
|
Stefan Eissing (28 Apr 2023)
|
|||
|
|
|||
|
- http2: do flow window accounting for cancelled streams
|
|||
|
|
|||
|
- nghttp2 does not free connection level window flow for
|
|||
|
aborted streams
|
|||
|
- when closing transfers, make sure that any buffered
|
|||
|
response data is "given back" to the flow control window
|
|||
|
- add tests test_02_22 and test_02_23 to reproduce
|
|||
|
|
|||
|
Closes #11052
|
|||
|
|
|||
|
- pingpong: fix compiler warning "assigning an enum to unsigned char"
|
|||
|
|
|||
|
Closes #11050
|
|||
|
|
|||
|
Daniel Stenberg (28 Apr 2023)
|
|||
|
|
|||
|
- configure: fix detection of apxs (for httpd)
|
|||
|
|
|||
|
The condition check was turned the wrong way around!
|
|||
|
|
|||
|
Closes #11051
|
|||
|
|
|||
|
Viktor Szakats (28 Apr 2023)
|
|||
|
|
|||
|
- ci: `-Wno-vla` no longer necessary
|
|||
|
|
|||
|
We handle this issue in the source now.
|
|||
|
|
|||
|
Follow-up to b725fe1944b45406676ea3aff333ae3085a848d9
|
|||
|
|
|||
|
Reviewed-by: Marcel Raad
|
|||
|
Reviewed-by: Daniel Stenberg
|
|||
|
Closes #11048
|
|||
|
|
|||
|
Marcel Raad (28 Apr 2023)
|
|||
|
|
|||
|
- tests/http: make curl_setup.h the first include
|
|||
|
|
|||
|
This is required for the macros there to take effect for system
|
|||
|
libraries. Specifically, including the system libraries first led to
|
|||
|
warnings about `_FILE_OFFSET_BITS` being redefined in curl_config.h on
|
|||
|
the Solaris autobuilds for ws-data.c and ws-pingpong.c.
|
|||
|
Also make the curl includes come first for the other source files here
|
|||
|
for consistency.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11046
|
|||
|
|
|||
|
Emanuele Torre (27 Apr 2023)
|
|||
|
|
|||
|
- checksrc: check for spaces before the colon of switch labels
|
|||
|
|
|||
|
Closes #11047
|
|||
|
|
|||
|
Daniel Stenberg (27 Apr 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- libssh: tell it to use SFTP non-blocking
|
|||
|
|
|||
|
Reported-by: Andreas Huebner
|
|||
|
Fixes #11020
|
|||
|
Closes #11039
|
|||
|
|
|||
|
Stefan Eissing (27 Apr 2023)
|
|||
|
|
|||
|
- http2: enlarge the connection window
|
|||
|
|
|||
|
- fixes stalled connections
|
|||
|
|
|||
|
- Make the connection window large enough, so that there is
|
|||
|
some room left should 99/100 streams be PAUSED by the application
|
|||
|
|
|||
|
Reported-by: Paweł Wegner
|
|||
|
Fixes #10988
|
|||
|
Closes #11043
|
|||
|
|
|||
|
Daniel Stenberg (27 Apr 2023)
|
|||
|
|
|||
|
- checksrc: fix SPACEBEFOREPAREN for conditions starting with "*"
|
|||
|
|
|||
|
The open paren check wants to warn for spaces before open parenthesis
|
|||
|
for if/while/for but also for any function call. In order to avoid
|
|||
|
catching function pointer declarations, the logic allows a space if the
|
|||
|
first character after the open parenthesis is an asterisk.
|
|||
|
|
|||
|
I also spotted what we did not include "switch" in the check but we should.
|
|||
|
|
|||
|
This check is a little lame, but we reduce this problem by not allowing
|
|||
|
that space for if/while/for/switch.
|
|||
|
|
|||
|
Reported-by: Emanuele Torre
|
|||
|
Closes #11044
|
|||
|
|
|||
|
- docs: minor polish
|
|||
|
|
|||
|
- "an HTTP*" (not "a")
|
|||
|
- remove a few contractions
|
|||
|
- remove a spurious "a"
|
|||
|
- reduce use of "I" in texts
|
|||
|
|
|||
|
Closes #11040
|
|||
|
|
|||
|
- ws: fix CONT opcode check
|
|||
|
|
|||
|
Detected by Coverity. Follow-up to 930c00c259
|
|||
|
|
|||
|
Closes #11037
|
|||
|
|
|||
|
Dan Fandrich (27 Apr 2023)
|
|||
|
|
|||
|
- CI: switch the awslc builds to build out-of-tree
|
|||
|
|
|||
|
This is a common configuration that should be tested to avoid
|
|||
|
regressions. The awsls cmake build was already out-of-tree so the
|
|||
|
automake build now joins it.
|
|||
|
|
|||
|
Ref: #11006
|
|||
|
|
|||
|
- tests/http: fix out-of-tree builds
|
|||
|
|
|||
|
Add both lib/ directories (src & build) to the search path so
|
|||
|
curl_setup.h and its dependencies can be found.
|
|||
|
|
|||
|
Followup-to acd82c8b
|
|||
|
|
|||
|
Ref: #11006
|
|||
|
Closes #11036
|
|||
|
|
|||
|
Daniel Stenberg (27 Apr 2023)
|
|||
|
|
|||
|
- urlapi: make internal function start with Curl_
|
|||
|
|
|||
|
Curl_url_set_authority() it is.
|
|||
|
|
|||
|
Follow-up to acd82c8bfd
|
|||
|
|
|||
|
Closes #11035
|
|||
|
|
|||
|
YX Hao (26 Apr 2023)
|
|||
|
|
|||
|
- cf-socket: turn off IPV6_V6ONLY on Windows if it is supported
|
|||
|
|
|||
|
IPV6_V6ONLY refs:
|
|||
|
https://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses
|
|||
|
https://github.com/golang/go/blob/master/src/net/ipsock_posix.go
|
|||
|
https://en.wikipedia.org/wiki/Unix-like
|
|||
|
https://learn.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-o
|
|||
|
ptions
|
|||
|
|
|||
|
default value refs:
|
|||
|
https://datatracker.ietf.org/doc/html/rfc3493#section-5.3
|
|||
|
https://www.kernel.org/doc/html/latest/networking/ip-sysctl.html#proc-sys-net
|
|||
|
-ipv6-variables
|
|||
|
|
|||
|
Closes #10975
|
|||
|
|
|||
|
Daniel Stenberg (26 Apr 2023)
|
|||
|
|
|||
|
- urldata: shrink *select_bits int => unsigned char
|
|||
|
|
|||
|
- dselect_bits
|
|||
|
- cselect_bits
|
|||
|
|
|||
|
... are using less than 8 bits. Changed types and moved them towards
|
|||
|
the end of the structs to fit better.
|
|||
|
|
|||
|
Closes #11025
|
|||
|
|
|||
|
Stefan Eissing (26 Apr 2023)
|
|||
|
|
|||
|
- tests/http: more tests with specific clients
|
|||
|
|
|||
|
- Makefile support for building test specific clients in tests/http/clients
|
|||
|
- auto-make of clients when invoking pytest
|
|||
|
- added test_09_02 for server PUSH_PROMISEs using clients/h2-serverpush
|
|||
|
- added test_02_21 for lib based downloads and pausing/unpausing transfers
|
|||
|
|
|||
|
curl url parser:
|
|||
|
- added internal method `curl_url_set_authority()` for setting the
|
|||
|
authority part of a url (used for PUSH_PROMISE)
|
|||
|
|
|||
|
http2:
|
|||
|
- made logging of PUSH_PROMISE handling nicer
|
|||
|
|
|||
|
Placing python test requirements in requirements.txt files
|
|||
|
- separate files to base test suite and http tests since use
|
|||
|
and module lists differ
|
|||
|
- using the files in the gh workflows
|
|||
|
|
|||
|
websocket test cases, fixes for we and bufq
|
|||
|
- bufq: account for spare chunks in space calculation
|
|||
|
- bufq: reset chunks that are skipped empty
|
|||
|
- ws: correctly encode frames with 126 bytes payload
|
|||
|
- ws: update frame meta information on first call of collect
|
|||
|
callback that fills user buffer
|
|||
|
- test client ws-data: some test/reporting improvements
|
|||
|
|
|||
|
Closes #11006
|
|||
|
|
|||
|
Jay Satiro (26 Apr 2023)
|
|||
|
|
|||
|
- libssh2: fix crash in keyboard callback
|
|||
|
|
|||
|
- Always set the libssh2 'abstract' user-pointer to the libcurl easy
|
|||
|
handle associated with the ssh session, so it is always passed to the
|
|||
|
ssh keyboard callback.
|
|||
|
|
|||
|
Prior to this change and since 8b5f100 (precedes curl 8.0.0), if libcurl
|
|||
|
was built without CURL_DEBUG then it could crash during the ssh auth
|
|||
|
phase due to a null dereference in the ssh keyboard callback.
|
|||
|
|
|||
|
Reported-by: Andreas Falkenhahn
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/pull/11024
|
|||
|
Closes https://github.com/curl/curl/pull/11026
|
|||
|
|
|||
|
Daniel Stenberg (26 Apr 2023)
|
|||
|
|
|||
|
- docs: clarify that more backends have HTTPS proxy support
|
|||
|
|
|||
|
Closes #11033
|
|||
|
|
|||
|
- KNOWN_BUGS: remove two not-bugs
|
|||
|
|
|||
|
- 11.7 signal-based resolver timeouts
|
|||
|
|
|||
|
Not considered a bug anymore but just implementation details. People
|
|||
|
should avoid using timeouts with the synchronous name resolver.
|
|||
|
|
|||
|
- 11.16 libcurl uses renames instead of locking for atomic operations
|
|||
|
|
|||
|
Not a bug, just a description of how it works
|
|||
|
|
|||
|
Closes #11032
|
|||
|
|
|||
|
Harry Sintonen (26 Apr 2023)
|
|||
|
|
|||
|
- hostip: add locks around use of global buffer for alarm()
|
|||
|
|
|||
|
When building with the sync name resolver and timeout ability we now
|
|||
|
require thread-safety to be present to enable it.
|
|||
|
|
|||
|
Closes #11030
|
|||
|
|
|||
|
Daniel Stenberg (26 Apr 2023)
|
|||
|
|
|||
|
- curl_path: bring back support for SFTP path ending in /~
|
|||
|
|
|||
|
libcurl used to do a directory listing for this case (even though the
|
|||
|
documentation says a URL needs to end in a slash for this), but
|
|||
|
4e2b52b5f7a3 modified the behavior.
|
|||
|
|
|||
|
This change brings back a directory listing for SFTP paths that are
|
|||
|
specified exactly as /~ in the URL.
|
|||
|
|
|||
|
Reported-by: Pavel Mayorov
|
|||
|
Fixes #11001
|
|||
|
Closes #11023
|
|||
|
|
|||
|
Emanuele Torre (26 Apr 2023)
|
|||
|
|
|||
|
- docs/libcurl/curl_*escape.3: rename "url" argument to "input"/"string"
|
|||
|
|
|||
|
Also reword the DESCRIPTION section to mention "input"/"string" argument
|
|||
|
in bold.
|
|||
|
|
|||
|
Closes #11027
|
|||
|
|
|||
|
- docs/libcurl: minor cleanups
|
|||
|
|
|||
|
I was reading curl_unescape(3) and I noticed that there was an extra
|
|||
|
space after the open parenthesis in the SYNOPSIS; I removed the extra
|
|||
|
space.
|
|||
|
|
|||
|
I also ran a few grep -r commands to find and remove extra spaces
|
|||
|
after '(' in other files, and to find and replace uses of `T*' instead
|
|||
|
of `T *'. Some of the instances of `T*` where unnecessary casts that I
|
|||
|
removed.
|
|||
|
|
|||
|
I also fixed a comment that was misaligned in CURLMOPT_SOCKETFUNCTION.3.
|
|||
|
|
|||
|
And I fixed some formatting inconsistencies: in curl_unescape(3), all
|
|||
|
function parameter were mentioned with bold text except length, that was
|
|||
|
mentioned as 'length'; and, in curl_easy_unescape(3), all parameters
|
|||
|
were mentioned in bold text except url that was italicised. Now they are
|
|||
|
all mentioned in bold.
|
|||
|
Documentation is not very consistent in how function parameter are
|
|||
|
formatted: many pages italicise them, and others display them in bold
|
|||
|
text; but I think it makes sense to at least be consistent with
|
|||
|
formatting within the same page.
|
|||
|
|
|||
|
Closes #11027
|
|||
|
|
|||
|
Daniel Stenberg (26 Apr 2023)
|
|||
|
|
|||
|
- man pages: simplify the .TH sections
|
|||
|
|
|||
|
- remove the version numbers
|
|||
|
- simplify the texts
|
|||
|
|
|||
|
The date and version number will be put there for releases when maketgz
|
|||
|
runs the updatemanpages.pl script.
|
|||
|
|
|||
|
Closes #11029
|
|||
|
|
|||
|
- hostcheck: fix host name wildcard checking
|
|||
|
|
|||
|
The leftmost "label" of the host name can now only match against single
|
|||
|
'*'. Like the browsers have worked for a long time.
|
|||
|
|
|||
|
- extended unit test 1397 for this
|
|||
|
- move some SOURCE variables from unit/Makefile.am to unit/Makefile.inc
|
|||
|
|
|||
|
Reported-by: Hiroki Kurosawa
|
|||
|
Closes #11018
|
|||
|
|
|||
|
Dan Fandrich (25 Apr 2023)
|
|||
|
|
|||
|
- smbserver: remove temporary files before exit
|
|||
|
|
|||
|
Each execution of test 1451 would leave a file in /tmp before. Since
|
|||
|
Windows can't delete a file while it's open, all the temporary file
|
|||
|
names are stored and deleted on exit.
|
|||
|
|
|||
|
Closes #10990
|
|||
|
|
|||
|
Stefan Eissing (25 Apr 2023)
|
|||
|
|
|||
|
- Websocket en-/decoding
|
|||
|
|
|||
|
- state is fully kept at connection, since curl_ws_send() and
|
|||
|
curl_ws_rec() have lifetime beyond usual transfers
|
|||
|
- no more limit on frame sizes
|
|||
|
|
|||
|
Reported-by: simplerobot on github
|
|||
|
Fixes #10962
|
|||
|
Closes #10999
|
|||
|
|
|||
|
Patrick Monnerat (25 Apr 2023)
|
|||
|
|
|||
|
- urldata: copy CURLOPT_AWS_SIGV4 value on handle duplication
|
|||
|
|
|||
|
Prior to this change STRING_AWS_SIGV4 (CURLOPT_AWS_SIGV4) was wrongly
|
|||
|
marked as binary data that could not be duplicated.
|
|||
|
|
|||
|
Without this fix, this option's value is not copied upon calling
|
|||
|
curl_easy_duphandle().
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11021
|
|||
|
|
|||
|
Stefan Eissing (25 Apr 2023)
|
|||
|
|
|||
|
- http3: expire unpaused transfers in all HTTP/3 backends
|
|||
|
|
|||
|
Closes #11005
|
|||
|
|
|||
|
- http2: always EXPIRE_RUN_NOW unpaused http/2 transfers
|
|||
|
|
|||
|
- just increasing the http/2 flow window does not necessarily
|
|||
|
make a server send new data. It may already have exhausted
|
|||
|
the window before
|
|||
|
|
|||
|
Closes #11005
|
|||
|
|
|||
|
- http2: pass `stream` to http2_handle_stream_close to avoid NULL checks
|
|||
|
|
|||
|
Closes #11005
|
|||
|
|
|||
|
- h2/h3: replace `state.drain` counter with `state.dselect_bits`
|
|||
|
|
|||
|
- `drain` was used by http/2 and http/3 implementations to indicate
|
|||
|
that the transfer requires send/recv independant from its socket
|
|||
|
poll state. Intended as a counter, it was used as bool flag only.
|
|||
|
- a similar mechanism exists on `connectdata->cselect_bits` where
|
|||
|
specific protocols can indicate something similar, only for the
|
|||
|
whole connection.
|
|||
|
- `cselect_bits` are cleard in transfer.c on use and, importantly,
|
|||
|
also set when the transfer loop expended its `maxloops` tries.
|
|||
|
`drain` was not cleared by transfer and the http2/3 implementations
|
|||
|
had to take care of that.
|
|||
|
- `dselect_bits` is cleared *and* set by the transfer loop. http2/3
|
|||
|
does no longer clear it, only set when new events happen.
|
|||
|
|
|||
|
This change unifies the handling of socket poll overrides, extending
|
|||
|
`cselect_bits` by a easy handle specific value and a common treatment in
|
|||
|
transfers.
|
|||
|
|
|||
|
Closes #11005
|
|||
|
|
|||
|
Daniel Stenberg (25 Apr 2023)
|
|||
|
|
|||
|
- socketpair: verify with a random value
|
|||
|
|
|||
|
... instead of using the curl time struct, since it would use a few
|
|||
|
uninitialized bytes and the sanitizers would complain. This is a neater
|
|||
|
approach I think.
|
|||
|
|
|||
|
Reported-by: Boris Kuschel
|
|||
|
Fixes #10993
|
|||
|
Closes #11015
|
|||
|
|
|||
|
Stefan Eissing (25 Apr 2023)
|
|||
|
|
|||
|
- HTTP3: document the ngtcp2/nghttp3 versions to use for building curl
|
|||
|
|
|||
|
- refs #11011 to clarify this for people building curl themselves
|
|||
|
|
|||
|
Closes #11019
|
|||
|
|
|||
|
Daniel Stenberg (25 Apr 2023)
|
|||
|
|
|||
|
- lib: unify the upload/method handling
|
|||
|
|
|||
|
By making sure we set state.upload based on the set.method value and not
|
|||
|
independently as set.upload, we reduce confusion and mixup risks, both
|
|||
|
internally and externally.
|
|||
|
|
|||
|
Closes #11017
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Dan Fandrich (24 Apr 2023)
|
|||
|
|
|||
|
- CI: don't run CI jobs if only another CI was changed
|
|||
|
|
|||
|
A few paths were missed in the last commit, as well as a job added since
|
|||
|
then.
|
|||
|
|
|||
|
Followup-to 395b9175
|
|||
|
|
|||
|
- CI: adjust labeler match patterns
|
|||
|
|
|||
|
- runtests: support buffering log messages in runner & servers
|
|||
|
|
|||
|
Log messages generated with logmsg can now be buffered and returned from
|
|||
|
the runner as a return value. This will be needed with parallel testing
|
|||
|
to allow all messages for one test to be displayed together instead of
|
|||
|
interspersed with messages of multiple tests. Buffering can be disabled
|
|||
|
by setting a logging callback function with setlogfunc, which is
|
|||
|
currently being done to preserve existing logging behaviour for now.
|
|||
|
|
|||
|
Some additional output is generated in verbose and debugprotocol modes,
|
|||
|
which don't always use logmsg. These modes also impact some servers
|
|||
|
which generate extra messages. No attempt is made to buffer everything
|
|||
|
if these modes are enabled.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Closes #11016
|
|||
|
|
|||
|
- runtests: more consistently use logmsg in server control code
|
|||
|
|
|||
|
Also, display an error when sshversioninfo returns one.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: create runner functions for clearlocks and stopservers
|
|||
|
|
|||
|
runtests.pl now uses runner for all server actions beyond the initial
|
|||
|
variable configuration.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: tightened servers package exports
|
|||
|
|
|||
|
The defaults are intended for runtests.pl, whereas runner.pm needs to
|
|||
|
explicitly specify them.
|
|||
|
|
|||
|
- runtests: display logs on server failure in singletest()
|
|||
|
|
|||
|
This is closer to the place where logs are displayed on test failure.
|
|||
|
Also, only display these logs if -p is given, which is the same flag
|
|||
|
that controls display of test failure logs. Some server log files
|
|||
|
need to be deleted later so that they stay around long enough to be
|
|||
|
displayed on failure.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: turn a print into a logmsg
|
|||
|
|
|||
|
Also enable another couple of useful messages in verbose mode.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
Daniel Stenberg (24 Apr 2023)
|
|||
|
|
|||
|
- http: store the password in the correct variable
|
|||
|
|
|||
|
Typo from fc2f1e547a4a, detected by Coverity (because there's dead code
|
|||
|
due to this).
|
|||
|
|
|||
|
Closes #11002
|
|||
|
|
|||
|
Stefan Eissing (24 Apr 2023)
|
|||
|
|
|||
|
- HTTP3/quiche: terminate h1 response header when no body is sent
|
|||
|
|
|||
|
- fixes a failure in test2501 where a response without body was missing
|
|||
|
the final empty line
|
|||
|
|
|||
|
Closes #11003
|
|||
|
|
|||
|
Dan Fandrich (22 Apr 2023)
|
|||
|
|
|||
|
- runtests: move showdiff into runtests.pl
|
|||
|
|
|||
|
It's not used anywhere else.
|
|||
|
|
|||
|
- devtest: add a new script for testing the test harness
|
|||
|
|
|||
|
This is currently useful for starting a test server on its own without
|
|||
|
an associated test, which can be used for interactive curl testing or
|
|||
|
for validating parts of the test harness itself. More commands can be
|
|||
|
added to perform additional functions in the future.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Closes #11008
|
|||
|
|
|||
|
- runtests: refactor the main test loop into two
|
|||
|
|
|||
|
The test loop now has an initial loop that first runs through all
|
|||
|
possible tests to build a set of those to attempt on this run based on
|
|||
|
features and keywords and only then goes through that new list to run
|
|||
|
them. This actually makes it three loops through all tests cases, as
|
|||
|
there is an existing loop that gathers possible test numbers from the
|
|||
|
test files on disk.
|
|||
|
|
|||
|
This has two minor effects on the output: all the tests that will be
|
|||
|
skipped are displayed at the start (instead of being interspersed with
|
|||
|
other tests) and the -l option no longer shows a count of tests at the
|
|||
|
end or a (misleading) statement that tests have run successfully. The
|
|||
|
skipped tests are also omitted from the test results sent to AppVeyor
|
|||
|
and Azure in CI builds.
|
|||
|
|
|||
|
Another effect is a reduction in the amount of work considered part of
|
|||
|
the "Test definition reading and preparation time" reported with -r
|
|||
|
making those figures slightly lower than before.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: track only the current test timings in runner.pm
|
|||
|
|
|||
|
This avoids passing these data through through global variables, which
|
|||
|
soon won't be possible.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: skip test preprocessing when doing -l
|
|||
|
|
|||
|
This speeds up the output tremendously by avoiding unnecessary work.
|
|||
|
|
|||
|
- runtests: simplify value returned regarding use of valgrind
|
|||
|
|
|||
|
As a side effect this will now also show in verbose mode that valgrind
|
|||
|
is being skipped on tests that explicitly disable it, such as 600.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: fix quoting in Appveyor and Azure test integration
|
|||
|
|
|||
|
Test 1442's name was not quoted correctly so wasn't registered in
|
|||
|
Appveyor and it had the wrong name in Azure. The JSON string quotes were
|
|||
|
also invalid, even though both servers happened to accept it regardless.
|
|||
|
|
|||
|
Closes #11010
|
|||
|
|
|||
|
Daniel Stenberg (19 Apr 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Dan Fandrich (18 Apr 2023)
|
|||
|
|
|||
|
- runtests: spread out the port numbers used by servers
|
|||
|
|
|||
|
The server ports are chosen randomly for each server, but the random
|
|||
|
ranges chosen were inconsistently-sized and overlapping. Now, they are
|
|||
|
spread out more so at least the first random port chosen for each server
|
|||
|
is guaranteed to not also be chosen by another server. The starting port
|
|||
|
numbers are also raised to put them in the Ephemeral Port range—not the
|
|||
|
range defined by RFC 6335 but the one used by Linux, which starts lower
|
|||
|
and gives us more room to work with.
|
|||
|
|
|||
|
Reported-by: Daniel Stenberg
|
|||
|
|
|||
|
- runtests: fix problems on <killserver> failure
|
|||
|
|
|||
|
The verify time must be set in this case, like all cases. An error
|
|||
|
message needs to be displayed as well.
|
|||
|
|
|||
|
- runtests: fix perl warning when <tool> is wrong
|
|||
|
|
|||
|
- runtests: don't try to stop stunnel before trying again
|
|||
|
|
|||
|
Calling stopserver() before retrying stunnel due to an error would stop
|
|||
|
the dependent server (such as HTTP) meaning stunnel would have nothing
|
|||
|
to talk to when it came up. Don't try to force a stop when it didn't
|
|||
|
actually start. Also, don't mark the server as bad for future use when
|
|||
|
it starts up on a retry.
|
|||
|
|
|||
|
Reported-by: eaglegai at github
|
|||
|
Tested-by: eaglegai at github
|
|||
|
Fixes #10976
|
|||
|
|
|||
|
- runtests: don't accidentally randomly choose the same port
|
|||
|
|
|||
|
If a server couldn't be started on a port, a new one is randomly chosen
|
|||
|
and the server is tried again. Avoid accidentally using a
|
|||
|
randomly-chosen 0 port offset by adding 1 to the random number.
|
|||
|
|
|||
|
Found-by: Daniel Stenberg
|
|||
|
|
|||
|
- runtests: don't attempt to use a port we know is in use
|
|||
|
|
|||
|
This reduces the startup time when there is a known conflict on the
|
|||
|
random port chosen for a server. This was already done for stunnel, but
|
|||
|
now it's done for all servers.
|
|||
|
|
|||
|
- http-server: fix server name in a log message
|
|||
|
|
|||
|
This changed when the file was renamed in commit cbf57176
|
|||
|
|
|||
|
- runtests: refactor into more packages
|
|||
|
|
|||
|
testutil.pm now contains a few miscellaneous functions that are used in
|
|||
|
several places but have no better place to live. subvariables moves to
|
|||
|
servers.pm since most variables that it substitutes relate to servers,
|
|||
|
so this is the most appropriate place. Rename a few functions for better
|
|||
|
naming consistency.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Closes #10995
|
|||
|
|
|||
|
- runtests: call timestampskippedevents() in singletest
|
|||
|
|
|||
|
..rather than by the runner
|
|||
|
|
|||
|
- runtests: assume a newer Valgrind by default
|
|||
|
|
|||
|
The tests for an older Valgrind version should probably just be deleted,
|
|||
|
given that they're testing for an 18-year-old version.
|
|||
|
|
|||
|
- runtests: refactor test runner code into runner.pm
|
|||
|
|
|||
|
This is code that is directly responsible for running a single test.
|
|||
|
This will eventually run in a separate process as part of the parallel
|
|||
|
testing project.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: skip unneeded work if test won't be running
|
|||
|
|
|||
|
This speeds up tests by avoiding unnecessary processing.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: factor out singletest_postcheck
|
|||
|
|
|||
|
This will eventually need to be part of the test runner.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- test303: kill server after test
|
|||
|
|
|||
|
Otherwise, an HTTP test closely following this one with a tight time
|
|||
|
constraint (e.g. 672) could fail because the test server stays sitting
|
|||
|
with the wait command for a while.
|
|||
|
|
|||
|
Patrick Monnerat (18 Apr 2023)
|
|||
|
|
|||
|
- OS400: provide ILE/RPG usage examples
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10994
|
|||
|
|
|||
|
- OS400: improve vararg emulation
|
|||
|
|
|||
|
- Use V7R4 RPG procedure overloading to improve vararg emulation.
|
|||
|
|
|||
|
From OS400 V7R4 and above, ILE/RPG implements a limited procedure
|
|||
|
overloading feature that can be used to improve curl's typed
|
|||
|
implementation of varargs procedures. This commit applies it to
|
|||
|
curl_easy_setopt(), curl_multi_setopt(), curl_share_setopt() and
|
|||
|
curl_easy_getinfo().
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10994
|
|||
|
|
|||
|
- OS400: fix and complete ILE/RPG binding
|
|||
|
|
|||
|
- Fix wrong definitions of CURL_ZERO_TERNINATED, curl_mime_data() and
|
|||
|
curl_mime_data_ccsid().
|
|||
|
|
|||
|
- Add recent definitions, in particular blob, header API and WebSockets
|
|||
|
API.
|
|||
|
|
|||
|
- Support for CURLVERSION_ELEVENTH.
|
|||
|
|
|||
|
- New functions for EBCDIC support.
|
|||
|
|
|||
|
Reflect these changes in README.OS400.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10994
|
|||
|
|
|||
|
- OS400: implement EBCDIC support for recent features
|
|||
|
|
|||
|
- Support CURLVERSION_ELEVENTH.
|
|||
|
|
|||
|
- New function curl_url_strerror_ccsid().
|
|||
|
|
|||
|
- curl_easy_setopt_ccsid() supports blobs and 3 recent string options.
|
|||
|
|
|||
|
- New function curl_easy_header_ccsid().
|
|||
|
|
|||
|
- New generic latin1<-->ccsid conversion functions curl_from_ccsid() and
|
|||
|
curl_to_ccsid() for user convenience.
|
|||
|
|
|||
|
- README.OS400 updated accordingly.
|
|||
|
|
|||
|
- Removed a leftover QsoSSL support identifier.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10994
|
|||
|
|
|||
|
- OS400: rework build scripts
|
|||
|
|
|||
|
- Rename shell function "system" to "CLcommand" to avoid confusion with
|
|||
|
built-in command.
|
|||
|
|
|||
|
- Reformat scripts. Fix some indentations. Avoid lines > 80 characters
|
|||
|
where possible.
|
|||
|
|
|||
|
- Support ASCII runtime development files in a user-defined directory
|
|||
|
path.
|
|||
|
|
|||
|
- FIX SONAME detection.
|
|||
|
|
|||
|
- Drop form API test program compilation (does not exist anymore).
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10994
|
|||
|
|
|||
|
Sevan Janiyan (18 Apr 2023)
|
|||
|
|
|||
|
- tests/sshserver.pl: Define AddressFamily earlier
|
|||
|
|
|||
|
As the comment states "Address family must be specified before ListenAddress"
|
|||
|
, otherwise the tests fail to run
|
|||
|
`"failed starting SSH server" 52 times (582, 583, 600, 601, 602, 603, 604, 60
|
|||
|
5, 606 and 43 more)`
|
|||
|
|
|||
|
Closes #10983
|
|||
|
|
|||
|
Stefan Eissing (18 Apr 2023)
|
|||
|
|
|||
|
- quiche: Enable IDLE egress handling
|
|||
|
|
|||
|
Follow-up to 544abeea which added the handling but wrongly left it
|
|||
|
commented out.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/11000
|
|||
|
|
|||
|
Daniel Stenberg (18 Apr 2023)
|
|||
|
|
|||
|
- docs/examples/protofeats.c: Outputs all protocols and features
|
|||
|
|
|||
|
Showing off one way to get to char pointer arrays of info returned by
|
|||
|
curl_version_info()
|
|||
|
|
|||
|
Closes #10991
|
|||
|
|
|||
|
- tests/keywords.pl: remove
|
|||
|
|
|||
|
This script does not work since the introduction of the test
|
|||
|
preprocessing. If we need this functionality, it probably needs to be
|
|||
|
moved into the runtests tool or similar.
|
|||
|
|
|||
|
Reported-by: Dan Fandrich
|
|||
|
Fixes #10895
|
|||
|
Closes #10987
|
|||
|
|
|||
|
Stefan Eissing (17 Apr 2023)
|
|||
|
|
|||
|
- http2: support HTTP/2 to forward proxies, non-tunneling
|
|||
|
|
|||
|
- with `--proxy-http2` allow h2 ALPN negotiation to
|
|||
|
forward proxies
|
|||
|
- applies to http: requests against a https: proxy only,
|
|||
|
as https: requests will auto-tunnel
|
|||
|
- adding a HTTP/1 request parser in http1.c
|
|||
|
- removed h2h3.c
|
|||
|
- using new request parser in nghttp2 and all h3 backends
|
|||
|
- adding test 2603 for request parser
|
|||
|
- adding h2 proxy test cases to test_10_*
|
|||
|
|
|||
|
scorecard.py: request scoring accidentally always run curl
|
|||
|
with '-v'. Removed that, expect double numbers.
|
|||
|
|
|||
|
labeller: added http1.* and h2-proxy sources to detection
|
|||
|
|
|||
|
Closes #10967
|
|||
|
|
|||
|
Daniel Stenberg (17 Apr 2023)
|
|||
|
|
|||
|
- curl_easy_unescape.3: rename the argument
|
|||
|
|
|||
|
and highlight it appropriately in the text.
|
|||
|
|
|||
|
Closes #10979
|
|||
|
|
|||
|
Viktor Szakats (17 Apr 2023)
|
|||
|
|
|||
|
- autotools: sync up clang picky warnings with cmake
|
|||
|
|
|||
|
Bringing missing options over from CMake.
|
|||
|
|
|||
|
Move around existing `-Wno-pointer-bool-conversion` option to come
|
|||
|
_after_ `-Wconversion`.
|
|||
|
|
|||
|
Reviewed-by: Marcel Raad
|
|||
|
Closes #10974
|
|||
|
|
|||
|
Daniel Stenberg (17 Apr 2023)
|
|||
|
|
|||
|
- tests/libtest/lib1900.c: remove
|
|||
|
|
|||
|
This file was left behind when the rest of the test was previously removed.
|
|||
|
|
|||
|
Follow-up to e50a877df74f
|
|||
|
|
|||
|
- src/tool_operhlp.c: fix value stored to 'uerr' is never read
|
|||
|
|
|||
|
Ref: https://github.com/curl/curl/pull/10974#issuecomment-1510461343
|
|||
|
Reported-by: Viktor Szakats
|
|||
|
Closes #10982
|
|||
|
|
|||
|
Viktor Szakats (16 Apr 2023)
|
|||
|
|
|||
|
- cmake: speed up and extend picky clang/gcc options
|
|||
|
|
|||
|
Extend existing picky compiler options with ones missing compared to
|
|||
|
autotools builds. Also sync options between clang and gcc.
|
|||
|
|
|||
|
Redesign the way we enable these options to avoid the slow option
|
|||
|
detection almost completely.
|
|||
|
|
|||
|
This reduces the number of detections from 35 to zero for clang and
|
|||
|
3 for gcc, even after adding a bunch of new options.
|
|||
|
|
|||
|
clang 3.0 (2011-11-29) and gcc 2.95 (1999-07-31) now required.
|
|||
|
|
|||
|
Also show enabled picky options.
|
|||
|
|
|||
|
Ref: https://github.com/libssh2/libssh2/pull/952
|
|||
|
|
|||
|
Reviewed-by: Daniel Stenberg
|
|||
|
Closes #10973
|
|||
|
|
|||
|
Andreas Falkenhahn (16 Apr 2023)
|
|||
|
|
|||
|
- nbtlm: use semicolons instead of commas for (void) args
|
|||
|
|
|||
|
Closes #10978
|
|||
|
|
|||
|
Daniel Stenberg (15 Apr 2023)
|
|||
|
|
|||
|
- multi: free up more data earleier in DONE
|
|||
|
|
|||
|
Before checking for more users of the connection and possibly bailing
|
|||
|
out.
|
|||
|
|
|||
|
Fixes #10971
|
|||
|
Reported-by: Paweł Wegner
|
|||
|
Closes #10972
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- curl: do NOT append file name to path for upload when there's a query
|
|||
|
|
|||
|
Added test 425 to verify.
|
|||
|
|
|||
|
Reported-by: Dirk Rosenkranz
|
|||
|
Bug: https://curl.se/mail/archive-2023-04/0008.html
|
|||
|
Closes #10969
|
|||
|
|
|||
|
- libcurl-thread.3: improved name resolver wording
|
|||
|
|
|||
|
And make better .SH sections
|
|||
|
|
|||
|
Closes #10966
|
|||
|
|
|||
|
Colman Mbuya (14 Apr 2023)
|
|||
|
|
|||
|
- CURLOPT_PROXY_SSL_VERIFYPEER.3: fix minor grammar mistake
|
|||
|
|
|||
|
Closes #10968
|
|||
|
|
|||
|
Daniel Stenberg (14 Apr 2023)
|
|||
|
|
|||
|
- curl: add --proxy-http2
|
|||
|
|
|||
|
For trying HTTP/2 with an HTTPS proxy.
|
|||
|
|
|||
|
Closes #10926
|
|||
|
|
|||
|
- KNOWN_BUGS: remove fixed or outdated issues, move non-bugs
|
|||
|
|
|||
|
- remove h3 issues believed to be fixed
|
|||
|
|
|||
|
- make the flaky CI issue be generic and not Windows specific
|
|||
|
|
|||
|
- "TLS session cache does not work with TFO" now documented
|
|||
|
|
|||
|
This is now a documented restriction and not a bug. TFO in general is
|
|||
|
rarely used and has other problems, making it a low-priotity thing to
|
|||
|
work on.
|
|||
|
|
|||
|
- remove "Renegotiate from server may cause hang for OpenSSL backend"
|
|||
|
|
|||
|
This is an OpenSSL issue, not a curl one. Even if it taints curl.
|
|||
|
|
|||
|
- rm "make distclean loops forever"
|
|||
|
|
|||
|
- rm "configure finding libs in wrong directory"
|
|||
|
|
|||
|
Added a section to docs/INSTALL.md about it.
|
|||
|
|
|||
|
- "A shared connection cache is not thread-safe"
|
|||
|
|
|||
|
Moved over to TODO and expanded for other sharing improvements we
|
|||
|
could do
|
|||
|
|
|||
|
- rm "CURLOPT_OPENSOCKETPAIRFUNCTION is missing"
|
|||
|
|
|||
|
- rm "Blocking socket operations in non-blocking API"
|
|||
|
|
|||
|
Already listed as a TODO
|
|||
|
|
|||
|
- rm "curl compiled on OSX 10.13 failed to run on OSX 10.10"
|
|||
|
|
|||
|
Water under the bridge. No one cares about this anymore.
|
|||
|
|
|||
|
- rm "build on Linux links libcurl to libdl"
|
|||
|
|
|||
|
Verified to not be true (anymore).
|
|||
|
|
|||
|
- rm "libpsl is not supported"
|
|||
|
|
|||
|
The cmake build supports it since cafb356e19cda22
|
|||
|
|
|||
|
Closes #10963
|
|||
|
|
|||
|
- url: fix PVS nits
|
|||
|
|
|||
|
- expression 'hostptr' is always true
|
|||
|
- a part of conditional expression is always true: proxypasswd
|
|||
|
- expression 'proxyuser' is always true
|
|||
|
- avoid multiple Curl_now() calls in allocate_conn
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10959
|
|||
|
|
|||
|
- bufq: simplify since expression is always true
|
|||
|
|
|||
|
The check for 'len' is already done so it will remain true until
|
|||
|
updated. Pointed out by PVS.
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10958
|
|||
|
|
|||
|
- hash: fix assigning same value
|
|||
|
|
|||
|
Pointed out by PVS
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10956
|
|||
|
|
|||
|
- cookie: address PVS nits
|
|||
|
|
|||
|
- avoid assigning the same value again
|
|||
|
- remove superfluous check of co->domain
|
|||
|
- reduce variable scope for namep/valuep
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10954
|
|||
|
|
|||
|
Stefan Eissing (14 Apr 2023)
|
|||
|
|
|||
|
- cf-socket: Disable socket receive buffer by default
|
|||
|
|
|||
|
- Disable socket receive buffer unless USE_RECV_BEFORE_SEND_WORKAROUND
|
|||
|
is in place.
|
|||
|
|
|||
|
While we would like to use the receive buffer, we have stalls in
|
|||
|
parallel transfers where not all buffered data is consumed and no socket
|
|||
|
events happen.
|
|||
|
|
|||
|
Note USE_RECV_BEFORE_SEND_WORKAROUND is a Windows sockets workaround
|
|||
|
that has been disabled by default since b4b6e4f1, due to other bugs.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10961
|
|||
|
|
|||
|
- cf-h2-proxy: fix processing ingress to stop too early
|
|||
|
|
|||
|
- progress ingress stopped too early, causing data
|
|||
|
from the underlying filters to not be processed and
|
|||
|
report that no tunnel data was available
|
|||
|
- this lead to "hangers" where no socket activity was
|
|||
|
seen but data rested in buffers
|
|||
|
|
|||
|
Closes #10952
|
|||
|
|
|||
|
- http3: check stream_ctx more thoroughly in all backends
|
|||
|
|
|||
|
- callbacks and filter methods might be invoked at unexpected
|
|||
|
times, e.g. when the transfer's stream_ctx has not been initialized
|
|||
|
yet or, more likely, has already been taken down.
|
|||
|
- check for existance of stream_ctx in such places and return
|
|||
|
an error or silently succeed the call.
|
|||
|
|
|||
|
Closes #10951
|
|||
|
|
|||
|
Daniel Stenberg (13 Apr 2023)
|
|||
|
|
|||
|
- ftp: fix 'portsock' variable was assigned the same value
|
|||
|
|
|||
|
Pointed out by PVS
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10955
|
|||
|
|
|||
|
- ftp: remove dead code
|
|||
|
|
|||
|
This condition can never be true here since it is handled already 28
|
|||
|
lines above.
|
|||
|
|
|||
|
Pointed out by PVS.
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10957
|
|||
|
|
|||
|
- cf-h1-proxy: skip an extra NULL assign
|
|||
|
|
|||
|
and use Curl_safefree() once to save another NULL assign. Found by PVS.
|
|||
|
|
|||
|
Ref. #10929
|
|||
|
Closes #10953
|
|||
|
|
|||
|
Philip Heiduck (13 Apr 2023)
|
|||
|
|
|||
|
- GHA: suppress git clone output
|
|||
|
|
|||
|
Follow-up: https://github.com/curl/curl/commit/8203aa6ed405ec832d2c62f18dfda2
|
|||
|
93f89a23f9
|
|||
|
|
|||
|
Closes #10949
|
|||
|
|
|||
|
Stefan Eissing (13 Apr 2023)
|
|||
|
|
|||
|
- cf-socket: remove dead code discovered by PVS
|
|||
|
|
|||
|
Closes #10960
|
|||
|
|
|||
|
Daniel Stenberg (13 Apr 2023)
|
|||
|
|
|||
|
- http: skip a double NULL assign
|
|||
|
|
|||
|
and also use a local variable to shorten the long names and increase
|
|||
|
readability in the function. Pointed out by PVS.
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10950
|
|||
|
|
|||
|
- mime: skip NULL assigns after Curl_safefree()
|
|||
|
|
|||
|
Pointed out by PVS.
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10947
|
|||
|
|
|||
|
- rtsp: skip NULL assigns after Curl_safefree()
|
|||
|
|
|||
|
... since this is a macro that assigns NULL itself. Pointed out by PVS.
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10946
|
|||
|
|
|||
|
- smb: remove double assign
|
|||
|
|
|||
|
The same value is assigned the same value already a few lines above.
|
|||
|
Pointed out by PVS.
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10945
|
|||
|
|
|||
|
- transfer: skip extra assign
|
|||
|
|
|||
|
The 'result' variable already contains CURLE_OK at this point, no use in
|
|||
|
setting it again. Pointed out by PVS.
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10944
|
|||
|
|
|||
|
- urlapi: skip a pointless assign
|
|||
|
|
|||
|
It stores a null byte after already having confirmed there is a null
|
|||
|
byte there. Detected by PVS.
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10943
|
|||
|
|
|||
|
Philip Heiduck (13 Apr 2023)
|
|||
|
|
|||
|
- GHA: suppress git clone output
|
|||
|
|
|||
|
Closes #10939
|
|||
|
|
|||
|
Stefan Eissing (13 Apr 2023)
|
|||
|
|
|||
|
- tests: make test_12_01 a bit more forgiving on connection counts
|
|||
|
|
|||
|
- cf-socket: add socket recv buffering for most tcp cases
|
|||
|
|
|||
|
- use bufq as recv buffer, also for Windows pre-receive handling
|
|||
|
- catch small reads followed by larger ones in a single socket
|
|||
|
call. A common pattern on TLS connections.
|
|||
|
|
|||
|
Closes #10787
|
|||
|
|
|||
|
Daniel Stenberg (13 Apr 2023)
|
|||
|
|
|||
|
- urlapi: cleanups
|
|||
|
|
|||
|
- move host checks together
|
|||
|
- simplify the scheme parser loop and the end of host name parser
|
|||
|
- avoid itermediate buffer storing in multiple places
|
|||
|
- reduce scope for several variables
|
|||
|
- skip the Curl_dyn_tail() call for speed
|
|||
|
- detect IPv6 earlier and skip extra checks for such hosts
|
|||
|
- normalize directly in dynbuf instead of itermediate buffer
|
|||
|
- split out the IPv6 parser into its own funciton
|
|||
|
- call the IPv6 parser directly for ipv6 addresses
|
|||
|
- remove (unused) special treatment of % in host names
|
|||
|
- junkscan() once in the beginning instead of scattered
|
|||
|
- make junkscan return error code
|
|||
|
- remove unused query management from dedotdotify()
|
|||
|
- make Curl_parse_login_details use memchr
|
|||
|
- more use of memchr() instead of strchr() and less strlen() calls
|
|||
|
- make junkscan check and return the URL length
|
|||
|
|
|||
|
An optimized build runs one of my benchmark URL parsing programs ~41%
|
|||
|
faster using this branch. (compared against the shipped 7.88.1 library
|
|||
|
in Debian)
|
|||
|
|
|||
|
Closes #10935
|
|||
|
|
|||
|
Josh McCullough (13 Apr 2023)
|
|||
|
|
|||
|
- http2: fix typo in infof() call
|
|||
|
|
|||
|
Closes #10940
|
|||
|
|
|||
|
Daniel Stenberg (12 Apr 2023)
|
|||
|
|
|||
|
- noproxy: pointer to local array 'hostip' is stored outside scope
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10933
|
|||
|
|
|||
|
Stefan Eissing (12 Apr 2023)
|
|||
|
|
|||
|
- connect: fix https connection setup to treat ssl_mode correctly
|
|||
|
|
|||
|
- for HTTPS protocol, a disabled ssl should never be acceptables.
|
|||
|
|
|||
|
Closes #10934
|
|||
|
|
|||
|
Douglas R. Reno (12 Apr 2023)
|
|||
|
|
|||
|
- CMakeLists.txt: fix typo for Haiku detection
|
|||
|
|
|||
|
Closes #10937
|
|||
|
|
|||
|
Dan Fandrich (11 Apr 2023)
|
|||
|
|
|||
|
- pathhelp: use the cached $use_cygpath when available
|
|||
|
|
|||
|
- runtests: eliminate unneeded variable
|
|||
|
|
|||
|
- runtests: make the # of server start attempts a constant
|
|||
|
|
|||
|
- runtests: on startup failure call displaylogs only in serverfortest
|
|||
|
|
|||
|
This reduces the number of calls spread throughout the code.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Closes #10919
|
|||
|
|
|||
|
- runtests: return an error code with startservers()
|
|||
|
|
|||
|
The code indicates the kind of failure encountered in starting a server,
|
|||
|
which can be used by the caller to tailor the user experience.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: abort early if runpingpongserver is given a bad server type
|
|||
|
|
|||
|
- runtests: don't use the SMB server verification time as reference
|
|||
|
|
|||
|
%FTPTIME2 and %FTPTIME3 should be set by the FTP server only, for
|
|||
|
consistency.
|
|||
|
|
|||
|
- tests: factor out the test server management code
|
|||
|
|
|||
|
This now lives in servers.pm with some configuration variables moved to
|
|||
|
globalconfig.pm
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: remove an inappropriate use of runclientoutput
|
|||
|
|
|||
|
This function is intended for running client code, not servers.
|
|||
|
|
|||
|
- runtests: only add $LIBDIR to the path for checktestcmd
|
|||
|
|
|||
|
Since checkcmd is for finding servers, there will never be anything in
|
|||
|
this directory of interest to them.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- tests: log sshserver.pl messages to a file
|
|||
|
|
|||
|
The logmsg messages were thrown away before, so they are now available
|
|||
|
for debugging.
|
|||
|
|
|||
|
- runtests: also show DISABLED tests with -l
|
|||
|
|
|||
|
Other reasons for skipping tests are ignored for -l, so being explicitly
|
|||
|
disabled should be too.
|
|||
|
|
|||
|
- runtests: move the UNIX sockets into $PIDDIR
|
|||
|
|
|||
|
These were missed when the other server files were moved there.
|
|||
|
|
|||
|
Follow-up to 70d2fca2
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- tests: tighten up perl exports
|
|||
|
|
|||
|
This reduces namespace pollution a little.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- tests: turn perl modules into full packages
|
|||
|
|
|||
|
This helps enforce more modularization and encapsulation. Enable and fix
|
|||
|
warnings on a few packages. Also, rename ftp.pm to processhelp.pm since
|
|||
|
there's really nothing ftp-specific in it.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
Daniel Stenberg (11 Apr 2023)
|
|||
|
|
|||
|
- multi: remove a few superfluous assigns
|
|||
|
|
|||
|
PVS found these "The 'rc' variable was assigned the same value." cases.
|
|||
|
|
|||
|
Ref: #10929
|
|||
|
Closes #10932
|
|||
|
|
|||
|
- schannel: add clarifying comment
|
|||
|
|
|||
|
Explaining how the PVS warning in #10929 is wrong: Dereferencing of the
|
|||
|
null pointer 'backend->cred' might take place.
|
|||
|
|
|||
|
Closes #10931
|
|||
|
|
|||
|
- cookie: clarify that init with data set to NULL reads no file
|
|||
|
|
|||
|
... and make Curl_cookie_add() require 'data' being set proper with an
|
|||
|
assert.
|
|||
|
|
|||
|
The function has not worked with a NULL data for quite some time so this
|
|||
|
just corrects the code and comment.
|
|||
|
|
|||
|
This is a different take than the proposed fixed in #10927
|
|||
|
|
|||
|
Reported-by: Kvarec Lezki
|
|||
|
Ref: #10929
|
|||
|
Closes #10930
|
|||
|
|
|||
|
Kvarec Lezki (11 Apr 2023)
|
|||
|
|
|||
|
- vtls: remove int typecast for sizeof()
|
|||
|
|
|||
|
V220 Suspicious sequence of types castings: memsize -> 32-bit integer ->
|
|||
|
memsize. The value being cast: 'sizeof
|
|||
|
(buf->data)'. curl\lib\vtls\vtls.c 2025
|
|||
|
|
|||
|
https://pvs-studio.com/en/docs/warnings/v220/
|
|||
|
|
|||
|
Closes #10928
|
|||
|
|
|||
|
Stefan Eissing (11 Apr 2023)
|
|||
|
|
|||
|
- http2: fix copynpaste error reported by coverity
|
|||
|
|
|||
|
- move all code handling HTTP/2 frames for a particular
|
|||
|
stream into a separate function to keep from confusing
|
|||
|
the call `data` with the stream `data`.
|
|||
|
|
|||
|
Closes #10924
|
|||
|
|
|||
|
Dan Fandrich (11 Apr 2023)
|
|||
|
|
|||
|
- tests: log a too-long Unix socket path in sws and socksd
|
|||
|
|
|||
|
Ref: #10919
|
|||
|
|
|||
|
Daniel Stenberg (11 Apr 2023)
|
|||
|
|
|||
|
- gen.pl: error on duplicated See-Also fields
|
|||
|
|
|||
|
Updated http2.d accordingly.
|
|||
|
|
|||
|
Closes #10925
|
|||
|
|
|||
|
- http2: avoid possible null pointer dereference
|
|||
|
|
|||
|
Reported-by: Dan Fandrich
|
|||
|
Fixes #10920
|
|||
|
Closes #10923
|
|||
|
|
|||
|
- lib1560: verify that more bad host names are rejected
|
|||
|
|
|||
|
when setting the hostname component of a URL
|
|||
|
|
|||
|
Closes #10922
|
|||
|
|
|||
|
- curl_url_set.3: mention that users can set content rather freely
|
|||
|
|
|||
|
... which then might render bad URLs if you extract a URL later.
|
|||
|
|
|||
|
Closes #10921
|
|||
|
|
|||
|
Dan Fandrich (10 Apr 2023)
|
|||
|
|
|||
|
- CI: retry failed downloads of aws-lc
|
|||
|
|
|||
|
Don't fail the build in case of a temporary server problem.
|
|||
|
|
|||
|
- test1169: fix so it works properly everywhere
|
|||
|
|
|||
|
- Use an absolute path for the -L option since the module isn't in the
|
|||
|
perl path
|
|||
|
- Create the needed test file in a <file> section; <precheck> isn't
|
|||
|
intended for this
|
|||
|
- Fix the test number in the file name, which was wrong
|
|||
|
|
|||
|
Follow-up to f754990a
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Fixes #10889
|
|||
|
Closes #10917
|
|||
|
|
|||
|
- tests: stop using strndup(), which isn't portable
|
|||
|
|
|||
|
It's not available on Solaris 10, for example. Since this is just test
|
|||
|
code that doesn't need to use an optimized system version, replace it
|
|||
|
with the implementation copied from tool_cb_hdr.c.
|
|||
|
|
|||
|
- runtests: fix an incorrect comment about the ld_preload feature
|
|||
|
|
|||
|
Follow-up to 1f631864
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
Daniel Stenberg (9 Apr 2023)
|
|||
|
|
|||
|
- urlapi: prevent setting invalid schemes with *url_set()
|
|||
|
|
|||
|
A typical mistake would be to try to set "https://" - including the
|
|||
|
separator - this is now rejected as that would then lead to
|
|||
|
url_get(... URL...) would get an invalid URL extracted.
|
|||
|
|
|||
|
Extended test 1560 to verify.
|
|||
|
|
|||
|
Closes #10911
|
|||
|
|
|||
|
Biswapriyo Nath (9 Apr 2023)
|
|||
|
|
|||
|
- http2: remove unused Curl_http2_strerror function declaration
|
|||
|
|
|||
|
Curl_http2_strerror was renamed to http2_strerror in
|
|||
|
05b100aee247bb9bec8e9a1b0 and then http2_strerror was removed in
|
|||
|
5808a0d0f5ea0399d4a2a2
|
|||
|
|
|||
|
This also fixes the following compiler error
|
|||
|
|
|||
|
lib/http2.h:41:33: error: unknown type name 'uint32_t'
|
|||
|
lib/http2.h:1:1: note: 'uint32_t' is defined in header '<stdint.h>'
|
|||
|
|
|||
|
Closes #10912
|
|||
|
|
|||
|
Daniel Stenberg (8 Apr 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
SuperIlu on github (8 Apr 2023)
|
|||
|
|
|||
|
- config-dos.h: fix SIZEOF_CURL_OFF_T for MS-DOS/DJGPP
|
|||
|
|
|||
|
Fixes #10905
|
|||
|
Closes #10910
|
|||
|
|
|||
|
Daniel Stenberg (8 Apr 2023)
|
|||
|
|
|||
|
- lib: remove CURLX_NO_MEMORY_CALLBACKS
|
|||
|
|
|||
|
The only user of this define was 'chkdecimalpoint' - a special purpose
|
|||
|
test tool that was built but not used anymore (since 17c18fbc3 - Apr
|
|||
|
2020).
|
|||
|
|
|||
|
Closes #10908
|
|||
|
|
|||
|
- CURLPROXY_HTTPS2: for HTTPS proxy that may speak HTTP/2
|
|||
|
|
|||
|
Setting this proxy type allows curl to negotiate and use HTTP/2 with
|
|||
|
HTTPS proxies.
|
|||
|
|
|||
|
Closes #10900
|
|||
|
|
|||
|
Ali Khodkar (8 Apr 2023)
|
|||
|
|
|||
|
- write-out.d: add missing periods
|
|||
|
|
|||
|
Closes #10897
|
|||
|
|
|||
|
Daniel Stenberg (7 Apr 2023)
|
|||
|
|
|||
|
- http2: remove check for !data after it was already dereferenced
|
|||
|
|
|||
|
Pointed out by Coverity
|
|||
|
|
|||
|
Closes #10906
|
|||
|
|
|||
|
- http_proxy: provide missing arg to infof() call
|
|||
|
|
|||
|
Pointed out by Coverity
|
|||
|
|
|||
|
Closes #10904
|
|||
|
|
|||
|
- content_encoding: only do tranfer-encoding compression if asked to
|
|||
|
|
|||
|
To reduce surprises. Update test 387 and 418 accordingly.
|
|||
|
|
|||
|
Closes #10899
|
|||
|
|
|||
|
- sws: comparison of unsigned expression < 0 is always false
|
|||
|
|
|||
|
Follow-up to 356dd0b73a75ed6d5
|
|||
|
|
|||
|
Closes #10903
|
|||
|
|
|||
|
- lib/cmake: add HAVE_WRITABLE_ARGV check
|
|||
|
|
|||
|
Assisted-by: Jakub Zakrzewski
|
|||
|
Closes #10896
|
|||
|
|
|||
|
- configure: don't set HAVE_WRITABLE_ARGV on Windows
|
|||
|
|
|||
|
Ref: #10888
|
|||
|
Closes #10896
|
|||
|
|
|||
|
- vtls: fix build error when proxy-disabled
|
|||
|
|
|||
|
Closes #10901
|
|||
|
|
|||
|
Stefan Eissing (6 Apr 2023)
|
|||
|
|
|||
|
- tests: increase sws timeout for more robust testing
|
|||
|
|
|||
|
- for https CONNECT forwarding, this was fixed at 5 seconds
|
|||
|
which led to spurious CI test failures
|
|||
|
- add --keepalive parameter to sws to control this
|
|||
|
- let httpserver use 30 seconds
|
|||
|
|
|||
|
Closes #10898
|
|||
|
|
|||
|
- http2: move HTTP/2 stream vars into local context
|
|||
|
|
|||
|
- remove NGHTTP2 members of `struct HTTP`
|
|||
|
- add `void *h2_ctx` to `struct HTTP`
|
|||
|
- add `void *h3_ctx` to `struct HTTP`
|
|||
|
- separate h2/h3 pointers are needed for eyeballing
|
|||
|
- manage local stream_ctx in http implementations
|
|||
|
|
|||
|
Closes #10877
|
|||
|
|
|||
|
- proxy: http2 proxy tunnel implementation
|
|||
|
|
|||
|
- currently only on debug build and when env variable
|
|||
|
CURL_PROXY_TUNNEL_H2 is present.
|
|||
|
- will ALPN negotiate with the proxy server and switch
|
|||
|
tunnel filter based on the protocol negotiated.
|
|||
|
- http/1.1 tunnel code moved into cf-h1-proxy.[ch]
|
|||
|
- http/2 tunnel code implemented in cf-h2-proxy.[ch]
|
|||
|
- tunnel start and ALPN set remains in http_proxy.c
|
|||
|
- moving all haproxy related code into cf-haproxy.[ch]
|
|||
|
|
|||
|
VTLS changes
|
|||
|
- SSL filters rely solely on the "alpn" specification they
|
|||
|
are created with and no longer check conn->bits.tls_enable_alpn.
|
|||
|
- checks on which ALPN specification to use (or none at all) are
|
|||
|
done in vtls.c when creating the filter.
|
|||
|
|
|||
|
Testing
|
|||
|
- added a nghttpx forward proxy to the pytest setup that
|
|||
|
speaks HTTP/2 and forwards all requests to the Apache httpd
|
|||
|
forward proxy server.
|
|||
|
- extending test coverage in test_10 cases
|
|||
|
- adding proxy tests for direct/tunnel h1/h2 use of basic auth.
|
|||
|
- adding test for http/1.1 and h2 proxy tunneling to pytest
|
|||
|
|
|||
|
Closes #10780
|
|||
|
|
|||
|
- vtls and h2 improvements
|
|||
|
|
|||
|
- eliminate receive loop in vtls to fill buffer. This may
|
|||
|
lead to partial reads of data which is counter productive
|
|||
|
- let http2 instead loop smarter to process pending network
|
|||
|
data without transfer switches
|
|||
|
|
|||
|
scorecard improvements
|
|||
|
- do not start caddy when only httpd is requested
|
|||
|
- allow curl -v to stderr file on --curl-verbose
|
|||
|
|
|||
|
Closes #10891
|
|||
|
|
|||
|
Daniel Stenberg (6 Apr 2023)
|
|||
|
|
|||
|
- tests: 1078 1288 1297 use valid IPv4 addresses
|
|||
|
|
|||
|
With the enhanced URL parser, these tests failed because of their bad
|
|||
|
IPv4 use.
|
|||
|
|
|||
|
- urlapi: detect and error on illegal IPv4 addresses
|
|||
|
|
|||
|
Using bad numbers in an IPv4 numerical address now returns
|
|||
|
CURLUE_BAD_HOSTNAME.
|
|||
|
|
|||
|
I noticed while working on trurl and it was originally reported here:
|
|||
|
https://github.com/curl/trurl/issues/78
|
|||
|
|
|||
|
Updated test 1560 accordingly.
|
|||
|
|
|||
|
Closes #10894
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- urlapi: URL encoding for the URL missed the fragment
|
|||
|
|
|||
|
Meaning that it would wrongly still store the fragment using spaces
|
|||
|
instead of %20 if allowing space while also asking for URL encoding.
|
|||
|
|
|||
|
Discovered when playing with trurl.
|
|||
|
|
|||
|
Added test to lib1560 to verify the fix.
|
|||
|
|
|||
|
Closes #10887
|
|||
|
|
|||
|
- rtsp: convert mallocs to dynbuf for RTP buffering
|
|||
|
|
|||
|
Closes #10786
|
|||
|
|
|||
|
- tool_writeout: add URL component variables
|
|||
|
|
|||
|
Output specific components from the used URL. The following variables
|
|||
|
are added for this purpose:
|
|||
|
|
|||
|
url.scheme, url.user, url.password, url.options, url.host, url.port,
|
|||
|
url.path, url.query, url.fragment, url.zoneid
|
|||
|
|
|||
|
Add the following for outputting parts of the "effective URL":
|
|||
|
|
|||
|
urle.scheme, urle.user, urle.password, urle.options, urle.host, urle.port,
|
|||
|
urle.path, urle.query, urle.fragment, urle.zoneid
|
|||
|
|
|||
|
Added test 423 and 424 to verify.
|
|||
|
|
|||
|
Closes #10853
|
|||
|
|
|||
|
Stefan Eissing (4 Apr 2023)
|
|||
|
|
|||
|
- tests/http: improved httpd detection
|
|||
|
|
|||
|
- better error messages when not found/complete
|
|||
|
- handling of `--without-test-httpd`
|
|||
|
|
|||
|
Reported-by: kwind on github
|
|||
|
Fixes #10879
|
|||
|
Closes #10883
|
|||
|
|
|||
|
Daniel Stenberg (4 Apr 2023)
|
|||
|
|
|||
|
- configure: make quiche require quiche_conn_send_ack_eliciting
|
|||
|
|
|||
|
curl now requires quiche version >= 1.17.1 to be used and this function
|
|||
|
was added in this version and makes a convenient check.
|
|||
|
|
|||
|
This requirement is because this is the lowest quiche version that
|
|||
|
supports peer-initiated key updates correctly.
|
|||
|
|
|||
|
Closes #10886
|
|||
|
|
|||
|
Dan Fandrich (1 Apr 2023)
|
|||
|
|
|||
|
- unit tests: use the unit test infrastructure better
|
|||
|
|
|||
|
Allow UNITTEST_STOP to return the error code, use the fail & abort
|
|||
|
macros to indicate test failure and return success instead of fail if
|
|||
|
the unit test can't test anything because of missing features at
|
|||
|
compile-time. A couple of tests could never fail because they were
|
|||
|
overriding the failure return code.
|
|||
|
|
|||
|
- runtests: strip EOL on precheck output on Windows, too
|
|||
|
|
|||
|
Precheck failures would show on two lines in the test summary output
|
|||
|
otherwise.
|
|||
|
|
|||
|
- tests: move server config files under the pid dir
|
|||
|
|
|||
|
These files are generated by the test servers and must therefore be
|
|||
|
found in the log directory to make them available to only those servers
|
|||
|
once multiple test runners are executing in parallel. They must also not
|
|||
|
be deleted with the log files, so they are stored in the pidfile
|
|||
|
directory.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Closes #10875
|
|||
|
|
|||
|
- runtests: use the ssh key filenames from the sshhelp package
|
|||
|
|
|||
|
- tests: move pidfiles and portfiles under the log directory
|
|||
|
|
|||
|
This is to segregate all files written by a test process into a single
|
|||
|
root to allow for future parallel testing.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Closes #10874
|
|||
|
|
|||
|
- runtests: minor code cleanups
|
|||
|
|
|||
|
- runtests: call processexists() and pidfromfile()
|
|||
|
|
|||
|
rather than duplicating the logic in several places.
|
|||
|
|
|||
|
Viktor Szakats (31 Mar 2023)
|
|||
|
|
|||
|
- cmake: do not add zlib headers for openssl
|
|||
|
|
|||
|
Logic copied earlier from wolfSSL. wolfSSL requires zlib headers for its
|
|||
|
public headers. OpenSSL does not, so stop adding zlib headers for it.
|
|||
|
|
|||
|
Follow-up to 1e3319a167d2f32d295603167486e9e88af9bb4e
|
|||
|
|
|||
|
Closes #10878
|
|||
|
|
|||
|
Stefan Eissing (31 Mar 2023)
|
|||
|
|
|||
|
- rustls: fix error in recv handling
|
|||
|
|
|||
|
- when rustls is told to recieve more TLS data and its internal
|
|||
|
plaintext buffers are full, it returns an IOERROR
|
|||
|
- avoid receiving TLS data while plaintext is not read empty
|
|||
|
|
|||
|
pytest:
|
|||
|
- increase curl run timeout when invoking pytest with higher verbosity
|
|||
|
|
|||
|
Closes #10876
|
|||
|
|
|||
|
- http3: improvements across backends
|
|||
|
|
|||
|
- ngtcp2: using bufq for recv stream data
|
|||
|
- internal stream_ctx instead of `struct HTTP` members
|
|||
|
for quiche, ngtcp2 and msh3
|
|||
|
- no more QUIC related members in `struct HTTP`
|
|||
|
- experimental use of recvmmsg(), disabled by default
|
|||
|
- testing on my old debian box shows no throughput improvements.
|
|||
|
- leaving it in, but disabled, for future revisit
|
|||
|
- vquic: common UDP receive code for ngtcp2 and quiche
|
|||
|
- vquic: common UDP send code for ngtcp2 and quiche
|
|||
|
- added pytest skips for known msh3 failures
|
|||
|
- fix unit2601 to survive torture testing
|
|||
|
- quiche: using latest `master` from quiche and enabling large download
|
|||
|
tests, now that key change is supported
|
|||
|
- fixing test_07_21 where retry handling of starting a stream
|
|||
|
was faulty
|
|||
|
- msh3: use bufq for recv buffering headers and data
|
|||
|
- msh3: replace fprintf debug logging with LOG_CF where possible
|
|||
|
- msh3: force QUIC expire timers on recv/send to have more than
|
|||
|
1 request per second served
|
|||
|
|
|||
|
Closes #10772
|
|||
|
|
|||
|
Dan Fandrich (30 Mar 2023)
|
|||
|
|
|||
|
- test1471/2: add http as a required feature
|
|||
|
|
|||
|
curl bails out early with a different error message if http support is
|
|||
|
compiled out.
|
|||
|
|
|||
|
Ref: #10705
|
|||
|
|
|||
|
- tests: limit return code of unit tests and lib tests
|
|||
|
|
|||
|
Values greater than 125 have special meanings, so cap it there. Unit
|
|||
|
tests and lib tests use the number of failures as the return code, so a
|
|||
|
large number of failures (such as test 2601 as a torture test) can
|
|||
|
exceed this causing the test to be erroneously reported as having
|
|||
|
failed.
|
|||
|
|
|||
|
Ref: #10720
|
|||
|
|
|||
|
- test1960: point to the correct path for the precheck tool
|
|||
|
|
|||
|
Otherwise, it might find the binary in .libs which can cause it to use
|
|||
|
the system libcurl which can fail. This error is only visible by
|
|||
|
noticing that the test is skipped.
|
|||
|
|
|||
|
Follow-up to e4dfe6fc
|
|||
|
|
|||
|
Ref: #10651
|
|||
|
|
|||
|
- tests: use the proper %LOGDIR path on two tests
|
|||
|
|
|||
|
Follow-up to e7a021e1
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
Daniel Stenberg (30 Mar 2023)
|
|||
|
|
|||
|
- rtsp: fix Value stored to 'skip_size' is never read
|
|||
|
|
|||
|
Pointed out by scan-build
|
|||
|
|
|||
|
Follow-up to 6c6306f3008f2c9b20a64
|
|||
|
|
|||
|
Closes #10872
|
|||
|
|
|||
|
Stefan Eissing (30 Mar 2023)
|
|||
|
|
|||
|
- tests/http: relax connection check in test_07_02
|
|||
|
|
|||
|
Only 1 connection will be used when curl is slow, happens when
|
|||
|
address-sanitized in CI, for example
|
|||
|
|
|||
|
Closes #10865
|
|||
|
|
|||
|
- http2: flow control and buffer improvements
|
|||
|
|
|||
|
- use bufq for send/receive of network data
|
|||
|
- usd bufq for send/receive of stream data
|
|||
|
- use HTTP/2 flow control with no-auto updates to control the
|
|||
|
amount of data we are buffering for a stream
|
|||
|
HTTP/2 stream window set to 128K after local tests, defined
|
|||
|
code constant for now
|
|||
|
- elminiating PAUSEing nghttp2 processing when receiving data
|
|||
|
since a stream can now take in all DATA nghttp2 forwards
|
|||
|
|
|||
|
Improved scorecard and adjuste http2 stream window sizes
|
|||
|
- scorecard improved output formatting and options default
|
|||
|
- scorecard now also benchmarks small requests / second
|
|||
|
|
|||
|
Closes #10771
|
|||
|
|
|||
|
Dan Fandrich (30 Mar 2023)
|
|||
|
|
|||
|
- runtests: show error message if file can't be written
|
|||
|
|
|||
|
- tests: fix remaining servers to run with a dynamic log directory
|
|||
|
|
|||
|
This final commit in the series is sufficient to allow the tests succeed
|
|||
|
if $LOGDIR is changed in runtests.pl.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Closes #10866
|
|||
|
|
|||
|
- tests: fix fake_ntlm to run with a dynamic log directory
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- tests: fix http servers to run with a dynamic log directory
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- tests: fix ftpserver to run with a dynamic log directory
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- tests: fix C servers to run with a dynamic log directory
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- tests: fix lib tests to run with a dynamic log directory
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- tests: fix unit tests to run with a dynamic log directory
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- tests: use %LOGDIR to refer to the log directory
|
|||
|
|
|||
|
This will allow it be set dynamically.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: track verification time even if no files to compare
|
|||
|
|
|||
|
- getpart: better handle case of file not found
|
|||
|
|
|||
|
- testcurl: bump version date
|
|||
|
|
|||
|
It hadn't been updated in 9 years; it's time.
|
|||
|
|
|||
|
- tests: switch to 3-argument open in test suite
|
|||
|
|
|||
|
The perl 2-argument open has been considered not-quite-deprecated since
|
|||
|
the 3-argument form was introduced almost a quarter century ago.
|
|||
|
|
|||
|
- tests: silence some Perl::Critic warnings in test suite
|
|||
|
|
|||
|
Not all warnings are fixed; many are as much stylistic suggestions than
|
|||
|
anything and IMHO don't do much to actually improve the code.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
Closes #10861
|
|||
|
|
|||
|
- docs: bump the minimum perl version to 5.6
|
|||
|
|
|||
|
It's actually been this way since at least 2012 (when a 3-argument open
|
|||
|
was added to runtests.pl). Given the lack of complaints in the interim,
|
|||
|
it's safe to call this 23 year old perl version the minimum.
|
|||
|
|
|||
|
- runtests: memoize the getpart* subroutines to speed up access
|
|||
|
|
|||
|
The refactored code calls these functions with the same arguments more
|
|||
|
often, so this prevents redundant test case file parsing.
|
|||
|
|
|||
|
Approved-by: Daniel Stenberg
|
|||
|
Ref: #10818
|
|||
|
Closes #10833
|
|||
|
|
|||
|
- runtests: remove duplicated feature variables
|
|||
|
|
|||
|
Use the feature map stored in the hash table instead. Most of the
|
|||
|
variables were only used only once, to set the value in the hash table.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: also ignore test file problems when ignoring results
|
|||
|
|
|||
|
This simplifies error handling in the test verification code and makes
|
|||
|
it more consistent.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: more refactoring for clarity
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: don't start servers if -l is given
|
|||
|
|
|||
|
- runtests: fix typos
|
|||
|
|
|||
|
- runtests: refactor singletest() into separate functions
|
|||
|
|
|||
|
This takes it from a 1200 line behemoth into something more manageable.
|
|||
|
The content and order of the functions is taken almost directly from
|
|||
|
singletest() so the diff sans whitespace is quite short.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: refactor singletest() into distinct sections
|
|||
|
|
|||
|
Namely:
|
|||
|
- Verify that this test case should be run
|
|||
|
- Start the servers needed to run this test case
|
|||
|
- Check that test environment is fine to run this test case
|
|||
|
- Prepare the test environment to run this test case
|
|||
|
- Run the test command
|
|||
|
- Clean up after test command
|
|||
|
- Verify test succeeded
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: stop copying a few arrays where not needed
|
|||
|
|
|||
|
Unlike some other languages that just copy a pointer, perl copies the
|
|||
|
entire array contents which takes time for a large array.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- runtests: reduce redundant calls to getpart/getpartattr
|
|||
|
|
|||
|
These functions scan through the entire test file every time to find the
|
|||
|
right section, so they can be slow for large test files.
|
|||
|
|
|||
|
Ref: #10818
|
|||
|
|
|||
|
- tests: document that the unittest keyword is special
|
|||
|
|
|||
|
Also, add other features that were missing.
|
|||
|
|
|||
|
Stefan Eissing (30 Mar 2023)
|
|||
|
|
|||
|
- docs: add documentation for bufq
|
|||
|
|
|||
|
Closes #10869
|
|||
|
|
|||
|
Daniel Stenberg (30 Mar 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Matt Jolly (30 Mar 2023)
|
|||
|
|
|||
|
- hostip: refuse to resolve the .onion TLD
|
|||
|
|
|||
|
RFC 7686 states that:
|
|||
|
|
|||
|
> Applications that do not implement the Tor
|
|||
|
> protocol SHOULD generate an error upon the use of .onion and
|
|||
|
> SHOULD NOT perform a DNS lookup.
|
|||
|
|
|||
|
Let's do that.
|
|||
|
|
|||
|
https://www.rfc-editor.org/rfc/rfc7686#section-2
|
|||
|
|
|||
|
Add test 1471 and 1472 to verify
|
|||
|
|
|||
|
Fixes #543
|
|||
|
Closes #10705
|
|||
|
|
|||
|
Philip Heiduck (30 Mar 2023)
|
|||
|
|
|||
|
- GHA: update ngtcp2-*.yml to v0.10.0
|
|||
|
|
|||
|
Closes #10612
|
|||
|
|
|||
|
Stefan Eissing (30 Mar 2023)
|
|||
|
|
|||
|
- tests/http: fix log formatting on wrong exit code
|
|||
|
|
|||
|
Closes #10868
|
|||
|
|
|||
|
Daniel Stenberg (30 Mar 2023)
|
|||
|
|
|||
|
- spellcheck.words: unify the AWS-LC spelling
|
|||
|
|
|||
|
Follow-up to 34ef4fab22d93
|
|||
|
|
|||
|
Closes #10867
|
|||
|
|
|||
|
Jim King (30 Mar 2023)
|
|||
|
|
|||
|
- openssl: interop with AWS-LC
|
|||
|
|
|||
|
* Configure changes to detect AWS-LC
|
|||
|
* CMakeLists.txt changes to detect AWS-LC
|
|||
|
* Compile-time branches needed to support AWS-LC
|
|||
|
* Correctly set OSSL_VERSION and report AWS-LC release number
|
|||
|
* GitHub Actions script to build with autoconf and cmake against AWS-LC
|
|||
|
|
|||
|
AWS-LC is a BoringSSL/OpenSSL derivative
|
|||
|
For more information see https://github.com/awslabs/aws-lc/
|
|||
|
|
|||
|
Closes #10320
|
|||
|
|
|||
|
Viktor Szakats (30 Mar 2023)
|
|||
|
|
|||
|
- cmake: picky-linker fixes for openssl, ZLIB, H3 and more
|
|||
|
|
|||
|
- fix HTTP/3 support detection with OpenSSL/quictls built with ZLIB.
|
|||
|
(Requires curl be built with ZLIB option also.)
|
|||
|
|
|||
|
- fix HTTP/3 support detection with OpenSSL/quictls/LibreSSL and `ld`
|
|||
|
linker on Windows.
|
|||
|
|
|||
|
- fix HTTP/3 support detection with wolfSSL to automatically add
|
|||
|
`ws2_32` to the lib list on Windows. For all linkers.
|
|||
|
|
|||
|
- reposition ZLIB (and other compression) detection _after_ TLS
|
|||
|
detection, but before calling HTTP/3-support detection via
|
|||
|
`CheckQuicSupportInOpenSSL`.
|
|||
|
|
|||
|
May be a regression from ebef55a61df0094b9790710a42f63c48e7de3c13
|
|||
|
May fix #10832 (Reported-by: Micah Snyder)
|
|||
|
|
|||
|
This also seems to fix an odd case, where OpenSSL/quictls is correctly
|
|||
|
detected, but its header path is not set while compiling, breaking
|
|||
|
build at `src/curl_ntlm_core.c`. Reason for this remains undiscovered.
|
|||
|
|
|||
|
- satisfy "picky" linkers such as `ld` with MinGW, that are highly
|
|||
|
sensitive to lib order, by also adding brotli to the beginning of the
|
|||
|
lib list.
|
|||
|
|
|||
|
- satisfy "picky" linkers by adding certain Windows systems libs to
|
|||
|
the lib list for OpenSSL/LibreSSL. (Might need additional ones for
|
|||
|
other forks, such as `pthread` for BoringSSL.)
|
|||
|
|
|||
|
Note: It'd make sense to _always_ add `ws2_32`, `crypt32` (except
|
|||
|
Windows App targets perhaps?), `bcrypt` (except old-mingw!) on Windows
|
|||
|
at this point. They are almost always required, and if some aren't,
|
|||
|
they are ignored by the linker with no effect on final binaries.
|
|||
|
|
|||
|
Closes #10857
|
|||
|
|
|||
|
Stefan Eissing (30 Mar 2023)
|
|||
|
|
|||
|
- vlts: use full buffer size when receiving data if possible
|
|||
|
|
|||
|
SSL backends like OpenSSL/wolfSSL and other return the content of one
|
|||
|
TLS record on read, but usually there are more available.
|
|||
|
|
|||
|
Change the vtls cfilter recv() function to fill the given buffer until a
|
|||
|
read would block.
|
|||
|
|
|||
|
Closes #10736
|
|||
|
|
|||
|
dengjfzh on github (30 Mar 2023)
|
|||
|
|
|||
|
- rtsp: skip malformed RTSP interleaved frame data
|
|||
|
|
|||
|
Some IP cameras send malformed RTSP interleaved frames sometimes, which
|
|||
|
can cause curl_easy_perform return 1 (CURLE_UNSUPPORTED_PROTOCOL). This
|
|||
|
change attempts to skip clearly incorrect RTSP interleaving frame data.
|
|||
|
|
|||
|
Closes #10808
|
|||
|
|
|||
|
Stefan Eissing (30 Mar 2023)
|
|||
|
|
|||
|
- lib: add `bufq` and `dynhds`
|
|||
|
|
|||
|
Adding `bufq`:
|
|||
|
- at init() time configured to hold up to `n` chunks of `m` bytes each.
|
|||
|
- various methods for reading from and writing to it.
|
|||
|
- `peek` support to get access to buffered data without copy
|
|||
|
- `pass` support to allow buffer flushing on write if it becomes full
|
|||
|
- use case: IO buffers for dynamic reads and writes that do not blow up
|
|||
|
- distinct from `dynbuf` in that:
|
|||
|
- it maintains a read position
|
|||
|
- writes on a full bufq return CURLE_AGAIN instead of nuking itself
|
|||
|
- Init options:
|
|||
|
- SOFT_LIMIT: allow writes into a full bufq
|
|||
|
- NO_SPARES: free empty chunks right away
|
|||
|
- a `bufc_pool` that can keep a number of spare chunks to
|
|||
|
be shared between different `bufq` instances
|
|||
|
|
|||
|
Adding `dynhds`:
|
|||
|
- a straightforward list of name+value pairs as used for HTTP headers
|
|||
|
- headers can be appended dynamically
|
|||
|
- headers can be removed again
|
|||
|
- headers can be replaced
|
|||
|
- headers can be looked up
|
|||
|
- http/1.1 formatting into a `dynbuf`
|
|||
|
- configured at init() with limits on header counts and total string
|
|||
|
sizes
|
|||
|
- use case: pass a HTTP request or response around without being version
|
|||
|
specific
|
|||
|
- express a HTTP request without a curl easy handle (used in h2 proxy
|
|||
|
tunnels)
|
|||
|
- future extension possibilities:
|
|||
|
- conversions of `dynhds` to nghttp2/nghttp3 name+value arrays
|
|||
|
|
|||
|
Closes #10720
|
|||
|
|
|||
|
- pytest: improvements for suitable curl and error output
|
|||
|
|
|||
|
- will check built curl for http and https support and
|
|||
|
skip all tests if not there
|
|||
|
- will dump stdout/stderr/trace output on errored responses
|
|||
|
|
|||
|
Closes #10829
|
|||
|
|
|||
|
Daniel Stenberg (29 Mar 2023)
|
|||
|
|
|||
|
- lib: use correct printf flags for sockets and timediffs
|
|||
|
|
|||
|
Introduces CURL_FORMAT_SOCKET_T for outputting socket numbers.
|
|||
|
|
|||
|
Fixes #10737
|
|||
|
Reported-by: Gisle Vanem
|
|||
|
Closes #10855
|
|||
|
|
|||
|
- telnet: make MSVC ignore warning for assignment within conditional
|
|||
|
|
|||
|
Follow-up to d92a5007b60e0af7d
|
|||
|
|
|||
|
Closes #10859
|
|||
|
|
|||
|
- ws: handle reads before EAGAIN better
|
|||
|
|
|||
|
Reported-by: simplerobot on github
|
|||
|
Fixes #10831
|
|||
|
Closes #10856
|
|||
|
|
|||
|
- test1592: add flaky keyword
|
|||
|
|
|||
|
Closes #10860
|
|||
|
|
|||
|
Frank Gevaerts (28 Mar 2023)
|
|||
|
|
|||
|
- lib/sha256.c: typo fix in comment (duplicated "is available")
|
|||
|
|
|||
|
Closes #10851
|
|||
|
|
|||
|
Arne Soete (28 Mar 2023)
|
|||
|
|
|||
|
- tests: update tests/httpd references to tests/http
|
|||
|
|
|||
|
tests/httpd was renamed to tests/http in #10654. This patch updates some
|
|||
|
references in the README
|
|||
|
|
|||
|
Closes #10854
|
|||
|
|
|||
|
Kamil Dudka (28 Mar 2023)
|
|||
|
|
|||
|
- telnet: simplify the implementation of str_is_nonascii()
|
|||
|
|
|||
|
There is no need to traverse the string twice.
|
|||
|
|
|||
|
Closes #10852
|
|||
|
|
|||
|
Frank Gevaerts (28 Mar 2023)
|
|||
|
|
|||
|
- curl_easy_getinfo.3: typo fix (duplicated "from the")
|
|||
|
|
|||
|
Closes #10850
|
|||
|
|
|||
|
Philip Heiduck (28 Mar 2023)
|
|||
|
|
|||
|
- wolfssl.yml: bump to version 5.6.0
|
|||
|
|
|||
|
Closes #10843
|
|||
|
|
|||
|
Daniel Stenberg (28 Mar 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Ronan Pigott (28 Mar 2023)
|
|||
|
|
|||
|
- docs/cmdline-opts: document the dotless config path
|
|||
|
|
|||
|
The real xdg config path is $XDG_CONFIG_HOME/curlrc, without the dot.
|
|||
|
The dotless name seems preferable, so let's match the documentation to
|
|||
|
the behavior.
|
|||
|
|
|||
|
Closes #10849
|
|||
|
|
|||
|
Daniel Stenberg (28 Mar 2023)
|
|||
|
|
|||
|
- HTTP-COOKIES.md: mention the #HttpOnly_ prefix
|
|||
|
|
|||
|
Fixes #10847
|
|||
|
Reported-by: Harry Sintonen
|
|||
|
Closes #10848
|
|||
|
|
|||
|
- dynbuf: never allocate larger than "toobig"
|
|||
|
|
|||
|
As dynbufs always have a fixed maximum size which they are not allowed
|
|||
|
to grow larger than, making sure that it never allocates a larger buffer
|
|||
|
makes sure the buffer does not allocate memory that will never be used.
|
|||
|
|
|||
|
Closes #10845
|
|||
|
|
|||
|
- ftplistparser: replace realloc with dynbuf
|
|||
|
|
|||
|
Closes #10844
|
|||
|
|
|||
|
- ftplistparser: use ISDIGIT()
|
|||
|
|
|||
|
Closes #10844
|
|||
|
|
|||
|
- ftplistparser: move out private data from public struct
|
|||
|
|
|||
|
The public 'curl_fileinfo' struct contained three fields that are for
|
|||
|
internal purposes only. This change makes them unused in the public
|
|||
|
struct.
|
|||
|
|
|||
|
The new private struct fields are also renamed to make this separation
|
|||
|
more obvious internally.
|
|||
|
|
|||
|
Closes #10844
|
|||
|
|
|||
|
- openssl: fix indents - white space edits only
|
|||
|
|
|||
|
Closes #10840
|
|||
|
|
|||
|
- url: remove call to Curl_llist_destroy in Curl_close
|
|||
|
|
|||
|
A list that is created with a NULL "destructor" does not need to be
|
|||
|
destroyed. Not calling it is faster than calling it.
|
|||
|
|
|||
|
Closes #10846
|
|||
|
|
|||
|
- multi: remove PENDING + MSGSENT handles from the main linked list
|
|||
|
|
|||
|
As they are not driving transfers or any socket activity, the main loop
|
|||
|
does not need to iterate over these handles. A performance improvement.
|
|||
|
|
|||
|
They are instead only held in their own separate lists.
|
|||
|
|
|||
|
'data->multi' is kept a pointer to the multi handle as long as the easy
|
|||
|
handle is actually part of it even when the handle is moved to the
|
|||
|
pending/msgsent lists. It needs to know which multi handle it belongs
|
|||
|
to, if for example curl_easy_cleanup() is called before the handle is
|
|||
|
removed from the multi handle.
|
|||
|
|
|||
|
Alll 'data->multi' pointers of handles still part of the multi handle
|
|||
|
gets cleared by curl_multi_cleanup() which "orphans" all previously
|
|||
|
attached easy handles.
|
|||
|
|
|||
|
This is take 2. The first version was reverted for the 8.0.1 release.
|
|||
|
|
|||
|
Assisted-by: Stefan Eissing
|
|||
|
Closes #10801
|
|||
|
|
|||
|
Stefan Eissing (26 Mar 2023)
|
|||
|
|
|||
|
- tests/http: add timeout to running curl in test cases
|
|||
|
|
|||
|
- we had a CI case once where `curl` seemingly did not
|
|||
|
return and it was hard to guess what happened.
|
|||
|
- make curl execution in test cases time out after 60 seconds
|
|||
|
|
|||
|
Closes #10783
|
|||
|
|
|||
|
Daniel Stenberg (26 Mar 2023)
|
|||
|
|
|||
|
- RELEASE-PROCEDURE: update to new schedule
|
|||
|
|
|||
|
Ref: https://curl.se/mail/lib-2023-03/0062.html
|
|||
|
|
|||
|
Assisted-by: Andy Alt
|
|||
|
Assisted-by: Dan Frandrich
|
|||
|
|
|||
|
Closes #10827
|
|||
|
|
|||
|
Patrick Monnerat (26 Mar 2023)
|
|||
|
|
|||
|
- doc: curl_mime_init() strong easy handle binding has been relaxed in 7.87.0
|
|||
|
|
|||
|
Reported-by: Chloe Kudryavtsev
|
|||
|
Fixes #10834
|
|||
|
Closes #10835
|
|||
|
|
|||
|
Jay Satiro (25 Mar 2023)
|
|||
|
|
|||
|
- CURLOPT_WRITEFUNCTION.3: fix typo
|
|||
|
|
|||
|
Reported-by: Osaila@users.noreply.github.com
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/10839
|
|||
|
|
|||
|
Dan Fandrich (24 Mar 2023)
|
|||
|
|
|||
|
- CI: skip some more builds when possible
|
|||
|
|
|||
|
When a commit only contains tests, documentation, or cmake files, skip
|
|||
|
those builds that aren't affected by those.
|
|||
|
|
|||
|
The file filters available on the CI services don't seem to allow
|
|||
|
skipping individual jobs, only the entire workflow, so we can't get any
|
|||
|
more fine-grained than this.
|
|||
|
|
|||
|
- CI: add and adjust labeler match patterns
|
|||
|
|
|||
|
Allow cmdline tool alongside other labels.
|
|||
|
|
|||
|
Kai Pastor (25 Mar 2023)
|
|||
|
|
|||
|
- CMake: make config version 8 compatible with 7
|
|||
|
|
|||
|
Reviewed-by: Jakub Zakrzewski
|
|||
|
Closes #10819
|
|||
|
|
|||
|
Daniel Stenberg (24 Mar 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Bumped version-in-progress to 8.1.0
|
|||
|
|
|||
|
- GHA: add a memory-sanitizer job
|
|||
|
|
|||
|
Closes #10815
|
|||
|
|
|||
|
Dan Fandrich (23 Mar 2023)
|
|||
|
|
|||
|
- CI: fix brew retries on GHA
|
|||
|
|
|||
|
The fix in the previous commit was complete for Cirrus but accidentally
|
|||
|
left off a part for GHA.
|
|||
|
|
|||
|
Follow-up to c2b7249d
|
|||
|
|
|||
|
- CI: skip Azure for more commits which change only GHA
|
|||
|
|
|||
|
Daniel Stenberg (23 Mar 2023)
|
|||
|
|
|||
|
- cmake: set SONAME for SunOS too
|
|||
|
|
|||
|
Provided-by: Brian Lund
|
|||
|
|
|||
|
Closes #10816
|
|||
|
|
|||
|
Stefan Eissing (23 Mar 2023)
|
|||
|
|
|||
|
- ngtcp2: adjust config and code checks for ngtcp2 without nghttp3
|
|||
|
|
|||
|
- make configure show on HTTP3 feature that both ngtcp2 and nghttp3
|
|||
|
are in play
|
|||
|
- define ENABLE_QUIC only when USE_NGTCP2 and USE_NGHTTP3 are defined
|
|||
|
- add USE_NGHTTP3 in the ngtcp2 implementation
|
|||
|
|
|||
|
Fixes #10793
|
|||
|
Closes #10821
|
|||
|
|
|||
|
Daniel Stenberg (23 Mar 2023)
|
|||
|
|
|||
|
- data.d: emphasize no conversion
|
|||
|
|
|||
|
When asking curl to send a POST, curl does not encode or change the data.
|
|||
|
|
|||
|
Ref: #10820
|
|||
|
Closes #10823
|
|||
|
|
|||
|
- server/getpart: clear the buffer before load
|
|||
|
|
|||
|
Fixes msan warnings:
|
|||
|
|
|||
|
==54195==WARNING: MemorySanitizer: use-of-uninitialized-value
|
|||
|
#0 0x55ece35e57cb in line_length /home/runner/work/curl/curl/tests/server
|
|||
|
/getpart.c:111:25
|
|||
|
#1 0x55ece35e3b83 in readline /home/runner/work/curl/curl/tests/server/ge
|
|||
|
tpart.c:164:24
|
|||
|
#2 0x55ece35e0269 in getpart /home/runner/work/curl/curl/tests/server/get
|
|||
|
part.c:347:18
|
|||
|
#3 0x55ece36180b6 in parse_servercmd /home/runner/work/curl/curl/tests/se
|
|||
|
rver/sws.c:283:13
|
|||
|
|
|||
|
Closes #10822
|
|||
|
|
|||
|
- ntlm: clear lm and nt response buffers before use
|
|||
|
|
|||
|
To avoid the risk of MemorySanitizer: use-of-uninitialized-value
|
|||
|
|
|||
|
Closes #10814
|
|||
|
|
|||
|
- digest: clear target buffer
|
|||
|
|
|||
|
Closes #10814
|
|||
|
|
|||
|
Douglas R. Reno (22 Mar 2023)
|
|||
|
|
|||
|
- cmake: bring in the network library on Haiku.
|
|||
|
|
|||
|
When cross-compiling for Haiku, the networking library needs to be
|
|||
|
brought in. Without this, an unknown type of "Error" is reported in
|
|||
|
lib/curl_setup_once.h.
|
|||
|
|
|||
|
This is also needed when using CMake natively on Haiku to build libcurl.
|
|||
|
|
|||
|
Fixes #10296
|
|||
|
Closes #10792
|
|||
|
|
|||
|
Daniel Stenberg (22 Mar 2023)
|
|||
|
|
|||
|
- runtests: die if curl version can be found
|
|||
|
|
|||
|
Closes #10813
|
|||
|
|
|||
|
Stefan Eissing (22 Mar 2023)
|
|||
|
|
|||
|
- multi: add handle asserts in DEBUG builds
|
|||
|
|
|||
|
For GOOD_EASY_HANDLE and GOOD_MULTI_HANDLE checks
|
|||
|
|
|||
|
- allow NULL pointers to "just" return an error as before
|
|||
|
- fail hard on nun-NULL pointers that no longer show the MAGICs
|
|||
|
|
|||
|
Closes #10812
|
|||
|
|
|||
|
Jon Rumsey (22 Mar 2023)
|
|||
|
|
|||
|
- gskit: various compile errors in OS400
|
|||
|
|
|||
|
Various compile failures in gskit.c;
|
|||
|
|
|||
|
- pipe_ssloverssl() needs Curl_easy data parameter for
|
|||
|
Curl_conn_cf_get_socket(cf, data)
|
|||
|
- key_passwd is in ssl_config, not conn_config
|
|||
|
- close_on() has 2 parameters, not 4
|
|||
|
- getsockopt() needs to call Curl_conn_cf_get_socket(), not
|
|||
|
cxn->sock[FIRSTSOCKET]
|
|||
|
|
|||
|
Fixes #10799
|
|||
|
Closes #10800
|
|||
|
|
|||
|
Daniel Stenberg (22 Mar 2023)
|
|||
|
|
|||
|
- tool_operate: pass a long as CURLOPT_HEADEROPT argument
|
|||
|
|
|||
|
Closes #10798
|
|||
|
|
|||
|
- GHA: run all linux test jobs with valgrind
|
|||
|
|
|||
|
Closes #10798
|
|||
|
|
|||
|
- GHA-linux: add an address-sanitizer build
|
|||
|
|
|||
|
Closes #10810
|
|||
|
|
|||
|
Version 8.0.1 (20 Mar 2023)
|
|||
|
|
|||
|
Daniel Stenberg (20 Mar 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
curl 8.0.1
|
|||
|
|
|||
|
- Revert "multi: remove PENDING + MSGSENT handles from the main linked list"
|
|||
|
|
|||
|
This reverts commit f6d6f3ce01e377932f1ce7c24ee34d45a36950b8.
|
|||
|
|
|||
|
The commits caused issues in the 8.0.0 release. Needs a retake.
|
|||
|
|
|||
|
Reported-by: Kamil Dudka
|
|||
|
Closes #10795
|
|||
|
|
|||
|
- include/curl/curlver.h: bump to 8.0.1
|
|||
|
|
|||
|
Version 8.0.0 (20 Mar 2023)
|
|||
|
|
|||
|
Daniel Stenberg (20 Mar 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
The curl 8.0.0 release
|
|||
|
|
|||
|
- THANKS: from the 8.0.0 release
|
|||
|
|
|||
|
- scripts/delta: fix "ambiguous argument" when used in branches
|
|||
|
|
|||
|
- SECURITY-PROCESS.md: Busy-loops are not security problems
|
|||
|
|
|||
|
Closes #10790
|
|||
|
|
|||
|
Stefan Eissing (17 Mar 2023)
|
|||
|
|
|||
|
- tests/http: do not save files for downloads in scorecard testing
|
|||
|
|
|||
|
Closes #10788
|
|||
|
|
|||
|
Daniel Stenberg (17 Mar 2023)
|
|||
|
|
|||
|
- cf-socket: use port 80 when resolving name for local bind
|
|||
|
|
|||
|
It turns out c-ares returns an error when asked to resolve a host name with
|
|||
|
ares_getaddrinfo using port number 0.
|
|||
|
|
|||
|
Reported as a c-ares bug here: https://github.com/c-ares/c-ares/issues/517
|
|||
|
|
|||
|
The work-around is to simply use port 80 instead, as the number typically doe
|
|||
|
s
|
|||
|
not make a difference and a non-zero number works for c-ares.
|
|||
|
|
|||
|
Fixes #10759
|
|||
|
Reported-by: Matt Jolly
|
|||
|
Closes #10789
|
|||
|
|
|||
|
- curl.h: require gcc 12.1 for the deprecation magic
|
|||
|
|
|||
|
Reported-by: kchow-FTNT on github
|
|||
|
Fixes #10726
|
|||
|
Closes #10784
|
|||
|
|
|||
|
- Revert "rtsp: use dynbuf instead of custom reallocs"
|
|||
|
|
|||
|
This reverts commit 1b9ea3239d22147e00d8 because of OSS-fuzz reports.
|
|||
|
I'll do another take after the pending release.
|
|||
|
|
|||
|
Closes #10785
|
|||
|
|
|||
|
- test422: verify --next used without a prior URL
|
|||
|
|
|||
|
Closes #10782
|
|||
|
|
|||
|
- tool_getparam: error if --next is used without a prior URL
|
|||
|
|
|||
|
Reported-by: 積丹尼 Dan Jacobson
|
|||
|
Ref: https://github.com/curl/curl/pull/10769#discussion_r1137895629
|
|||
|
|
|||
|
Closes #10782
|
|||
|
|
|||
|
- libssh: use dynbuf instead of realloc
|
|||
|
|
|||
|
When building lines to show for SFTP directory listings.
|
|||
|
|
|||
|
Closes #10778
|
|||
|
|
|||
|
- lib2305: deal with CURLE_AGAIN
|
|||
|
|
|||
|
The test does a slightly ugly busy-loop for this case but should be
|
|||
|
managable due to it likely being a very short moment.
|
|||
|
|
|||
|
Mention CURLE_AGAIN in curl_ws_recv.3
|
|||
|
|
|||
|
Fixes #10760
|
|||
|
Reported-by: Jay Satiro
|
|||
|
Closes #10781
|
|||
|
|
|||
|
- rtsp: use dynbuf instead of custom reallocs
|
|||
|
|
|||
|
For the RTP buffering.
|
|||
|
|
|||
|
Closes #10776
|
|||
|
|
|||
|
- libssh2: remove unused variable from libssh2's struct
|
|||
|
|
|||
|
Closes #10777
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- multi: remove PENDING + MSGSENT handles from the main linked list
|
|||
|
|
|||
|
As they are not driving transfers or any socket activity, the main loop
|
|||
|
does not need to iterate over these handles. A performance improvement.
|
|||
|
|
|||
|
They are instead only held in their own separate lists.
|
|||
|
|
|||
|
Assisted-by: Stefan Eissing
|
|||
|
Ref: #10743
|
|||
|
Closes #10762
|
|||
|
|
|||
|
- multi: turn link/unlinking easy handles into dedicated functions
|
|||
|
|
|||
|
- http_aws_sigv4: fix scan-build "value stored to 'ret' is never read"
|
|||
|
|
|||
|
Follow-up to 495d09810aa9a
|
|||
|
|
|||
|
Closes #10766
|
|||
|
|
|||
|
- lib: skip Curl_llist_destroy calls
|
|||
|
|
|||
|
Linked lists themselves do not carry any allocations, so for the lists
|
|||
|
that do not have have a set destructor we can just skip the
|
|||
|
Curl_llist_destroy() call and save CPU time.
|
|||
|
|
|||
|
Closes #10764
|
|||
|
|
|||
|
- lib643: LIB644 is never defined, this is dead code
|
|||
|
|
|||
|
Closes #10765
|
|||
|
|
|||
|
- libtest/Makefile.inc: remove superfluous variables
|
|||
|
|
|||
|
Rely on the defaults when possible.
|
|||
|
|
|||
|
Closes #10765
|
|||
|
|
|||
|
- tests/http: remove year ranges from copyrights
|
|||
|
|
|||
|
Closes #10763
|
|||
|
|
|||
|
Casey Bodley (14 Mar 2023)
|
|||
|
|
|||
|
- aws_sigv4: fall back to UNSIGNED-PAYLOAD for sign_as_s3
|
|||
|
|
|||
|
all s3 requests default to UNSIGNED-PAYLOAD and add the required
|
|||
|
x-amz-content-sha256 header. this allows CURLAUTH_AWS_SIGV4 to correctly
|
|||
|
sign s3 requests to amazon with no additional configuration
|
|||
|
|
|||
|
Signed-off-by: Casey Bodley <cbodley@redhat.com>
|
|||
|
|
|||
|
Closes #9995
|
|||
|
|
|||
|
Viktor Szakats (14 Mar 2023)
|
|||
|
|
|||
|
- wolfssl: add quic/ngtcp2 detection in cmake, and fix builds
|
|||
|
|
|||
|
- add QUIC/ngtcp2 detection in CMake with wolfSSL.
|
|||
|
|
|||
|
Because wolfSSL uses zlib if available, move compression detection
|
|||
|
before TLS detection. (OpenSSL might also need this in the future.)
|
|||
|
|
|||
|
- wolfSSL 5.5.0 started using C99 types in its `quic.h` header, but it
|
|||
|
doesn't #include the necessary C99 header itself, breaking builds
|
|||
|
(unless another dependency pulled it by chance.) Add local workaround
|
|||
|
for it. For this to work with all build tools, we had to fix our
|
|||
|
header detection first. Ref: #10745
|
|||
|
|
|||
|
Ref: https://github.com/curl/curl-for-win/commit/6ad5f6ecc15620c15625fc4434
|
|||
|
76b3a1ecef4f3f
|
|||
|
|
|||
|
Closes #10739
|
|||
|
|
|||
|
Stefan Eissing (14 Mar 2023)
|
|||
|
|
|||
|
- secure-transport: fix recv return code handling
|
|||
|
|
|||
|
Return code handling of recv calls were not always correct when an error
|
|||
|
occured or the connection was closed.
|
|||
|
|
|||
|
Closes #10717
|
|||
|
|
|||
|
- http2: Use KEEP_SEND_HOLD for flow control in HTTP/2
|
|||
|
|
|||
|
- use the defined, but so far not used, KEEP_SEND_HOLD bit for flow
|
|||
|
control based suspend of sending in transfers.
|
|||
|
|
|||
|
Prior to this change KEEP_SEND_PAUSE bit was used instead, but that can
|
|||
|
interfere with pausing streams from the user side via curl_easy_pause.
|
|||
|
|
|||
|
Fixes https://github.com/curl/curl/issues/10751
|
|||
|
Closes https://github.com/curl/curl/pull/10753
|
|||
|
|
|||
|
Dan Fandrich (13 Mar 2023)
|
|||
|
|
|||
|
- tests: fix control code that hid some text in runtests.1
|
|||
|
|
|||
|
- tests: sync option lists in runtests.pl & its man page
|
|||
|
|
|||
|
Daniel Stenberg (13 Mar 2023)
|
|||
|
|
|||
|
- multi: make multi_perform ignore/unignore signals less often
|
|||
|
|
|||
|
For improved performance
|
|||
|
|
|||
|
Reported-by: Jerome St-Louis
|
|||
|
Ref: #10743
|
|||
|
Closes #10750
|
|||
|
|
|||
|
Viktor Szakats (13 Mar 2023)
|
|||
|
|
|||
|
- cmake: delete unused HAVE__STRTOI64
|
|||
|
|
|||
|
Also delete obsolete surrounding comments.
|
|||
|
|
|||
|
Reviewed-by: Daniel Stenberg
|
|||
|
Closes #10756
|
|||
|
|
|||
|
- CI: fix copyright header
|
|||
|
|
|||
|
Follow-up to 395b9175b7422d699fa93643973295c106cdf147
|
|||
|
|
|||
|
Daniel Stenberg (13 Mar 2023)
|
|||
|
|
|||
|
- RELEASE-PROCEDURE.md: update coming release dates
|
|||
|
|
|||
|
Stefan Eissing (13 Mar 2023)
|
|||
|
|
|||
|
- tests/http: add pytest to GHA and improve tests
|
|||
|
|
|||
|
- added to: ngtcp2-quictls, ngtcp2-gnutls and the linux varians
|
|||
|
quiche, bearssl, libressl, mbedtls, openssl3, rustls
|
|||
|
- added disabled in ngtcp2-wolfssl due to weird SSL_connect() errors
|
|||
|
not reproducable locally
|
|||
|
|
|||
|
Improvements on pytest:
|
|||
|
|
|||
|
- handling of systems with nghttpx in $PATH
|
|||
|
- configure will seach $PATH got nghttpx used in pytest
|
|||
|
- pytest fixes for managing nghttpx without h3 support
|
|||
|
- ngtcp2-wolfssl: use a fully enabled wolfssl build
|
|||
|
|
|||
|
- lower parallel count for http/1.1 tests, since we do not
|
|||
|
want to test excessive connections.
|
|||
|
- check built curl for HTTPS-proxy support in proxy tests
|
|||
|
- bearssl does not like one of our critical cert extensions, making
|
|||
|
it non-critical now
|
|||
|
- bearssl is too slow for test_12, skipping
|
|||
|
- making sure we do h3 tests only when curl and server support is there
|
|||
|
|
|||
|
Closes #10699
|
|||
|
|
|||
|
Marcel Raad (13 Mar 2023)
|
|||
|
|
|||
|
- tool_operate: silence unused parameter warning
|
|||
|
|
|||
|
`global` is only used in the `my_setopt` macro version without
|
|||
|
`CURL_DISABLE_LIBCURL_OPTION` since commit 4774decf10a.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10752
|
|||
|
|
|||
|
Viktor Szakats (13 Mar 2023)
|
|||
|
|
|||
|
- build: fix stdint/inttypes detection with non-autotools
|
|||
|
|
|||
|
Fix `stdint.h` and `inttypes.h` detection with non-autotools builds on
|
|||
|
Windows. (autotools already auto-detected them accurately.)
|
|||
|
|
|||
|
`lib/config-win32.h` builds (e.g. `Makefile.mk`):
|
|||
|
- set `HAVE_STDINT_H` where supported.
|
|||
|
- set `HAVE_INTTYPES_H` for MinGW.
|
|||
|
|
|||
|
CMake:
|
|||
|
- auto-detect them on Windows. (They were both force-disabled.)
|
|||
|
- delete unused `CURL_PULL_STDINT_H`.
|
|||
|
- delete unused `CURL_PULL_INTTYPES_H`.
|
|||
|
- stop detecting `HAVE_STDINT_H` twice.
|
|||
|
Present since the initial CMake commit: 4c5307b45655ba75ab066564afdc0c111a8
|
|||
|
b9291
|
|||
|
|
|||
|
curl doesn't use these C99 headers, we need them now to workaround
|
|||
|
broken wolfSSL builds. Ref: #10739
|
|||
|
|
|||
|
Once that clears up, we can delete these detections and macros (unless
|
|||
|
we want to keep them for future us.)
|
|||
|
|
|||
|
Reviewed-by: Daniel Stenberg
|
|||
|
Closes #10745
|
|||
|
|
|||
|
Daniel Stenberg (13 Mar 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
- ftp: add more conditions for connection reuse
|
|||
|
|
|||
|
Reported-by: Harry Sintonen
|
|||
|
Closes #10730
|
|||
|
|
|||
|
Dan Fandrich (12 Mar 2023)
|
|||
|
|
|||
|
- tests: make first.c the same for both lib tests and unit tests
|
|||
|
|
|||
|
The only difference used to be global variable used in unittest tests.
|
|||
|
After cb7ed5a removed individual flag overrides for the unittests, first.c
|
|||
|
was no longer recompiled for unit tests to include the flag, so whether it
|
|||
|
worked or gave a link error depended on whether it was compiled in
|
|||
|
libtest or unittest first. This way also speeds up the build by
|
|||
|
eliminating 40 identical compile invocations.
|
|||
|
|
|||
|
Fixes #10749
|
|||
|
|
|||
|
- tests: use AM_CPPFILES to modify flags in unit tests
|
|||
|
|
|||
|
Using CPPFLAGS sometimes caused odd compile issues when building tests
|
|||
|
with parallel make and AM_CPPFILES is the right flag, anyway.
|
|||
|
|
|||
|
Follow-up to cb7ed5a
|
|||
|
|
|||
|
Ref #10749
|
|||
|
|
|||
|
Viktor Szakats (13 Mar 2023)
|
|||
|
|
|||
|
- Makefile.mk: fix -g option in debug mode [ci skip]
|
|||
|
|
|||
|
Add it to `CFLAGS` (was: `LDFLAGS`).
|
|||
|
|
|||
|
Closes #10747
|
|||
|
|
|||
|
Jay Satiro (12 Mar 2023)
|
|||
|
|
|||
|
- tool: improve --stderr handling
|
|||
|
|
|||
|
- freopen stderr with the user-specified file (--stderr file) instead of
|
|||
|
using a separate 'errors' stream.
|
|||
|
|
|||
|
- In tool_setup.h override stdio.h's stderr macro as global variable
|
|||
|
tool_stderr.
|
|||
|
|
|||
|
Both freopen and overriding the stderr macro are necessary because if
|
|||
|
the user-specified filename is "-" then stdout is assigned to
|
|||
|
tool_stderr and no freopen takes place. See the PR for more information.
|
|||
|
|
|||
|
Ref: https://github.com/curl/curl/issues/10491
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10673
|
|||
|
|
|||
|
Dan Fandrich (11 Mar 2023)
|
|||
|
|
|||
|
- CI: don't run CI jobs if only another CI was changed
|
|||
|
|
|||
|
Also skip builds on non-Windows platforms when only Windows build files
|
|||
|
have changed.
|
|||
|
|
|||
|
This should reduce the number of useless builds and the associated
|
|||
|
waiting time and chance of spurious failures, freeing resources for
|
|||
|
new PRs.
|
|||
|
|
|||
|
Closes #10742
|
|||
|
|
|||
|
- http: don't send 100-continue for short PUT requests
|
|||
|
|
|||
|
This is already how curl is documented to behave in Everything curl, but
|
|||
|
in actuality only short POSTs skip this. This should knock 30 seconds
|
|||
|
off a full run of the test suite since the 100-continue timeout will no
|
|||
|
longer be hit.
|
|||
|
|
|||
|
Closes #10740
|
|||
|
|
|||
|
- tests: add DELAY keyword to more tests using waits
|
|||
|
|
|||
|
- tests: hack to build most unit tests under cmake
|
|||
|
|
|||
|
These are only built when a libcurl static library is available, since
|
|||
|
we're not building a special libcurlu library yet and these tests rely
|
|||
|
on private symbols that aren't available in the shared library. A few
|
|||
|
unit tests do require libcurlu, so those are not built.
|
|||
|
|
|||
|
Closes #10722
|
|||
|
|
|||
|
- tests: fix MSVC unreachable code warnings in unit tests
|
|||
|
|
|||
|
Switch unit1654 to use the proper test macros as well.
|
|||
|
|
|||
|
- tests: make CPPFLAGS common to all unit tests
|
|||
|
|
|||
|
There's no need to specify them individually.
|
|||
|
|
|||
|
- tests: keep cmake unit tests names in sync
|
|||
|
|
|||
|
Put only the test names into Makefile.inc so they can be used by both
|
|||
|
cmake and automake. This will prevent the list of tests from becoming
|
|||
|
out of date when they are also built under cmake.
|
|||
|
|
|||
|
Viktor Szakats (11 Mar 2023)
|
|||
|
|
|||
|
- src: silence wmain() warning for all build methods
|
|||
|
|
|||
|
llvm/clang and gcc doesn't recognize the wmain() function in Unicode
|
|||
|
Windows builds:
|
|||
|
|
|||
|
llvm/clang:
|
|||
|
```
|
|||
|
../../src/tool_main.c:239:5: warning: no previous prototype for function 'wma
|
|||
|
in' [-Wmissing-prototypes]
|
|||
|
int wmain(int argc, wchar_t *argv[])
|
|||
|
^
|
|||
|
1 warning generated.
|
|||
|
```
|
|||
|
|
|||
|
gcc:
|
|||
|
```
|
|||
|
../../src/tool_main.c:239:5: warning: no previous prototype for 'wmain' [-Wmi
|
|||
|
ssing-prototypes]
|
|||
|
239 | int wmain(int argc, wchar_t *argv[])
|
|||
|
| ^~~~~
|
|||
|
```
|
|||
|
|
|||
|
Before this patch, we already silenced it with CMake. This patch moves
|
|||
|
the silencing to the source, so that it applies to all build tools.
|
|||
|
|
|||
|
Bug: https://github.com/curl/curl/issues/7229#issuecomment-1464806651
|
|||
|
|
|||
|
Reviewed-by: Marcel Raad
|
|||
|
Closes #10744
|
|||
|
|
|||
|
Dan Fandrich (10 Mar 2023)
|
|||
|
|
|||
|
- CI: fix retrying on brew failures
|
|||
|
|
|||
|
The previous attempt didn't consider that the shell would exit
|
|||
|
immediately after the false statement in the retry case.
|
|||
|
|
|||
|
Follow-up to dc141a37
|
|||
|
|
|||
|
Stefan Eissing (10 Mar 2023)
|
|||
|
|
|||
|
- http2: fix error handling during parallel operations
|
|||
|
|
|||
|
RST and connection close were not handled correctly during parallel
|
|||
|
transfers, leading to aborted response bodies being reported complete.
|
|||
|
|
|||
|
Closes #10715
|
|||
|
|
|||
|
Daniel Stenberg (10 Mar 2023)
|
|||
|
|
|||
|
- url: only reuse connections with same GSS delegation
|
|||
|
|
|||
|
Reported-by: Harry Sintonen
|
|||
|
Closes #10731
|
|||
|
|
|||
|
Viktor Szakats (10 Mar 2023)
|
|||
|
|
|||
|
- lib: silence clang/gcc -Wvla warnings in brotli headers
|
|||
|
|
|||
|
brotli v1.0.0 throughout current latest v1.0.9 and latest master [1]
|
|||
|
trigger this warning.
|
|||
|
|
|||
|
It happened with CMake and GNU Make. autotools builds avoid it with
|
|||
|
the `convert -I options to -isystem` macro.
|
|||
|
|
|||
|
llvm/clang:
|
|||
|
```
|
|||
|
In file included from ./curl/lib/content_encoding.c:36:
|
|||
|
./brotli/x64-ucrt/usr/include/brotli/decode.h:204:34: warning: variable lengt
|
|||
|
h array used [-Wvla]
|
|||
|
const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
|
|||
|
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|||
|
./brotli/x64-ucrt/usr/include/brotli/port.h:253:34: note: expanded from macro
|
|||
|
'BROTLI_ARRAY_PARAM'
|
|||
|
^~~~~~
|
|||
|
In file included from ./curl/lib/content_encoding.c:36:
|
|||
|
./brotli/x64-ucrt/usr/include/brotli/decode.h:206:48: warning: variable lengt
|
|||
|
h array used [-Wvla]
|
|||
|
uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]);
|
|||
|
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
|
|||
|
./brotli/x64-ucrt/usr/include/brotli/port.h:253:35: note: expanded from macro
|
|||
|
'BROTLI_ARRAY_PARAM'
|
|||
|
~^~~~~
|
|||
|
```
|
|||
|
|
|||
|
gcc:
|
|||
|
```
|
|||
|
In file included from ./curl/lib/content_encoding.c:36:
|
|||
|
./brotli/x64-ucrt/usr/include/brotli/decode.h:204:5: warning: ISO C90 forbids
|
|||
|
variable length array 'encoded_buffer' [-Wvla]
|
|||
|
204 | const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
|
|||
|
| ^~~~~
|
|||
|
./brotli/x64-ucrt/usr/include/brotli/decode.h:206:5: warning: ISO C90 forbids
|
|||
|
variable length array 'decoded_buffer' [-Wvla]
|
|||
|
206 | uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]);
|
|||
|
| ^~~~~~~
|
|||
|
```
|
|||
|
|
|||
|
[1] https://github.com/google/brotli/commit/ed1995b6bda19244070ab5d331111f16f
|
|||
|
67c8054
|
|||
|
|
|||
|
Reviewed-by: Daniel Stenberg
|
|||
|
Reviewed-by: Marcel Raad
|
|||
|
Closes #10738
|
|||
|
|
|||
|
Daniel Stenberg (10 Mar 2023)
|
|||
|
|
|||
|
- curl_path: create the new path with dynbuf
|
|||
|
|
|||
|
Closes #10729
|
|||
|
|
|||
|
- url: remove dummy protocol handler
|
|||
|
|
|||
|
Just two added checks were needed saves a whole handler struct.
|
|||
|
|
|||
|
Closes #10727
|
|||
|
|
|||
|
Dan Fandrich (10 Mar 2023)
|
|||
|
|
|||
|
- CI: retry a failed brew update too, not just brew install
|
|||
|
|
|||
|
Also, make sure an eventual failure ends up returning a failure code so
|
|||
|
the job stops.
|
|||
|
|
|||
|
Daniel Stenberg (10 Mar 2023)
|
|||
|
|
|||
|
- url: fix the SSH connection reuse check
|
|||
|
|
|||
|
Reported-by: Harry Sintonen
|
|||
|
Closes #10735
|
|||
|
|
|||
|
- CURLOPT_PROXY.3: curl+NSS does not handle HTTPS over unix domain socket
|
|||
|
|
|||
|
It results in error "NSS error -5985 (PR_ADDRESS_NOT_SUPPORTED_ERROR)"
|
|||
|
|
|||
|
Disabled test 1470 for NSS builds and documented the restriction.
|
|||
|
|
|||
|
Reported-by: Dan Fandrich
|
|||
|
Fixes #10723
|
|||
|
Closes #10734
|
|||
|
|
|||
|
- CURLSHOPT_SHARE.3: HSTS sharing is not thread-safe
|
|||
|
|
|||
|
Reported-by: Hiroki Kurosawa
|
|||
|
Closes #10732
|
|||
|
|
|||
|
- telnet: only accept option arguments in ascii
|
|||
|
|
|||
|
To avoid embedded telnet negotiation commands etc.
|
|||
|
|
|||
|
Reported-by: Harry Sintonen
|
|||
|
Closes #10728
|
|||
|
|
|||
|
- test1903: test use of COOKIEFILE - reset - COOKIEFILE
|
|||
|
|
|||
|
This also tests for the memory leak bug fixed by parent commit b559ef6f.
|
|||
|
|
|||
|
Ref: #10694
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10712
|
|||
|
|
|||
|
Jay Satiro (10 Mar 2023)
|
|||
|
|
|||
|
- url: fix cookielist memleak when curl_easy_reset
|
|||
|
|
|||
|
- Free set.cookelist in Curl_freeset instead of Curl_close.
|
|||
|
|
|||
|
Prior to this change the cookielist linked list wasn't freed by
|
|||
|
curl_easy_reset which calls Curl_freeset to free all set.
|
|||
|
|
|||
|
Bug: https://github.com/curl/curl/issues/10694#issuecomment-1458619157
|
|||
|
Reported-by: Sergey Ryabinin
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10709
|
|||
|
|
|||
|
Dan Fandrich (10 Mar 2023)
|
|||
|
|
|||
|
- tests: fix some keywords and unused sections
|
|||
|
|
|||
|
- tests: fix test1301 to call the right binary
|
|||
|
|
|||
|
It was refactored in commit 480ac6e5 but this step was missed.
|
|||
|
|
|||
|
- tests: add timeout, SLOWDOWN and DELAY keywords to tests
|
|||
|
|
|||
|
These are tests that are testing timing and end up being quite slow.
|
|||
|
|
|||
|
Daniel Stenberg (10 Mar 2023)
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Stefan Eissing (10 Mar 2023)
|
|||
|
|
|||
|
- wolfSSL: ressurect the BIO `io_result`
|
|||
|
|
|||
|
In pytest'ing the situation occored that wolfSSL reported an
|
|||
|
IO error when the underlying BIO operation was returning an
|
|||
|
CURLE_AGAIN condition.
|
|||
|
|
|||
|
Readding the `io_result` filter context member to detect such
|
|||
|
situations.
|
|||
|
|
|||
|
Also, making sure that the returned CURLcode is initialized
|
|||
|
on all recv operations outcome.
|
|||
|
|
|||
|
Closes #10716
|
|||
|
|
|||
|
- gssapi: align global `gss_OID_desc` vars to silence ld warnings on macOS vent
|
|||
|
ura
|
|||
|
|
|||
|
Refs #9975 which first reported this.
|
|||
|
|
|||
|
Closes #10718
|
|||
|
|
|||
|
Daniel Stenberg (10 Mar 2023)
|
|||
|
|
|||
|
- libssh2: only set the memory callbacks when debugging
|
|||
|
|
|||
|
This makes us debug libssh2 less and libcurl more when for example
|
|||
|
running torture tests that otherwise will spend a lot of time in libssh2
|
|||
|
functions.
|
|||
|
|
|||
|
We leave libssh2 to test libssh2.
|
|||
|
|
|||
|
Closes #10721
|
|||
|
|
|||
|
- docs/SECURITY-PROCESS.md: updates
|
|||
|
|
|||
|
- allow Low+Medium issues to be managed through plain PRs
|
|||
|
- update the bug-bounty part to reflect current reality
|
|||
|
|
|||
|
Closes #10719
|
|||
|
|
|||
|
Dan Fandrich (9 Mar 2023)
|
|||
|
|
|||
|
- tests: fix tag markup issues in some tests
|
|||
|
|
|||
|
Marcel Raad (9 Mar 2023)
|
|||
|
|
|||
|
- tests: add `cookies` features
|
|||
|
|
|||
|
These tests don't work with `--disable-cookies`.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10713
|
|||
|
|
|||
|
- test420: add cookies keyword
|
|||
|
|
|||
|
It fails with `--disable-cookies`.
|
|||
|
|
|||
|
Closes https://github.com/curl/curl/pull/10713
|
|||
|
|
|||
|
Dan Fandrich (8 Mar 2023)
|
|||
|
|
|||
|
- CI: Add more labeler match patterns
|
|||
|
|
|||
|
Also, add the CI, tests or libcurl API tags in conjunction with any
|
|||
|
others that might also apply.
|
|||
|
|
|||
|
Andy Alt (9 Mar 2023)
|
|||
|
|
|||
|
- GHA: minor improvements to spellcheck
|
|||
|
|
|||
|
Closes #10640
|
|||
|
|
|||
|
Daniel Stenberg (9 Mar 2023)
|
|||
|
|
|||
|
- test1671: fix after fix
|
|||
|
|
|||
|
- test421: -w %{header_json} test with multiple same header names
|
|||
|
|
|||
|
To reproduce the issue in #10704
|
|||
|
|
|||
|
- tool_writeout_json. fix the output for duplicate header names
|
|||
|
|
|||
|
Header entries with index != 0 are handled at the index 0 level so they
|
|||
|
should then be skipped when iterated over.
|
|||
|
|
|||
|
Reported-by: Boris Okunskiy
|
|||
|
Fixes #10704
|
|||
|
Closes #10707
|
|||
|
|
|||
|
- headers: make curl_easy_header and nextheader return different buffers
|
|||
|
|
|||
|
By letting curl_easy_header() and curl_easy_nextheader() store the
|
|||
|
header data in their own struct storage when they return a pointer to
|
|||
|
it, it makes it possible for applications to use them both in a loop.
|
|||
|
Like the curl tool does.
|
|||
|
|
|||
|
Reported-by: Boris Okunskiy
|
|||
|
Fixes #10704
|
|||
|
Closes #10707
|
|||
|
|
|||
|
rcombs (8 Mar 2023)
|
|||
|
|
|||
|
- urlapi: take const args in _dup and _get functions
|
|||
|
|
|||
|
Closes #10708
|
|||
|
|
|||
|
- urlapi: avoid mutating internals in getter routine
|
|||
|
|
|||
|
This was not intended.
|
|||
|
|
|||
|
Closes #10708
|
|||
|
|
|||
|
Daniel Stenberg (8 Mar 2023)
|
|||
|
|
|||
|
- urlapi: '%' is illegal in host names
|
|||
|
|
|||
|
Update test 1560 to verify
|
|||
|
|
|||
|
Ref: #10708
|
|||
|
Closes #10711
|
|||
|
|
|||
|
- ftp: make the 'ftpauth' a more normal 'char *'-array
|
|||
|
|
|||
|
Closes #10703
|
|||
|
|
|||
|
Evgeny Grin (Karlson2k) (8 Mar 2023)
|
|||
|
|
|||
|
- doc: fix compiler warning in libcurl.m4
|
|||
|
|
|||
|
Current test for curl_free() may produce warnings with strict compiler
|
|||
|
flags or even with default compiler flags with upcoming versions.
|
|||
|
These warning could turned into errors by -Werror or similar flags.
|
|||
|
Such warnings/errors are avoided by this patch.
|
|||
|
|
|||
|
Closes #10710
|
|||
|
|
|||
|
Viktor Szakats (8 Mar 2023)
|
|||
|
|
|||
|
- misc: fix typos
|
|||
|
|
|||
|
Closes #10706
|
|||
|
|
|||
|
Stefan Eissing (7 Mar 2023)
|
|||
|
|
|||
|
- ftp: active mode with SSL, add the damn filter
|
|||
|
|
|||
|
- since 7.87.0 we lost adding the SSL filter for an active
|
|||
|
FTP connection that uses SSL. This leads to hangers and timeouts
|
|||
|
as reported in #10666.
|
|||
|
|
|||
|
Reported-by: SandakovMM on github
|
|||
|
Fixes #10666
|
|||
|
Closes #10669
|
|||
|
|
|||
|
Daniel Stenberg (7 Mar 2023)
|
|||
|
|
|||
|
- docs: extend the URL API descriptions
|
|||
|
|
|||
|
Closes #10701
|
|||
|
|
|||
|
Stefan Eissing (7 Mar 2023)
|
|||
|
|
|||
|
- url: fix logic in connection reuse to deny reuse on "unclean" connections
|
|||
|
|
|||
|
- add parameter to `conn_is_alive()` cfilter method that returns
|
|||
|
if there is input data waiting on the connection
|
|||
|
- refrain from re-using connnection from the cache that have
|
|||
|
input pending
|
|||
|
- adapt http/2 and http/3 alive checks to digest pending input
|
|||
|
to check the connection state
|
|||
|
- remove check_cxn method from openssl as that was just doing
|
|||
|
what the socket filter now does.
|
|||
|
- add tests for connection reuse with special server configs
|
|||
|
|
|||
|
Closes #10690
|
|||
|
|
|||
|
Daniel Stenberg (6 Mar 2023)
|
|||
|
|
|||
|
- x509asn1: use plain %x, not %lx, when the arg is an int
|
|||
|
|
|||
|
Pointed out by Coverity.
|
|||
|
|
|||
|
Closes #10689
|
|||
|
|
|||
|
Stefan Eissing (6 Mar 2023)
|
|||
|
|
|||
|
- http2: fix handling of RST and GOAWAY to recognize partial transfers
|
|||
|
|
|||
|
- a reset transfer (HTTP/2 RST) did not always lead to the proper
|
|||
|
error message on receiving its response, leading to wrong reports
|
|||
|
of a successful transfer
|
|||
|
- test_05_02 was able to trigger this condition with increased transfer
|
|||
|
count. The simulated response errors did not carry a 'Content-Length'
|
|||
|
so only proper RST handling could detect the abort
|
|||
|
- When doing such transfers in parallel, a connection could enter the
|
|||
|
state where
|
|||
|
a) it had been closed (GOAWAY received)
|
|||
|
b) the RST had not been "seen" for the transfer yet
|
|||
|
or c) the GOAWAY announced an error and the last successful
|
|||
|
stream id was not checked against ongoing transfers
|
|||
|
|
|||
|
Closes #10693
|
|||
|
|
|||
|
- tests: use dynamic ports numbers in pytest suite
|
|||
|
|
|||
|
- necessary ports are bound at start of test suite and then
|
|||
|
given to server fixtures for use.
|
|||
|
- this make parallel use of pytest (in separate directories),
|
|||
|
practically safe for use as OS tend to not reuse such port numbers
|
|||
|
for a while
|
|||
|
|
|||
|
Closes #10692
|
|||
|
|
|||
|
- connect: fix time_connect and time_appconnect timer statistics
|
|||
|
|
|||
|
- time_connect was not updated when the overall connection failed,
|
|||
|
e.g. when SSL verification was unsuccessful, refs #10670
|
|||
|
- rework gather those values to interrogate involved filters,
|
|||
|
also from all eyeballing attempts, to report the maximum of
|
|||
|
those values.
|
|||
|
- added 3 test cases in test_06 to check reported values on
|
|||
|
successful, partially failed and totally failed connections.
|
|||
|
|
|||
|
Reported-by: Master Inspire
|
|||
|
Fixes #10670
|
|||
|
Closes #10671
|
|||
|
|
|||
|
Daniel Stenberg (6 Mar 2023)
|
|||
|
|
|||
|
- test1905: update output cookie order
|
|||
|
|
|||
|
After the #10685 update
|
|||
|
|
|||
|
- test420: verify expiring cookies
|
|||
|
|
|||
|
Cookies that are loaded fine from a jar but then are expired in headers.
|
|||
|
|
|||
|
- cookie: don't load cookies again when flushing
|
|||
|
|
|||
|
Reported-by: Sergio Mijatovic
|
|||
|
Fixes #10677
|
|||
|
Closes #10685
|
|||
|
|
|||
|
- RELEASE-NOTES: synced
|
|||
|
|
|||
|
Andy Alt (6 Mar 2023)
|
|||
|
|
|||
|
- docs: note '--data-urlencode' option
|
|||
|
|
|||
|
Closes #10687
|
|||
|
|
|||
|
Daniel Stenberg (6 Mar 2023)
|
|||
|
|
|||
|
- DEPRECATE: the original legacy mingw version 1
|
|||
|
|
|||
|
Remove completely in September 2023
|
|||
|
|
|||
|
Closes #10667
|
|||
|
|
|||
|
Harry Sintonen (6 Mar 2023)
|
|||
|
|
|||
|
- rand: use arc4random as fallback when available
|
|||
|
|
|||
|
Normally curl uses cryptographically strong random provided by the
|
|||
|
selected SSL backend. If compiled without SSL support, a naive built-in
|
|||
|
function was used instead.
|
|||
|
|
|||
|
Generally this was okay, but it will result in some downsides for non-
|
|||
|
SSL builds, such as predictable temporary file names.
|
|||
|
|
|||
|
This change ensures that arc4random will be used instead, if available.
|
|||
|
|
|||
|
Closes #10672
|
|||
|
|
|||
|
Grisha Levit (6 Mar 2023)
|
|||
|
|
|||
|
- tool: dump headers even if file is write-only
|
|||
|
|
|||
|
The fixes in #10079 brought a (seemingly unrelated) change of open mode
|
|||
|
from `wb`/`ab` to `wb+`/`ab+` for the headerfile. This makes it no
|
|||
|
longer possible to write the header file to e.g. a pipe, like:
|
|||
|
|
|||
|
curl -D >(grep ...) file:///dev/null
|
|||
|
|
|||
|
Which presently results in `Warning: Failed to open /dev/fd/63`
|
|||
|
|
|||
|
See #10079
|
|||
|
Closes #10675
|