|
|
_ _ ____ _
|
|
|
___| | | | _ \| |
|
|
|
/ __| | | | |_) | |
|
|
|
| (__| |_| | _ <| |___
|
|
|
\___|\___/|_| \_\_____|
|
|
|
|
|
|
Changelog
|
|
|
|
|
|
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
|
|
|
|
|
|
Jay Satiro (6 Mar 2023)
|
|
|
|
|
|
- tests: fix gnutls-serv check
|
|
|
|
|
|
- If gnutls-serv doesn't exist then don't try to execute it.
|
|
|
|
|
|
Follow-up to 2fdc1d81.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10688
|
|
|
|
|
|
Daniel Stenberg (6 Mar 2023)
|
|
|
|
|
|
- lib1560: fix enumerated type mixed with another type
|
|
|
|
|
|
Follow-up to c84c0f9aa3bb006
|
|
|
|
|
|
Closes #10684
|
|
|
|
|
|
Viktor Szakats (5 Mar 2023)
|
|
|
|
|
|
- cmake: fix enabling LDAPS on Windows
|
|
|
|
|
|
Before this patch, enabling LDAPS required a manual C flag:
|
|
|
https://github.com/curl/curl-for-win/blob/c1cfc31cfc04f24f7a4f946564d6f0e1b4d
|
|
|
7dd36/curl-cmake.sh#L105
|
|
|
|
|
|
Fix this and enable LDAPS automatically when using `wldap32` (and
|
|
|
when not explicitly disabled). This matches autotools and `Makefile.mk`
|
|
|
behavior. Also remove issue from KNOWN_BUGS.
|
|
|
|
|
|
Add workaround for MSVS 2010 warning triggered by LDAPS now enabled
|
|
|
in more CI tests:
|
|
|
`ldap.c(360): warning C4306: 'type cast' : conversion from 'int' to 'void *'
|
|
|
of greater size`
|
|
|
Ref: https://ci.appveyor.com/project/curlorg/curl/builds/46408284/job/v8mwl9y
|
|
|
fbmoeqwlr#L312
|
|
|
|
|
|
Reported-by: JackBoosY on github
|
|
|
Reviewed-by: Jay Satiro
|
|
|
Reviewed-by: Marcel Raad
|
|
|
Fixes #6284
|
|
|
Closes #10674
|
|
|
|
|
|
- Makefile.mk: delete redundant `HAVE_LDAP_SSL` macro [ci skip]
|
|
|
|
|
|
Since abebb2b8939c6b3e0f951eb2d9ec3729b569aa2c, we set this macro for
|
|
|
all Windows `wldap32` builds using `Makefile.mk`.
|
|
|
|
|
|
For OpenLDAP builds this macro is not enough to enable LDAPS, and
|
|
|
OpenLDAP is not an option in `Makefile.mk`. For Novell LDAP it might
|
|
|
have helped, but it's also not an option anymore in `Makefile.mk`.
|
|
|
|
|
|
The future for LDAPS is that we should enable it by default without
|
|
|
extra build knobs.
|
|
|
|
|
|
Reviewed-by: Marcel Raad
|
|
|
Closes #10681
|
|
|
|
|
|
- cmake: skip CA-path/bundle auto-detection in cross-builds
|
|
|
|
|
|
Also remove issue from KNOWN_BUGS.
|
|
|
|
|
|
Reported-by: Cristian Morales Vega
|
|
|
Reviewed-by: Marcel Raad
|
|
|
Fixes #6178
|
|
|
Closes #10676
|
|
|
|
|
|
Daniel Stenberg (3 Mar 2023)
|
|
|
|
|
|
- schannel: loop over the algos to pick the selected one
|
|
|
|
|
|
Avoid using the funny macro and the extra buffer copy.
|
|
|
|
|
|
Closes #10647
|
|
|
|
|
|
- wildcard: remove files and move functions into ftplistparser.c
|
|
|
|
|
|
- ftp: allocate the wildcard struct on demand
|
|
|
|
|
|
The feature is rarely used so this frees up data for the vast majority
|
|
|
of easy handles that don't use it.
|
|
|
|
|
|
Rename "protdata" to "ftpwc" since it is always an FTP wildcard struct
|
|
|
pointer. Made the state struct field an unsigned char to save space.
|
|
|
|
|
|
Closes #10639
|
|
|
|
|
|
- lib1560: test parsing URLs with ridiculously large fields
|
|
|
|
|
|
In the order of 120K.
|
|
|
|
|
|
Closes #10665
|
|
|
|
|
|
Brad Spencer (3 Mar 2023)
|
|
|
|
|
|
- urlapi: parse IPv6 literals without ENABLE_IPV6
|
|
|
|
|
|
This makes the URL parser API stable and working the same way
|
|
|
independently of libcurl supporting IPv6 transfers or not.
|
|
|
|
|
|
Closes #10660
|
|
|
|
|
|
Jan Engelhardt (3 Mar 2023)
|
|
|
|
|
|
- build: drop the use of XC_AMEND_DISTCLEAN
|
|
|
|
|
|
Because automake used to delete depdirs at once (.deps) and there was an issu
|
|
|
e
|
|
|
with portability, curl's XC_AMEND_DISTCLEAN greps the Makefiles in an attempt
|
|
|
to build a list of all depfiles and delete them individually instead.
|
|
|
|
|
|
Since commit 08849db866b44510f6b8fd49e313c91a43a3dfd3, automake switched from
|
|
|
deleting directories to individual files. curl's custom logic now finds a lot
|
|
|
more results with the grep (the filtering of these results isn't great), whic
|
|
|
h
|
|
|
causes a massive bloating of the Makefile in the order of O(n^2).
|
|
|
|
|
|
Also remove now-unused XC_AMEND_DISTCLEAN macro group
|
|
|
|
|
|
References: https://github.com/curl/curl/issues/9843
|
|
|
References: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59288
|
|
|
|
|
|
Reported-by: Ilmari Lauhakangas
|
|
|
Fixes #9843
|
|
|
Closes #10661
|
|
|
|
|
|
Balakrishnan Balasubramanian (3 Mar 2023)
|
|
|
|
|
|
- test1470: test socks proxy using unix sockets and connect to https
|
|
|
|
|
|
Similar to test1468 except using https instead of http
|
|
|
|
|
|
Closes #10662
|
|
|
|
|
|
Daniel Stenberg (3 Mar 2023)
|
|
|
|
|
|
- test1960: verify CURL_SOCKOPT_ALREADY_CONNECTED
|
|
|
|
|
|
When returned from the CURLOPT_SOCKOPTFUNCTION, like when we have a
|
|
|
custom socket connected in the app, passed in to libcurl.
|
|
|
|
|
|
Verifies the fix in #10648
|
|
|
|
|
|
Closes #10651
|
|
|
|
|
|
Stefan Eissing (2 Mar 2023)
|
|
|
|
|
|
- tests: rename tests/tests-httpd to tests/http
|
|
|
|
|
|
- httpd is only one server we test with
|
|
|
- the suite coveres the HTTP protocol in general where
|
|
|
the default test cases need a more beefy environment
|
|
|
|
|
|
Closes #10654
|
|
|
|
|
|
- socket: detect "dead" connections better, e.g. not fit for reuse
|
|
|
|
|
|
- refs #10646 where reuse was attempted on closed connections in the
|
|
|
cache, leading to an exhaustion of retries on a transfer
|
|
|
- the mistake was that poll events like POLLHUP, POLLERR, etc
|
|
|
were regarded as "not dead".
|
|
|
- change cf-socket filter check to regard such events as inidication
|
|
|
of corpsiness.
|
|
|
- vtls filter checks: fixed interpretation of backend check result
|
|
|
when inconclusive to interrogate status further down the filter
|
|
|
chain.
|
|
|
|
|
|
Reported-by: SendSonS on github
|
|
|
Fixes #10646
|
|
|
Closes #10652
|
|
|
|
|
|
- lib: give source files cf-http.* better fitting names
|
|
|
|
|
|
Closes #10656
|
|
|
|
|
|
- http2: fix code indent
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10655
|
|
|
|
|
|
Shankar Jadhavar (1 Mar 2023)
|
|
|
|
|
|
- cf-socket: if socket is already connected, return CURLE_OK
|
|
|
|
|
|
In 7.87.0, if callback method for CURLOPT_SOCKOPTFUNCTION returns
|
|
|
CURL_SOCKOPT_ALREADY_CONNECTED then curl library used to return
|
|
|
CURLE_OK. n 7.88.0, now even if callback returns
|
|
|
CURL_SOCKOPT_ALREADY_CONNECTED, curl library still tries to connect to
|
|
|
socket by invoking method do_connect().
|
|
|
|
|
|
This is regression caused by commit
|
|
|
https://github.com/curl/curl/commit/71b7e0161032927cdfb
|
|
|
|
|
|
Fix: Check if we are already connected and return CURLE_OK.
|
|
|
|
|
|
Fixes #10626
|
|
|
Closes #10648
|
|
|
|
|
|
Jay Satiro (1 Mar 2023)
|
|
|
|
|
|
- DYNBUF.md: note Curl_dyn_add* calls Curl_dyn_free on failure
|
|
|
|
|
|
This is the existing behavior and it has been widely assumed in the
|
|
|
codebase.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10645
|
|
|
|
|
|
Stefan Eissing (1 Mar 2023)
|
|
|
|
|
|
- http2: fix upload busy loop
|
|
|
|
|
|
- Set KEEP_SEND_PAUSE when exhausting remote HTTP/2 window size of a
|
|
|
stream.
|
|
|
|
|
|
- Clear KEEP_SEND_PAUSE when receiving HTTP/2 window updates on a paused
|
|
|
stream.
|
|
|
|
|
|
- Also fix http2 send compiler warnings reported in #10449.
|
|
|
|
|
|
Prior to this change, starting in 71b7e016 which precedes 7.88.0,
|
|
|
libcurl may eat CPU during HTTP/2 upload.
|
|
|
|
|
|
Reported-by: Jay Satiro
|
|
|
|
|
|
Fixes https://github.com/curl/curl/issues/10449
|
|
|
Fixes https://github.com/curl/curl/issues/10618
|
|
|
Closes https://github.com/curl/curl/pull/10627
|
|
|
|
|
|
Daniel Stenberg (1 Mar 2023)
|
|
|
|
|
|
- sectransp: make read_cert() use a dynbuf when loading
|
|
|
|
|
|
Closes #10632
|
|
|
|
|
|
Jay Satiro (1 Mar 2023)
|
|
|
|
|
|
- transfer: limit Windows SO_SNDBUF updates to once a second
|
|
|
|
|
|
- Change readwrite_upload() to call win_update_buffer_size() no more
|
|
|
than once a second to update SO_SNDBUF (send buffer limit).
|
|
|
|
|
|
Prior to this change during an upload readwrite_upload() could call
|
|
|
win_update_buffer_size() anywhere from hundreds of times per second to
|
|
|
an extreme test case of 100k per second (which is likely due to a bug,
|
|
|
see #10618). In the latter case WPA profiler showed
|
|
|
win_update_buffer_size was the highest capture count in
|
|
|
readwrite_upload. In any case the calls were excessive and unnecessary.
|
|
|
|
|
|
Ref: https://github.com/curl/curl/pull/2762
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10611
|
|
|
|
|
|
Daniel Stenberg (28 Feb 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Stefan Eissing (28 Feb 2023)
|
|
|
|
|
|
- http2: fix for http2-prior-knowledge when reusing connections
|
|
|
|
|
|
- refs #10634 where errors in the HTTP/2 framing layer are observed.
|
|
|
- the bug was that on connection reuse, the code attempted to switch
|
|
|
in yet another layer of HTTP/2 handling instead of detecting that
|
|
|
this was already in place.
|
|
|
- added pytest testcase reproducing the issue.
|
|
|
|
|
|
Reported-by: rwmjones on github
|
|
|
Fixes #10634
|
|
|
Closes #10643
|
|
|
|
|
|
- cf-socket: fix handling of remote addr for accepted tcp sockets
|
|
|
|
|
|
- do not try to determine the remote address of a listen socket. There
|
|
|
is none.
|
|
|
- Update remote address of an accepted socket by getpeername() if
|
|
|
available.
|
|
|
|
|
|
Reported-by: Harry Sintonen
|
|
|
Fixes #10622
|
|
|
Closes #10642
|
|
|
|
|
|
- http: fix unix domain socket use in https connects
|
|
|
|
|
|
- when h2/h3 eyeballing was involved, unix domain socket
|
|
|
configurations were not honoured
|
|
|
- configuring --unix-socket will disable HTTP/3 as candidate for eyeballing
|
|
|
- combinatino of --unix-socket and --http3-only will fail during initialisati
|
|
|
on
|
|
|
- adding pytest test_11 to reproduce
|
|
|
|
|
|
Reported-by: Jelle van der Waa
|
|
|
Fixes #10633
|
|
|
Closes #10641
|
|
|
|
|
|
Daniel Stenberg (28 Feb 2023)
|
|
|
|
|
|
- setopt: move the CURLOPT_CHUNK_DATA pointer to the set struct
|
|
|
|
|
|
To make duphandle work etc
|
|
|
|
|
|
Closes #10635
|
|
|
|
|
|
Viktor Szakats (28 Feb 2023)
|
|
|
|
|
|
- quic/schannel: fix compiler warnings
|
|
|
|
|
|
Fixes #10603
|
|
|
Closes #10616
|
|
|
|
|
|
Daniel Stenberg (28 Feb 2023)
|
|
|
|
|
|
- page-footer: add explanation for three missing exit codes
|
|
|
|
|
|
Added in 7.73.0, 7.77.0 and 7.84.0
|
|
|
|
|
|
Closes #10630
|
|
|
|
|
|
積丹尼 Dan Jacobson (28 Feb 2023)
|
|
|
|
|
|
- rate.c: single URLs make no sense in --rate example
|
|
|
|
|
|
Here somehow you need to put more than one URL in these examples, else
|
|
|
they will make no sense, as --rate only affects the second and beyond
|
|
|
URLs. The first URL will always finish the same time no matter what
|
|
|
--rate is given.
|
|
|
|
|
|
Closes #10638
|
|
|
|
|
|
Daniel Stenberg (28 Feb 2023)
|
|
|
|
|
|
- libcurl-errors.3: add the CURLHcode errors from curl_easy_header.3
|
|
|
|
|
|
Closes #10629
|
|
|
|
|
|
- mqtt: on send error, return error
|
|
|
|
|
|
Reported-by: Maciej Domanski
|
|
|
|
|
|
Closes #10623
|
|
|
|
|
|
- ws: keep the socket non-blocking
|
|
|
|
|
|
Reported-by: marski on github
|
|
|
Fixes #10615
|
|
|
Closes #10625
|
|
|
|
|
|
- hostip: avoid sscanf and extra buffer copies
|
|
|
|
|
|
Also made create_hostcache_id() return the id length.
|
|
|
|
|
|
Closes #10601
|
|
|
|
|
|
- PARALLEL-TRANSFERS.md: not "early days" for this anymore
|
|
|
|
|
|
Refresh the language as the support is now over three years old
|
|
|
|
|
|
Closes #10624
|
|
|
|
|
|
- easy: remove infof() debug leftover from curl_easy_recv
|
|
|
|
|
|
It said "reached [path]/easy.c:1231"
|
|
|
|
|
|
Closes #10628
|
|
|
|
|
|
- idn: return error if the conversion ends up with a blank host
|
|
|
|
|
|
Some IDN sequences are converted into "" (nothing), which can make this
|
|
|
function end up with a zero length host name and we cannot consider that
|
|
|
a valid host to continue with.
|
|
|
|
|
|
Reported-by: Maciej Domanski
|
|
|
Closes #10617
|
|
|
|
|
|
- examples/http3.c: use CURL_HTTP_VERSION_3
|
|
|
|
|
|
and update the comment
|
|
|
|
|
|
Closes #10619
|
|
|
|
|
|
- x509asn1.c: use correct format specifier for infof() call
|
|
|
|
|
|
Detected by Coverity
|
|
|
|
|
|
Closes #10614
|
|
|
|
|
|
- Revert "GHA: add Microsoft C++ Code Analysis"
|
|
|
|
|
|
This reverts commit e0db842b2a082dffad4a9fbe31321e9a75c74041.
|
|
|
|
|
|
This tool seems very restricted in how often it might be used by a
|
|
|
project and thus very quickly start to report fails simply because it
|
|
|
refuses to run when "there are more runs than allowed".
|
|
|
|
|
|
Closes #10613
|
|
|
|
|
|
Patrick Monnerat (25 Feb 2023)
|
|
|
|
|
|
- tests: test secure mail protocols with explicit SSL requests
|
|
|
|
|
|
New tests 987, 988 and 989, disabled for rustls (hanging).
|
|
|
|
|
|
Closes #10077
|
|
|
|
|
|
- tests: support for imaps/pop3s/smtps protocols
|
|
|
|
|
|
Closes #10077
|
|
|
|
|
|
- runtests: use a hash table for server port numbers
|
|
|
|
|
|
Closes #10077
|
|
|
|
|
|
Andy Alt (25 Feb 2023)
|
|
|
|
|
|
- INTERNALS.md: grammar
|
|
|
|
|
|
Closes #10607
|
|
|
|
|
|
Daniel Stenberg (25 Feb 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Philip Heiduck (25 Feb 2023)
|
|
|
|
|
|
- .cirrus.yml: Bump to FreeBSD 13.2
|
|
|
|
|
|
Closes #10270
|
|
|
|
|
|
- ngtcp2-gnutls.yml: bump to gnutls 3.8.0
|
|
|
|
|
|
Closes #10507
|
|
|
|
|
|
- CI: update ngtcp2 and nghttp2 for pytest
|
|
|
|
|
|
Follow-up: https://github.com/curl/curl/commit/5c9ee8cef4b351a085b440f8178500
|
|
|
124647f8e6
|
|
|
|
|
|
Closes #10508
|
|
|
|
|
|
Andy Alt (25 Feb 2023)
|
|
|
|
|
|
- GHA: use same flags for Slackbuild as Slack package
|
|
|
|
|
|
Closes #10526
|
|
|
|
|
|
Daniel Stenberg (24 Feb 2023)
|
|
|
|
|
|
- rtsp: avoid sscanf for parsing
|
|
|
|
|
|
Closes #10605
|
|
|
|
|
|
- http_proxy: parse the status line without sscanf
|
|
|
|
|
|
Closes #10602
|
|
|
|
|
|
- telnet: error correctly for WS set to "x[num]"
|
|
|
|
|
|
Follow-up to e4f93be9d587
|
|
|
Reported-by: Harry Sintonen
|
|
|
Closes #10606
|
|
|
|
|
|
- krb5: avoid sscanf for parsing
|
|
|
|
|
|
Closes #10599
|
|
|
|
|
|
- misc: remove support for curl_off_t < 8 bytes
|
|
|
|
|
|
Closes #10597
|
|
|
|
|
|
- telnet: parse NEW_ENVIRON without sscanf
|
|
|
|
|
|
Closes #10596
|
|
|
|
|
|
- telnet: parse the WS= argument without sscanf
|
|
|
|
|
|
Closes #10596
|
|
|
|
|
|
- telnet: parse telnet options without sscanf
|
|
|
|
|
|
Closes #10596
|
|
|
|
|
|
- ftp: replace sscanf for MDTM 213 response parsing
|
|
|
|
|
|
Closes #10590
|
|
|
|
|
|
- ftp: replace sscanf for PASV parsing
|
|
|
|
|
|
Closes #10590
|
|
|
|
|
|
- ftp: make the EPSV response parser not use sscanf
|
|
|
|
|
|
Closes #10590
|
|
|
|
|
|
Stefan Eissing (24 Feb 2023)
|
|
|
|
|
|
- ngtcp2: fix unwanted close of file descriptor 0
|
|
|
|
|
|
... causing macOS to hand out 0 as next socket handle and failing on
|
|
|
further operations.
|
|
|
|
|
|
Reported-by: Sergey Fionov
|
|
|
Fixes #10593
|
|
|
Closes #10595
|
|
|
|
|
|
Daniel Stenberg (23 Feb 2023)
|
|
|
|
|
|
- select: stop treating POLLRDBAND as an error
|
|
|
|
|
|
POLLRDBAND does not seem to be an general error and on Windows the value
|
|
|
for POLLIN is 768 and the value for POLLRDBAND is 512.
|
|
|
|
|
|
Fixes #10501
|
|
|
Reported-by: opensslonzos-github on github
|
|
|
Closes #10592
|
|
|
|
|
|
- test978: mark file as text mode
|
|
|
|
|
|
Follow-up to 4ea5702980cb
|
|
|
|
|
|
To fix test failures on Windows
|
|
|
|
|
|
Closes #10594
|
|
|
|
|
|
- http: rewrite the status line parser without sscanf
|
|
|
|
|
|
Closes #10585
|
|
|
|
|
|
- test978: verify that --stderr works for -w's stderr as well
|
|
|
|
|
|
Jay Satiro (23 Feb 2023)
|
|
|
|
|
|
- curl: make -w's %{stderr} use the file set with --stderr
|
|
|
|
|
|
Reported-by: u20221022 on github
|
|
|
Fixes #10491
|
|
|
Closes #10569
|
|
|
|
|
|
- winbuild: fix makefile clean
|
|
|
|
|
|
- Fix and move 'clean' code that removes the output and obj directories
|
|
|
trees from MakefileBuild.vc to Makefile.vc.
|
|
|
|
|
|
Prior to this change the 'clean' code did not work right because the
|
|
|
variables containing the directory names were not fully initialized and
|
|
|
the rmdir syntax was sometimes incorrect (typos). DIRDIST for example
|
|
|
was set to ..\builds\ and not ..\builds\$(CONFIG_NAME_LIB)\ so it would
|
|
|
remove the former and not the latter. If WITH_PREFIX was set then that
|
|
|
directory was removed instead.
|
|
|
|
|
|
Also, DIRDIST (the output directory) even if initialized should not be
|
|
|
removed by MakefileBuild.vc because by that time it could be set to a
|
|
|
user directory that may contain other files if WITH_PREFIX is set (eg we
|
|
|
don't want rmdir /s /q C:\usr\local). Therefore we remove from
|
|
|
Makefile.vc before any of that happens. I added a comment in both
|
|
|
makefiles explaining this.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10576
|
|
|
|
|
|
- sectransp: fix compiler warning c89 mixed code/declaration
|
|
|
|
|
|
Since cbf57176 the Cirrus CI 'macOS arm64 SecureTransport http2' has
|
|
|
been failing due to c89 warnings mixed code/declaration. That commit is
|
|
|
not the cause so I assume something has changed in the CI outside of our
|
|
|
configuration. Anyway, we don't mix code/declaration so this is the fix
|
|
|
for that.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10574
|
|
|
|
|
|
Philipp Engel (22 Feb 2023)
|
|
|
|
|
|
- BINDINGS: add Fortran binding
|
|
|
|
|
|
Closes #10589
|
|
|
|
|
|
Stefan Eissing (22 Feb 2023)
|
|
|
|
|
|
- test2600: detect when ALARM_TIMEOUT is in use and adjust
|
|
|
|
|
|
- use higher timeout values > 1s
|
|
|
- skip duration checks
|
|
|
|
|
|
Assisted-by: Marcel Raad
|
|
|
Closes #10513
|
|
|
|
|
|
Daniel Stenberg (22 Feb 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- test686: verify return code for no URL after --next
|
|
|
|
|
|
- tool_operate: propagate error codes for missing URL after --next
|
|
|
|
|
|
Fixes #10558
|
|
|
Reported-by: u20221022 on github
|
|
|
Closes #10580
|
|
|
|
|
|
- test1278: verify that an extra --no-remote-name cause no warning
|
|
|
|
|
|
- tool_getparam: don't add a new node for just --no-remote-name
|
|
|
|
|
|
Unless --remote-name-all is used.
|
|
|
|
|
|
Fixes #10564
|
|
|
Reported-by: u20221022 on github
|
|
|
Closes #10582
|
|
|
|
|
|
- gen.pl: add '%GLOBALS' as a variable for mainpage
|
|
|
|
|
|
And use it in page-header to list all global command line options.
|
|
|
|
|
|
- docs/cmdline-opts: mark all global options
|
|
|
|
|
|
gen.pl now outputs a generic explanations for them for each option
|
|
|
|
|
|
Fixes #10566
|
|
|
Reported-by: u20221022 on github
|
|
|
Closes #10584
|
|
|
|
|
|
- GHA: add Microsoft C++ Code Analysis
|
|
|
|
|
|
Closes #10583
|
|
|
|
|
|
- tool_progress: shut off progress meter for --silent in parallel
|
|
|
|
|
|
Reported-by: finkjsc on github
|
|
|
Fixes #10573
|
|
|
Closes #10579
|
|
|
|
|
|
- lib1560: add a test using %25 in the userinfo in a URL
|
|
|
|
|
|
Closes #10578
|
|
|
|
|
|
Stefan Eissing (21 Feb 2023)
|
|
|
|
|
|
- CURLOPT_PIPEWAIT: allow waited reuse also for subsequent connections
|
|
|
|
|
|
As tested in test_02_07, when firing off 200 urls with --parallel, 199
|
|
|
wait for the first connection to be established. if that is multiuse,
|
|
|
urls are added up to its capacity.
|
|
|
|
|
|
The first url over capacity opens another connection. But subsequent
|
|
|
urls found the same situation and open a connection too. They should
|
|
|
have waited for the second connection to actually connect and make its
|
|
|
capacity known.
|
|
|
|
|
|
This change fixes that by
|
|
|
|
|
|
- setting `connkeep()` early in the HTTP setup handler. as otherwise
|
|
|
a new connection is marked as closeit by default and not considered
|
|
|
for multiuse at all
|
|
|
- checking the "connected" status for a candidate always and continuing
|
|
|
to PIPEWAIT if no alternative is found.
|
|
|
|
|
|
pytest:
|
|
|
- removed "skip" from test_02_07
|
|
|
- added test_02_07b to check that http/1.1 continues to work as before
|
|
|
|
|
|
Closes #10456
|
|
|
|
|
|
Daniel Stenberg (21 Feb 2023)
|
|
|
|
|
|
- test419: verify --dump-header to file that cannot be created
|
|
|
|
|
|
Closes #10571
|
|
|
|
|
|
- tool_operate: avoid fclose(NULL) on bad header dump file
|
|
|
|
|
|
Fixes #10570
|
|
|
Reported-by: Jérémy Rabasco
|
|
|
Closes #10571
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Starting the journey towards 8.0.0
|
|
|
|
|
|
- cookie: parse without sscanf()
|
|
|
|
|
|
Saves us from using 2*4096 bytes buffers on stack, the extra copies and
|
|
|
more.
|
|
|
|
|
|
Closes #10550
|
|
|
|
|
|
- lib517: verify time stamps without leading zeroes plus some more
|
|
|
|
|
|
- parsedate: replace sscanf( for time stamp parsing
|
|
|
|
|
|
Closes #10547
|
|
|
|
|
|
- parsedate: parse strings without using sscanf()
|
|
|
|
|
|
- sscanf is slow and complex, avoid it
|
|
|
- give up already if the string is 12 bytes or longer as no valid string
|
|
|
can be that long
|
|
|
- this can now be done without copy
|
|
|
|
|
|
Closes #10547
|
|
|
|
|
|
Matt Jolly (20 Feb 2023)
|
|
|
|
|
|
- tests: HTTP server fixups
|
|
|
|
|
|
- httpserver.pl -> http-server.pl for consistency
|
|
|
- add http3-server.pl to EXTRA_DIST; alphabetise for maintainability
|
|
|
- nghttpx proxy invocation scripts should not use getcwd
|
|
|
|
|
|
Closes #10568
|
|
|
|
|
|
Version 7.88.1 (20 Feb 2023)
|
|
|
|
|
|
Daniel Stenberg (20 Feb 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
7.88.1 release
|
|
|
|
|
|
- THANKS: add contributors from 7.88.1
|
|
|
|
|
|
- socketpair: allow EWOULDBLOCK when reading the pair check bytes
|
|
|
|
|
|
Reported-by: Gunamoi Software
|
|
|
Co-authored-by: Jay Satiro
|
|
|
Fixes #10561
|
|
|
Closes #10562
|
|
|
|
|
|
Jay Satiro (18 Feb 2023)
|
|
|
|
|
|
- tool_operate: fix scanbuild compiler warning
|
|
|
|
|
|
Prior to this change Azure CI scanbuild warned of a potential NULL
|
|
|
pointer string passed to strtol when CURLDEBUG enabled, even though the
|
|
|
way the code was written it wouldn't have happened.
|
|
|
|
|
|
Bug: https://github.com/curl/curl/commit/5479d991#r101159711
|
|
|
Reported-by: Marcel Raad
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10559
|
|
|
|
|
|
- curl_setup: Suppress OpenSSL 3 deprecation warnings
|
|
|
|
|
|
- Define OPENSSL_SUPPRESS_DEPRECATED.
|
|
|
|
|
|
OpenSSL 3 has deprecated some of the functions libcurl uses such as
|
|
|
those with DES, MD5 and ENGINE prefix. We don't have replacements for
|
|
|
those functions so the warnings were disabled in autotools and cmake
|
|
|
builds, but still showed in other builds.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10543
|
|
|
|
|
|
- build-openssl.bat: keep OpenSSL 3 engine binaries
|
|
|
|
|
|
Prior to this change copying the OpenSSL 3 engine binaries failed
|
|
|
because 'engines-1_1' (OpenSSL 1.1.x folder name) was erroneously used
|
|
|
instead of 'engines-3'. The OpenSSL 3 builds would complete successfully
|
|
|
but without the engine binaries.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10542
|
|
|
|
|
|
ALittleDruid (18 Feb 2023)
|
|
|
|
|
|
- cmake: fix Windows check for CryptAcquireContext
|
|
|
|
|
|
Check for CryptAcquireContext in windows.h and wincrypt.h only, since
|
|
|
otherwise this check may fail due to third party headers not found.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10353
|
|
|
|
|
|
Daniel Stenberg (19 Feb 2023)
|
|
|
|
|
|
- remote-header-name.d: mention that filename* is not supported
|
|
|
|
|
|
and that you can use --clobber to allow overwriting.
|
|
|
|
|
|
Ref: #10533
|
|
|
Closes #10555
|
|
|
|
|
|
Co-authored-by: Jay Satiro <raysatiro@yahoo.com>
|
|
|
|
|
|
Pierrick Charron (18 Feb 2023)
|
|
|
|
|
|
- CURLOPT_WS_OPTIONS.3: fix the availability version
|
|
|
|
|
|
Closes #10557
|
|
|
|
|
|
Jacob Hoffman-Andrews (18 Feb 2023)
|
|
|
|
|
|
- GHA: update rustls dependency to 0.9.2
|
|
|
|
|
|
This allows re-enabling test 312 for the rustls backend.
|
|
|
|
|
|
Closes #10553
|
|
|
|
|
|
Philip Heiduck (18 Feb 2023)
|
|
|
|
|
|
- HTTP3.md: update git branches
|
|
|
|
|
|
Closes #10554
|
|
|
|
|
|
Stefan Eissing (17 Feb 2023)
|
|
|
|
|
|
- urldata: remove `now` from struct SingleRequest - not needed
|
|
|
|
|
|
Closes #10549
|
|
|
|
|
|
Daniel Stenberg (17 Feb 2023)
|
|
|
|
|
|
- lib1560: add IPv6 canonicalization tests
|
|
|
|
|
|
Closes #10552
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- urlapi: do the port number extraction without using sscanf()
|
|
|
|
|
|
- sscanf() is rather complex and slow, strchr() much simpler
|
|
|
|
|
|
- the port number function does not need to fully verify the IPv6 address
|
|
|
anyway as it is done later in the hostname_check() function and doing
|
|
|
it twice is unnecessary.
|
|
|
|
|
|
Closes #10541
|
|
|
|
|
|
Stefan Eissing (17 Feb 2023)
|
|
|
|
|
|
- setopt: allow HTTP3 when HTTP2 is not defined
|
|
|
|
|
|
Reported-by: Karthikdasari0423 on github
|
|
|
Fixes #10538
|
|
|
Closes #10544
|
|
|
|
|
|
Jon Rumsey (17 Feb 2023)
|
|
|
|
|
|
- os400: correct Curl_os400_sendto()
|
|
|
|
|
|
Add const qualifier to 5th argument of Curl_os400_sendto()
|
|
|
|
|
|
Make OS400 wrapper for sendto match the normal prototype of sendto()
|
|
|
with a const qualifier.
|
|
|
|
|
|
Fixes #10539
|
|
|
Closes #10548
|
|
|
|
|
|
Stefan Eissing (17 Feb 2023)
|
|
|
|
|
|
- tests-httpd: add proxy tests
|
|
|
|
|
|
for direct and tunneling checks on http: and https:
|
|
|
|
|
|
Closes #10519
|
|
|
|
|
|
Daniel Stenberg (17 Feb 2023)
|
|
|
|
|
|
- curl: make --silent work stand-alone
|
|
|
|
|
|
- renamed the struct field to 'silent' to match the cmdline option
|
|
|
- make --show-error toggle independently of --silent
|
|
|
- make --silent independent of ->noprogress as well
|
|
|
|
|
|
By doing this, the three options --silent, --no-progress-meter and
|
|
|
--show-error should work independently of each other and also work with
|
|
|
and without '--no-' prefix as documented.
|
|
|
|
|
|
Reported-by: u20221022 on github
|
|
|
Fixes #10535
|
|
|
Closes #10536
|
|
|
|
|
|
- socks: allow using DoH to resolve host names
|
|
|
|
|
|
For SOCKS modes where a local host resolve is done.
|
|
|
|
|
|
It was previously disabled in 12d655d4561, but a few local tests seem to
|
|
|
indicate that it works fine. Works now because of the SOCKS refactor of
|
|
|
4a4b63daaa01ef59 that made it non-blocking.
|
|
|
|
|
|
Reported-by: roughtex on github
|
|
|
Fixes #10537
|
|
|
Closes #10540
|
|
|
|
|
|
Stefan Eissing (17 Feb 2023)
|
|
|
|
|
|
- test: add test for HTTP/2 corruption as reported in #10525
|
|
|
|
|
|
- adding test_02_20 for reproducing the situation
|
|
|
- using recently released mod_h2 Apache module
|
|
|
- skipping test if an older version is installed
|
|
|
- adding installation of current mod_h2 to github pytest workflow
|
|
|
|
|
|
This reproduces the error reliable (for me) on the lib/http2.c version
|
|
|
of curl 7.88.0. And passes with the recent curl master.
|
|
|
|
|
|
Closes #10534
|
|
|
|
|
|
Daniel Stenberg (16 Feb 2023)
|
|
|
|
|
|
- tool_operate: allow debug builds to set buffersize
|
|
|
|
|
|
Using the CURL_BUFFERSIZE environment variable.
|
|
|
|
|
|
Closes #10532
|
|
|
|
|
|
Stefan Eissing (16 Feb 2023)
|
|
|
|
|
|
- connnect: fix timeout handling to use full duration
|
|
|
|
|
|
- connect timeout was used at half the configured value, if the
|
|
|
destination had 1 ip version 4 and other version 6 addresses
|
|
|
(or the other way around)
|
|
|
- extended test2600 to reproduce these cases
|
|
|
|
|
|
Reported-by: Michael Kaufmann
|
|
|
Fixes #10514
|
|
|
Closes #10517
|
|
|
|
|
|
Daniel Stenberg (16 Feb 2023)
|
|
|
|
|
|
- tool_getparam: make --get a true boolean
|
|
|
|
|
|
To match how it is documented in the man page.
|
|
|
|
|
|
Fixes #10527
|
|
|
Reported-by: u20221022 on github
|
|
|
Closes #10531
|
|
|
|
|
|
Harry Sintonen (16 Feb 2023)
|
|
|
|
|
|
- http:: include stdint.h more readily
|
|
|
|
|
|
Closes #10516
|
|
|
|
|
|
Stefan Eissing (16 Feb 2023)
|
|
|
|
|
|
- tests: make the telnet server shut down a socket gracefully
|
|
|
|
|
|
- test 1452 failed occasionally with ECONNRESET errnos in curl when the
|
|
|
server closed the connection in an unclean state.
|
|
|
|
|
|
Closes #10509
|
|
|
|
|
|
Harry Sintonen (16 Feb 2023)
|
|
|
|
|
|
- http2: set drain on stream end
|
|
|
|
|
|
Ensure that on_frame_recv() stream end will trigger a read if there is
|
|
|
pending data. Without this it could happen that the pending data is
|
|
|
never consumed.
|
|
|
|
|
|
This combined with https://github.com/curl/curl/pull/10529 should fix
|
|
|
https://github.com/curl/curl/issues/10525
|
|
|
|
|
|
Ref: https://github.com/curl/curl/issues/10525
|
|
|
Closes #10530
|
|
|
|
|
|
Stefan Eissing (16 Feb 2023)
|
|
|
|
|
|
- http2: buffer/pausedata and output flush fix.
|
|
|
|
|
|
* do not process pending input data when copying pausedata to the
|
|
|
caller
|
|
|
* return CURLE_AGAIN if the output buffer could not be completely
|
|
|
written out.
|
|
|
|
|
|
Ref: #10525
|
|
|
Closes #10529
|
|
|
|
|
|
Marcel Raad (16 Feb 2023)
|
|
|
|
|
|
- krb5: silence cast-align warning
|
|
|
|
|
|
Add an intermediate cast to `void *`, as done everywhere else when
|
|
|
casting from `sockaddr *` to `sockaddr_in *`.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10528
|
|
|
|
|
|
Daniel Stenberg (15 Feb 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
bumped to 7.88.1
|
|
|
|
|
|
- tests: make sure gnuserv-tls has SRP support before using it
|
|
|
|
|
|
Reported-by: fundawang on github
|
|
|
Fixes #10522
|
|
|
Closes #10524
|
|
|
|
|
|
- runtests: fix "uninitialized value $port"
|
|
|
|
|
|
by using a more appropriate variable
|
|
|
|
|
|
Reported-by: fundawang on github
|
|
|
Fixes #10518
|
|
|
Closes #10520
|
|
|
|
|
|
Version 7.88.0 (15 Feb 2023)
|
|
|
|
|
|
Daniel Stenberg (15 Feb 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
7.88.0 release
|
|
|
|
|
|
- THANKS: added contributors from 7.88.0
|
|
|
|
|
|
- openssl: rename 'errcode_t' to 'sslerr_t'
|
|
|
|
|
|
Turns out "/usr/include/et/com_err.h" typedefs this type (without proper
|
|
|
variable scoping).
|
|
|
|
|
|
comerr is the "common error description library" that apparently might be use
|
|
|
d
|
|
|
by krb5 code, which then makes this header get used in a curl build.
|
|
|
|
|
|
Reported-by: Bruno Henrique Batista Cruz da Silva
|
|
|
Fixed #10502
|
|
|
Closes #10500
|
|
|
|
|
|
Dan Fandrich (13 Feb 2023)
|
|
|
|
|
|
- CONTRIBUTE: More formally specify the commit description
|
|
|
|
|
|
This codifies what people have actually used in git commits over the
|
|
|
past 6 years. I've left off some lesser-used headers that appear to
|
|
|
duplicate others and tried to describe a consistent use for several
|
|
|
others that were used more arbitrarily.
|
|
|
|
|
|
This makes it easier for new committers to find out the kinds of things
|
|
|
we want to acknowledge, makes it easier to perform statistical analysis
|
|
|
on commits, and opens the possibility of performing lint checks on
|
|
|
descriptions before submission.
|
|
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
Reviewed-by: Jay Satiro
|
|
|
|
|
|
Closes #10478
|
|
|
|
|
|
Stefan Eissing (13 Feb 2023)
|
|
|
|
|
|
- openssl: test and fix for forward proxy handling (non-tunneling).
|
|
|
|
|
|
- adding pytest test_10 cases for proxy httpd setup tests
|
|
|
- fixing openssl bug in https: proxy hostname verification that
|
|
|
used the hostname of the request and not the proxy name.
|
|
|
|
|
|
Closes #10498
|
|
|
|
|
|
Daniel Stenberg (13 Feb 2023)
|
|
|
|
|
|
- cmdline-opts/Makefile: on error, do not leave a partial
|
|
|
|
|
|
And support 'make V=1' to show the full command line
|
|
|
|
|
|
Closes #10497
|
|
|
|
|
|
- curl.1: make help, version and manual sections "custom"
|
|
|
|
|
|
Instead of using "multi: boolean", as these are slightly special as in
|
|
|
they do are not enable/disable ones.
|
|
|
|
|
|
Fixes #10490
|
|
|
Reported-by: u20221022 on github
|
|
|
Closes #10497
|
|
|
|
|
|
Stefan Eissing (13 Feb 2023)
|
|
|
|
|
|
- tests: add tests for HTTP/2 and HTTP/3 to verify the header API
|
|
|
|
|
|
Test 2403 and 2503 check "header_json" output and therefore use of
|
|
|
header-api
|
|
|
|
|
|
Closes #10495
|
|
|
|
|
|
Philip Heiduck (13 Feb 2023)
|
|
|
|
|
|
- CI: update wolfssl / wolfssh to 5.5.4 / 1.4.12
|
|
|
|
|
|
Closes #10493
|
|
|
|
|
|
Daniel Stenberg (13 Feb 2023)
|
|
|
|
|
|
- KNOW_BUGS: cleanups with some changed to TODOs
|
|
|
|
|
|
- remove "Excessive HTTP/2 packets with TCP_NODELAY"
|
|
|
|
|
|
This is not a bug. Rather room for improvement.
|
|
|
|
|
|
I believe these have been fixed:
|
|
|
|
|
|
- 17.4 Connection failures with parallel HTTP/2
|
|
|
- 17.5 HTTP/2 connections through HTTPS proxy frequently stall
|
|
|
|
|
|
- remove "FTPS needs session reuse"
|
|
|
|
|
|
That is still true, but curl should also do session reuse now.
|
|
|
|
|
|
- remove "ASCII FTP"
|
|
|
|
|
|
It is documented behavior, and not single user has asked for extended
|
|
|
functionality here the last decade or so.
|
|
|
|
|
|
- remove "Passive transfer tries only one IP address"
|
|
|
|
|
|
add as a TODO
|
|
|
|
|
|
- remove "DoH leaks memory after followlocation"
|
|
|
|
|
|
With a recipe on how to reproduce, this is pointless to keep around
|
|
|
|
|
|
- remove "DoH does not inherit all transfer options"
|
|
|
|
|
|
add it as a TODO
|
|
|
|
|
|
Closes #10487
|
|
|
|
|
|
Tatsuhiro Tsujikawa (13 Feb 2023)
|
|
|
|
|
|
- GHA: bump ngtcp2 workflow dependencies
|
|
|
|
|
|
Closes #10494
|
|
|
|
|
|
Patrick Monnerat (13 Feb 2023)
|
|
|
|
|
|
- content_encoding: do not reset stage counter for each header
|
|
|
|
|
|
Test 418 verifies
|
|
|
|
|
|
Closes #10492
|
|
|
|
|
|
Daniel Stenberg (13 Feb 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Jay Satiro (13 Feb 2023)
|
|
|
|
|
|
- multi: stop sending empty HTTP/3 UDP datagrams on Windows
|
|
|
|
|
|
- Limit the 0-sized send procedure that is used to reset a SOCKET's
|
|
|
FD_WRITE to TCP sockets only.
|
|
|
|
|
|
Prior to this change the reset was used on UDP sockets as well, but
|
|
|
unlike TCP sockets a 0-sized send actually sends out a datagram.
|
|
|
|
|
|
Assisted-by: Marc Hörsken
|
|
|
|
|
|
Ref: https://github.com/curl/curl/pull/9203
|
|
|
|
|
|
Fixes https://github.com/curl/curl/issues/9086
|
|
|
Closes https://github.com/curl/curl/pull/10430
|
|
|
|
|
|
Viktor Szakats (12 Feb 2023)
|
|
|
|
|
|
- h3: silence compiler warnings
|
|
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
Fixes #10485
|
|
|
Closes #10486
|
|
|
|
|
|
Daniel Stenberg (12 Feb 2023)
|
|
|
|
|
|
- smb: return error on upload without size
|
|
|
|
|
|
The protocol needs to know the size ahead of time, this is now a known
|
|
|
restriction and not a bug.
|
|
|
|
|
|
Also output a clearer error if the URL path does not contain proper
|
|
|
share.
|
|
|
|
|
|
Ref: #7896
|
|
|
Closes #10484
|
|
|
|
|
|
Viktor Szakats (12 Feb 2023)
|
|
|
|
|
|
- windows: always use curl's basename() implementation
|
|
|
|
|
|
The `basename()` [1][2] implementation provided by mingw-w64 [3] makes
|
|
|
assumptions about input encoding and may break with non-ASCII strings.
|
|
|
|
|
|
`basename()` was auto-detected with CMake, autotools and since
|
|
|
68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6 (2022-10-13), also in
|
|
|
`Makefile.mk` after syncing its behaviour with the mainline build
|
|
|
methods. A similar patch for curl-for-win broke official Windows
|
|
|
builds earlier, in release 7.83.1_4 (2022-06-15).
|
|
|
|
|
|
This patch forces all Windows builds to use curl's internal
|
|
|
`basename()` implementation to avoid such problems.
|
|
|
|
|
|
[1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/basename.html
|
|
|
[2]: https://www.man7.org/linux/man-pages/man3/basename.3.html
|
|
|
[3]: https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-c
|
|
|
rt/misc/basename.c
|
|
|
|
|
|
Reported-by: UnicornZhang on Github
|
|
|
Assisted-by: Cherish98 on Github
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
|
|
Fixes #10261
|
|
|
Closes #10475
|
|
|
|
|
|
Philip Heiduck (12 Feb 2023)
|
|
|
|
|
|
- Linux CI: Bump rustls-ffi to v0.9.1
|
|
|
|
|
|
Closes #10476
|
|
|
|
|
|
Daniel Stenberg (12 Feb 2023)
|
|
|
|
|
|
- libtest: build lib2305 with multibyte as well
|
|
|
|
|
|
Fixes a build regression.
|
|
|
|
|
|
Follow-up to 5a9a04d5567
|
|
|
Reported-by: Viktor Szakats
|
|
|
Ref: https://github.com/curl/curl/pull/10475#issuecomment-1426831800
|
|
|
|
|
|
Closes #10477
|
|
|
|
|
|
Dmitry Atamanov (12 Feb 2023)
|
|
|
|
|
|
- cmake: fix dev warning due to mismatched arg
|
|
|
|
|
|
The package name passed to find_package_handle_standard_args (BROTLI)
|
|
|
does not match the name of the calling package (Brotli). This can lead
|
|
|
to problems in calling code that expects find_package result variables
|
|
|
(e.g., _FOUND) to follow a certain pattern.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10471
|
|
|
|
|
|
James Keast (11 Feb 2023)
|
|
|
|
|
|
- setopt: Address undefined behaviour by checking for null
|
|
|
|
|
|
This addresses undefined behaviour found using clang's UBsan:
|
|
|
|
|
|
curl/lib/setopt.c:177:14: runtime error: applying non-zero offset 1 to null p
|
|
|
ointer
|
|
|
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior curl/lib/setopt.c:177
|
|
|
:14 in
|
|
|
|
|
|
Closes #10472
|
|
|
|
|
|
Jacob Hoffman-Andrews (11 Feb 2023)
|
|
|
|
|
|
- rustls: improve error messages
|
|
|
|
|
|
Changes numeric error codes into verbose error codes in two places.
|
|
|
Adds a prefix indicating that the error came from rustls, and in some
|
|
|
places which function it came from.
|
|
|
|
|
|
Adds special handling for RUSTLS_RESULT_UNEXPECTED_EOF, since the
|
|
|
default message of "Unexpected EOF" is insufficiently explanatory.
|
|
|
|
|
|
Closes #10463
|
|
|
|
|
|
Daniel Stenberg (11 Feb 2023)
|
|
|
|
|
|
- openssl: remove dead code
|
|
|
|
|
|
Follow-up to e8b00fcd6a
|
|
|
|
|
|
Due to the new 'if(!nonblocking)' check on the block a level above,
|
|
|
there is no need to check for it again within the same conditional.
|
|
|
|
|
|
Detected by Coverity
|
|
|
|
|
|
Closes #10473
|
|
|
|
|
|
- ngtcp2: replace removed define and stop using removed function
|
|
|
|
|
|
They were removed upstream.
|
|
|
|
|
|
Reported-by: Karthikdasari0423 on github
|
|
|
Fixes #10469
|
|
|
Closes #10474
|
|
|
|
|
|
- scripts/delta: show percent of number of files changed since last tag
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Stefan Eissing (10 Feb 2023)
|
|
|
|
|
|
- pytest: add a test case for PUSH related things.
|
|
|
|
|
|
- checking that "103 Early Hints" are visible in curl's header dump file
|
|
|
|
|
|
Closes #10452
|
|
|
|
|
|
Gregory Panakkal (10 Feb 2023)
|
|
|
|
|
|
- WEBSOCKET.md: typo
|
|
|
|
|
|
Fixing missing slash for ws protocol scheme
|
|
|
|
|
|
Closes #10464
|
|
|
|
|
|
Stefan Eissing (10 Feb 2023)
|
|
|
|
|
|
- vquic: stabilization and improvements
|
|
|
|
|
|
vquic stabilization
|
|
|
- udp send code shared between ngtcp2 and quiche
|
|
|
- quiche handling of data and events improved
|
|
|
|
|
|
ngtcp2 and pytest improvements
|
|
|
- fixes handling of "drain" situations, discovered in scorecard
|
|
|
tests with the Caddy server.
|
|
|
- improvements in handling transfers that have already data or
|
|
|
are already closed to make an early return on recv
|
|
|
|
|
|
pytest
|
|
|
- adding caddy tests when available
|
|
|
|
|
|
scorecard improvemnts.
|
|
|
- using correct caddy port
|
|
|
- allowing tests for only httpd or caddy
|
|
|
|
|
|
Closes #10451
|
|
|
|
|
|
Philip Heiduck (10 Feb 2023)
|
|
|
|
|
|
- Linux CI: update some dependecies to latest tag
|
|
|
|
|
|
Closes #10458
|
|
|
|
|
|
Daniel Stenberg (10 Feb 2023)
|
|
|
|
|
|
- test2305: send 3 frames, 4097 bytes each, as one message
|
|
|
|
|
|
Receive them using a 256 bytes buffer in a loop.
|
|
|
|
|
|
- ws: fix recv of larger frames
|
|
|
|
|
|
+ remove 'oleft' from the struct
|
|
|
+ deal with "overflow data" in a separate dynbuf
|
|
|
|
|
|
Reported-by: Mike Duglas
|
|
|
Fixes #10438
|
|
|
Closes #10447
|
|
|
|
|
|
- curl/websockets.h: extend the websocket frame struct
|
|
|
|
|
|
- sws: fix typo, indentation add more ws logging
|
|
|
|
|
|
- test2304: remove stdout verification
|
|
|
|
|
|
This cripples the test somewhat but the check was bad since depending on
|
|
|
timing it could exit before the output was done, making the test flaky.
|
|
|
|
|
|
Dan Fandrich (9 Feb 2023)
|
|
|
|
|
|
- CI: Add more labeler match patterns
|
|
|
|
|
|
- CI: Retry failed downloads to reduce spurious failures
|
|
|
|
|
|
A temporary error with a remote server shouldn't cause a CI run to fail.
|
|
|
Also, put a cap on the time to download to fail faster on a misbehaving
|
|
|
server or connection and use HTTP compression where possible to reduce
|
|
|
download times.
|
|
|
|
|
|
Daniel Stenberg (9 Feb 2023)
|
|
|
|
|
|
- no-clobber.d: only use long form options in man page text
|
|
|
|
|
|
... since they are expanded and the short-form gets mentioned
|
|
|
automatically so if the short form is mentioned as well, it gets
|
|
|
repeated.
|
|
|
|
|
|
Fixes #10461
|
|
|
Closes #10462
|
|
|
Reported-by: Dan Fandrich
|
|
|
|
|
|
- GHA: enable websockets in the torture job
|
|
|
|
|
|
Closes #10448
|
|
|
|
|
|
- header.d: add a header file example
|
|
|
|
|
|
Closes #10455
|
|
|
|
|
|
Stefan Eissing (9 Feb 2023)
|
|
|
|
|
|
- HTTP/[23]: continue upload when state.drain is set
|
|
|
|
|
|
- as reported in #10433, HTTP/2 uploads may stall when a response is
|
|
|
received before the upload is done. This happens when the
|
|
|
data->state.drain is set for such a transfer, as the special handling
|
|
|
in transfer.c from then on only cared about downloads.
|
|
|
- add continuation of uploads, if applicable, in this case.
|
|
|
- add pytest case test_07_12_upload_seq_large to reproduce this scenario
|
|
|
(although, current nghttp2 implementation is using drain less often)
|
|
|
|
|
|
Reported-by: Lucas Pardue
|
|
|
|
|
|
Fixes #10433
|
|
|
Closes #10443
|
|
|
|
|
|
- http2: minor buffer and error path fixes
|
|
|
|
|
|
- use memory buffer in full available size
|
|
|
- fail receive of reset/errored streams early
|
|
|
|
|
|
pytest:
|
|
|
- make test_05 error cases more reliable
|
|
|
|
|
|
Closes #10444
|
|
|
|
|
|
Federico Pellegrin (9 Feb 2023)
|
|
|
|
|
|
- openldap: fix missing sasl symbols at build in specific configs
|
|
|
|
|
|
If curl is built with openldap support (USE_OPENLDAP=1) but does not
|
|
|
have also some other protocol (IMAP/SMTP/POP3) enabled that brings
|
|
|
in Curl_sasl_* functions, then the build will fail with undefined
|
|
|
references to various symbols:
|
|
|
|
|
|
ld: ../lib/.libs/libcurl.so: undefined reference to `Curl_sasl_decode_mech'
|
|
|
ld: ../lib/.libs/libcurl.so: undefined reference to `Curl_sasl_parse_url_auth
|
|
|
_option'
|
|
|
ld: ../lib/.libs/libcurl.so: undefined reference to `Curl_sasl_cleanup'
|
|
|
ld: ../lib/.libs/libcurl.so: undefined reference to `Curl_sasl_can_authentica
|
|
|
te'
|
|
|
ld: ../lib/.libs/libcurl.so: undefined reference to `Curl_sasl_continue'
|
|
|
ld: ../lib/.libs/libcurl.so: undefined reference to `Curl_sasl_start'
|
|
|
ld: ../lib/.libs/libcurl.so: undefined reference to `Curl_sasl_init'
|
|
|
|
|
|
This was tracked down to these functions bein used in openldap.c but
|
|
|
defined in curl_sasl.c and then forward in two vauth/ files to have
|
|
|
a guard against a set of #define configurations that was now extended
|
|
|
to cover also this case.
|
|
|
|
|
|
Example configuration targeted that could reproduce the problem:
|
|
|
|
|
|
curl 7.87.1-DEV () libcurl/7.87.1-DEV .... OpenLDAP/2.6.3
|
|
|
Protocols: file ftp ftps http https ldap ldaps
|
|
|
|
|
|
Closes #10445
|
|
|
|
|
|
Daniel Stenberg (9 Feb 2023)
|
|
|
|
|
|
- ws: use %Ou for outputting curl_off_t with info()
|
|
|
|
|
|
Reported-by: Mike Duglas
|
|
|
Fixes #10439
|
|
|
Closes #10441
|
|
|
|
|
|
Jay Satiro (9 Feb 2023)
|
|
|
|
|
|
- curl_setup: Disable by default recv-before-send in Windows
|
|
|
|
|
|
Prior to this change a workaround for Windows to recv before every send
|
|
|
was enabled by default. The way it works is a recv is called before
|
|
|
every send and saves the received data, in case send fails because in
|
|
|
Windows apparently that can wipe out the socket's internal received
|
|
|
data buffer.
|
|
|
|
|
|
This feature has led to several bugs because the way libcurl operates
|
|
|
it waits on a socket to read or to write, and may not at all times
|
|
|
check for buffered receive data.
|
|
|
|
|
|
Two recent significant bugs this workaround caused:
|
|
|
- Broken Schannel TLS 1.3 connections (#9431)
|
|
|
- HTTP/2 arbitrary hangs (#10253)
|
|
|
|
|
|
The actual code remains though it is disabled by default. Though future
|
|
|
changes to connection filter buffering could improve the situation IMO
|
|
|
it's just not tenable to manage this workaround.
|
|
|
|
|
|
Ref: https://github.com/curl/curl/issues/657
|
|
|
Ref: https://github.com/curl/curl/pull/668
|
|
|
Ref: https://github.com/curl/curl/pull/720
|
|
|
|
|
|
Ref: https://github.com/curl/curl/issues/9431
|
|
|
Ref: https://github.com/curl/curl/issues/10253
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10409
|
|
|
|
|
|
Stefan Eissing (8 Feb 2023)
|
|
|
|
|
|
- http2: aggregate small SETTINGS/PRIO/WIN_UPDATE frames
|
|
|
|
|
|
add a small buffer to nghttp2 session sending in order to aggregate
|
|
|
small SETTINGS/PRIO/WIN_UPDATE frames that nghttp2 "writes" to the
|
|
|
callback individually.
|
|
|
|
|
|
Ref: #10389
|
|
|
Closes #10432
|
|
|
|
|
|
- openssl: store the CA after first send (ClientHello)
|
|
|
|
|
|
move Curl_ssl_setup_x509_store() call after the first send (ClientHello)
|
|
|
this gives time to parse CA anchors while waiting on the server reply
|
|
|
|
|
|
Ref: #10389
|
|
|
Closes #10432
|
|
|
|
|
|
Daniel Stenberg (8 Feb 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Anthony Hu (8 Feb 2023)
|
|
|
|
|
|
- wolfssl: remove deprecated post-quantum algorithms
|
|
|
|
|
|
Closes #10440
|
|
|
|
|
|
John Bampton (8 Feb 2023)
|
|
|
|
|
|
- misc: fix spelling
|
|
|
|
|
|
Closes #10437
|
|
|
|
|
|
Daniel Stenberg (7 Feb 2023)
|
|
|
|
|
|
- man pages: call the custom user pointer 'clientp' consistently
|
|
|
|
|
|
The variable had a few different names. Now try to use 'clientp'
|
|
|
consistently for all man pages using a custom pointer set by the
|
|
|
application.
|
|
|
|
|
|
Reported-by: Gerrit Renker
|
|
|
|
|
|
Fixes #10434
|
|
|
Closes #10435
|
|
|
|
|
|
- vtls: infof using %.*s needs to provide the length as int
|
|
|
|
|
|
Fixes a Coverity warning.
|
|
|
|
|
|
Closes #10436
|
|
|
|
|
|
Stefan Eissing (7 Feb 2023)
|
|
|
|
|
|
- vrls: addressing issues reported by coverity
|
|
|
|
|
|
I believe the code was secure before this, but limiting the accepted
|
|
|
name length to what is used in the structures should help Coverity's
|
|
|
analysis.
|
|
|
|
|
|
Closes #10431
|
|
|
|
|
|
Daniel Stenberg (7 Feb 2023)
|
|
|
|
|
|
- tool_operate: move the 'updated' variable
|
|
|
|
|
|
This was already done by Dan Fandrich in the previous PR but somehow I
|
|
|
lost that fixup.
|
|
|
|
|
|
Follow-up to 349c5391f2121e
|
|
|
|
|
|
Dan Fandrich (7 Feb 2023)
|
|
|
|
|
|
- tool_operate: Fix error codes during DOS filename sanitize
|
|
|
|
|
|
It would return CURLE_URL_MALFORMAT in an OOM condition.
|
|
|
|
|
|
Closes #10414
|
|
|
|
|
|
- tool_operate: Fix error codes on bad URL & OOM
|
|
|
|
|
|
curl would erroneously report CURLE_OUT_OF_MEMORY in some cases instead
|
|
|
of CURLE_URL_MALFORMAT. In other cases, it would erroneously return
|
|
|
CURLE_URL_MALFORMAT instead of CURLE_OUT_OF_MEMORY. Add a test case to
|
|
|
test the former condition.
|
|
|
|
|
|
Fixes #10130
|
|
|
Closes #10414
|
|
|
|
|
|
Daniel Stenberg (6 Feb 2023)
|
|
|
|
|
|
- setopt: use >, not >=, when checking if uarg is larger than uint-max
|
|
|
|
|
|
Closes #10421
|
|
|
|
|
|
- vtls: fix failf() format argument type for %.*s handling
|
|
|
|
|
|
Reported by Coverity
|
|
|
|
|
|
Closes #10422
|
|
|
|
|
|
- openssl: fix "Improper use of negative value"
|
|
|
|
|
|
By getting the socket first and returning error in case of bad socket.
|
|
|
|
|
|
Detected by Coverity.
|
|
|
|
|
|
Closes #10423
|
|
|
|
|
|
Dan Fandrich (6 Feb 2023)
|
|
|
|
|
|
- packages: Remove Android.mk from makefile
|
|
|
|
|
|
This was missed in commit #44141512
|
|
|
|
|
|
Ref: #10418
|
|
|
|
|
|
Daniel Stenberg (6 Feb 2023)
|
|
|
|
|
|
- curl_ws_send.3: clarify how to send multi-frame messages
|
|
|
|
|
|
Mike Duglas (6 Feb 2023)
|
|
|
|
|
|
- ws: fix multiframe send handling
|
|
|
|
|
|
Fixes #10413
|
|
|
Closes #10420
|
|
|
|
|
|
Daniel Stenberg (6 Feb 2023)
|
|
|
|
|
|
- unit2600: make sure numerical curl_easy_setopt sets long
|
|
|
|
|
|
Follow-up to 671158242db3203
|
|
|
|
|
|
Reported-by: Marcel Raad
|
|
|
Fixes #10410
|
|
|
Closes #10419
|
|
|
|
|
|
Andy Alt (6 Feb 2023)
|
|
|
|
|
|
- GHA: move Slackware test into matrix
|
|
|
|
|
|
Closes #10412
|
|
|
|
|
|
Pronyushkin Petr (6 Feb 2023)
|
|
|
|
|
|
- urlapi: fix part of conditional expression is always true: qlen
|
|
|
|
|
|
Closes #10408
|
|
|
|
|
|
- url: fix part of conditional expression is always true
|
|
|
|
|
|
Closes #10407
|
|
|
|
|
|
Daniel Stenberg (6 Feb 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Philip Heiduck (6 Feb 2023)
|
|
|
|
|
|
- GHA/macos.yml: bump to gcc-12
|
|
|
|
|
|
Closes #10415
|
|
|
|
|
|
Daniel Stenberg (6 Feb 2023)
|
|
|
|
|
|
- packages: remove Android, update README
|
|
|
|
|
|
- Nobody builds curl for Android using this anymore
|
|
|
- Refreshed the README and converted to markdown
|
|
|
|
|
|
Reported-by: John Porter
|
|
|
Fixes #10416
|
|
|
Closes #10418
|
|
|
|
|
|
Kvarec Lezki (5 Feb 2023)
|
|
|
|
|
|
- fopen: remove unnecessary assignment
|
|
|
|
|
|
[CWE-1164] V1048: The '* tempname' variable was assigned the same value.
|
|
|
|
|
|
Ref: https://pvs-studio.com/en/docs/warnings/v1048/
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10398
|
|
|
|
|
|
Gisle Vanem (5 Feb 2023)
|
|
|
|
|
|
- libtest: add a sleep macro for Windows
|
|
|
|
|
|
.. because sleep() is used in some libtests.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10295
|
|
|
|
|
|
Kvarec Lezki (3 Feb 2023)
|
|
|
|
|
|
- http_aws_sigv4: remove typecasts from HMAC_SHA256 macro
|
|
|
|
|
|
V220: Suspicious sequence of types castings: memsize -> 32-bit integer -> mem
|
|
|
size.
|
|
|
|
|
|
https://pvs-studio.com/en/docs/warnings/v220/
|
|
|
|
|
|
Closes #10400
|
|
|
|
|
|
Daniel Stenberg (3 Feb 2023)
|
|
|
|
|
|
- mailmap: Thomas1664 on github
|
|
|
|
|
|
Thomas1664 on github (3 Feb 2023)
|
|
|
|
|
|
- CURLOPT_WRITEFUNCTION.3: fix memory leak in example
|
|
|
|
|
|
Closes #10390
|
|
|
|
|
|
Kvarec Lezki (3 Feb 2023)
|
|
|
|
|
|
- doh: ifdef IPv6 code
|
|
|
|
|
|
For disabled IPv6 a condition (conn->ip_version != CURL_IPRESOLVE_V4) is
|
|
|
always false. https://pvs-studio.com/en/docs/warnings/v560/
|
|
|
|
|
|
Closes #10397
|
|
|
|
|
|
Daniel Stenberg (3 Feb 2023)
|
|
|
|
|
|
- urlapi: remove pathlen assignment
|
|
|
|
|
|
"Value stored to 'pathlen' is never read"
|
|
|
|
|
|
Follow-up to 804d5293f89
|
|
|
|
|
|
Reported-by: Kvarec Lezki
|
|
|
|
|
|
Closes #10405
|
|
|
|
|
|
Kvarec Lezki (3 Feb 2023)
|
|
|
|
|
|
- http: fix "part of conditional expression is always false"
|
|
|
|
|
|
[CWE-570] V560: A part of conditional expression is always false: conn->bits.
|
|
|
authneg.
|
|
|
[CWE-570] V560: A part of conditional expression is always false: conn->handl
|
|
|
er->protocol & (0 | 0).
|
|
|
|
|
|
https://pvs-studio.com/en/docs/warnings/v560/
|
|
|
|
|
|
Closes #10399
|
|
|
|
|
|
Daniel Stenberg (2 Feb 2023)
|
|
|
|
|
|
- urlapi: skip the extra dedotdot alloc if no dot in path
|
|
|
|
|
|
Saves an allocation for many/most URLs.
|
|
|
|
|
|
Updates test 1395 accordingly
|
|
|
|
|
|
Closes #10403
|
|
|
|
|
|
Stefan Eissing (2 Feb 2023)
|
|
|
|
|
|
- connections: introduce http/3 happy eyeballs
|
|
|
|
|
|
New cfilter HTTP-CONNECT for h3/h2/http1.1 eyeballing.
|
|
|
- filter is installed when `--http3` in the tool is used (or
|
|
|
the equivalent CURLOPT_ done in the library)
|
|
|
- starts a QUIC/HTTP/3 connect right away. Should that not
|
|
|
succeed after 100ms (subject to change), a parallel attempt
|
|
|
is started for HTTP/2 and HTTP/1.1 via TCP
|
|
|
- both attempts are subject to IPv6/IPv4 eyeballing, same
|
|
|
as happens for other connections
|
|
|
- tie timeout to the ip-version HAPPY_EYEBALLS_TIMEOUT
|
|
|
- use a `soft` timeout at half the value. When the soft timeout
|
|
|
expires, the HTTPS-CONNECT filter checks if the QUIC filter
|
|
|
has received any data from the server. If not, it will start
|
|
|
the HTTP/2 attempt.
|
|
|
|
|
|
HTTP/3(ngtcp2) improvements.
|
|
|
- setting call_data in all cfilter calls similar to http/2 and vtls filters
|
|
|
for use in callback where no stream data is available.
|
|
|
- returning CURLE_PARTIAL_FILE for prematurely terminated transfers
|
|
|
- enabling pytest test_05 for h3
|
|
|
- shifting functionality to "connect" UDP sockets from ngtcp2
|
|
|
implementation into the udp socket cfilter. Because unconnected
|
|
|
UDP sockets are weird. For example they error when adding to a
|
|
|
pollset.
|
|
|
|
|
|
HTTP/3(quiche) improvements.
|
|
|
- fixed upload bug in quiche implementation, now passes 251 and pytest
|
|
|
- error codes on stream RESET
|
|
|
- improved debug logs
|
|
|
- handling of DRAIN during connect
|
|
|
- limiting pending event queue
|
|
|
|
|
|
HTTP/2 cfilter improvements.
|
|
|
- use LOG_CF macros for dynamic logging in debug build
|
|
|
- fix CURLcode on RST streams to be CURLE_PARTIAL_FILE
|
|
|
- enable pytest test_05 for h2
|
|
|
- fix upload pytests and improve parallel transfer performance.
|
|
|
|
|
|
GOAWAY handling for ngtcp2/quiche
|
|
|
- during connect, when the remote server refuses to accept new connections
|
|
|
and closes immediately (so the local conn goes into DRAIN phase), the
|
|
|
connection is torn down and a another attempt is made after a short grace
|
|
|
period.
|
|
|
This is the behaviour observed with nghttpx when we tell it to shut
|
|
|
down gracefully. Tested in pytest test_03_02.
|
|
|
|
|
|
TLS improvements
|
|
|
- ALPN selection for SSL/SSL-PROXY filters in one vtls set of functions, repl
|
|
|
aces
|
|
|
copy of logic in all tls backends.
|
|
|
- standardized the infof logging of offered ALPNs
|
|
|
- ALPN negotiated: have common function for all backends that sets alpn propr
|
|
|
ty
|
|
|
and connection related things based on the negotiated protocol (or lack the
|
|
|
reof).
|
|
|
|
|
|
- new tests/tests-httpd/scorecard.py for testing h3/h2 protocol implementatio
|
|
|
n.
|
|
|
Invoke:
|
|
|
python3 tests/tests-httpd/scorecard.py --help
|
|
|
for usage.
|
|
|
|
|
|
Improvements on gathering connect statistics and socket access.
|
|
|
- new CF_CTRL_CONN_REPORT_STATS cfilter control for having cfilters
|
|
|
report connection statistics. This is triggered when the connection
|
|
|
has completely connected.
|
|
|
- new void Curl_pgrsTimeWas(..) method to report a timer update with
|
|
|
a timestamp of when it happend. This allows for updating timers
|
|
|
"later", e.g. a connect statistic after full connectivity has been
|
|
|
reached.
|
|
|
- in case of HTTP eyeballing, the previous changes will update
|
|
|
statistics only from the filter chain that "won" the eyeballing.
|
|
|
- new cfilter query CF_QUERY_SOCKET for retrieving the socket used
|
|
|
by a filter chain.
|
|
|
Added methods Curl_conn_cf_get_socket() and Curl_conn_get_socket()
|
|
|
for convenient use of this query.
|
|
|
- Change VTLS backend to query their sub-filters for the socket when
|
|
|
checks during the handshake are made.
|
|
|
|
|
|
HTTP/3 documentation on how https eyeballing works.
|
|
|
|
|
|
TLS improvements
|
|
|
- ALPN selection for SSL/SSL-PROXY filters in one vtls set of functions, repl
|
|
|
aces
|
|
|
copy of logic in all tls backends.
|
|
|
- standardized the infof logging of offered ALPNs
|
|
|
- ALPN negotiated: have common function for all backends that sets alpn propr
|
|
|
ty
|
|
|
and connection related things based on the negotiated protocol (or lack the
|
|
|
reof).
|
|
|
|
|
|
Scorecard with Caddy.
|
|
|
- configure can be run with `--with-test-caddy=path` to specify which caddy t
|
|
|
o use for testing
|
|
|
- tests/tests-httpd/scorecard.py now measures download speeds with caddy
|
|
|
|
|
|
pytest improvements
|
|
|
- adding Makfile to clean gen dir
|
|
|
- adding nghttpx rundir creation on start
|
|
|
- checking httpd version 2.4.55 for test_05 cases where it is needed. Skippin
|
|
|
g with message if too old.
|
|
|
- catch exception when checking for caddy existance on system.
|
|
|
|
|
|
Closes #10349
|
|
|
|
|
|
Daniel Stenberg (2 Feb 2023)
|
|
|
|
|
|
- CODEOWNERS: remove the peeps mentioned as CI owners
|
|
|
|
|
|
These owners do not have the bandwidth/energy to do the reviews which
|
|
|
makes PRs stall and this ownership claim flawed. We can bring people
|
|
|
back when the situation is different.
|
|
|
|
|
|
Follow-up to c04c78ac87c4d46737934345a
|
|
|
|
|
|
Closes #10386
|
|
|
|
|
|
Martin D'Aloia (2 Feb 2023)
|
|
|
|
|
|
- write-out.d: add 'since version' to %{header_json} documentation
|
|
|
|
|
|
The documentation of `%{header_json}` missed to mention since which
|
|
|
version this variable for `--write-out` is present.
|
|
|
|
|
|
Based on commit https://github.com/curl/curl/commit/4133a69f2daa476bb
|
|
|
we can determine from the tags were this commit is present that the
|
|
|
first version to include it was `7.83.0`.
|
|
|
This could be also checked with:
|
|
|
`git tag --contains 4133a69f2daa476bb6d902687f1dd6660ea9c3c5`
|
|
|
|
|
|
Closes #10395
|
|
|
|
|
|
Daniel Stenberg (1 Feb 2023)
|
|
|
|
|
|
- urlapi: avoid Curl_dyn_addf() for hex outputs
|
|
|
|
|
|
Inspired by the recent fixes to escape.c, we should avoid calling
|
|
|
Curl_dyn_addf() in loops, perhaps in particular when adding something so
|
|
|
simple as %HH codes - for performance reasons. This change makes the
|
|
|
same thing for the URL parser's two URL-encoding loops.
|
|
|
|
|
|
Closes #10384
|
|
|
|
|
|
- urlapi: skip path checks if path is just "/"
|
|
|
|
|
|
As a miniscule optimization, treat a path of the length 1 as the same as
|
|
|
non-existing, as it can only be a single leading slash, and that's what
|
|
|
we do for no paths as well.
|
|
|
|
|
|
Closes #10385
|
|
|
|
|
|
Philip Heiduck (1 Feb 2023)
|
|
|
|
|
|
- GHA/macos: use Xcode_14.0.1 for cmake builds
|
|
|
|
|
|
Fixes #10356
|
|
|
Closes #10381
|
|
|
|
|
|
Viktor Szakats (1 Feb 2023)
|
|
|
|
|
|
- tls: fixes for wolfssl + openssl combo builds
|
|
|
|
|
|
1. Add `USE_WOLFSSL` to the TLS backend priority list in
|
|
|
`lib/curl_ntlm_core.c`.
|
|
|
|
|
|
2. Fix `lib/curl_ntlm_core.h` to respect TLS backend priority, bringing
|
|
|
it in sync with the above list and `lib/curl_ntlm_core.c` itself.
|
|
|
|
|
|
Reported-by: Mark Roszko
|
|
|
Ref: https://github.com/curl/curl/issues/10321
|
|
|
|
|
|
3. Allow enabling both wolfSSL and OpenSSL at the same time in
|
|
|
`lib/Makefile.mk` bringing this in line with cmake/autotools builds.
|
|
|
Update logic to select the crypto-specific lib for `ngtcp2`, which
|
|
|
supports a single TLS backend at the same time.
|
|
|
|
|
|
Closes #10322
|
|
|
|
|
|
Daniel Stenberg (1 Feb 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- docs/INSTALL: document how to use multiple TLS backends
|
|
|
|
|
|
And document how OpenSSL forks and wolfSSL cannot be used at the same
|
|
|
time.
|
|
|
|
|
|
Reported-by: Mark Roszko
|
|
|
Fixes #10321
|
|
|
Closes #10382
|
|
|
|
|
|
Kvarec Lezki (1 Feb 2023)
|
|
|
|
|
|
- cookies: fp is always not NULL
|
|
|
|
|
|
Closes #10383
|
|
|
|
|
|
Daniel Stenberg (31 Jan 2023)
|
|
|
|
|
|
- escape: use table lookup when adding %-codes to output
|
|
|
|
|
|
On my dev host, this code runs 7.8 times faster.
|
|
|
|
|
|
Closes #10377
|
|
|
|
|
|
- unit2600: avoid error: ‘TEST_CASES’ defined but not used
|
|
|
|
|
|
Follow-up to d55de24dce9d51
|
|
|
|
|
|
Closes #10379
|
|
|
|
|
|
- escape: hex decode with a lookup-table
|
|
|
|
|
|
Makes the decoding 2.8 times faster in my tests.
|
|
|
|
|
|
Closes #10376
|
|
|
|
|
|
- cf-socket: fix build error wo TCP_FASTOPEN_CONNECT
|
|
|
|
|
|
Follow-up to 5651a36d1a
|
|
|
|
|
|
Closes #10378
|
|
|
|
|
|
Reviewed-by: Stefan Eissing
|
|
|
|
|
|
Stefan Eissing (31 Jan 2023)
|
|
|
|
|
|
- CI: add pytest github workflow to CI test/tests-httpd on a HTTP/3 setup
|
|
|
|
|
|
Closes #10317
|
|
|
|
|
|
- connect: fix strategy testing for attempts, timeouts and happy-eyeball
|
|
|
|
|
|
- add test2600 as a unit test that triggers various connect conditions
|
|
|
and monitors behaviour, available in a debug build only.
|
|
|
|
|
|
- this exposed edge cases in connect.c that have been fixed
|
|
|
|
|
|
Closes #10312
|
|
|
|
|
|
- cf-socket: improvements in socket I/O handling
|
|
|
|
|
|
- Curl_write_plain/Curl_read_plain have been eliminated. Last code use
|
|
|
now uses Curl_conn_send/recv so that requests use conn->send/revc
|
|
|
callbacks which defaults to cfilters use.
|
|
|
- Curl_recv_plain/Curl_send_plain have been internalized in cf-socket.c.
|
|
|
- USE_RECV_BEFORE_SEND_WORKAROUND (active on Windows) has been moved
|
|
|
into cf-socket.c. The pre_recv buffer is held at the socket filter
|
|
|
context. `postponed_data` structures have been removed from
|
|
|
`connectdata`.
|
|
|
- the hanger in HTTP/2 request handling was a result of read buffering
|
|
|
on all sends and the multi handling is not prepared for this. The
|
|
|
following happens:
|
|
|
|
|
|
- multi preforms on a HTTP/2 easy handle
|
|
|
- h2 reads and processes data
|
|
|
- this leads to a send of h2 data
|
|
|
- which receives and buffers before the send
|
|
|
- h2 returns
|
|
|
- multi selects on the socket, but no data arrives (its in the buffer alre
|
|
|
ady)
|
|
|
the workaround now receives data in a loop as long as there is something i
|
|
|
n
|
|
|
the buffer. The real fix would be for multi to change, so that `data_pendi
|
|
|
ng`
|
|
|
is evaluated before deciding to wait on the socket.
|
|
|
|
|
|
io_buffer, optional, in cf-socket.c, http/2 sets state.drain if lower
|
|
|
filter have pending data.
|
|
|
|
|
|
This io_buffer is only available/used when the
|
|
|
-DUSE_RECV_BEFORE_SEND_WORKAROUND is active, e.g. on Windows
|
|
|
configurations. It also maintains the original checks on protocol
|
|
|
handler being HTTP and conn->send/recv not being replaced.
|
|
|
|
|
|
The HTTP/2 (nghttp2) cfilter now sets data->state.drain when it finds
|
|
|
out that the "lower" filter chain has still pending data at the end of
|
|
|
its IO operation. This prevents the processing from becoming stalled.
|
|
|
|
|
|
Closes #10280
|
|
|
|
|
|
Daniel Stenberg (31 Jan 2023)
|
|
|
|
|
|
- openssl: only use CA_BLOB if verifying peer
|
|
|
|
|
|
Reported-by: Paul Groke
|
|
|
Bug: https://curl.se/mail/lib-2023-01/0070.html
|
|
|
Fixes #10351
|
|
|
Closes #10359
|
|
|
|
|
|
Thomas1664 on github (31 Jan 2023)
|
|
|
|
|
|
- curl_free.3: fix return type of `curl_free`
|
|
|
|
|
|
Fixes #10373
|
|
|
Closes #10374
|
|
|
|
|
|
Daniel Stenberg (30 Jan 2023)
|
|
|
|
|
|
- zuul: stop using this CI service
|
|
|
|
|
|
The important jobs have already transitioned. The remaining ones we can
|
|
|
skip for now.
|
|
|
|
|
|
Closes #10368
|
|
|
|
|
|
- copyright: remove "m4/ax_compile_check_sizeof.m4" from skips
|
|
|
|
|
|
and report if skipped files do not exist.
|
|
|
|
|
|
Follow-up to 9e11c2791fb960758 which removed the file.
|
|
|
|
|
|
Closes #10369
|
|
|
|
|
|
- ws: unstick connect-only shutdown
|
|
|
|
|
|
As this mode uses blocking sockets, it must set them back to
|
|
|
non-blocking in disconnect to avoid the risk of getting stuck.
|
|
|
|
|
|
Closes #10366
|
|
|
|
|
|
- ws: remove bad assert
|
|
|
|
|
|
Reported-by: Stanley Wucw
|
|
|
Fixes #10347
|
|
|
Closes #10366
|
|
|
|
|
|
- openssl: adapt to boringssl's error code type
|
|
|
|
|
|
BoringSSL uses uint32_t, OpenSSL uses 'unsigned 'long'
|
|
|
|
|
|
Closes #10360
|
|
|
|
|
|
- tool_operate: repair --rate
|
|
|
|
|
|
Regression from a55256cfb242 (7.87.0)
|
|
|
Reported-by: highmtworks on github
|
|
|
Fixes #10357
|
|
|
Closes #10358
|
|
|
|
|
|
- dict: URL decode the entire path always
|
|
|
|
|
|
Reported-by: dekerser on github
|
|
|
Fixes #10298
|
|
|
Closes #10354
|
|
|
|
|
|
Stefan Eissing (29 Jan 2023)
|
|
|
|
|
|
- vtls: do not null-check when we already assume cf-ctx exists
|
|
|
|
|
|
Fixes #10361
|
|
|
Closes #10362
|
|
|
|
|
|
Daniel Stenberg (29 Jan 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- CURLOPT_READFUNCTION.3: the callback 'size' arg is always 1
|
|
|
|
|
|
Reported-by: Brian Green
|
|
|
Fixes #10328
|
|
|
Closes #10355
|
|
|
|
|
|
- copyright.pl: cease doing year verifications
|
|
|
|
|
|
As we have (mostly) removed the copyright year ranges.
|
|
|
|
|
|
Reported-by: Ryan Schmidt
|
|
|
Fixes #10345
|
|
|
Closes #10352
|
|
|
|
|
|
Dan Fandrich (28 Jan 2023)
|
|
|
|
|
|
- CI: Work around a labeler bug that removes labels
|
|
|
|
|
|
Jay Satiro (26 Jan 2023)
|
|
|
|
|
|
- write-out.d: clarify Windows % symbol escaping
|
|
|
|
|
|
- Clarify that in Windows batch files the % must be escaped as %%, and
|
|
|
at the command prompt it cannot be escaped which could lead to
|
|
|
incorrect expansion.
|
|
|
|
|
|
Prior to this change the doc implied % must be escaped as %% in win32
|
|
|
always.
|
|
|
|
|
|
---
|
|
|
|
|
|
Examples showing how a write-out argument is received by curl:
|
|
|
|
|
|
If curl --write-out "%{http_code}" is executed in a batch file:
|
|
|
{http_code}
|
|
|
|
|
|
If curl --write-out "%%{http_code}" is executed in a batch file:
|
|
|
%{http_code}
|
|
|
|
|
|
If curl --write-out "%{http_code}" is executed from the command prompt:
|
|
|
%{http_code}
|
|
|
|
|
|
If curl --write-out "%%{http_code}" is executed from the command prompt:
|
|
|
%%{http_code}
|
|
|
|
|
|
At the command prompt something like "%{speed_download}%{http_code}"
|
|
|
would first be parsed by the command interpreter as %{speed_download}%
|
|
|
and would be expanded as environment variable {speed_download} if it
|
|
|
existed, though that's highly unlikely since Windows environment names
|
|
|
don't use braces.
|
|
|
|
|
|
---
|
|
|
|
|
|
Reported-by: Muhammad Hussein Ammari
|
|
|
|
|
|
Ref: https://github.com/bagder/everything-curl/pull/279
|
|
|
|
|
|
Fixes https://github.com/curl/curl/issues/10323
|
|
|
Closes https://github.com/curl/curl/pull/10337
|
|
|
|
|
|
Ryan Schmidt (26 Jan 2023)
|
|
|
|
|
|
- connect: Fix build when not ENABLE_IPV6
|
|
|
|
|
|
Check for ENABLE_IPV6 before accessing AF_INET6. Fixes build failure
|
|
|
introduced in 1c5d8ac.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10344
|
|
|
|
|
|
- cf-socket: Fix build when not HAVE_GETPEERNAME
|
|
|
|
|
|
Remove remaining references to conn and sockfd, which were removed from
|
|
|
the function signature when conninfo_remote was renamed to
|
|
|
conn_set_primary_ip in 6a8d7ef.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10343
|
|
|
|
|
|
Stefan Eissing (26 Jan 2023)
|
|
|
|
|
|
- vtls: Manage current easy handle in nested cfilter calls
|
|
|
|
|
|
The previous implementation cleared `data` so the outer invocation lost
|
|
|
its data, which could lead to a crash.
|
|
|
|
|
|
Bug: https://github.com/curl/curl/issues/10336
|
|
|
Reported-by: Fujii Hironori
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10340
|
|
|
|
|
|
Dan Fandrich (25 Jan 2023)
|
|
|
|
|
|
- CI: Add even more paths to the labeler config (#10326)
|
|
|
|
|
|
- scripts: Fix Appveyor job detection in cijobs.pl
|
|
|
|
|
|
The reorganization in #9769 broke the script. This should probably be
|
|
|
rewritten to use a YAML parser for better upward compatibility.
|
|
|
|
|
|
- CI: Add a few more paths to the labeler config (#10326)
|
|
|
|
|
|
- CI: Switch the labeler event to pull_request_target
|
|
|
|
|
|
Otherwise, the action won't work on PRs from forked repositories
|
|
|
(#10326).
|
|
|
|
|
|
Viktor Szakats (25 Jan 2023)
|
|
|
|
|
|
- cmake: delete redundant macro definition `SECURITY_WIN32`
|
|
|
|
|
|
Stop explicitly defining `SECURITY_WIN32` in CMake builds.
|
|
|
|
|
|
No other build systems define this macro, because it's unconditionally
|
|
|
defined in `lib/curl_sspi.h` already. This is the only curl source using
|
|
|
the `sspi.h` and `security.h` Win32 headers, and no other Win32 headers
|
|
|
need this macro.
|
|
|
|
|
|
Reviewed-by: Jay Satiro
|
|
|
Closes #10341
|
|
|
|
|
|
Fredrik (24 Jan 2023)
|
|
|
|
|
|
- winbuild: document that arm64 is supported
|
|
|
|
|
|
Building an arm64 version works flawlessly with the VS arm64 toolset.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10332
|
|
|
|
|
|
Cherish98 (24 Jan 2023)
|
|
|
|
|
|
- openssl: don't log raw record headers
|
|
|
|
|
|
- Skip content type SSL3_RT_HEADER in verbose TLS output.
|
|
|
|
|
|
This commit prevents bogus and misleading verbose TLS header messages as
|
|
|
discussed in #10299.
|
|
|
|
|
|
Assisted-by: Peter Wu
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10299
|
|
|
|
|
|
Marc Aldorasi (24 Jan 2023)
|
|
|
|
|
|
- cmake: use list APPEND syntax for CMAKE_REQUIRED_DEFINITIONS
|
|
|
|
|
|
- Use list() instead of set() for CMAKE_REQUIRED_DEFINITIONS list since
|
|
|
the former is clearer.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10272
|
|
|
|
|
|
Dan Fandrich (23 Jan 2023)
|
|
|
|
|
|
- CI: Add a workflow to automatically label pull requests
|
|
|
|
|
|
The labeler language is quite restrictive right now so labels are added
|
|
|
quite conservatively, meaning that many PRs won't get labels when it's
|
|
|
"obvious" they should. It will still save some manual work on those
|
|
|
that it can label.
|
|
|
|
|
|
Jay Satiro (21 Jan 2023)
|
|
|
|
|
|
- system.h: assume OS400 is always built with ILEC compiler
|
|
|
|
|
|
Prior to this change the OS400 types were only defined when __ILEC400__.
|
|
|
That symbol is only defined by IBM's C compiler and not their C++
|
|
|
compiler, which led to missing types when users on OS400 would compile a
|
|
|
C++ application that included curl.
|
|
|
|
|
|
The IBM C and C++ compilers are the only native compilers on the
|
|
|
platform.
|
|
|
|
|
|
Assisted-by: Jon Rumsey
|
|
|
Reported-by: John Sherrill
|
|
|
|
|
|
Fixes https://github.com/curl/curl/issues/10305
|
|
|
Closes https://github.com/curl/curl/pull/10329
|
|
|
|
|
|
xgladius (20 Jan 2023)
|
|
|
|
|
|
- cmake: Remove deprecated symbols check
|
|
|
|
|
|
curl stopped use of CMAKE_USE_ as a prefix for its own build symbols in
|
|
|
2021 and added a check, meant to last 1 year, to fatally error on those
|
|
|
symbols. This commit removes that check.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10314
|
|
|
|
|
|
Dan Fandrich (20 Jan 2023)
|
|
|
|
|
|
- docs: POSTFIELDSIZE must be set to -1 with read function
|
|
|
|
|
|
Reported-by: RanBarLavie on github
|
|
|
|
|
|
Closes #10313
|
|
|
|
|
|
Stefan Eissing (20 Jan 2023)
|
|
|
|
|
|
- vtls: fix hostname handling in filters
|
|
|
|
|
|
- Copy the hostname and dispname to ssl_connect_data.
|
|
|
|
|
|
Use a copy instead of referencing the `connectdata` instance since this
|
|
|
may get free'ed on connection reuse.
|
|
|
|
|
|
Reported-by: Stefan Talpalaru
|
|
|
Reported-by: sergio-nsk@users.noreply.github.com
|
|
|
|
|
|
Fixes https://github.com/curl/curl/issues/10273
|
|
|
Fixes https://github.com/curl/curl/issues/10309
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10310
|
|
|
|
|
|
Sergey Bronnikov (17 Jan 2023)
|
|
|
|
|
|
- lib: fix typos
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10307
|
|
|
|
|
|
- curl_version_info.3: fix typo
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10306
|
|
|
|
|
|
Jay Satiro (17 Jan 2023)
|
|
|
|
|
|
- openssl: Don't ignore CA paths when using Windows CA store (redux)
|
|
|
|
|
|
.. and remove 'experimental' designation from CURLSSLOPT_NATIVE_CA.
|
|
|
|
|
|
This commit restores the behavior of CURLSSLOPT_NATIVE_CA so that it
|
|
|
does not override CURLOPT_CAINFO / CURLOPT_CAPATH, or the hardcoded
|
|
|
default locations. Instead the native Windows CA store can be used at
|
|
|
the same time.
|
|
|
|
|
|
---
|
|
|
|
|
|
This behavior was originally added over two years ago in abbc5d60
|
|
|
(#5585) but then 83393b1a (#7892) broke it over a year ago, I assume
|
|
|
inadvertently.
|
|
|
|
|
|
The CURLSSLOPT_NATIVE_CA feature was marked experimental and likely
|
|
|
rarely used.
|
|
|
|
|
|
Ref: https://github.com/curl/curl/pull/5585
|
|
|
Ref: https://github.com/curl/curl/pull/7892
|
|
|
Ref: https://curl.se/mail/lib-2023-01/0019.html
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10244
|
|
|
|
|
|
Daniel Stenberg (13 Jan 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- ws: fix autoping handling
|
|
|
|
|
|
Reported-by: Alexey Savchuk
|
|
|
Fixes #10289
|
|
|
Closes #10294
|
|
|
|
|
|
- curl_log: avoid printf() format checking with mingw
|
|
|
|
|
|
Since it does not seem to like %zu and more
|
|
|
|
|
|
Follow-up to db91dbbf2
|
|
|
|
|
|
Fixes #10291
|
|
|
Closes #10292
|
|
|
|
|
|
- tool_getparam: fix compiler warning when !HAVE_WRITABLE_ARGV
|
|
|
|
|
|
Follow-up to 2ed0e1f70ee176edf3d2
|
|
|
|
|
|
Closes #10286
|
|
|
|
|
|
Stefan Eissing (12 Jan 2023)
|
|
|
|
|
|
- openssl: make the BIO_METHOD a local variable in the connection filter
|
|
|
|
|
|
This avoids UAF issues when `curl_global_cleanup()` is called before all
|
|
|
transfers have been completely handled. Unfortunately this seems to be a
|
|
|
more common pattern than we like.
|
|
|
|
|
|
Closes #10285
|
|
|
|
|
|
Daniel Stenberg (12 Jan 2023)
|
|
|
|
|
|
- curl: output warning at --verbose output for debug-enabled version
|
|
|
|
|
|
+ a libcurl warning in the debug output
|
|
|
|
|
|
Assisted-by: Jay Satiro
|
|
|
|
|
|
Ref: https://curl.se/mail/lib-2023-01/0039.html
|
|
|
Closes #10278
|
|
|
|
|
|
- src: add --http3-only
|
|
|
|
|
|
Warning: --http3 and --http3-only are subject to change again (or be
|
|
|
removed) before HTTP/3 support goes non-experimental.
|
|
|
|
|
|
Closes #10264
|
|
|
|
|
|
- curl.h: add CURL_HTTP_VERSION_3ONLY
|
|
|
|
|
|
As the previous CURL_HTTP_VERSION_3 option gets a slightly altered meaning.
|
|
|
|
|
|
Closes #10264
|
|
|
|
|
|
- connect: fix access of pointer before NULL check
|
|
|
|
|
|
Detected by Coverity CID 1518992
|
|
|
|
|
|
Closes #10284
|
|
|
|
|
|
Daniel Gustafsson (12 Jan 2023)
|
|
|
|
|
|
- easyoptions: Fix header printing in generation script
|
|
|
|
|
|
The optiontable.pl script prints the header comment when generating
|
|
|
easyoptions.c, but it wasn't escaping all characters which jumbled the
|
|
|
curl ascii logo. Fix by escaping.
|
|
|
|
|
|
Cloes #10275
|
|
|
|
|
|
Harry Sintonen (12 Jan 2023)
|
|
|
|
|
|
- tool_getparam: fix hiding of command line secrets
|
|
|
|
|
|
Closes #10276
|
|
|
|
|
|
Stefan Eissing (12 Jan 2023)
|
|
|
|
|
|
- tests: document the cfilter debug logging options
|
|
|
|
|
|
Closes #10283
|
|
|
|
|
|
- curl_log: for failf/infof and debug logging implementations
|
|
|
|
|
|
- new functions and macros for cfilter debugging
|
|
|
- set CURL_DEBUG with names of cfilters where debug logging should be
|
|
|
enabled
|
|
|
- use GNUC __attribute__ to enable printf format checks during compile
|
|
|
|
|
|
Closes #10271
|
|
|
|
|
|
Daniel Stenberg (10 Jan 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Nick Banks (10 Jan 2023)
|
|
|
|
|
|
- msh3: update to v0.6
|
|
|
|
|
|
Closes #10192
|
|
|
|
|
|
Stefan Eissing (10 Jan 2023)
|
|
|
|
|
|
- ngtcp2: add CURLOPT_SSL_CTX_FUNCTION support for openssl+wolfssl
|
|
|
|
|
|
Using common method for SSL_CTX initialization of verfiy peer and CA
|
|
|
settings. This also provides X509_STORE sharing to become available for
|
|
|
ngtcp2+openssl HTTP/3.
|
|
|
|
|
|
Reported-by: violetlige on github
|
|
|
|
|
|
Fixes #10222
|
|
|
Closes #10239
|
|
|
|
|
|
Daniel Stenberg (10 Jan 2023)
|
|
|
|
|
|
- cf-socket: make infof() call use %zu for size_t output
|
|
|
|
|
|
Detected by Coverity CID 1518986 and CID 1518984
|
|
|
|
|
|
Closes #10268
|
|
|
|
|
|
Jon Rumsey (10 Jan 2023)
|
|
|
|
|
|
- os400: fixes to make-lib.sh and initscript.sh
|
|
|
|
|
|
Adjust how exports list is generated from header files to account for
|
|
|
declarations across multiple lines and CURL_DEPRECATED(...) tags.
|
|
|
|
|
|
Update initscript.sh
|
|
|
|
|
|
Specify qadrt_use_inline to prevent unistd.h in ASCII runtime defining
|
|
|
close(a) -> close_a(a)
|
|
|
|
|
|
Fixes #10266
|
|
|
Closes #10267
|
|
|
|
|
|
Stefan Eissing (9 Jan 2023)
|
|
|
|
|
|
- tests-httpd: basic infra to run curl against an apache httpd plus nghttpx for
|
|
|
h3
|
|
|
|
|
|
- adding '--with-test-httpd=<path>' to configure non-standard apache2
|
|
|
install
|
|
|
- python env and base classes for running httpd
|
|
|
- basic tests for connectivity with h1/h2/h3
|
|
|
- adding test cases for truncated responses in http versions.
|
|
|
- adding goaway test for HTTP/3.
|
|
|
- adding "stuttering" tests with parallel downloads in chunks with
|
|
|
varying delays between chunks.
|
|
|
|
|
|
- adding a curltest module to the httpd server, adding GOAWAY test.
|
|
|
- mod_curltest now installs 2 handlers
|
|
|
- 'echo': writing as response body what came as request body
|
|
|
- 'tweak': with query parameters to tweak response behaviour
|
|
|
- marked known fails as skip for now
|
|
|
|
|
|
Closes #10175
|
|
|
|
|
|
- quic: improve connect error message, debugging info, fix false connect report
|
|
|
|
|
|
- ECONNECTREFUSED has not its own fail message in quic filters
|
|
|
- Debug logging in connect eyballing improved
|
|
|
- Fix bug in ngtcp2/quiche that could lead to false success reporting.
|
|
|
|
|
|
Reported-by: Divy Le Ray
|
|
|
|
|
|
Fixes #10245
|
|
|
Closes #10248
|
|
|
|
|
|
- quiche: fix build without any HTTP/2 implementation
|
|
|
|
|
|
Fixes #10260
|
|
|
Closes #10263
|
|
|
|
|
|
Daniel Stenberg (9 Jan 2023)
|
|
|
|
|
|
- .github/workflows/linux.yml: add a quiche CI job
|
|
|
|
|
|
Move over from zuul
|
|
|
|
|
|
Closes #10241
|
|
|
|
|
|
- curl.h: allow up to 10M buffer size
|
|
|
|
|
|
Bump the limit from 512K. There might be reasons for applications using
|
|
|
h3 to set larger buffers and there is no strong reason for curl to have
|
|
|
a very small maximum.
|
|
|
|
|
|
Ref: https://curl.se/mail/lib-2023-01/0026.html
|
|
|
|
|
|
Closes #10256
|
|
|
|
|
|
Tatsuhiro Tsujikawa (8 Jan 2023)
|
|
|
|
|
|
- GHA: use designated ngtcp2 and its dependencies versions
|
|
|
|
|
|
Designate ngtcp2 and its dependency versions so that the CI build does
|
|
|
not fail without our control.
|
|
|
|
|
|
Closes #10257
|
|
|
|
|
|
Daniel Stenberg (8 Jan 2023)
|
|
|
|
|
|
- docs/cmdline-opts/hsts.d: explain hsts more
|
|
|
|
|
|
Closes #10258
|
|
|
|
|
|
Stefan Eissing (8 Jan 2023)
|
|
|
|
|
|
- msh3: run again in its cfilter
|
|
|
|
|
|
- test 2500, single GET works
|
|
|
- test 2501, single POST stalls
|
|
|
- test 2502, multiple, sequential GETs each use a new connection since
|
|
|
MsH3ConnectionGetState(qconn) no longer reports CONNECTED after one
|
|
|
GET.
|
|
|
|
|
|
Closes #10204
|
|
|
|
|
|
Jay Satiro (8 Jan 2023)
|
|
|
|
|
|
- sendf: fix build for Linux TCP fastopen
|
|
|
|
|
|
- Fix the remote addr struct dereference.
|
|
|
|
|
|
- Include cf-socket.h in urldata.h.
|
|
|
|
|
|
Follow-up to 6a8d7ef9 which changed conn->ipaddr (Curl_addrinfo* )
|
|
|
member to conn->remote_addr (Curl_sockaddr_ex *) several days ago.
|
|
|
|
|
|
Reported-by: Stephan Guilloux
|
|
|
|
|
|
Fixes https://github.com/curl/curl/issues/10249
|
|
|
Closes https://github.com/curl/curl/pull/10250
|
|
|
|
|
|
Daniel Stenberg (7 Jan 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- setopt: move the SHA256 opt within #ifdef libssh2
|
|
|
|
|
|
Because only the libssh2 backend not supports it and thus this should
|
|
|
return error if this option is used other backends.
|
|
|
|
|
|
Reported-by: Harry Sintonen
|
|
|
|
|
|
Closes #10255
|
|
|
|
|
|
Patrick Monnerat (7 Jan 2023)
|
|
|
|
|
|
- nss: implement data_pending method
|
|
|
|
|
|
NSS currently uses the default Curl_none_data_pending() method which
|
|
|
always returns false, causing TLS buffered input data to be missed.
|
|
|
|
|
|
The current commit implements the nss_data_pending() method that properly
|
|
|
monitors the presence of available TLS data.
|
|
|
|
|
|
Ref:#10077
|
|
|
|
|
|
Closes #10225
|
|
|
|
|
|
Jay Satiro (6 Jan 2023)
|
|
|
|
|
|
- CURLOPT_HEADERDATA.3: warn DLL users must set write function
|
|
|
|
|
|
- Warn that in Windows if libcurl is running from a DLL and if
|
|
|
CURLOPT_HEADERDATA is set then CURLOPT_WRITEFUNCTION or
|
|
|
CURLOPT_HEADERFUNCTION must be set as well, otherwise the user may
|
|
|
experience crashes.
|
|
|
|
|
|
We already have a similar warning in CURLOPT_WRITEDATA. Basically, in
|
|
|
Windows libcurl could crash writing a FILE pointer that was created by
|
|
|
a different C runtime. In Windows each DLL that is part of a program may
|
|
|
or may not have its own C runtime.
|
|
|
|
|
|
Ref: https://github.com/curl/curl/issues/10231
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10233
|
|
|
|
|
|
Jon Rumsey (5 Jan 2023)
|
|
|
|
|
|
- x509asn1: fix compile errors and warnings
|
|
|
|
|
|
Various small issues when built for GSKit
|
|
|
|
|
|
Closes #10238
|
|
|
|
|
|
Patrick Monnerat (5 Jan 2023)
|
|
|
|
|
|
- runtests: fix detection of TLS backends
|
|
|
|
|
|
Built-in TLS backends are detected at test time by scanning for their
|
|
|
names in the version string line returned by the cli tool: as this line
|
|
|
may also list the libssh configuration that mentions its own backend,
|
|
|
the curl backend may be wrongly determined.
|
|
|
|
|
|
In example, if the version line contains "libssh/0.10.4/openssl/zlib",
|
|
|
OpenSSL is detected as a curl-configured backend even if not.
|
|
|
|
|
|
This fix requires the backend names to appear as full words preceded by
|
|
|
spacing in the version line to be recognized as curl TLS backends.
|
|
|
|
|
|
Closes #10236
|
|
|
|
|
|
Andy Alt (5 Jan 2023)
|
|
|
|
|
|
- GHA: add job on Slackware 15.0
|
|
|
|
|
|
Closes #10230
|
|
|
|
|
|
Daniel Stenberg (5 Jan 2023)
|
|
|
|
|
|
- test363: make even smaller writes to loop more
|
|
|
|
|
|
- http_proxy: do not assign data->req.p.http use local copy
|
|
|
|
|
|
Avoid the tricky reusing of the data->req.p.http pointer for http proxy
|
|
|
tunneling.
|
|
|
|
|
|
Fixes #10194
|
|
|
Closes #10234
|
|
|
|
|
|
Stefan Eissing (5 Jan 2023)
|
|
|
|
|
|
- quic: rename vquic implementations, fix for quiche build.
|
|
|
|
|
|
- quiche in debug mode did not build, fixed.
|
|
|
- moved all vquic implementation files to prefix curl_* to avoid
|
|
|
the potential mixups between provided .h files and our own.
|
|
|
- quich passes test 2500 and 2502. 2501, the POST, fail with
|
|
|
the body being rejected. Quich bug?
|
|
|
|
|
|
Closes #10242
|
|
|
|
|
|
- sectransp: fix for incomplete read/writes
|
|
|
|
|
|
SecureTransport expects result code errSSLWouldBlock when the requested
|
|
|
length could not be sent/recieved in full. The previous code returned
|
|
|
noErr, which let SecureTransport to believe that the IO had terminated
|
|
|
prematurely.
|
|
|
|
|
|
Fixes #10227
|
|
|
Closes #10235
|
|
|
|
|
|
Andy Alt (5 Jan 2023)
|
|
|
|
|
|
- GHA: Hacktoberfest CI: Update deprecated 'set-output' command
|
|
|
|
|
|
Closes #10221
|
|
|
|
|
|
Jay Satiro (5 Jan 2023)
|
|
|
|
|
|
- scripts: set file mode +x on all perl and shell scripts
|
|
|
|
|
|
- Set all scripts +x, ie 644 => 755.
|
|
|
|
|
|
Prior to this change some scripts were not executable and therefore
|
|
|
could not be called directly.
|
|
|
|
|
|
~~~
|
|
|
git ls-files -s \*.{sh,pl,py} | grep -v 100755
|
|
|
~~~
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10219
|
|
|
|
|
|
Stefan Eissing (4 Jan 2023)
|
|
|
|
|
|
- tool_operate: fix headerfile writing
|
|
|
|
|
|
Do not rely on the first transfer started to be the first to get a
|
|
|
response (remember -Z). All transfers now write the headefile (-D) in
|
|
|
append mode, making sure that the order of transfer responses does not
|
|
|
lead to overwrites of previous data.
|
|
|
|
|
|
Closes #10224
|
|
|
|
|
|
Daniel Stenberg (4 Jan 2023)
|
|
|
|
|
|
- misc: reduce struct and struct field sizes
|
|
|
|
|
|
- by using BIT() instead of bool
|
|
|
- imap: shrink struct
|
|
|
- ftp: make state 'unsigned char'
|
|
|
- ftp: sort ftp_conn struct entries on size
|
|
|
- urldata: use smaller fields for SSL version info storage
|
|
|
- pop3: reduce the pop3_conn struct size
|
|
|
- smtp: reduce the size of the smtp structs
|
|
|
|
|
|
Closes #10186
|
|
|
|
|
|
- noproxy: support for space-separated names is deprecated
|
|
|
|
|
|
To be removed in July 2024.
|
|
|
|
|
|
Assisted-by: Michael Osipov
|
|
|
Fixes #10209
|
|
|
Closes #10215
|
|
|
|
|
|
Andrei Rybak (4 Jan 2023)
|
|
|
|
|
|
- lib: fix typos in comments which repeat a word
|
|
|
|
|
|
Remove erroneously duplicated words in code comments of files
|
|
|
`lib.connect.c` and `lib/url.c`.
|
|
|
|
|
|
Closes #10220
|
|
|
|
|
|
Radek Brich (3 Jan 2023)
|
|
|
|
|
|
- cmake: set SOVERSION also for macOS
|
|
|
|
|
|
Closes #10214
|
|
|
|
|
|
Jay Satiro (3 Jan 2023)
|
|
|
|
|
|
- http2: fix compiler warning due to uninitialized variable
|
|
|
|
|
|
Prior to this change http2_cfilter_add could return an uninitialized
|
|
|
cfilter pointer in an OOM condition. In this case though, the pointer
|
|
|
is discarded and not dereferenced so there was no risk of a crash.
|
|
|
|
|
|
Stefan Eissing (3 Jan 2023)
|
|
|
|
|
|
- cf-socket: keep sockaddr local in the socket filters
|
|
|
|
|
|
- copy `struct Curl_addrinfo` on filter setup into context
|
|
|
- remove `struct Curl_addrinfoi *` with `struct Curl_sockaddr_ex *` in
|
|
|
connectdata that is set and NULLed by the socket filter
|
|
|
- this means we have no reference to the resolver info in connectdata or
|
|
|
its filters
|
|
|
- trigger the CF_CTRL_CONN_INFO_UPDATE event when the complete filter
|
|
|
chain reaches connected status
|
|
|
- update easy handle connection information on CF_CTRL_DATA_SETUP event.
|
|
|
|
|
|
Closes #10213
|
|
|
|
|
|
Daniel Stenberg (3 Jan 2023)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- runtests: consider warnings fatal and error on them
|
|
|
|
|
|
To help us detect and fix warnings in this script easier and faster.
|
|
|
|
|
|
Assisted-by: Jakob Hirsch
|
|
|
|
|
|
Ref: #10206
|
|
|
Closes #10208
|
|
|
|
|
|
- copyright: update all copyright lines and remove year ranges
|
|
|
|
|
|
- they are mostly pointless in all major jurisdictions
|
|
|
- many big corporations and projects already don't use them
|
|
|
- saves us from pointless churn
|
|
|
- git keeps history for us
|
|
|
- the year range is kept in COPYING
|
|
|
|
|
|
checksrc is updated to allow non-year using copyright statements
|
|
|
|
|
|
Closes #10205
|
|
|
|
|
|
- docs/DEPRECATE.md: deprecate gskit
|
|
|
|
|
|
Ref: #10163
|
|
|
|
|
|
- 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"
|
|
|
|
|
|
Closes #10201
|
|
|
|
|
|
- Revert "x509asn1: avoid freeing unallocated pointers"
|
|
|
|
|
|
This reverts commit 6b19247e794cfdf4ec63c5880d8f4f5485f653ab.
|
|
|
|
|
|
Fixes #10163
|
|
|
Closes #10207
|
|
|
|
|
|
- ngtcp2: fix the build without 'sendmsg'
|
|
|
|
|
|
Follow-up from 71b7e0161032
|
|
|
|
|
|
Closes #10210
|
|
|
|
|
|
- cmake: check for sendmsg
|
|
|
|
|
|
Used by ngtcp2
|
|
|
|
|
|
Closes #10211
|
|
|
|
|
|
Timmy Schierling (2 Jan 2023)
|
|
|
|
|
|
- runtest.pl: add expected fourth return value
|
|
|
|
|
|
Fixes warning in autobild log: "Use of uninitialized value $HTTP2TLSPORT
|
|
|
in substitution iterator at /tests/runtests.pl line 3516"
|
|
|
|
|
|
Closes #10206
|
|
|
|
|
|
Daniel Stenberg (2 Jan 2023)
|
|
|
|
|
|
- http2: when using printf %.*s, the length arg must be 'int'
|
|
|
|
|
|
Detected by Coverity CID 1518341
|
|
|
|
|
|
Closes #10203
|
|
|
|
|
|
- cfilters: check for NULL before using pointer
|
|
|
|
|
|
Detected by Coverity CID 1518343
|
|
|
|
|
|
Closes #10202
|
|
|
|
|
|
- http2: in connisdead check, attach the connection before reading
|
|
|
|
|
|
Otherwise data->conn is NULL and things go wrong.
|
|
|
|
|
|
This problem caused occastional failures in test 359, 1700 and more
|
|
|
depending on timing and the alignment of various planets.
|
|
|
|
|
|
Assisted-by: Stefan Eissing
|
|
|
|
|
|
Closes #10199
|
|
|
|
|
|
Philip Heiduck (2 Jan 2023)
|
|
|
|
|
|
- Linux CI: update some dependecies to latest tag
|
|
|
|
|
|
Closes #10195
|
|
|
|
|
|
Daniel Stenberg (2 Jan 2023)
|
|
|
|
|
|
- c-hyper: move down the Accept-Encoding header generation
|
|
|
|
|
|
To match the internal HTTP request header order so that test 1277 works
|
|
|
again.
|
|
|
|
|
|
Closes #10200
|
|
|
|
|
|
- release-notes.pl: check fixes/closes lines better
|
|
|
|
|
|
To better skip lines that just happen to mention those words at the
|
|
|
start of a line without being instructions.
|
|
|
|
|
|
- test1560: use a UTF8-using locale when run
|
|
|
|
|
|
There are odd cases that don't use UTF8 and then the IDN handling goes
|
|
|
wrong.
|
|
|
|
|
|
Reported-by: Marcel Raad
|
|
|
Fixes #10193
|
|
|
Closes #10196
|
|
|
|
|
|
- cf-socket: fix build regression
|
|
|
|
|
|
Reported-by: Stephan Guilloux
|
|
|
Fixes #10190
|
|
|
Closes #10191
|
|
|
|
|
|
- examples: remove the curlgtk.c example
|
|
|
|
|
|
- it does not add a lot of value
|
|
|
- we do not test-build it to verify because of its dependencies
|
|
|
- unclear for what GTK versions it works or not
|
|
|
|
|
|
Reported-by: odek86 on github
|
|
|
|
|
|
Fixes #10197
|
|
|
Closes #10198
|
|
|
|
|
|
Andy Alt (2 Jan 2023)
|
|
|
|
|
|
- docs: add link to GitHub Discussions
|
|
|
|
|
|
Closes #10171
|
|
|
|
|
|
- GHA: ignore changes to md files for most workflows
|
|
|
|
|
|
Closes #10176
|
|
|
|
|
|
Josh Brobst (2 Jan 2023)
|
|
|
|
|
|
- http: decode transfer encoding first
|
|
|
|
|
|
The unencoding stack is added to as Transfer-Encoding and
|
|
|
Content-Encoding fields are encountered with no distinction between the
|
|
|
two, meaning the stack will be incorrect if, e.g., the message has both
|
|
|
fields and a non-chunked Transfer-Encoding comes first. This commit
|
|
|
fixes this by ordering the stack with transfer encodings first.
|
|
|
|
|
|
Reviewed-by: Patrick Monnerat
|
|
|
Closes #10187
|
|
|
|
|
|
Daniel Stenberg (1 Jan 2023)
|
|
|
|
|
|
- curl.h: mark CURLSSLBACKEND_MESALINK as deprecated
|
|
|
|
|
|
Follow-up since 223f26c28a340b36
|
|
|
|
|
|
Deprecated since 7.82.0
|
|
|
|
|
|
Closes #10189
|
|
|
|
|
|
- curl_global_sslset.3: clarify the openssl situation
|
|
|
|
|
|
and add rustls
|
|
|
|
|
|
Closes #10188
|
|
|
|
|
|
Cameron Blomquist (1 Jan 2023)
|
|
|
|
|
|
- http: add additional condition for including stdint.h
|
|
|
|
|
|
stdint.h was only included in http.h when ENABLE_QUIC was defined, but
|
|
|
symbols from stdint.h are also used when USE_NGHTTP2 is defined. This
|
|
|
causes build errors when USE_NGHTTP2 is defined but ENABLE_QUIC is not.
|
|
|
|
|
|
Closes #10185
|
|
|
|
|
|
Daniel Stenberg (31 Dec 2022)
|
|
|
|
|
|
- urldata: cease storing TLS auth type
|
|
|
|
|
|
The only TLS auth type libcurl ever supported is SRP and that is the
|
|
|
default type. Since nobody ever sets any other type, there is no point
|
|
|
in wasting space to store the set type and code to check the type.
|
|
|
|
|
|
If TLS auth is used, SRP is now implied.
|
|
|
|
|
|
Closes #10181
|
|
|
|
|
|
- vtls: use ALPN HTTP/1.0 when HTTP/1.0 is used
|
|
|
|
|
|
Previously libcurl would use the HTTP/1.1 ALPN id even when the
|
|
|
application specified HTTP/1.0.
|
|
|
|
|
|
Reported-by: William Tang
|
|
|
Ref: #10183
|
|
|
|
|
|
Marcel Raad (30 Dec 2022)
|
|
|
|
|
|
- lib670: make test.h the first include
|
|
|
|
|
|
As in all other lib tests. This avoids a macro redefinition warning for
|
|
|
`_FILE_OFFSET_BITS` visible in the autobuilds.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10182
|
|
|
|
|
|
Stefan Eissing (30 Dec 2022)
|
|
|
|
|
|
- lib: connect/h2/h3 refactor
|
|
|
|
|
|
Refactoring of connection setup and happy eyeballing. Move
|
|
|
nghttp2. ngtcp2, quiche and msh3 into connection filters.
|
|
|
|
|
|
- eyeballing cfilter that uses sub-filters for performing parallel connects
|
|
|
- socket cfilter for all transport types, including QUIC
|
|
|
- QUIC implementations in cfilter, can now participate in eyeballing
|
|
|
- connection setup is more dynamic in order to adapt to what filter did
|
|
|
really connect. Relevant to see if a SSL filter needs to be added or
|
|
|
if SSL has already been provided
|
|
|
- HTTP/3 test cases similar to HTTP/2
|
|
|
- multiuse of parallel transfers for HTTP/3, tested for ngtcp2 and quiche
|
|
|
|
|
|
- Fix for data attach/detach in VTLS filters that could lead to crashes
|
|
|
during parallel transfers.
|
|
|
- Eliminating setup() methods in cfilters, no longer needed.
|
|
|
- Improving Curl_conn_is_alive() to replace Curl_connalive() and
|
|
|
integrated ssl alive checks into cfilter.
|
|
|
- Adding CF_CNTRL_CONN_INFO_UPDATE to tell filters to update
|
|
|
connection into and persist it at the easy handle.
|
|
|
|
|
|
- Several more cfilter related cleanups and moves:
|
|
|
- stream_weigth and dependency info is now wrapped in struct
|
|
|
Curl_data_priority
|
|
|
- Curl_data_priority members depend is available in HTTP2|HTTP3
|
|
|
- Curl_data_priority members depend on NGHTTP2 support
|
|
|
- handling init/reset/cleanup of priority part of url.c
|
|
|
- data->state.priority same struct, but shallow copy for compares only
|
|
|
|
|
|
- PROTOPT_STREAM has been removed
|
|
|
- Curl_conn_is_mulitplex() now available to check on capability
|
|
|
|
|
|
- Adding query method to connection filters.
|
|
|
- ngtcp2+quiche: implementing query for max concurrent transfers.
|
|
|
|
|
|
- Adding is_alive and keep_alive cfilter methods. Adding DATA_SETUP event.
|
|
|
- setting keepalive timestamp on connect
|
|
|
- DATA_SETUP is called after the connection has been completely
|
|
|
setup (but may not connected yet) to allow filters to initialize
|
|
|
data members they use.
|
|
|
|
|
|
- there is no socket to be had with msh3, it is unclear how select
|
|
|
shall work
|
|
|
|
|
|
- manual test via "curl --http3 https://curl.se" fail with "empty
|
|
|
reply from server".
|
|
|
|
|
|
- Various socket/conn related cleanups:
|
|
|
- Curl_socket is now Curl_socket_open and in cf-socket.c
|
|
|
- Curl_closesocket is now Curl_socket_close and in cf-socket.c
|
|
|
- Curl_ssl_use has been replaced with Cur_conn_is_ssl
|
|
|
- Curl_conn_tcp_accepted_set has been split into
|
|
|
Curl_conn_tcp_listen_set and Curl_conn_tcp_accepted_set
|
|
|
with a clearer purpose
|
|
|
|
|
|
Closes #10141
|
|
|
|
|
|
Daniel Stenberg (30 Dec 2022)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- docs/libcurl/curl_getdate.3: minor whitespace edit
|
|
|
|
|
|
To avoid a fccp quirk that made it render wrongly on the website
|
|
|
|
|
|
- transfer: break the read loop when RECV is cleared
|
|
|
|
|
|
When the RECV bit is cleared because the response reading for this
|
|
|
transfer is complete, the read loop should be stopped. data_pending()
|
|
|
can otherwise still return TRUE and another read would be attempted.
|
|
|
|
|
|
Reported-by: Hide Ishikawa
|
|
|
Fixes #10172
|
|
|
Closes #10174
|
|
|
|
|
|
- multihandle: turn bool struct fields into bits
|
|
|
|
|
|
Closes #10179
|
|
|
|
|
|
Stefan Eissing (30 Dec 2022)
|
|
|
|
|
|
- ftpserver: lower the normal DATA connect timeout to speed up torture tests
|
|
|
|
|
|
- tests/ftpserver.pl blocks when expecting a DATA connection from the
|
|
|
client.
|
|
|
|
|
|
- the previous 10 seconds were encountered repeatedly in torture tests
|
|
|
and let to long waits.
|
|
|
|
|
|
- 2 seconds should still be sufficient for current hw, but CI will show.
|
|
|
|
|
|
Closes #10178
|
|
|
|
|
|
Nick Banks (28 Dec 2022)
|
|
|
|
|
|
- msh3: add support for request payload
|
|
|
|
|
|
Closes #10136
|
|
|
|
|
|
Stefan Eissing (28 Dec 2022)
|
|
|
|
|
|
- openssl: remove attached easy handles from SSL instances
|
|
|
|
|
|
- keeping the "current" easy handle registered at SSL* is no longer
|
|
|
necessary, since the "calling" data object is already stored in the
|
|
|
cfilter's context (and used by other SSL backends from there).
|
|
|
- The "detach" of an easy handle that goes out of scope is then avoided.
|
|
|
- using SSL_set0_wbio for clear reference counting where available.
|
|
|
|
|
|
Closes #10151
|
|
|
|
|
|
Daniel Stenberg (28 Dec 2022)
|
|
|
|
|
|
- socketpair: allow localhost MITM sniffers
|
|
|
|
|
|
Windows allow programs to MITM connections to localhost. The previous
|
|
|
check here would detect that and error out. This new method writes data
|
|
|
to verify the pipe thus allowing MITM.
|
|
|
|
|
|
Reported-by: SerusDev on github
|
|
|
Fixes #10144
|
|
|
Closes #10169
|
|
|
|
|
|
- HTTP3: mention what needs to be in place to remove EXPERIMENTAL label
|
|
|
|
|
|
Closes #10168
|
|
|
|
|
|
Andy Alt (28 Dec 2022)
|
|
|
|
|
|
- MANUAL.md: add pipe to apt-key example
|
|
|
|
|
|
Closes #10170
|
|
|
|
|
|
Daniel Stenberg (27 Dec 2022)
|
|
|
|
|
|
- test417: verify %{certs} output
|
|
|
|
|
|
- runtests: make 'mbedtls' a testable feature
|
|
|
|
|
|
Also add to FILEFORMAT.md
|
|
|
|
|
|
- writeout: add %{certs} and %{num_certs}
|
|
|
|
|
|
Let users get the server certificate chain using the command line
|
|
|
|
|
|
Closes #10019
|
|
|
|
|
|
Stefan Eissing (27 Dec 2022)
|
|
|
|
|
|
- haxproxy: send before TLS handhshake
|
|
|
|
|
|
- reverse order of haproxy and final ssl cfilter
|
|
|
|
|
|
- make haproxy avaiable on PROXY builds, independent of HTTP support as
|
|
|
it can be used with any protocol.
|
|
|
|
|
|
Reported-by: Sergio-IME on github
|
|
|
Fixes #10165
|
|
|
Closes #10167
|
|
|
|
|
|
Daniel Stenberg (27 Dec 2022)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- test446: verify hsts with two URLs
|
|
|
|
|
|
- runtests: support crlf="yes" for verify/proxy
|
|
|
|
|
|
- hsts: handle adding the same host name again
|
|
|
|
|
|
It will then use the largest expire time of the two entries.
|
|
|
|
|
|
- tool_operate: share HSTS between handles
|
|
|
|
|
|
- share: add sharing of HSTS cache among handles
|
|
|
|
|
|
Closes #10138
|
|
|
|
|
|
Viktor Szakats (27 Dec 2022)
|
|
|
|
|
|
- Makefile.mk: fix wolfssl and mbedtls default paths
|
|
|
|
|
|
Fix the defaults for `WOLFSSL_PATH` and `MBEDTLS_PATH` to have
|
|
|
meaningful values instead of the copy-pasted wrong ones.
|
|
|
|
|
|
Ref: https://github.com/curl/curl/commit/66e68ca47f7fd00dff2cb7c45ba6725d4009
|
|
|
9585#r94275172
|
|
|
|
|
|
Reported-by: Ryan Schmidt
|
|
|
Closes #10164
|
|
|
|
|
|
Daniel Stenberg (27 Dec 2022)
|
|
|
|
|
|
- INTERNALS: cleanup
|
|
|
|
|
|
- remove "operating systems" (mostly outdated)
|
|
|
|
|
|
- upodate the "build tools"
|
|
|
|
|
|
Closes #10162
|
|
|
|
|
|
- cmake: bump requirement to 3.7
|
|
|
|
|
|
Because this is the cmake version (released in November 2016) that
|
|
|
introduced GREATER_EQUAL, which is used already.
|
|
|
|
|
|
Reported-by: nick-telia on github
|
|
|
Fixes #10128
|
|
|
Closes #10161
|
|
|
|
|
|
- cfilters:Curl_conn_get_select_socks: use the first non-connected filter
|
|
|
|
|
|
When there are filters addded for both socket and SSL, the code
|
|
|
previously checked the SSL sockets during connect when it *should* first
|
|
|
check the socket layer until that has connected.
|
|
|
|
|
|
Fixes #10157
|
|
|
Fixes #10146
|
|
|
Closes #10160
|
|
|
|
|
|
Reviewed-by: Stefan Eissing
|
|
|
|
|
|
- urlapi: add CURLU_PUNYCODE
|
|
|
|
|
|
Allows curl_url_get() get the punycode version of host names for the
|
|
|
host name and URL parts.
|
|
|
|
|
|
Extend test 1560 to verify.
|
|
|
|
|
|
Closes #10109
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- libssh2: try sha2 algos for hostkey methods
|
|
|
|
|
|
As is supported by recent libssh2, but should just be ignored by older
|
|
|
versions.
|
|
|
|
|
|
Reported-by: norbertmm on github
|
|
|
Assisted-by: norbertmm on github
|
|
|
Fixes #10143
|
|
|
Closes #10145
|
|
|
|
|
|
Patrick Monnerat (26 Dec 2022)
|
|
|
|
|
|
- typecheck: accept expressions for option/info parameters
|
|
|
|
|
|
As expressions can have side effects, evaluate only once.
|
|
|
|
|
|
To enable deprecation reporting only once, get rid of the __typeof__
|
|
|
use to define the local temporary variable and use the target type
|
|
|
(CURLoption/CURLINFO). This also avoids multiple reports on type
|
|
|
conflicts (if some) by the curlcheck_* macros.
|
|
|
|
|
|
Note that CURLOPT_* and CURLINFO_* symbols may be deprecated, but not
|
|
|
their values: a curl_easy_setopt call with an integer constant as option
|
|
|
will never report a deprecation.
|
|
|
|
|
|
Reported-by: Thomas Klausner
|
|
|
Fixes #10148
|
|
|
Closes #10149
|
|
|
|
|
|
Paul Howarth (26 Dec 2022)
|
|
|
|
|
|
- tests: avoid use of sha1 in certificates
|
|
|
|
|
|
The SHA-1 algorithm is deprecated (particularly for security-sensitive
|
|
|
applications) in a variety of OS environments. This already affects
|
|
|
RHEL-9 and derivatives, which are not willing to use certificates using
|
|
|
that algorithm. The fix is to use sha256 instead, which is already used
|
|
|
for most of the other certificates in the test suite.
|
|
|
|
|
|
Fixes #10135
|
|
|
|
|
|
This gets rid of issues related to sha1 signatures.
|
|
|
|
|
|
Manual steps after "make clean-certs" and "make build-certs":
|
|
|
|
|
|
- Copy tests/certs/stunnel-sv.pem to tests/stunnel.pem
|
|
|
(make clean-certs does not remove the original tests/stunnel.pem)
|
|
|
|
|
|
- Copy tests/certs/Server-localhost-sv.pubkey-pinned into --pinnedpubkey
|
|
|
options of tests/data/test2041 and tests/data/test2087
|
|
|
|
|
|
Closes #10153
|
|
|
|
|
|
Yurii Rashkovskii (26 Dec 2022)
|
|
|
|
|
|
- cmake: fix the snprintf detection
|
|
|
|
|
|
I haven't had the time to check other configurations, but on my macOS
|
|
|
Ventura 13.1 with XCode 14.2 cmake does not find `snprintf`.
|
|
|
|
|
|
Solution: ensure stdio.h is checked for definitions
|
|
|
|
|
|
Closes #10155
|
|
|
|
|
|
Radu Hociung (26 Dec 2022)
|
|
|
|
|
|
- http: remove the trace message "Mark bundle... multiuse"
|
|
|
|
|
|
The message "Mark bundle as not supporting multiuse" was added at commit
|
|
|
29364d93 when an http/2-related bug was fixed, and it appears to be a
|
|
|
leftover trace message.
|
|
|
|
|
|
This message should be removed because:
|
|
|
* it conveys no information to the user
|
|
|
* it is enabled in the default build (--enable-verbose)
|
|
|
* it reads like a warning/unexpected condition
|
|
|
* it is equivalent to "Detected http proto < 2", which is
|
|
|
not a useful message.
|
|
|
* it is a time-wasting red-herring for anyone who encounters
|
|
|
it for the first time while investigating some other, real
|
|
|
problem.
|
|
|
|
|
|
This commit removes the trace message "Mark bundle as not
|
|
|
supporting multiuse"
|
|
|
|
|
|
Closes #10159
|
|
|
|
|
|
Hannah Schierling (26 Dec 2022)
|
|
|
|
|
|
- url: fix build with `--disable-cookies`
|
|
|
|
|
|
Struct `UserDefined` has no member `cookielist` if
|
|
|
`CURL_DISABLE_COOKIES` is defined.
|
|
|
|
|
|
Follow-up to af5999a
|
|
|
|
|
|
Closes #10158
|
|
|
|
|
|
Stefan Eissing (23 Dec 2022)
|
|
|
|
|
|
- runtests: also tear down http2/http3 servers when https server is stopped
|
|
|
|
|
|
Closes #10114
|
|
|
|
|
|
- tests: add 3 new HTTP/2 test cases, plus https: support for nghttpx
|
|
|
|
|
|
- a simple https get
|
|
|
- a simple https post
|
|
|
- a multi get of 4 requests and check that same connection was used
|
|
|
|
|
|
Closes #10114
|
|
|
|
|
|
Daniel Stenberg (23 Dec 2022)
|
|
|
|
|
|
- urldata: remove unused struct fields, made more conditional
|
|
|
|
|
|
- source_quote, source_prequote and source_postquote have not been used since
|
|
|
5e0d9aea3; September 2006
|
|
|
|
|
|
- make several fields conditional on proxy support
|
|
|
|
|
|
- make three quote struct fields conditional on FTP || SSH
|
|
|
|
|
|
- make 'mime_options' depend on MIME
|
|
|
|
|
|
- make trailer_* fields depend on HTTP
|
|
|
|
|
|
- change 'gssapi_delegation' from long to unsigned char
|
|
|
|
|
|
- make 'localportrange' unsigned short instead of int
|
|
|
|
|
|
- conn->trailer now depends on HTTP
|
|
|
|
|
|
Closes #10147
|
|
|
|
|
|
- urldata: make set.http200aliases conditional on HTTP being present
|
|
|
|
|
|
And make a few SSH-only fields depend on SSH
|
|
|
|
|
|
Closes #10140
|
|
|
|
|
|
- md4: fix build with GnuTLS + OpenSSL v1
|
|
|
|
|
|
Reported-by: Esdras de Morais da Silva
|
|
|
|
|
|
Fixes #10110
|
|
|
Closes #10142
|
|
|
|
|
|
- urldata: make 'ftp_create_missing_dirs' depend on FTP || SFTP
|
|
|
|
|
|
Closes #10139
|
|
|
|
|
|
John Bampton (22 Dec 2022)
|
|
|
|
|
|
- misc: fix grammar and spelling
|
|
|
|
|
|
Closes #10137
|
|
|
|
|
|
Daniel Stenberg (22 Dec 2022)
|
|
|
|
|
|
- urldata: move the cookefilelist to the 'set' struct
|
|
|
|
|
|
The cookiefile entries are set into the handle and should remain set for
|
|
|
the lifetime of the handle so that duplicating it also duplicates the
|
|
|
list. Therefore, the struct field is moved from 'state' to 'set'.
|
|
|
|
|
|
Fixes #10133
|
|
|
Closes #10134
|
|
|
|
|
|
- strdup: name it Curl_strdup
|
|
|
|
|
|
It does not belong in the curlx_ name space as it is never used
|
|
|
externally.
|
|
|
|
|
|
Closes #10132
|
|
|
|
|
|
Nick Banks (22 Dec 2022)
|
|
|
|
|
|
- msh3: update to v0.5 Release
|
|
|
|
|
|
Closes #10125
|
|
|
|
|
|
Andy Alt (22 Dec 2022)
|
|
|
|
|
|
- workflows/linux.yml: merge 3 common packages
|
|
|
|
|
|
Closes #10071
|
|
|
|
|
|
Daniel Stenberg (21 Dec 2022)
|
|
|
|
|
|
- docs: mention indirect effects of --insecure
|
|
|
|
|
|
Warn users that disabling certficate verification allows servers to
|
|
|
"pollute" curl with data it trusts.
|
|
|
|
|
|
Reported-by: Harry Sintonen
|
|
|
Closes #10126
|
|
|
|
|
|
- SECURITY-PROCESS.md: document severity levels
|
|
|
|
|
|
Closes #10118
|
|
|
|
|
|
- RELEASE_NOTES: synced
|
|
|
|
|
|
bumped version for new cycle
|
|
|
|
|
|
Marcel Raad (21 Dec 2022)
|
|
|
|
|
|
- tool_operate: fix `CURLOPT_SOCKS5_GSSAPI_NEC` type
|
|
|
|
|
|
`CURLOPT_SOCKS5_GSSAPI_NEC` is a long, while `socks5_gssapi_nec` was
|
|
|
made a bool in commit 4ac64eadf60.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10124
|
|
|
|
|
|
Version 7.87.0 (21 Dec 2022)
|
|
|
|
|
|
Daniel Stenberg (21 Dec 2022)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
The curl 7.87.0 release
|
|
|
|
|
|
- THANKS: 40 new contributors from 7.87.0
|
|
|
|
|
|
- http: fix the ::1 comparison for IPv6 localhost for cookies
|
|
|
|
|
|
When checking if there is a "secure context", which it is if the
|
|
|
connection is to localhost even if the protocol is HTTP, the comparison
|
|
|
for ::1 was done incorrectly and included brackets.
|
|
|
|
|
|
Reported-by: BratSinot on github
|
|
|
|
|
|
Fixes #10120
|
|
|
Closes #10121
|
|
|
|
|
|
Philip Heiduck (19 Dec 2022)
|
|
|
|
|
|
- CI/spell: actions/checkout@v2 > actions/checkout@v3
|
|
|
|
|
|
Daniel Stenberg (19 Dec 2022)
|
|
|
|
|
|
- smb/telnet: do not free the protocol struct in *_done()
|
|
|
|
|
|
It is managed by the generic layer.
|
|
|
|
|
|
Reported-by: Trail of Bits
|
|
|
|
|
|
Closes #10112
|
|
|
|
|
|
- http: use the IDN decoded name in HSTS checks
|
|
|
|
|
|
Otherwise it stores the info HSTS into the persistent cache for the IDN
|
|
|
name which will not match when the HSTS status is later checked for
|
|
|
using the decoded name.
|
|
|
|
|
|
Reported-by: Hiroki Kurosawa
|
|
|
|
|
|
Closes #10111
|
|
|
|
|
|
- CURLOPT_DEBUGFUNCTION.3: emphasize that incoming data is "raw"
|
|
|
|
|
|
Closes #10106
|
|
|
|
|
|
Xì Gà (16 Dec 2022)
|
|
|
|
|
|
- socks: fix username max size is 255 (0xFF)
|
|
|
|
|
|
Closes #10105
|
|
|
|
|
|
Reviewed-by: Daniel Gustafsson
|
|
|
|
|
|
Daniel Stenberg (16 Dec 2022)
|
|
|
|
|
|
- limit-rate.d: see also --rate
|
|
|
|
|
|
- lib1560: add some basic IDN host name tests
|
|
|
|
|
|
Closes #10094
|
|
|
|
|
|
- idn: rename the files to idn.[ch] and hold all IDN functions
|
|
|
|
|
|
Closes #10094
|
|
|
|
|
|
- idn: remove Curl_win32_ascii_to_idn
|
|
|
|
|
|
It was not used. Introduce a new IDN header for the prototype(s).
|
|
|
|
|
|
Closes #10094
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- curl_url_get.3: remove spurious backtick
|
|
|
|
|
|
Put there by mistake.
|
|
|
|
|
|
Follow-up from 9a8564a92
|
|
|
|
|
|
Closes #10101
|
|
|
|
|
|
- socks: fix infof() flag for outputing a char
|
|
|
|
|
|
It used to be a 'long', %lu is no longer correct.
|
|
|
|
|
|
Follow-up to 57d2d9b6bed33d
|
|
|
Detected by Coverity CID 1517663
|
|
|
|
|
|
Closes #10100
|
|
|
|
|
|
- ssl-reqd.d: clarify that this is for upgrading connections only
|
|
|
|
|
|
Closes #10093
|
|
|
|
|
|
- curl_url_set.3: document CURLU_DISALLOW_USER
|
|
|
|
|
|
Closes #10099
|
|
|
|
|
|
- cmake: set the soname on the shared library
|
|
|
|
|
|
Set SONAME and VERSION for platforms we think this works on. Remove
|
|
|
issue from KNOWN_BUGS.
|
|
|
|
|
|
Assisted-by: Jakub Zakrzewski
|
|
|
|
|
|
Closes #10023
|
|
|
|
|
|
- tool_paramhlp: free the proto strings on exit
|
|
|
|
|
|
And also make sure that repeated use of the options free the previous
|
|
|
string before it stores a new.
|
|
|
|
|
|
Follow-up from e6f8445edef8e7996d
|
|
|
|
|
|
Closes #10098
|
|
|
|
|
|
- tool_cfgable: free the ssl_ec_curves on exit
|
|
|
|
|
|
Follow-up to ede125b7b
|
|
|
|
|
|
Closes #10097
|
|
|
|
|
|
- urlapi: reject more bad letters from the host name: &+()
|
|
|
|
|
|
Follow-up from eb0167ff7d31d3a5
|
|
|
|
|
|
Extend test 1560 to verify
|
|
|
|
|
|
Closes #10096
|
|
|
|
|
|
- altsvc: fix rejection of negative port numbers
|
|
|
|
|
|
Follow-up to ac612dfeee95
|
|
|
|
|
|
strtoul() accepts a leading minus so better make sure there is none
|
|
|
|
|
|
Extended test 356 somewhat to use a huge negative 64 bit number that
|
|
|
otherwise becomes a low positive number.
|
|
|
|
|
|
Closes #10095
|
|
|
|
|
|
- lib: use size_t or int etc instead of longs
|
|
|
|
|
|
Since long is not using a consistent data size in curl builds, making it
|
|
|
often "waste" 32 bits.
|
|
|
|
|
|
Closes #10088
|
|
|
|
|
|
- azure: use "unversioned" clang and clang-tools for scanbuild job
|
|
|
|
|
|
To make it less fragile
|
|
|
|
|
|
Closes #10092
|
|
|
|
|
|
Daniel Gustafsson (14 Dec 2022)
|
|
|
|
|
|
- x509asn1: avoid freeing unallocated pointers
|
|
|
|
|
|
When utf8asn1str fails there is no allocation returned, so freeing
|
|
|
the return pointer in **to is at best a no-op and at worst a double-
|
|
|
free bug waiting to happen. The current coding isn't hiding any such
|
|
|
bugs but to future proof, avoid freeing the return value pointer iff
|
|
|
the function failed.
|
|
|
|
|
|
Closes: #10087
|
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
|
|
|
|
Emil Engler (13 Dec 2022)
|
|
|
|
|
|
- curl_url_set.3: fix typo
|
|
|
|
|
|
Closes: #10089
|
|
|
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
|
|
|
|
|
|
Daniel Stenberg (13 Dec 2022)
|
|
|
|
|
|
- test2304: verify websocket handling when connection is closed
|
|
|
|
|
|
- server/sws: if asked to close connection, skip the websocket handling
|
|
|
|
|
|
- ws: if no connection is around, return error
|
|
|
|
|
|
- curl_ws_send returns CURLE_SEND_ERROR if data->conn is gone
|
|
|
|
|
|
- curl_ws_recv returns CURLE_GOT_NOTHING on connection close
|
|
|
|
|
|
- curl_ws_recv.3: mention new return code for connection close + example
|
|
|
embryo
|
|
|
|
|
|
Closes #10084
|
|
|
|
|
|
Emil Engler (13 Dec 2022)
|
|
|
|
|
|
- docs: extend the dump-header documentation
|
|
|
|
|
|
This commit extends the documentation of the --dump-header command-line
|
|
|
option to reflect the behavior introduced in 8b1e5df7.
|
|
|
|
|
|
See #10079
|
|
|
Closes #10085
|
|
|
|
|
|
Daniel Stenberg (12 Dec 2022)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- styled-output.d: this option does not work on Windows
|
|
|
|
|
|
Reported-by: u20221022 on github
|
|
|
|
|
|
Fixes #10082
|
|
|
Closes #10083
|
|
|
|
|
|
Emil Engler (12 Dec 2022)
|
|
|
|
|
|
- tool: determine the correct fopen option for -D
|
|
|
|
|
|
This commit fixes a bug in the dump-header feature regarding the
|
|
|
determination of the second fopen(3) option.
|
|
|
|
|
|
Reported-by: u20221022 on github
|
|
|
|
|
|
See #4753
|
|
|
See #4762
|
|
|
Fixes #10074
|
|
|
Closes #10079
|
|
|
|
|
|
Christian Schmitz (11 Dec 2022)
|
|
|
|
|
|
- docs/curl_ws_send: Fixed typo in websocket docs
|
|
|
|
|
|
Replace as with is in relevant sentences.
|
|
|
|
|
|
Closes: #10081
|
|
|
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
|
|
|
|
|
|
Prithvi MK (11 Dec 2022)
|
|
|
|
|
|
- c-hyper: fix multi-request mechanism
|
|
|
|
|
|
It makes test 565 run fine.
|
|
|
|
|
|
Fixes #8896
|
|
|
Closes #10080
|
|
|
Assisted-by: Daniel Stenberg
|
|
|
|
|
|
Andy Alt (11 Dec 2022)
|
|
|
|
|
|
- page-header: grammar improvement (display transfer rate)
|
|
|
|
|
|
Closes #10068
|
|
|
|
|
|
- docs/DEPRECATE.md: grammar improvement and sp correction
|
|
|
|
|
|
The main thing I wanted to do was fix the spelling of "spent", but I
|
|
|
think this rewording improves the flow of the paragraph.
|
|
|
|
|
|
Closes #10067
|
|
|
|
|
|
Boris Verkhovskiy (11 Dec 2022)
|
|
|
|
|
|
- tool_cfgable: make socks5_gssapi_nec a boolean
|
|
|
|
|
|
Closes #10078
|
|
|
|
|
|
Frank Gevaerts (9 Dec 2022)
|
|
|
|
|
|
- contributors.sh: actually use $CURLWWW instead of just setting it.
|
|
|
|
|
|
The script was all set up for flexibility where curl-www is elsewhere in
|
|
|
the filesystem, but then hard-coded ../curl-www anyway...
|
|
|
|
|
|
Closes #10064
|
|
|
|
|
|
Daniel Stenberg (9 Dec 2022)
|
|
|
|
|
|
- KNOWN_BUGS: remove items not considered bugs any more
|
|
|
|
|
|
- CURL_GLOBAL_SSL
|
|
|
|
|
|
This option was changed in libcurl 7.57.0 and clearly it has not caused
|
|
|
too many issues and a lot of time has passed.
|
|
|
|
|
|
- Store TLS context per transfer instead of per connection
|
|
|
|
|
|
This is a possible future optimization. One that is much less important
|
|
|
and interesting since the added support for CA caching.
|
|
|
|
|
|
- Microsoft telnet server
|
|
|
|
|
|
This bug was filed in May 2007 against curl 7.16.1 and we have not
|
|
|
received further reports.
|
|
|
|
|
|
- active FTP over a SOCKS
|
|
|
|
|
|
Actually, proxies in general is not working with active FTP mode. This
|
|
|
is now added in proxy documentation.
|
|
|
|
|
|
- DICT responses show the underlying protocol
|
|
|
|
|
|
curl still does this, but since this is now an established behavior
|
|
|
since forever we cannot change it easily and adding an option for it
|
|
|
seems crazy as this protocol is not so little its not worth it. Let's
|
|
|
just live with it.
|
|
|
|
|
|
- Secure Transport disabling hostname validation also disables SNI
|
|
|
|
|
|
This is an already documented restriction in Secure Transport.
|
|
|
|
|
|
- CURLOPT_SEEKFUNCTION not called with CURLFORM_STREAM
|
|
|
|
|
|
The curl_formadd() function is marked and documented as deprecated. No
|
|
|
point in collecting bugs for it. It should not be used further.
|
|
|
|
|
|
- STARTTRANSFER time is wrong for HTTP POSTs
|
|
|
|
|
|
After close source code inspection I cannot see how this is true or that
|
|
|
there is any special treatment for different HTTP methods. We also have
|
|
|
not received many further reports on this, making me strongly suspect
|
|
|
that this is no (longer an) issue.
|
|
|
|
|
|
- multipart formposts file name encoding
|
|
|
|
|
|
The once proposed RFC 5987-encoding is since RFC 7578 documented as MUST
|
|
|
NOT be used. The since then implemented MIME API allows the user to set
|
|
|
the name on their own and can thus provide it encoded as it wants.
|
|
|
|
|
|
- DoH is not used for all name resolves when enabled
|
|
|
|
|
|
It is questionable if users actually want to use DoH for interface and
|
|
|
FTP port name resolving. This restriction is now documented and we
|
|
|
advice users against using name resolving at all for these functions.
|
|
|
|
|
|
Closes #10043
|
|
|
|
|
|
- CURLOPT_COOKIEFILE.3: advice => advise
|
|
|
|
|
|
Closes #10063
|
|
|
|
|
|
Reviewed-by: Daniel Gustafsson
|
|
|
|
|
|
Daniel Gustafsson (9 Dec 2022)
|
|
|
|
|
|
- curl.h: reword comment to not use deprecated option
|
|
|
|
|
|
CURLOPT_INFILE was replaced by CURLOPT_READDATA in 7.9.7, reword the
|
|
|
comment mentioning it to make code grepping easier as well as improve
|
|
|
the documentation.
|
|
|
|
|
|
Closes: #10062
|
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
|
|
|
|
Ryan Schmidt (9 Dec 2022)
|
|
|
|
|
|
- system.h: fix socklen_t, curl_off_t, long long for Classic Mac OS
|
|
|
|
|
|
Change "__MWERKS__" to "macintosh". When this block was originally added
|
|
|
in 3ac6929 it was probably intended to handle classic Mac OS since the
|
|
|
previous classic Mac OS build procedure for curl (which was removed in
|
|
|
bf327a9) used Metrowerks CodeWarrior.
|
|
|
|
|
|
But there are other classic Mac OS compilers, such as the MPW compilers,
|
|
|
that were not handled by this case. For classic Mac OS,
|
|
|
CURL_TYPEOF_CURL_SOCKLEN_T needs to match what's provided by the
|
|
|
third-party GUSI library, which does not vary by compiler.
|
|
|
|
|
|
Meanwhile CodeWarrior works on platforms other than classic Mac OS, and
|
|
|
they may need different definitions. Separate blocks could be added
|
|
|
later for any of those platforms that curl doesn't already support.
|
|
|
|
|
|
Closes #10049
|
|
|
|
|
|
- vms: remove SIZEOF_SHORT
|
|
|
|
|
|
The rest of SIZEOF_SHORT was removed in d48dd15.
|
|
|
|
|
|
See #9291
|
|
|
Closes #10061
|
|
|
|
|
|
Daniel Gustafsson (8 Dec 2022)
|
|
|
|
|
|
- tool_formparse: avoid clobbering on function params
|
|
|
|
|
|
While perfectly legal to do, clobbering function parameters and using
|
|
|
them as local variables is confusing at best and rarely improves code
|
|
|
readability. Fix by using a local variable instead, no functionality
|
|
|
is changed.
|
|
|
|
|
|
This also renames the parameter from data to mime_data since the term
|
|
|
data is (soft) reserved for the easy handle struct.
|
|
|
|
|
|
Closes: #10046
|
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
|
|
|
|
- noproxy: guard against empty hostnames in noproxy check
|
|
|
|
|
|
When checking for a noproxy setting we need to ensure that we get
|
|
|
a hostname passed in. If there is no hostname then there cannot be
|
|
|
a matching noproxy rule for it by definition.
|
|
|
|
|
|
Closes: #10057
|
|
|
Reported-by: Geeknik Labs
|
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
|
|
|
|
Daniel Stenberg (8 Dec 2022)
|
|
|
|
|
|
- c-hyper: CONNECT respones are not server responses
|
|
|
|
|
|
Together with d31915a8dbbd it makes test 265 run fine.
|
|
|
|
|
|
Fixes #8853
|
|
|
Assisted-by: Prithvi MK
|
|
|
Assisted-by: Sean McArthur
|
|
|
Closes #10060
|
|
|
|
|
|
- test265: Use "connection: keep-alive" response header
|
|
|
|
|
|
When it answers as HTTP/1.0, so that clients (hyper) knows properly that
|
|
|
the connection remains intact.
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Stefan Eissing (8 Dec 2022)
|
|
|
|
|
|
- cfilter: improve SSL connection checks
|
|
|
|
|
|
- fixes `Curl_ssl_cf_get_ssl()` to detect also the first filter instance
|
|
|
as ssl (refs #10053)
|
|
|
|
|
|
- replaces `Curl_ssl_use()` with the correct `Curl_conn_is_ssl()`
|
|
|
|
|
|
Closes #10054
|
|
|
Fixes #10053
|
|
|
|
|
|
Reported-by: Patrick Monnerat
|
|
|
|
|
|
Daniel Stenberg (8 Dec 2022)
|
|
|
|
|
|
- runtests: silence nghttpx errors
|
|
|
|
|
|
Also, move the output of the nghttpx_h3 info to the general "Env:" line
|
|
|
in the test output header.
|
|
|
|
|
|
Reported-by: Marcel Raad
|
|
|
Ref: https://github.com/curl/curl/commit/ca15b7512e8d1199e55fbaa206ef01e64b8f
|
|
|
147d#commitcomment-92015094
|
|
|
Closes #10044
|
|
|
|
|
|
Ryan Schmidt (7 Dec 2022)
|
|
|
|
|
|
- config-mac: define HAVE_SYS_IOCTL_H
|
|
|
|
|
|
This is needed to compile nonblock.c on classic Mac OS with Grand
|
|
|
Unified Socket Interface (GUSI) because nonblock.c uses FIONBIO which is
|
|
|
defined in <sys/filio.h> which is included by <sys/ioctl.h>.
|
|
|
|
|
|
Ref: https://sourceforge.net/projects/gusi/
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10042
|
|
|
|
|
|
Philip Heiduck (7 Dec 2022)
|
|
|
|
|
|
- CI: Change FreeBSD image from 12.3 to 12.4
|
|
|
|
|
|
Ref: https://www.phoronix.com/news/FreeBSD-12.4-Released
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10051
|
|
|
|
|
|
Ryan Schmidt (7 Dec 2022)
|
|
|
|
|
|
- test1421: fix typo
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/10055
|
|
|
|
|
|
Jay Satiro (7 Dec 2022)
|
|
|
|
|
|
- build: assume errno.h is always available
|
|
|
|
|
|
- Remove errno.h detection from all build configurations.
|
|
|
|
|
|
errno.h is a standard header according to C89.
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/9986
|
|
|
|
|
|
- build: assume assert.h is always available
|
|
|
|
|
|
- Remove assert.h detection from all build configurations.
|
|
|
|
|
|
assert.h is a standard header according to C89.
|
|
|
|
|
|
I had proposed this several years ago as part of a larger change that
|
|
|
was abandoned.
|
|
|
|
|
|
Ref: https://github.com/curl/curl/issues/1237#issuecomment-277500720
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/9985
|
|
|
|
|
|
Philip Heiduck (7 Dec 2022)
|
|
|
|
|
|
- CI: LGTM.com will be shut down in December 2022
|
|
|
|
|
|
Closes #10052
|
|
|
|
|
|
Daniel Stenberg (6 Dec 2022)
|
|
|
|
|
|
- mailmap: Andy Alt
|
|
|
|
|
|
Andy Alt (6 Dec 2022)
|
|
|
|
|
|
- misc: Fix incorrect spelling
|
|
|
|
|
|
Fix various uses of connnect by replacing them with connect.
|
|
|
|
|
|
Closes: #10045
|
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
|
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
|
|
|
|
|
|
Stefan Eissing (6 Dec 2022)
|
|
|
|
|
|
- wolfssl: remove special BIO return code handling
|
|
|
|
|
|
- rely solely on the retry flag in BIO, similar to OpenSSL vtls
|
|
|
implementation.
|
|
|
|
|
|
Ref: https://github.com/curl/curl/pull/10021#issuecomment-1336147053
|
|
|
|
|
|
Closes #10033
|
|
|
|
|
|
Daniel Stenberg (6 Dec 2022)
|
|
|
|
|
|
- openssl: return -1 on error in the BIO callbacks
|
|
|
|
|
|
BIO_read and BIO_write return negative numbers on error, including
|
|
|
retryable ones. A regression from 55807e6. Both branches should be
|
|
|
returning -1.
|
|
|
|
|
|
The APIs are patterned after POSIX read and write which, similarly,
|
|
|
return -1 on errors, not zero, with EAGAIN treated as an error.
|
|
|
|
|
|
Bug: https://github.com/curl/curl/issues/10013#issuecomment-1335308146
|
|
|
Reported-by: David Benjamin
|
|
|
Closes #10021
|
|
|
|
|
|
Ryan Schmidt (6 Dec 2022)
|
|
|
|
|
|
- config-mac: remove HAVE_SYS_SELECT_H
|
|
|
|
|
|
When compiling for classic Mac OS with GUSI, there is no sys/select.h.
|
|
|
GUSI provides the "select" function prototype in sys/time.h.
|
|
|
|
|
|
Closes #10039
|
|
|
|
|
|
- setup: do not require __MRC__ defined for Mac OS 9 builds
|
|
|
|
|
|
Partially reverts "somewhat protect Mac OS X users from using Mac OS 9
|
|
|
config file", commit 62519bfe059251af2914199f284c736553ff0489.
|
|
|
|
|
|
Do things that are specific to classic Mac OS (i.e. include config-mac.h
|
|
|
in curl_setup.h and rename "main" to "curl_main" in tool_setup.h) when
|
|
|
only "macintosh" is defined. Remove the additional condition that
|
|
|
"__MRC__" should be defined since that would only be true with the MPW
|
|
|
MrC compiler which prevents the use of other reasonable compilers like
|
|
|
the MPW SC compiler and especially the Metrowerks CodeWarrior compilers.
|
|
|
"macintosh" is only defined by classic Mac OS compilers so this change
|
|
|
should not affect users of Mac OS X / OS X / macOS / any other OS.
|
|
|
|
|
|
Closes #10037
|
|
|
|
|
|
- curl.h: name all public function parameters
|
|
|
|
|
|
Most public function parameters already have names; this adds those
|
|
|
that were missing.
|
|
|
|
|
|
Closes #10036
|
|
|
|
|
|
Andy Alt (6 Dec 2022)
|
|
|
|
|
|
- docs/examples: spell correction ('Retrieve')
|
|
|
|
|
|
Closes #10040
|
|
|
|
|
|
Daniel Stenberg (6 Dec 2022)
|
|
|
|
|
|
- unit1302: slightly extended
|
|
|
|
|
|
To test more base64 decoding
|
|
|
|
|
|
- base64: faster base64 decoding
|
|
|
|
|
|
- by using a lookup table instead of strchr()
|
|
|
- by doing full quantums first, then padding
|
|
|
|
|
|
Closes #10032
|
|
|
|
|
|
Michael Musset (6 Dec 2022)
|
|
|
|
|
|
- libssh2: return error when ssh_hostkeyfunc returns error
|
|
|
|
|
|
return CURLE_PEER_FAILED_VERIFICATION if verification with the callback
|
|
|
return a result different than CURLKHMATCH_OK
|
|
|
|
|
|
Closes #10034
|
|
|
|
|
|
Viktor Szakats (5 Dec 2022)
|
|
|
|
|
|
- Makefile.mk: improve a GNU Make hack [ci skip]
|
|
|
|
|
|
Replace the hack of using `$() ` to represent a single space. The new
|
|
|
method silences the `--warn-undefined-variables` debug warning and it's
|
|
|
also a better-known form of solving this problem.
|
|
|
|
|
|
Reviewed-by: Jay Satiro
|
|
|
Closes #10031
|
|
|
|
|
|
Daniel Stenberg (5 Dec 2022)
|
|
|
|
|
|
- tests/unit/.gitignore: ignore all unit + 4 digits files
|
|
|
|
|
|
- base64: encode without using snprintf
|
|
|
|
|
|
For speed. In some tests, this approch is 29 times faster!
|
|
|
|
|
|
Closes #10026
|
|
|
|
|
|
- base64: better alloc size
|
|
|
|
|
|
The previous algorithm allocated more bytes than necessary.
|
|
|
|
|
|
Suggested-by: xtonik on github
|
|
|
Fixes #10024
|
|
|
Closes #10025
|
|
|
|
|
|
Ryan Schmidt (5 Dec 2022)
|
|
|
|
|
|
- config-mac: fix typo: size_T -> size_t
|
|
|
|
|
|
Both MPW and CodeWarrior compilers complained about this.
|
|
|
|
|
|
Closes #10029
|
|
|
|
|
|
Daniel Stenberg (3 Dec 2022)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Jakub Zakrzewski (2 Dec 2022)
|
|
|
|
|
|
- CMake: fix build with `CURL_USE_GSSAPI`
|
|
|
|
|
|
CMAKE_*_LINKER_FLAGS must be a string but GSS_LINKER_FLAGS is a list, so
|
|
|
we need to replace semicolons with spaces when setting those.
|
|
|
|
|
|
Fixes #9017
|
|
|
Closes #1022
|
|
|
|
|
|
Max Dymond (2 Dec 2022)
|
|
|
|
|
|
- ci: Reuse fuzzing snippet from curl-fuzzer project
|
|
|
|
|
|
Diogo Teles Sant'Anna (2 Dec 2022)
|
|
|
|
|
|
- GHA: clarify workflows permissions, set least possible privilege
|
|
|
|
|
|
Set top-level permissions to None on all workflows, setting per-job
|
|
|
permissions. This avoids that new jobs inherit unwanted permissions.
|
|
|
|
|
|
Discussion: https://curl.se/mail/lib-2022-11/0028.html
|
|
|
|
|
|
Signed-off-by: Diogo Teles Sant'Anna <diogoteles@google.com>
|
|
|
|
|
|
Closes #9928
|
|
|
|
|
|
Viktor Szakats (2 Dec 2022)
|
|
|
|
|
|
- Makefile.mk: address minor issues
|
|
|
|
|
|
- Fix `NROFF` auto-detection with certain shell/make-build combinations:
|
|
|
|
|
|
When a non-MSYS2 GNU Make runs inside an MSYS2 shell, Make executes
|
|
|
the detection command as-is via `CreateProcess()`. It fails because
|
|
|
`command` is an `sh` built-in. Ensure to explicitly invoke the shell.
|
|
|
|
|
|
- Initialize user-customizable variables:
|
|
|
|
|
|
Silences a list of warnings when running GNU Make with the option
|
|
|
`--warn-undefined-variables`. Another benefit is that it's now easy
|
|
|
to look up all user-customizable `Makefile.mk` variables by grepping
|
|
|
for ` ?=` in the curl source tree.
|
|
|
|
|
|
Suggested-by: Gisle Vanem
|
|
|
Ref: https://github.com/curl/curl/pull/9764#issuecomment-1330674433
|
|
|
|
|
|
- Fix `MKDIR` invocation:
|
|
|
|
|
|
Avoid a warning and potential issue in envs without forward-slash
|
|
|
support.
|
|
|
|
|
|
Closes #10000
|
|
|
|
|
|
Rob de Wit (2 Dec 2022)
|
|
|
|
|
|
- curl_get_line: allow last line without newline char
|
|
|
|
|
|
improve backwards compatibility
|
|
|
|
|
|
Test 3200 verifies
|
|
|
|
|
|
Closes #9973
|
|
|
|
|
|
Daniel Stenberg (2 Dec 2022)
|
|
|
|
|
|
- cookie: open cookie jar as a binary file
|
|
|
|
|
|
On Windows there is a difference and for text files, ^Z means end of
|
|
|
file which is not desirable.
|
|
|
|
|
|
Ref: #9973
|
|
|
Closes #10017
|
|
|
|
|
|
- runtests: only do CRLF replacements for hyper if it is HTTP
|
|
|
|
|
|
Closes #10016
|
|
|
|
|
|
Stefan Eissing (1 Dec 2022)
|
|
|
|
|
|
- openssl: fix for BoringSSL BIO result interpretation mixups
|
|
|
|
|
|
Reported-by: Robin Marx
|
|
|
Fixes #10013
|
|
|
Closes #10015
|
|
|
|
|
|
Max Dymond (1 Dec 2022)
|
|
|
|
|
|
- ci: Remove zuul fuzzing job as it's superseded by CIFuzz
|
|
|
|
|
|
Daniel Stenberg (1 Dec 2022)
|
|
|
|
|
|
- runtests: do CRLF replacements per section only
|
|
|
|
|
|
The `crlf="yes"` attribute and "hyper mode" are now only applied on a
|
|
|
subset of dedicated sections: data, datacheck, stdout and protocol.
|
|
|
|
|
|
Updated test 2500 accordingly.
|
|
|
|
|
|
Also made test1 use crlf="yes" for <protocol>, mostly because it is
|
|
|
often used as a template test case. Going forward, using this attribute
|
|
|
we should be able to write test cases using linefeeds only and avoid
|
|
|
mixed line ending encodings.
|
|
|
|
|
|
Follow-up to ca15b7512e8d11
|
|
|
|
|
|
Fixes #10009
|
|
|
Closes #10010
|
|
|
|
|
|
Stefan Eissing (1 Dec 2022)
|
|
|
|
|
|
- gnutls: use common gnutls init and verify code for ngtcp2
|
|
|
|
|
|
Closes #10007
|
|
|
|
|
|
Baitinq on github (1 Dec 2022)
|
|
|
|
|
|
- aws_sigv4: fix typos in aws_sigv4.c
|
|
|
|
|
|
Closes #10008
|
|
|
|
|
|
Kenneth Myhra (30 Nov 2022)
|
|
|
|
|
|
- curl.h: include <sys/select.h> on SerenityOS
|
|
|
|
|
|
Closes #10006
|
|
|
|
|
|
Daniel Stenberg (30 Nov 2022)
|
|
|
|
|
|
- openssl: prefix errors with '[lib]/[version]: '
|
|
|
|
|
|
To help users understand where this (cryptic) error message comes from.
|
|
|
|
|
|
Suggested-by: Philip Sanetra
|
|
|
Ref: #10002
|
|
|
Closes #10004
|
|
|
|
|
|
Stefan Eissing (30 Nov 2022)
|
|
|
|
|
|
- tests: add HTTP/3 test case, custom location for proper nghttpx
|
|
|
|
|
|
- adding support for HTTP/3 test cases via a nghttpx server that is
|
|
|
build with ngtcp2 and nghttp3.
|
|
|
- test2500 is the first test case, performing a simple GET.
|
|
|
- nghttpx is checked for support and the 'feature' nghttpx-h3
|
|
|
is set accordingly. test2500 will only run, when supported.
|
|
|
- a specific nghttpx location can be given in the environment
|
|
|
variable NGHTTPX or via the configure option
|
|
|
--with-test-nghttpx=<path>
|
|
|
|
|
|
Extend NGHTTPX config to H2 tests as well
|
|
|
|
|
|
* use $ENV{NGHTTPX} and the configured default also in http2 server starts
|
|
|
* always provide the empty test/nghttpx.conf to nghttpx. as it defaults to
|
|
|
reading /etc/nghttpx/nghttpx.conf otherwise.
|
|
|
|
|
|
Added nghttpx to CI ngtcp2 jobs to run h3 tests.
|
|
|
|
|
|
Closes #9031
|
|
|
|
|
|
Daniel Stenberg (30 Nov 2022)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Removed duplicate after contributors.sh fix: 9967c10b6daa1
|
|
|
|
|
|
- scripts/contributors.sh: strip one OR MORE leading spaces
|
|
|
|
|
|
From names found credited in commit logs
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- openssl/mbedtls: use %d for outputing port with failf (int)
|
|
|
|
|
|
Coverity CID 1517100
|
|
|
|
|
|
Also, remove some int typecasts in vtls.c for the port number
|
|
|
|
|
|
Closes #10001
|
|
|
|
|
|
- KNOWN_BUGS: remove "Multi perform hangs waiting for threaded resolver"
|
|
|
|
|
|
We now offer a way to avoid that hang, using CURLOPT_QUICK_EXIT.
|
|
|
|
|
|
Follow-up to 49798cac832ab1 fixed via #9147
|
|
|
|
|
|
Closes #9999
|
|
|
|
|
|
- KNOWN_BUGS: remove "--interface for ipv6 binds to unusable IP address"
|
|
|
|
|
|
Since years back the "if2ip" function verifies that it binds to a local IPv6
|
|
|
address that uses the same scope as the remote address.
|
|
|
|
|
|
This is not a bug.
|
|
|
|
|
|
Fixes #686
|
|
|
Closes #9998
|
|
|
|
|
|
- test1276: verify lib/optiontable.pl
|
|
|
|
|
|
Checks that it generates an output identical to the file.
|
|
|
|
|
|
- lib/optiontable.pl: adapt to CURLOPTDEPRECATED()
|
|
|
|
|
|
Follow-up from 6967571bf20624bc
|
|
|
|
|
|
Reported-by: Gisle Vanem
|
|
|
|
|
|
Fixes #9992
|
|
|
Closes #9993
|
|
|
|
|
|
- docs/INSTALL.md: list OSes and CPUs quoted
|
|
|
|
|
|
to make them skip spellcheck. Also added a new CPU.
|
|
|
|
|
|
Follow-up to 4506cbf7f24a2a
|
|
|
|
|
|
Closes #9997
|
|
|
|
|
|
Ikko Ashimine (28 Nov 2022)
|
|
|
|
|
|
- vtls: fix typo in vtls_int.h
|
|
|
|
|
|
paramter -> parameter
|
|
|
|
|
|
Closes: #9996
|
|
|
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
|
|
|
|
|
|
Daniel Stenberg (28 Nov 2022)
|
|
|
|
|
|
- curl-openssl.m4: do not add $prefix/include/openssl to CPPFLAGS
|
|
|
|
|
|
As OpenSSL's include files are all included using <openssl/*.h> in curl
|
|
|
source code, we just risk that existing openssl files will "shadow"
|
|
|
include files without path if that path is provided.
|
|
|
|
|
|
Fixes #9989
|
|
|
Closes #9988
|
|
|
|
|
|
- INSTALL: update operating systems and CPU archs
|
|
|
|
|
|
Update after recent runs on Twitter/Mastodon and my blog
|
|
|
|
|
|
Closes #9994
|
|
|
|
|
|
Stefan Eissing (28 Nov 2022)
|
|
|
|
|
|
- tls: backends use connection filters for IO, enabling HTTPS-proxy
|
|
|
|
|
|
- OpenSSL (and compatible)
|
|
|
- BearSSL
|
|
|
- gnutls
|
|
|
- mbedtls
|
|
|
- rustls
|
|
|
- schannel
|
|
|
- secure-transport
|
|
|
- wolfSSL (v5.0.0 and newer)
|
|
|
|
|
|
This leaves only the following without HTTPS-proxy support:
|
|
|
- gskit
|
|
|
- nss
|
|
|
- wolfSSL (versions earlier than v5.0.0)
|
|
|
|
|
|
Closes #9962
|
|
|
|
|
|
Daniel Stenberg (28 Nov 2022)
|
|
|
|
|
|
- include/curl/curl.h: bump the deprecated requirements to gcc 6.1
|
|
|
|
|
|
Reported-by: Michael Kaufmann
|
|
|
Fixes #9917
|
|
|
Closes #9987
|
|
|
|
|
|
Patrick Monnerat (28 Nov 2022)
|
|
|
|
|
|
- mime: relax easy/mime structures binding
|
|
|
|
|
|
Deprecation and removal of codeset conversion support from the library
|
|
|
have released the strict need for an early binding of mime structures to
|
|
|
an easy handle (https://github.com/curl/curl/commit/2610142).
|
|
|
|
|
|
This constraint currently forces to create the handle before the mime
|
|
|
structure and the latter cannot be attached to another handle once
|
|
|
created (see https://curl.se/mail/lib-2022-08/0027.html).
|
|
|
|
|
|
This commit removes the handle pointers from the mime structures
|
|
|
allowing more flexibility on their use.
|
|
|
|
|
|
When an easy handle is duplicated, bound mime structures must however
|
|
|
still be duplicated too as their components hold send-time dynamic
|
|
|
information.
|
|
|
|
|
|
Closes #9927
|
|
|
|
|
|
fractal-access (26 Nov 2022)
|
|
|
|
|
|
- test416: verify growing FTP file support
|
|
|
|
|
|
Added setting: RETRSIZE [size] in the <servercmd> section. When set this
|
|
|
will cause the test FTP server to return the size set (rather than the
|
|
|
actual size) in the acknowledgement from a RETR request.
|
|
|
|
|
|
Closes #9772
|
|
|
|
|
|
- ftp: support growing files with CURLOPT_IGNORE_CONTENT_LENGTH
|
|
|
|
|
|
When using the option CURLOPT_IGNORE_CONTENT_LENGTH (set.ignorecl in
|
|
|
code) to support growing files in FTP, the code should ignore the
|
|
|
initial size it gets from the server as this will not be the final size
|
|
|
of the file. This is done in ftp_state_quote() to prevent a size request
|
|
|
being issued in the initial sequence. However, in a later call to
|
|
|
ftp_state_get_resp() the code attempts to get the size of the content
|
|
|
again if it doesn't already have it, by parsing the response from the
|
|
|
RETR request. This fix prevents this parsing of the response to get the
|
|
|
size when the set.ignorecl option is set. This should maintain the size
|
|
|
value as -1, unknown, in this situation.
|
|
|
|
|
|
Closes #9772
|
|
|
|
|
|
Stefan Eissing (26 Nov 2022)
|
|
|
|
|
|
- cfilter: re-add `conn` as parameter to cfilter setup methods
|
|
|
|
|
|
- `Curl_ssl_get_config()` now returns the first config if no SSL proxy
|
|
|
filter is active
|
|
|
|
|
|
- socket filter starts connection only on first invocation of its
|
|
|
connect method
|
|
|
|
|
|
Fixes #9982
|
|
|
Closes #9983
|
|
|
|
|
|
Daniel Stenberg (26 Nov 2022)
|
|
|
|
|
|
- KNOWN_BUGS: remove five FTP related issues
|
|
|
|
|
|
- "FTP with CONNECT and slow server"
|
|
|
|
|
|
I believe this is not a problem these days.
|
|
|
|
|
|
- "FTP with NULs in URL parts"
|
|
|
|
|
|
The FTP protocol does not support them properly anyway.
|
|
|
|
|
|
- remove "FTP and empty path parts in the URL"
|
|
|
|
|
|
I don't think this has ever been reported as a real problem but was only
|
|
|
a hypothetical one.
|
|
|
|
|
|
- "Premature transfer end but healthy control channel"
|
|
|
|
|
|
This is not a bug, this is an optimization that *could* be performed but is
|
|
|
not an actual problem.
|
|
|
|
|
|
- "FTP without or slow 220 response"
|
|
|
|
|
|
Instead add to the documentation of the connect timeout that the
|
|
|
connection is considered complete at TCP/TLS/QUIC layer.
|
|
|
|
|
|
Closes #9979
|
|
|
|
|
|
Stefan Eissing (26 Nov 2022)
|
|
|
|
|
|
- tests: add authorityInfoAccess to generated certs
|
|
|
|
|
|
Generate stunnel.pem as well
|
|
|
|
|
|
Closes #9980
|
|
|
|
|
|
Daniel Stenberg (25 Nov 2022)
|
|
|
|
|
|
- runtests: --no-debuginfod now disables DEBUGINFOD_URLS
|
|
|
|
|
|
Prior to this change, DEBUGINFOD_URLS was always disabled by runtests
|
|
|
due to a report of it slowing down tests. However, some setups need it
|
|
|
to fetch debug symbols, and if it is disabled on those systems then curl
|
|
|
tests with valgrind will fail.
|
|
|
|
|
|
Reported-by: Mark Gaiser
|
|
|
|
|
|
Ref: #8805
|
|
|
Closes #9950
|
|
|
|
|
|
Casey Bodley (25 Nov 2022)
|
|
|
|
|
|
- test/aws_sigv4: test cases for content-sha256
|
|
|
|
|
|
1956 adds the sha256 value corresponding to an empty buffer
|
|
|
1957 adds an arbitrary value and confirms that the signature differs from 195
|
|
|
6
|
|
|
1958 adds whitespace to 1957 and confirms that the signature matches 1957
|
|
|
1959 adds a value longer than 'char sha_hex[65]' in Curl_output_aws_sigv4()
|
|
|
|
|
|
Signed-off-by: Casey Bodley <cbodley@redhat.com>
|
|
|
|
|
|
Closes #9804
|
|
|
|
|
|
- aws_sigv4: consult x-%s-content-sha256 for payload hash
|
|
|
|
|
|
`Curl_output_aws_sigv4()` doesn't always have the whole payload in
|
|
|
memory to generate a real payload hash. this commit allows the user to
|
|
|
pass in a header like `x-amz-content-sha256` to provide their desired
|
|
|
payload hash
|
|
|
|
|
|
some services like s3 require this header, and may support other values
|
|
|
like s3's `UNSIGNED-PAYLOAD` and `STREAMING-AWS4-HMAC-SHA256-PAYLOAD`
|
|
|
with special semantics. servers use this header's value as the payload
|
|
|
hash during signature validation, so it must match what the client uses
|
|
|
to generate the signature
|
|
|
|
|
|
CURLOPT_AWS_SIGV4.3 now describes the content-sha256 interaction
|
|
|
|
|
|
Signed-off-by: Casey Bodley <cbodley@redhat.com>
|
|
|
|
|
|
Closes #9804
|
|
|
|
|
|
Philip Heiduck (25 Nov 2022)
|
|
|
|
|
|
- GHA: NSS use clang instead of clang-9
|
|
|
|
|
|
Closes #9978
|
|
|
|
|
|
Daniel Stenberg (25 Nov 2022)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
- tool_operate: override the numeric locale and set "C" by force
|
|
|
|
|
|
Makes curl always use dot as decimal separator for options,
|
|
|
independently of what the locale says. Makes scripts and command lines
|
|
|
portable.
|
|
|
|
|
|
Updated docs accordingly.
|
|
|
|
|
|
Reported-by: Daniel Faust
|
|
|
|
|
|
Fixes #9969
|
|
|
Closes #9972
|
|
|
|
|
|
- test1662: verify formpost, 301 redirect, no rewind possible
|
|
|
|
|
|
Reproduces #9735 and verifies the subsequent fix. The original issue
|
|
|
uses a pipe that cannot be rewound, but this test case instead sets a
|
|
|
callback without rewind ability to get roughly the same properties but
|
|
|
being a much more portable test.
|
|
|
|
|
|
- lib: rewind BEFORE request instead of AFTER previous
|
|
|
|
|
|
This makes a big difference for cases when the rewind is not actually
|
|
|
necessary to perofm (for example HTTP response code 301 converts to GET)
|
|
|
and therefore the rewind can be avoided. In particular for situations
|
|
|
when that rewind fails, for example when reading from a pipe or similar.
|
|
|
|
|
|
Reported-by: Ali Utku Selen
|
|
|
|
|
|
Fixes #9735
|
|
|
Closes #9958
|
|
|
|
|
|
- vtls: repair build with disabled proxy
|
|
|
|
|
|
Closes #9974
|
|
|
|
|
|
Daniel Gustafsson (23 Nov 2022)
|
|
|
|
|
|
- packaging: remove traces of deleted files
|
|
|
|
|
|
Commit a8861b6cc removed packages/DOS but left a few traces of it
|
|
|
which broke the distcheck CI. Remove all traces.
|
|
|
|
|
|
Closes: #9971
|
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
|
|
|
|
- openssl: silence compiler warning when not using IPv6
|
|
|
|
|
|
In non-IPv6 builds the conn parameter is unused, and compilers which
|
|
|
run with "-Werror=unused-parameter" (or similar) warnings turned on
|
|
|
fails to build. Below is an excerpt from a CI job:
|
|
|
|
|
|
vtls/openssl.c: In function ‘Curl_ossl_verifyhost’:
|
|
|
vtls/openssl.c:2016:75: error: unused parameter ‘conn’ [-Werror=unused-
|
|
|
parameter]
|
|
|
2016 | CURLcode Curl_ossl_verifyhost(struct Curl_easy *data, struct connec
|
|
|
tdata *conn,
|
|
|
| ~~~~~~~~~~~~~
|
|
|
~~~~~~~^~~~
|
|
|
|
|
|
Closes: #9970
|
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
|
|
|
|
- netware: remove leftover traces
|
|
|
|
|
|
Commit 3b16575ae938dec2a29454631a12aa52b6ab9c67 removed support for
|
|
|
building on Novell Netware, but a few leftover traces remained. This
|
|
|
removes the last bits.
|
|
|
|
|
|
Closes: #9966
|
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
|
|
|
|
Ryan Schmidt (23 Nov 2022)
|
|
|
|
|
|
- curl_endian: remove Curl_write64_le from header
|
|
|
|
|
|
The actual function was already removed in 4331c6dc.
|
|
|
|
|
|
See #7280
|
|
|
Closes #9968
|
|
|
|
|
|
Daniel Stenberg (22 Nov 2022)
|
|
|
|
|
|
- docs: add more "SEE ALSO" links to CA related pages
|
|
|
|
|
|
Closes #9959
|
|
|
|
|
|
- examples: update descriptions
|
|
|
|
|
|
Make them not say "this is an example showing..." and instead just say
|
|
|
what the example shows.
|
|
|
|
|
|
Closes #9960
|
|
|
|
|
|
Stefan Eissing (22 Nov 2022)
|
|
|
|
|
|
- vtls: localization of state data in filters
|
|
|
|
|
|
- almost all backend calls pass the Curl_cfilter intance instead of
|
|
|
connectdata+sockindex
|
|
|
- ssl_connect_data is remove from struct connectdata and made internal
|
|
|
to vtls
|
|
|
- ssl_connect_data is allocated in the added filter, kept at cf->ctx
|
|
|
|
|
|
- added function to let a ssl filter access its ssl_primary_config and
|
|
|
ssl_config_data this selects the propert subfields in conn and data,
|
|
|
for filters added as plain or proxy
|
|
|
- adjusted all backends to use the changed api
|
|
|
- adjusted all backends to access config data via the exposed
|
|
|
functions, no longer using conn or data directly
|
|
|
|
|
|
cfilter renames for clear purpose:
|
|
|
|
|
|
- methods `Curl_conn_*(data, conn, sockindex)` work on the complete
|
|
|
filter chain at `sockindex` and connection `conn`.
|
|
|
- methods `Curl_cf_*(cf, ...)` work on a specific Curl_cfilter
|
|
|
instance.
|
|
|
- methods `Curl_conn_cf()` work on/with filter instances at a
|
|
|
connection.
|
|
|
- rebased and resolved some naming conflicts
|
|
|
- hostname validation (und session lookup) on SECONDARY use the same
|
|
|
name as on FIRST (again).
|
|
|
|
|
|
new debug macros and removing connectdata from function signatures where not
|
|
|
needed.
|
|
|
|
|
|
adapting schannel for new Curl_read_plain paramter.
|
|
|
|
|
|
Closes #9919
|
|
|
|
|
|
Daniel Stenberg (22 Nov 2022)
|
|
|
|
|
|
- examples/10-at-a-time: fix possible skipped final transfers
|
|
|
|
|
|
Prior to this change if curl_multi_perform returned 0 running handles
|
|
|
and then all remaining transfers were added, then the perform loop would
|
|
|
end immediately without performing those transfers.
|
|
|
|
|
|
Reported-by: Mikhail Kuznetsov
|
|
|
|
|
|
Fixes https://github.com/curl/curl/issues/9953
|
|
|
Closes https://github.com/curl/curl/pull/9954
|
|
|
|
|
|
Viktor Szakats (22 Nov 2022)
|
|
|
|
|
|
- Makefile.mk: portable Makefile.m32
|
|
|
|
|
|
Update bare GNU Make `Makefile.m32` to:
|
|
|
|
|
|
- Move objects into a subdirectory.
|
|
|
- Add support for MS-DOS. Tested with DJGPP.
|
|
|
- Add support for Watt-32 (on MS-DOS).
|
|
|
- Add support for AmigaOS.
|
|
|
- Rename `Makefile.m32` to `Makefile.mk`
|
|
|
- Replace `ARCH` with `TRIPLET`.
|
|
|
- Build `tool_hugehelp.c` proper (when tools are available).
|
|
|
- Drop MS-DOS compatibility macro `USE_ZLIB` (replaced by `HAVE_LIBZ`)
|
|
|
- Add support for `ZLIB_LIBS` to override `-lz`.
|
|
|
- Omit object files when building examples.
|
|
|
- Default `CC` to `gcc` once again, for convenience. (Caveat: compiler
|
|
|
name `cc` cannot be set now.)
|
|
|
- Set `-DCURL_NO_OLDIES` for examples, like autotools does.
|
|
|
- Delete `makefile.dj` files. Notice the configuration details and
|
|
|
defaults are not retained with the new method.
|
|
|
- Delete `makefile.amiga` files. A successful build needs a few custom
|
|
|
options. We're also not retaining all build details from the existing
|
|
|
Amiga make files.
|
|
|
- Rename `Makefile.m32` to `Makefile.mk` to reflect that they are not
|
|
|
Windows/MinGW32-specific anymore.
|
|
|
- Add support for new `CFG` options: `-map`, `-debug`, `-trackmem`
|
|
|
- Set `-DNDEBUG` by default.
|
|
|
- Allow using `-DOS=...` in all `lib/config-*.h` headers, syncing this
|
|
|
with `config-win32.h`.
|
|
|
- Look for zlib parts in `ZLIB_PATH/include` and `ZLIB_PATH/lib`
|
|
|
instead of bare `ZLIB_PATH`.
|
|
|
|
|
|
Note that existing build configurations for MS-DOS and AmigaOS likely
|
|
|
become incompatible with this change.
|
|
|
|
|
|
Example AmigaOS configuration:
|
|
|
```
|
|
|
export CROSSPREFIX=/opt/amiga/bin/m68k-amigaos-
|
|
|
export CC=gcc
|
|
|
export CPPFLAGS='-DHAVE_PROTO_BSDSOCKET_H'
|
|
|
export CFLAGS='-mcrt=clib2'
|
|
|
export LDFLAGS="${CFLAGS}"
|
|
|
export LIBS='-lnet -lm'
|
|
|
make -C lib -f Makefile.mk
|
|
|
make -C src -f Makefile.mk
|
|
|
```
|
|
|
|
|
|
Example MS-DOS configuration:
|
|
|
```
|
|
|
export CROSSPREFIX=/opt/djgpp/bin/i586-pc-msdosdjgpp-
|
|
|
export WATT_PATH=/opt/djgpp/net/watt
|
|
|
export ZLIB_PATH=/opt/djgpp
|
|
|
export OPENSSL_PATH=/opt/djgpp
|
|
|
export OPENSSL_LIBS='-lssl -lcrypt'
|
|
|
export CFG=-zlib-ssl
|
|
|
make -C lib -f Makefile.mk
|
|
|
make -C src -f Makefile.mk
|
|
|
```
|
|
|
|
|
|
Closes #9764
|
|
|
|
|
|
Stefan Eissing (22 Nov 2022)
|
|
|
|
|
|
- cfiler: filter types have flags indicating what they do
|
|
|
|
|
|
- Adding Curl_conn_is_ip_connected() to check if network connectivity
|
|
|
has been reached
|
|
|
|
|
|
- having ftp wait for network connectivity before proceeding with
|
|
|
transfers.
|
|
|
|
|
|
Fixes test failures 1631 and 1632 with hyper.
|
|
|
|
|
|
Closes #9952
|
|
|
|
|
|
Daniel Stenberg (21 Nov 2022)
|
|
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
|
|
Jay Satiro (20 Nov 2022)
|
|
|
|
|
|
- sendf: change Curl_read_plain to wrap Curl_recv_plain (take 2)
|
|
|
|
|
|
Prior to this change Curl_read_plain would attempt to read the
|
|
|
socket directly. On Windows that's a problem because recv data may be
|
|
|
cached by libcurl and that data is only drained using Curl_recv_plain.
|
|
|
|
|
|
Rather than rewrite Curl_read_plain to handle cached recv data, I
|
|
|
changed it to wrap Curl_recv_plain, in much the same way that
|
|
|
Curl_write_plain already wraps Curl_send_plain.
|
|
|
|
|
|
Curl_read_plain -> Curl_recv_plain
|
|
|
Curl_write_plain -> Curl_send_plain
|
|
|
|
|
|
This fixes a bug in the schannel backend where decryption of arbitrary
|
|
|
TLS records fails because cached recv data is never drained. We send
|
|
|
data (TLS records formed by Schannel) using Curl_write_plain, which
|
|
|
calls Curl_send_plain, and that may do a recv-before-send
|
|
|
("pre-receive") to cache received data. The code calls Curl_read_plain
|
|
|
to read data (TLS records from the server), which prior to this change
|
|
|
did not call Curl_recv_plain and therefore cached recv data wasn't
|
|
|
retrieved, resulting in malformed TLS records and decryption failure
|
|
|
(SEC_E_DECRYPT_FAILURE).
|
|
|
|
|
|
The bug has only been observed during Schannel TLS 1.3 handshakes. Refer
|
|
|
to the issue and PR for more information.
|
|
|
|
|
|
--
|
|
|
|
|
|
This is take 2 of the original fix. It preserves the original behavior
|
|
|
of Curl_read_plain to write 0 to the bytes read parameter on error,
|
|
|
since apparently some callers expect that (SOCKS tests were hanging).
|
|
|
The original fix which landed in 12e1def5 and was later reverted in
|
|
|
18383fbf failed to work properly because it did not do that.
|
|
|
|
|
|
Also, it changes Curl_write_plain the same way to complement
|
|
|
Curl_read_plain, and it changes Curl_send_plain to return -1 instead of
|
|
|
0 on CURLE_AGAIN to complement Curl_recv_plain.
|
|
|
|
|
|
Behavior on error with these changes:
|
|
|
|
|
|
Curl_recv_plain returns -1 and *code receives error code.
|
|
|
Curl_send_plain returns -1 and *code receives error code.
|
|
|
Curl_read_plain returns error code and *n (bytes read) receives 0.
|
|
|
Curl_write_plain returns error code and *written receives 0.
|
|
|
|
|
|
--
|
|
|
|
|
|
Ref: https://github.com/curl/curl/issues/9431#issuecomment-1312420361
|
|
|
|
|
|
Assisted-by: Joel Depooter
|
|
|
Reported-by: Egor Pugin
|
|
|
|
|
|
Fixes https://github.com/curl/curl/issues/9431
|
|
|
Closes https://github.com/curl/curl/pull/9949
|
|
|
|
|
|
Sean McArthur (19 Nov 2022)
|
|
|
|
|
|
- hyper: classify headers as CONNECT and 1XX
|
|
|
|
|
|
Closes #9947
|
|
|
|
|
|
Stefan Eissing (19 Nov 2022)
|
|
|
|
|
|
- ftp: fix "AUTH TLS" on primary conn and for SSL in PASV second conn
|
|
|
|
|
|
Follow-up to dafdb20a26d0c89
|
|
|
|
|
|
Reported-by: Anthony Hu
|
|
|
Closes #9948
|
|
|
|
|
|
Jay Satiro (19 Nov 2022)
|
|
|
|
|
|
- CURLOPT_POST.3: Explain setting to 0 changes request type
|
|
|
|
|
|
Bug: https://github.com/curl/curl/issues/9849
|
|
|
Reported-by: MonkeybreadSoftware@users.noreply.github.com
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/9942
|
|
|
|
|
|
Daniel Stenberg (19 Nov 2022)
|
|
|
|
|
|
- docs/INSTALL.md: expand on static builds
|
|
|
|
|
|
Remove from KNOWN_BUGS
|
|
|
|
|
|
Closes #9944
|
|
|
|
|
|
Stefan Eissing (19 Nov 2022)
|
|
|
|
|
|
- http: restore h3 to working condition after connection filter introduction
|
|
|
|
|
|
Follow-up to dafdb20a26d0c
|
|
|
|
|
|
HTTP/3 needs a special filter chain, since it does the TLS handling
|
|
|
itself. This PR adds special setup handling in the HTTP protocol handler
|
|
|
that takes are of it.
|
|
|
|
|
|
When a handler, in its setup method, installs filters, the default
|
|
|
behaviour for managing the filter chain is overridden.
|
|
|
|
|
|
Reported-by: Karthikdasari0423 on github
|
|
|
|
|
|
Fixes #9931
|
|
|
Closes #9945
|
|
|
|
|
|
Daniel Stenberg (18 Nov 2022)
|
|
|
|
|
|
- urldata: change port num storage to int and unsigned short
|
|
|
|
|
|
Instead of long.
|
|
|
|
|
|
Closes #9946
|
|
|
|
|
|
- Revert "sendf: change Curl_read_plain to wrap Curl_recv_plain"
|
|
|
|
|
|
This reverts commit 12e1def51a75392df62e65490416007d7e68dab9.
|
|
|
|
|
|
It introduced SOCKS proxy fails, like test 700 never ending.
|
|
|
|
|
|
Reopens #9431
|
|
|
|
|
|
- HTTP-COOKIES.md: update the 6265bis link to draft-11
|
|
|
|
|
|
Closes #9940
|
|
|
|
|
|
- docs/WEBSOCKET.md: explain the URL use
|
|
|
|
|
|
Fixes #9936
|
|
|
Closes #9941
|
|
|
|
|
|
Jay Satiro (18 Nov 2022)
|
|
|
|
|
|
- sendf: change Curl_read_plain to wrap Curl_recv_plain
|
|
|
|
|
|
Prior to this change Curl_read_plain would attempt to read the
|
|
|
socket directly. On Windows that's a problem because recv data may be
|
|
|
cached by libcurl and that data is only drained using Curl_recv_plain.
|
|
|
|
|
|
Rather than rewrite Curl_read_plain to handle cached recv data, I
|
|
|
changed it to wrap Curl_recv_plain, in much the same way that
|
|
|
Curl_write_plain already wraps Curl_send_plain.
|
|
|
|
|
|
Curl_read_plain -> Curl_recv_plain
|
|
|
Curl_write_plain -> Curl_send_plain
|
|
|
|
|
|
This fixes a bug in the schannel backend where decryption of arbitrary
|
|
|
TLS records fails because cached recv data is never drained. We send
|
|
|
data (TLS records formed by Schannel) using Curl_write_plain, which
|
|
|
calls Curl_send_plain, and that may do a recv-before-send
|
|
|
("pre-receive") to cache received data. The code calls Curl_read_plain
|
|
|
to read data (TLS records from the server), which prior to this change
|
|
|
did not call Curl_recv_plain and therefore cached recv data wasn't
|
|
|
retrieved, resulting in malformed TLS records and decryption failure
|
|
|
(SEC_E_DECRYPT_FAILURE).
|
|
|
|
|
|
The bug has only been observed during Schannel TLS 1.3 handshakes. Refer
|
|
|
to the issue and PR for more information.
|
|
|
|
|
|
Ref: https://github.com/curl/curl/issues/9431#issuecomment-1312420361
|
|
|
|
|
|
Assisted-by: Joel Depooter
|
|
|
Reported-by: Egor Pugin
|
|
|
|
|
|
Fixes https://github.com/curl/curl/issues/9431
|
|
|
Closes https://github.com/curl/curl/pull/9904
|
|
|
|
|
|
- test3026: reduce runtime in legacy mingw builds
|
|
|
|
|
|
- Load Windows system libraries secur32 and iphlpapi beforehand, so
|
|
|
that libcurl's repeated global init/cleanup only increases/decreases
|
|
|
the library's refcount rather than causing it to load/unload.
|
|
|
|
|
|
Assisted-by: Marc Hoersken
|
|
|
|
|
|
Closes https://github.com/curl/curl/pull/9412
|
|
|
|
|
|
Daniel Stenberg (18 Nov 2022)
|
|
|
|
|
|
- url: move back the IDN conversion of proxy names
|
|
|
|
|
|
Regression: in commit 53bcf55 we moved the IDN conversion calls to
|
|
|
happen before the HSTS checks. But the HSTS checks are only done on the
|
|
|
server host name, not the proxy names. By moving the proxy name IDN
|
|
|
conversions, we accidentally broke the verbose output showing the proxy
|
|
|
name.
|
|
|
|
|
|
This change moves back the IDN conversions for the proxy names to the
|
|
|
place in the code path they were before 53bcf55.
|
|
|
|
|
|
Reported-by: Andy Stamp
|
|
|
Fixes #9937
|
|
|
Closes #9939
|