You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7453 lines
203 KiB
7453 lines
203 KiB
_ _ ____ _
|
|
___| | | | _ \| |
|
|
/ __| | | | |_) | |
|
|
| (__| |_| | _ <| |___
|
|
\___|\___/|_| \_\_____|
|
|
|
|
Changelog
|
|
|
|
Version 7.73.0 (14 Oct 2020)
|
|
|
|
Daniel Stenberg (14 Oct 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
for 7.73.0
|
|
|
|
- THANKS: from 7.73.0 and .mailmap fixes
|
|
|
|
- mailmap: fixups of some contributors
|
|
|
|
- projects/build-wolfssl.bat: fix the copyright year range
|
|
|
|
Marc Hoersken (14 Oct 2020)
|
|
- [Sergei Nikulov brought this change]
|
|
|
|
CI/tests: fix invocation of tests for CMake builds
|
|
|
|
Update appveyor.yml to set env variable TFLAGS and run tests
|
|
Remove curly braces due to CMake error (${TFLAGS} -> $TFLAGS)
|
|
Move testdeps build to build step (per review comments)
|
|
|
|
Reviewed-by: Marc Hörsken
|
|
|
|
Closes #6066
|
|
Fixes #6052
|
|
|
|
- tests/server/util.c: fix support for Windows Unicode builds
|
|
|
|
Detected via #6066
|
|
Closes #6070
|
|
|
|
Daniel Stenberg (13 Oct 2020)
|
|
- [Jay Satiro brought this change]
|
|
|
|
strerror: Revert to local codepage for Windows error string
|
|
|
|
- Change get_winapi_error() to return the error string in the local
|
|
codepage instead of UTF-8 encoding.
|
|
|
|
Two weeks ago bed5f84 fixed get_winapi_error() to work on xbox, but it
|
|
also changed the error string's encoding from local codepage to UTF-8.
|
|
|
|
We return the local codepage version of the error string because if it
|
|
is output to the user's terminal it will likely be with functions which
|
|
expect the local codepage (eg fprintf, failf, infof).
|
|
|
|
This is essentially a partial revert of bed5f84. The support for xbox
|
|
remains but the error string is reverted back to local codepage.
|
|
|
|
Ref: https://github.com/curl/curl/pull/6005
|
|
|
|
Reviewed-by: Marcel Raad
|
|
Closes #6065
|
|
|
|
Marc Hoersken (13 Oct 2020)
|
|
- CI/tests: use verification curl for test reporting APIs
|
|
|
|
Avoid using our own, potentially installed, curl for
|
|
the test reporting APIs in case it is broken.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Preparation for #6049
|
|
Closes #6063
|
|
|
|
Viktor Szakats (12 Oct 2020)
|
|
- windows: fix comparison of mismatched types warning
|
|
|
|
clang 10, mingw-w64:
|
|
```
|
|
vtls/openssl.c:2917:33: warning: comparison of integers of different signs: 'DWORD' (aka 'unsigned long') and 'HRESULT' (aka 'long')
|
|
[-Wsign-compare]
|
|
if(GetLastError() != CRYPT_E_NOT_FOUND)
|
|
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~
|
|
```
|
|
|
|
Approved-by: Daniel Stenberg
|
|
Closes #6062
|
|
|
|
Daniel Stenberg (11 Oct 2020)
|
|
- [Viktor Szakats brought this change]
|
|
|
|
src/Makefile.m32: fix undefined curlx_dyn_* errors
|
|
|
|
by linking `lib/dynbuf.c` when building a static curl binary.
|
|
Previously this source file was only included when building
|
|
a dynamic curl binary. This was likely possibly because no
|
|
functions from the `src/Makefile.inc` / `CURLX_CFILES` sources
|
|
were actually required for a curl tool build. This has
|
|
recently changed with the introduction of `curlx_dyn_*()`
|
|
memory functions and their use by the tool sources.
|
|
|
|
Closes #6060
|
|
|
|
- HISTORY: curl verifies SSL certs by default since version 7.10
|
|
|
|
Marc Hoersken (8 Oct 2020)
|
|
- runtests.pl: use $LIBDIR variable instead of hardcoded path
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Closes #6051
|
|
|
|
Daniel Stenberg (7 Oct 2020)
|
|
- checksrc: detect // comments on column 0
|
|
|
|
Spotted while working on #6045
|
|
|
|
Closes #6048
|
|
|
|
- [Frederik Wedel-Heinen brought this change]
|
|
|
|
mbedtls: add missing header when defining MBEDTLS_DEBUG
|
|
|
|
Closes #6045
|
|
|
|
- curl: make sure setopt CURLOPT_IPRESOLVE passes on a long
|
|
|
|
Previously, it would pass on a define (int) which could make libcurl
|
|
read junk as a value - which prevented the CURLOPT_IPRESOLVE option to
|
|
"take". This could then make test 2100 do two DoH requests instead of
|
|
one!
|
|
|
|
Fixes #6042
|
|
Closes #6043
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- scripts/release-notes.pl: don't "embed" $ in format string for printf()
|
|
|
|
... since they might contain %-codes that mess up the output!
|
|
|
|
Jay Satiro (5 Oct 2020)
|
|
- [M.R.T brought this change]
|
|
|
|
build-wolfssl: fix build with Visual Studio 2019
|
|
|
|
Closes https://github.com/curl/curl/pull/6033
|
|
|
|
Daniel Stenberg (4 Oct 2020)
|
|
- runtests: add %repeat[]% for test files
|
|
|
|
... and use this new keywords in all the test files larger than 50K to reduce
|
|
their sizes and make them a lot easier to read and understand.
|
|
|
|
Closes #6040
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
--help: move two options from the misc category
|
|
|
|
The cmdline opts delegation and suppress-connect-headers
|
|
fit better into auth and proxy rather than misc.
|
|
|
|
Follow-up to aa8777f63febc
|
|
Closes #6038
|
|
|
|
- [Samanta Navarro brought this change]
|
|
|
|
docs/opts: fix typos in two manual pages
|
|
|
|
Closes #6039
|
|
|
|
- ldap: reduce the amount of #ifdefs needed
|
|
|
|
Closes #6035
|
|
|
|
- runtests: provide curl's version string as %VERSION for tests
|
|
|
|
... so that we can check HTTP requests for User-Agent: curl/%VERSION
|
|
|
|
Update 600+ test cases accordingly.
|
|
|
|
Closes #6037
|
|
|
|
- checksrc: warn on space after exclamation mark
|
|
|
|
Closes #6034
|
|
|
|
- test1465: verify --libcurl with binary POST data
|
|
|
|
- runtests: allow generating a binary sequence from hex
|
|
|
|
- tool_setopt: escape binary data to hex, not octal
|
|
|
|
- curl: make --libcurl show binary posts correctly
|
|
|
|
Reported-by: Stephan Mühlstrasser
|
|
Fixes #6031
|
|
Closes #6032
|
|
|
|
Jay Satiro (1 Oct 2020)
|
|
- strerror: fix null deref on winapi out-of-memory
|
|
|
|
Follow-up to bed5f84 from several days ago.
|
|
|
|
Ref: https://github.com/curl/curl/pull/6005
|
|
|
|
Daniel Stenberg (1 Oct 2020)
|
|
- [Kamil Dudka brought this change]
|
|
|
|
vtls: deduplicate some DISABLE_PROXY ifdefs
|
|
|
|
... in the code of gtls, nss, and openssl
|
|
|
|
Closes #5735
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
TODO: Add OpenBSD libtool notice
|
|
|
|
See #5862
|
|
Closes #6030
|
|
|
|
- tests/unit/README: convert to markdown
|
|
|
|
... and add to dist!
|
|
|
|
Closes #6028
|
|
|
|
- tests/README: convert to markdown
|
|
|
|
Closes #6028
|
|
|
|
- include/README: convert to markdown
|
|
|
|
Closes #6028
|
|
|
|
- examples/README: convert to markdown
|
|
|
|
Closes #6028
|
|
|
|
- configure: don't say HTTPS-proxy is enabled when disabled!
|
|
|
|
Reported-by: Kamil Dudka
|
|
Reviewed-by: Kamil Dudka
|
|
Bug: https://github.com/curl/curl/pull/5735#issuecomment-701376388
|
|
Closes #6029
|
|
|
|
Daniel Gustafsson (30 Sep 2020)
|
|
- src: Consistently spell whitespace without whitespace
|
|
|
|
Whitespace is spelled without a space between white and space, so
|
|
make sure to consistently spell it that way across the codebase.
|
|
|
|
Closes #6023
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
Reviewed-by: Emil Engler <me@emilengler.com>
|
|
|
|
- MANUAL: update examples to resolve without redirects
|
|
|
|
www.netscape.com is redirecting to a cookie consent form on Aol, and
|
|
cool.haxx.se isn't responding to FTP anymore. Replace with examples
|
|
that resolves in case users try out the commands when reading the
|
|
manual.
|
|
|
|
Closes #6024
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
Reviewed-by: Emil Engler <me@emilengler.com>
|
|
|
|
Daniel Stenberg (30 Sep 2020)
|
|
- HISTORY: add some 2020 events
|
|
|
|
- sectransp: make it build with --disable-proxy
|
|
|
|
Follow-up from #5466 and f3d501dc678d80
|
|
Reported-by: Javier Navarro
|
|
Fixes #6025
|
|
Closes #6026
|
|
|
|
- ECH: renamed from ESNI in docs and configure
|
|
|
|
Encrypted Client Hello (ECH) is the current name.
|
|
|
|
Closes #6022
|
|
|
|
- configure: use "no" instead of "disabled" for the end summary
|
|
|
|
... for consistency but also to make them more distinctly stand out next
|
|
to the "enabled" lines.
|
|
|
|
- TODO: SSH over HTTPS proxy with more backends
|
|
|
|
... as right now only the libssh2 backend supports it.
|
|
|
|
- libssh2: handle the SSH protocols done over HTTPS proxy
|
|
|
|
Reported-by: Robin Douine
|
|
Fixes #4295
|
|
Closes #6021
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
memdebug: remove 9 year old unused debug function
|
|
|
|
There used to be a way to have memdebug fill allocated memory. 9 years
|
|
later this has no value there (valgrind and ASAN etc are way better). If
|
|
people need to know about it they can have a look at VCS logs.
|
|
|
|
Closes #5973
|
|
|
|
- sendf: move Curl_sendf to dict.c and make it static
|
|
|
|
... as the only remaining user of that function. Also fix gopher.c to
|
|
instead use Curl_write()
|
|
|
|
Closes #6020
|
|
|
|
- ROADMAP: updates and cleanups
|
|
|
|
Fix the HSTS PR
|
|
|
|
Remove DoT, thread-safe init and hard-coded localhost. I feel very
|
|
little interest for these with users so I downgrade them to plain "TODO"
|
|
entries again.
|
|
|
|
- schannel: return CURLE_PEER_FAILED_VERIFICATION for untrusted root
|
|
|
|
This matches what is returned in other TLS backends in the same
|
|
situation.
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Reviewed-by: Emil Engler
|
|
Follow-up to 5a3efb1
|
|
Reported-by: iammrtau on github
|
|
Fixes #6003
|
|
Closes #6018
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- ftp: make a 552 response return CURLE_REMOTE_DISK_FULL
|
|
|
|
Added test 348 to verify. Added a 'STOR' command to the test FTP
|
|
server to enable test 348. Documented the command in FILEFORMAT.md
|
|
|
|
Reported-by: Duncan Wilcox
|
|
Fixes #6016
|
|
Closes #6017
|
|
|
|
- pause: only trigger a reread if the unpause sticks
|
|
|
|
As an unpause might itself get paused again and then triggering another
|
|
reread doesn't help.
|
|
|
|
Follow-up from e040146f22608fd9 (shipped since 7.69.1)
|
|
|
|
Bug: https://curl.haxx.se/mail/lib-2020-09/0081.html
|
|
Patch-by: Kunal Chandarana
|
|
Fixes #5988
|
|
Closes #6013
|
|
|
|
- test163[12]: require http to be built-in to run
|
|
|
|
... as speaking over an HTTPS proxy implies http!
|
|
|
|
Closes #6014
|
|
|
|
- ngtcp2: adapt to new NGTCP2_PROTO_VER_MAX define
|
|
|
|
Closes #6012
|
|
|
|
- [Javier Blazquez brought this change]
|
|
|
|
strerror: honor Unicode API choice on Windows
|
|
|
|
Closes #6005
|
|
|
|
- imap: make imap_send use dynbuf for the send buffer management
|
|
|
|
Reuses the buffer and thereby reduces number of mallocs over a transfer.
|
|
|
|
Closes #6010
|
|
|
|
- Curl_send: return error when pre_receive_plain can't malloc
|
|
|
|
... will probably trigger some false DEAD CODE positives on non-windows
|
|
code analyzers for the conditional code.
|
|
|
|
Closes #6011
|
|
|
|
- ftp: separate FTPS from FTP over "HTTPS proxy"
|
|
|
|
When using HTTPS proxy, SSL is used but not in the view of the FTP
|
|
protocol handler itself so separate the connection's use of SSL from the
|
|
FTP control connection's sue.
|
|
|
|
Reported-by: Mingtao Yang
|
|
Fixes #5523
|
|
Closes #6006
|
|
|
|
Dan Fandrich (23 Sep 2020)
|
|
- tests/data: Fix some mismatched XML tags in test cases
|
|
|
|
This allows these test files to pass xmllint.
|
|
|
|
Daniel Stenberg (23 Sep 2020)
|
|
- pingpong: use a dynbuf for the *_pp_sendf() function
|
|
|
|
... reuses the same dynamic buffer instead of doing repeated malloc/free
|
|
cycles.
|
|
|
|
Test case 100 (FTP dir list PASV) does 7 fewer memory allocation calls
|
|
after this change in my test setup (132 => 125), curl 7.72.0 needed 140
|
|
calls for this.
|
|
|
|
Test case 103 makes 9 less allocations now (130). Down from 149 in
|
|
7.72.0.
|
|
|
|
Closes #6004
|
|
|
|
- dynbuf: add Curl_dyn_vaddf
|
|
|
|
Closes #6004
|
|
|
|
- dynbuf: make *addf() not require extra mallocs
|
|
|
|
... by introducing a printf() function that appends directly into a
|
|
dynbuf: Curl_dyn_vprintf(). This avoids the mandatory extra malloc so if
|
|
the buffer is already big enough it can just printf directly into it.
|
|
|
|
Since this less-malloc version requires tthe use of a library internal
|
|
printf function, we only provide this version when building libcurl and
|
|
not for the dynbuf code that is used when building the curl tool.
|
|
|
|
Closes #5998
|
|
|
|
- KNOWN_BUGS: Unable to use PKCS12 certificate with Secure Transport
|
|
|
|
Closes #5403
|
|
|
|
- pingpong: remove a malloc per Curl_pp_vsendf call
|
|
|
|
This typically makes 7-9 fewer mallocs per FTP transfer.
|
|
|
|
Closes #5997
|
|
|
|
- symbian: drop support
|
|
|
|
The OS is deprecated. I see no traces of anyone having actually built
|
|
curl for Symbian after 2012.
|
|
|
|
The public headers are unmodified.
|
|
|
|
Closes #5989
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- curl_krb5.h: rename from krb5.h
|
|
|
|
Follow-up from f4873ebd0be32cf
|
|
|
|
Turns out some older openssl installations go bananas otherwise.
|
|
Reported-by: Tom van der Woerdt
|
|
Fixes #5995
|
|
Closes #5996
|
|
|
|
- test1297: verify GOT_NOTHING with http proxy tunnel
|
|
|
|
- http_proxy: do not count proxy headers in the header bytecount
|
|
|
|
... as that counter is subsequently used to detect if nothing was
|
|
returned from the peer. This made curl return CURLE_OK when it should
|
|
have returned CURLE_GOT_NOTHING.
|
|
|
|
Fixes #5992
|
|
Reported-by: Tom van der Woerdt
|
|
Closes #5994
|
|
|
|
- setopt: return CURLE_BAD_FUNCTION_ARGUMENT on bad argument
|
|
|
|
Fixed two return code mixups. CURLE_UNKNOWN_OPTION is saved for when the
|
|
option is, yeah, not known. Clarified this in the setopt man page too.
|
|
|
|
Closes #5993
|
|
|
|
- krb5: merged security.c and krb specific FTP functions in here
|
|
|
|
These two files were always tightly connected and it was hard to
|
|
understand what went into which. This also allows us to make the
|
|
ftpsend() function static (moved from ftp.c).
|
|
|
|
Removed security.c
|
|
Renamed curl_sec.h to krb5.h
|
|
|
|
Closes #5987
|
|
|
|
- Curl_handler: add 'family' to each protocol
|
|
|
|
Makes get_protocol_family() faster and it moves the knowledge about the
|
|
"families" to each protocol handler, where it belongs.
|
|
|
|
Closes #5986
|
|
|
|
- parsedate: tune the date to epoch conversion
|
|
|
|
By avoiding an unnecessary error check and the temp use of the tm
|
|
struct, the time2epoch conversion function gets a little bit faster.
|
|
When repeating test 517, the updated version is perhaps 1% faster (on
|
|
one particular build on one particular architecture).
|
|
|
|
Closes #5985
|
|
|
|
- cmake: remove scary warning
|
|
|
|
Remove the text saying
|
|
|
|
"the curl cmake build system is poorly maintained. Be aware"
|
|
|
|
... not because anything changed just now, but to encourage users to use
|
|
it and subsequently improve it.
|
|
|
|
Closes #5984
|
|
|
|
- docs/MQTT: remove outdated paaragraphs
|
|
|
|
- docs/MQTT: not experimental anymore
|
|
|
|
Follow-up to e37e4468688d8f
|
|
|
|
- docs/RESOURCES: remove
|
|
|
|
This document is not maintained and rather than trying to refresh it,
|
|
let's kill it. A more up-to-date document with relevant RFCs is this
|
|
page on the curl website: https://curl.haxx.se/rfc/
|
|
|
|
Closes #5980
|
|
|
|
- docs/TheArtOfHttpScripting: convert to markdown
|
|
|
|
Makes it easier to browse on github etc. Offers (better) links.
|
|
|
|
It should be noted that this document is already mostly outdated and
|
|
"Everything curl" at https://ec.haxx.se/ is a better resource and
|
|
tutorial.
|
|
|
|
Closes #5981
|
|
|
|
- BUGS: convert document to markdown
|
|
|
|
Closes #5979
|
|
|
|
- --help: strdup the category
|
|
|
|
... since it is converted and the original pointer is freed on Windows
|
|
unicode handling.
|
|
|
|
Follow-up to aa8777f63febc
|
|
Fixes #5977
|
|
Closes #5978
|
|
Reported-by: xwxbug on github
|
|
|
|
- CHECKSRC: document two missing warnings
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- ftp: avoid risk of reading uninitialized integers
|
|
|
|
If the received PASV response doesn't match the expected pattern, we
|
|
could end up reading uninitialized integers for IP address and port
|
|
number.
|
|
|
|
Issue pointed out by muse.dev
|
|
Closes #5972
|
|
|
|
- [Quentin Balland brought this change]
|
|
|
|
easy_reset: clear retry counter
|
|
|
|
Closes #5975
|
|
Fixes #5974
|
|
|
|
- ftp: get rid of the PPSENDF macro
|
|
|
|
The use of such a macro hides some of what's actually going on to the
|
|
reader and is generally disapproved of in the project.
|
|
|
|
Closes #5971
|
|
|
|
- man pages: switch to https://example.com URLs
|
|
|
|
Since HTTPS is "the new normal", this update changes a lot of man page
|
|
examples to use https://example.com instead of the previous "http://..."
|
|
|
|
Closes #5969
|
|
|
|
- github: remove the duplicate "Security vulnerability" entry
|
|
|
|
... since github adds an entry automatically by itself.
|
|
|
|
Closes #5970
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
github: use new issue template feature
|
|
|
|
This helps us to avoid getting feature requests as well as security
|
|
bugs reported into the issue tracker.
|
|
|
|
Closes #5936
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
urlapi: use more Curl_safefree
|
|
|
|
Closes #5968
|
|
|
|
Marc Hoersken (17 Sep 2020)
|
|
- multi: align WinSock mask variables in Curl_multi_wait
|
|
|
|
Also skip pre-checking sockets to set timeout_ms to 0
|
|
after the first socket has been detected to be ready.
|
|
|
|
Reviewed-by: rcombs on github
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Follow up to #5886
|
|
|
|
- multi: reuse WinSock events variable in Curl_multi_wait
|
|
|
|
Since the struct is quite large (1 long and 10 ints) we
|
|
declare it once at the beginning of the function instead
|
|
of multiple times inside loops to avoid stack movements.
|
|
|
|
Reviewed-by: Viktor Szakats
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Closes #5886
|
|
|
|
Daniel Stenberg (16 Sep 2020)
|
|
- TODO: dynamically decide to use socketpair
|
|
|
|
Suggested-by: Anders Bakken
|
|
|
|
Closes #4829
|
|
|
|
- TODO: add PR reference for native IDN support on macOS
|
|
|
|
As there was work started on this that never got completed.
|
|
|
|
Closes #5371
|
|
|
|
- tool_help.h: update copyright year range
|
|
|
|
Follow-up from aa8777f63febca
|
|
|
|
- CI/azure: disable test 571 in the msys2 builds
|
|
|
|
It's just too flaky there
|
|
|
|
Reviewed-by: Marc Hoersken
|
|
Closes #5954
|
|
|
|
- tool_writeout: protect fputs() from NULL
|
|
|
|
When the code was changed to do fputs() instead of fprintf() it got
|
|
sensitive for NULL pointers; add checks for that.
|
|
|
|
Follow-up from 0c1e767e83ec66
|
|
|
|
Closes #5963
|
|
|
|
- test3015: verify stdout "as text"
|
|
|
|
Follow-up from 0c1e767e83e to please win32 tests
|
|
|
|
Closes #5962
|
|
|
|
- travis: use libressl v3.1.4 instead of master
|
|
|
|
... as their git master seems too fragile to use (and 3.2.1 which is the
|
|
latest has a build failure).
|
|
|
|
Closes #5964
|
|
|
|
- tests/FILEFORMAT: document type=shell for <command>
|
|
|
|
- tests/FILEFORMAT: document nonewline support for <file>
|
|
|
|
The one in <client>, that creates files.
|
|
|
|
Follow-up from b83947c8df7
|
|
|
|
- [anio brought this change]
|
|
|
|
tool_writeout: add new writeout variable, %{num_headers}
|
|
|
|
This variable gives the number of headers.
|
|
|
|
Closes #5947
|
|
|
|
- tool_urlglob: fix compiler warning "unreachable code"
|
|
|
|
(On Windows builds.)
|
|
|
|
Follow-up to 70a3b003d9
|
|
|
|
- [Gergely Nagy brought this change]
|
|
|
|
vtls: deduplicate client certificates in ssl_config_data
|
|
|
|
Closes #5629
|
|
|
|
- ftp: a 550 response to SIZE returns CURLE_REMOTE_FILE_NOT_FOUND
|
|
|
|
This is primarily interesting for cases where CURLOPT_NOBODY is set as
|
|
previously curl would not return an error for this case.
|
|
|
|
MDTM getting 550 now also returns this error (it returned
|
|
CURLE_FTP_COULDNT_RETR_FILE before) in order to unify return codes for
|
|
missing files across protocols and specific FTP commands.
|
|
|
|
libcurl already returns error on a 550 as a MDTM response (when
|
|
CURLOPT_FILETIME is set). If CURLOPT_NOBODY is not set, an error would
|
|
happen subsequently anyway since the RETR command would fail.
|
|
|
|
Add test 1913 and 1914 to verify. Updated several tests accordingly due
|
|
to the updated SIZE behavior.
|
|
|
|
Reported-by: Tomas Berger
|
|
Fixes #5953
|
|
Closes #5957
|
|
|
|
- curl: make checkpasswd use dynbuf
|
|
|
|
Closes #5952
|
|
|
|
- curl: make glob_match_url use dynbuf
|
|
|
|
Closes #5952
|
|
|
|
- curl: make file2memory use dynbuf
|
|
|
|
Closes #5952
|
|
|
|
- curl: make file2string use dynbuf
|
|
|
|
Closes #5952
|
|
|
|
- [Antarpreet Singh brought this change]
|
|
|
|
imap: set cselect_bits to CURL_CSELECT_IN initially
|
|
|
|
... when continuing a transfer from a FETCH response.
|
|
|
|
When the size of the file was small enough that the entirety of the
|
|
transfer happens in a single go and schannel buffers holds the entire
|
|
data. However, it wasn't completely read in Curl_pp_readresp since a
|
|
line break was found before that could happen. So, by the time we are in
|
|
imap_state_fetch_resp - there's data in buffers that needs to be read
|
|
via Curl_read but nothing to read from the socket. After we setup a
|
|
transfer (Curl_setup_transfer), curl just waits on the socket state to
|
|
change - which doesn't happen since no new data ever comes.
|
|
|
|
Closes #5961
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- test434: test -K use in a single line without newline
|
|
|
|
Closes #5946
|
|
|
|
- runtests: allow creating files without newlines
|
|
|
|
Closes #5946
|
|
|
|
- curl: use curlx_dynbuf for realloc when loading config files
|
|
|
|
... fixes an integer overflow at the same time.
|
|
|
|
Reported-by: ihsinme on github
|
|
Assisted-by: Jay Satiro
|
|
|
|
Closes #5946
|
|
|
|
- dynbuf: provide curlx_ names for reuse by the curl tool
|
|
|
|
Closes #5946
|
|
|
|
- dynbuf: make sure Curl_dyn_tail() zero terminates
|
|
|
|
Closes #5959
|
|
|
|
- tests: add test1912 to the dist
|
|
|
|
Follow-up to 70984ce1be4cab6c
|
|
|
|
- docs/LICENSE-MIXING: remove
|
|
|
|
This document is not maintained and I feel that it doesn't provide much
|
|
value to users anymore (if it ever did).
|
|
|
|
Closes #5955
|
|
|
|
- [Laramie Leavitt brought this change]
|
|
|
|
http: consolidate nghttp2_session_mem_recv() call paths
|
|
|
|
Previously there were several locations that called
|
|
nghttp2_session_mem_recv and handled responses slightly differently.
|
|
Those have been converted to call the existing
|
|
h2_process_pending_input() function.
|
|
|
|
Moved the end-of-session check to h2_process_pending_input() since the
|
|
only place the end-of-session state can change is after nghttp2
|
|
processes additional input frames.
|
|
|
|
This will likely fix the fuzzing error. While I don't have a root cause
|
|
the out-of-bounds read seems like a use after free, so moving the
|
|
nghttp2_session_check_request_allowed() call to a location with a
|
|
guaranteed nghttp2 session seems reasonable.
|
|
|
|
Also updated a few nghttp2 callsites to include error messages and added
|
|
a few additional error checks.
|
|
|
|
Closes #5648
|
|
|
|
- HISTORY: mention alt-svc added in 2019
|
|
|
|
... and make 1996 the first year subtitle
|
|
|
|
- base64: also build for pop3 and imap
|
|
|
|
Follow-up to the fix in 20417a13fb8f83
|
|
|
|
Reported-by: Michael Olbrich
|
|
Fixes #5937
|
|
Closes #5948
|
|
|
|
- base64: enable in build with SMTP
|
|
|
|
The oauth2 support is used with SMTP and it uses base64 functions.
|
|
|
|
Reported-by: Michael Olbrich
|
|
Fixes #5937
|
|
Closes #5938
|
|
|
|
- curl_mime_headers.3: fix the example's use of curl_slist_append
|
|
|
|
Reported-by: sofaboss on github
|
|
Fixes #5942
|
|
Closes #5943
|
|
|
|
- lib583: fix enum mixup
|
|
|
|
grrr the previous follow-up to 17fcdf6a31 was wrong
|
|
|
|
- libtest: fix build errors
|
|
|
|
Follow-up from 17fcdf6a310d4c8076
|
|
|
|
- lib: fix -Wassign-enum warnings
|
|
|
|
configure --enable-debug now enables -Wassign-enum with clang,
|
|
identifying several enum "abuses" also fixed.
|
|
|
|
Reported-by: Gisle Vanem
|
|
Bug: https://github.com/curl/curl/commit/879007f8118771f4896334731aaca5850a154675#commitcomment-42087553
|
|
|
|
Closes #5929
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- [Diven Qi brought this change]
|
|
|
|
url: use blank credentials when using proxy w/o username and password
|
|
|
|
Fixes proxy regression brought in commit ad829b21ae (7.71.0)
|
|
|
|
Fixed #5911
|
|
Closes #5914
|
|
|
|
- travis: add a build using libressl (from git master)
|
|
|
|
The v3.2.1 tag (latest release atm) results in a broken build.
|
|
|
|
Closes #5932
|
|
|
|
- configure: let --enable-debug set -Wenum-conversion with gcc >= 10
|
|
|
|
Unfortunately, this option is not detecting the same issues as clang's
|
|
-Wassign-enum flag, but should still be useful to detect future
|
|
mistakes.
|
|
|
|
Closes #5930
|
|
|
|
- openssl: consider ALERT_CERTIFICATE_EXPIRED a failed verification
|
|
|
|
If the error reason from the lib is
|
|
SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED, libcurl will return
|
|
CURLE_PEER_FAILED_VERIFICATION and not CURLE_SSL_CONNECT_ERROR.
|
|
|
|
This unifies the libcurl return code and makes libressl run test 313
|
|
(CRL testing) fine.
|
|
|
|
Closes #5934
|
|
|
|
- FAQ: refreshed some very old language
|
|
|
|
- cmake: make HTTP_ONLY also disable MQTT
|
|
|
|
... and alphasort the order of disabling protocols to make it easier to
|
|
browse.
|
|
|
|
Closes #5931
|
|
|
|
- libtest: remove lib1541 leftovers
|
|
|
|
Caused automake errors.
|
|
|
|
Follow-up to 8ca54a03ea08a
|
|
|
|
- tests/libtests: remove test 1900 and 2033
|
|
|
|
We already remove the test files, now remove the libtest codes as well.
|
|
|
|
Follow-up to e50a877df74
|
|
|
|
Marc Hoersken (7 Sep 2020)
|
|
- CI/azure: add test number to title for display in analytics
|
|
|
|
To ease identification of tests the test number is added to
|
|
the test case title in order to have it on the Azure DevOps
|
|
Analytics pages and reports which currently do not show it.
|
|
|
|
Bump test case revision to make Azure DevOps update titles.
|
|
|
|
Closes #5927
|
|
|
|
Daniel Stenberg (6 Sep 2020)
|
|
- altsvc: clone setting in curl_easy_duphandle
|
|
|
|
The cache content is not duplicated, like other caches, but the setting
|
|
and specified file name are.
|
|
|
|
Test 1908 is extended to verify this somewhat. Since the duplicated
|
|
handle gets the same file name, the test unfortunately overwrites the
|
|
same file twice (with different contents) which makes it hard to check
|
|
automatically.
|
|
|
|
Closes #5923
|
|
|
|
- test1541: remove since it is a known bug
|
|
|
|
A shared connection cache is not thread-safe is a known issue. Stop
|
|
testing this until we believe this issue is addressed. Reduces
|
|
occasional test failures we don't care about.
|
|
|
|
The test code in lib1541.c is left in git to allow us to restore it when
|
|
we get to fix this.
|
|
|
|
Closes #5922
|
|
|
|
- tests: remove pipelining tests
|
|
|
|
Remove the tests 530, 584, 1900, 1901, 1902, 1903 and 2033. They were
|
|
previously disabled.
|
|
|
|
The Pipelining code was removed from curl in commit 2f44e94efb3df8e,
|
|
April 2019.
|
|
|
|
Closes #5921
|
|
|
|
- curl: retry delays in parallel mode no longer sleeps blocking
|
|
|
|
The previous sleep for retries would block all other concurrent
|
|
transfers. Starting now, the retry will instead be properly marked to
|
|
not get restarted until after the delay time but other transfers can
|
|
still continue in the mean time.
|
|
|
|
Closes #5917
|
|
|
|
- curl:parallel_transfers: make sure retry readds the transfer
|
|
|
|
Reported-by: htasta on github
|
|
Fixes #5905
|
|
Closes #5917
|
|
|
|
- build: drop support for building with Watcom
|
|
|
|
These files are not maintained, they seem to have no users, Watcom
|
|
compilers look like not having users nor releases anymore.
|
|
|
|
Closes #5918
|
|
|
|
- winbuild/rundebug.cmd: remove
|
|
|
|
Seems to have been added by mistake? Not included in dists.
|
|
|
|
Closes #5919
|
|
|
|
- curl: in retry output don't call all problems "transient"
|
|
|
|
... because when --retry-all-errors is used, the error isn't necessarily
|
|
transient at all.
|
|
|
|
Closes #5916
|
|
|
|
- easygetopt: pass a valid enum to avoid compiler warning
|
|
|
|
"integer constant not in range of enumerated type 'CURLoption'"
|
|
|
|
Reported-by: Gisle Vanem
|
|
Bug: https://github.com/curl/curl/commit/6ebe63fac23f38df911edc348e8ccc72280f9434#commitcomment-42042843
|
|
|
|
Closes #5915
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
tests: Add tests for new --help
|
|
|
|
This commit is a part of "--help me if you can"
|
|
|
|
Closes #5680
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
tool: update --help with categories
|
|
|
|
This commit is a part of "--help me if you can"
|
|
|
|
Closes #5680
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
docs: add categories to all cmdline opts
|
|
|
|
Adapted gen.pl with 'listcats'
|
|
|
|
This commit is a part of "--help me if you can"
|
|
|
|
Closes #5680
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- [ihsinme brought this change]
|
|
|
|
connect.c: remove superfluous 'else' in Curl_getconnectinfo
|
|
|
|
Closes #5912
|
|
|
|
- [Samuel Marks brought this change]
|
|
|
|
CMake: remove explicit `CMAKE_ANSI_CFLAGS`
|
|
|
|
This variable was removed from cmake in commit
|
|
https://gitlab.kitware.com/cmake/cmake/commit/5a834b0bb0bc288. A later
|
|
CMake commit removes the variable from the tests, claiming that it was
|
|
removed in CMake 2.6
|
|
|
|
Reviewed-By: Peter Wu
|
|
Closes #5439
|
|
|
|
- [cbe brought this change]
|
|
|
|
libssh2: pass on the error from ssh_force_knownhost_key_type
|
|
|
|
Closes #5909
|
|
|
|
- scripts/delta: add diffstat summary
|
|
|
|
... and make output more table-like
|
|
|
|
- [Martin Bašti brought this change]
|
|
|
|
http_proxy: do not crash with HTTPS_PROXY and NO_PROXY set
|
|
|
|
... in case NO_PROXY takes an effect
|
|
|
|
Without this patch, the following command crashes:
|
|
|
|
$ GIT_CURL_VERBOSE=1 NO_PROXY=github.com HTTPS_PROXY=https://example.com \
|
|
git clone https://github.com/curl/curl.git
|
|
|
|
Minimal libcurl-based reproducer:
|
|
|
|
#include <curl/curl.h>
|
|
|
|
int main() {
|
|
CURL *curl = curl_easy_init();
|
|
if(curl) {
|
|
CURLcode ret;
|
|
curl_easy_setopt(curl, CURLOPT_URL, "https://github.com/");
|
|
curl_easy_setopt(curl, CURLOPT_PROXY, "example.com");
|
|
/* set the proxy type */
|
|
curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTPS);
|
|
curl_easy_setopt(curl, CURLOPT_NOPROXY, "github.com");
|
|
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
|
|
ret = curl_easy_perform(curl);
|
|
curl_easy_cleanup(curl);
|
|
return ret;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
Assisted-by: Kamil Dudka
|
|
Bug: https://bugzilla.redhat.com/1873327
|
|
Closes #5902
|
|
|
|
- travis: add a CI job with openssl3 (from git master)
|
|
|
|
Closes #5908
|
|
|
|
- openssl: avoid error conditions when importing native CA
|
|
|
|
The code section that is OpenSSL 3+ specific now uses the same logic as
|
|
is used in the version < 3 section. It caused a compiler error without
|
|
it.
|
|
|
|
Closes #5907
|
|
|
|
- setopt: avoid curl_ on local variable
|
|
|
|
Closes #5906
|
|
|
|
- mqtt.c: avoid curl_ prefix on local variable
|
|
|
|
Closes #5906
|
|
|
|
- wildcard: strip "curl_" prefix from private symbols
|
|
|
|
Closes #5906
|
|
|
|
- vtls: make it 'struct Curl_ssl_session'
|
|
|
|
Use uppercase C for internal symbols.
|
|
|
|
Closes #5906
|
|
|
|
- curl_threads: make it 'struct Curl_actual_call'
|
|
|
|
Internal names should not be prefixed "curl_"
|
|
|
|
Closes #5906
|
|
|
|
- schannel: make it 'struct Curl_schannel*'
|
|
|
|
As internal global names should use captical C.
|
|
|
|
Closes #5906
|
|
|
|
- hash: make it 'struct Curl_hash'
|
|
|
|
As internal global names should use captical C.
|
|
|
|
Closes #5906
|
|
|
|
- llist: make it "struct Curl_llist"
|
|
|
|
As internal global names should use captical C.
|
|
|
|
Closes #5906
|
|
|
|
Marc Hoersken (2 Sep 2020)
|
|
- telnet.c: depend on static requirement of WinSock version 2
|
|
|
|
Drop dynamic loading of ws2_32.dll and instead rely on the
|
|
imported version which is now required to be at least 2.2.
|
|
|
|
Reviewed-by: Marcel Raad
|
|
Reviewed-by: Jay Satiro
|
|
Reviewed-by: Daniel Stenberg
|
|
Reviewed-by: Viktor Szakats
|
|
|
|
Closes #5854
|
|
|
|
- win32: drop support for WinSock version 1, require version 2
|
|
|
|
IPv6, telnet and now also the multi API require WinSock
|
|
version 2 which is available starting with Windows 95.
|
|
|
|
Therefore we think it is time to drop support for version 1.
|
|
|
|
Reviewed-by: Marcel Raad
|
|
Reviewed-by: Jay Satiro
|
|
Reviewed-by: Daniel Stenberg
|
|
Reviewed-by: Viktor Szakats
|
|
|
|
Follow up to #5634
|
|
Closes #5854
|
|
|
|
- select: align poll emulation to return all relevant events
|
|
|
|
The poll emulation via select already consumes POLLRDNORM,
|
|
POLLWRNORM and POLLRDBAND as input events. Therefore it
|
|
should also return them as output events if signaled.
|
|
|
|
Also fix indentation in input event handling block.
|
|
|
|
Assisted-by: Jay Satiro
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Replaces #5852
|
|
Closes #5883
|
|
|
|
- CI/azure: MQTT is now enabled by default
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Follow up to #5858
|
|
Closes #5903
|
|
|
|
Daniel Stenberg (2 Sep 2020)
|
|
- copyright.pl: ignore buildconf
|
|
|
|
- test971: show test mismatches "inline"
|
|
|
|
- lib/Makefile.am: bump VERSIONINFO due to new functions
|
|
|
|
... we're generally bad at this, but we are adding new functions for
|
|
this release.
|
|
|
|
Closes #5899
|
|
|
|
- optiontable: use DEBUGBUILD
|
|
|
|
Follow-up to commit 6e18568ba38 (#5877)
|
|
|
|
- cmdline-opts/gen.pl: generate nicer "See Also" in curl.1
|
|
|
|
If there are more than two items in the list, use commas for all but the
|
|
last separator which is set to 'and'. Reads better.
|
|
|
|
Closes #5898
|
|
|
|
- curl.1: add see also no-progress-meter on two spots
|
|
|
|
Ref: #5894
|
|
|
|
Closes #5897
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- mqtt: enable by default
|
|
|
|
No longer considered experimental.
|
|
|
|
Closes #5858
|
|
|
|
- [Michael Baentsch brought this change]
|
|
|
|
tls: add CURLOPT_SSL_EC_CURVES and --curves
|
|
|
|
Closes #5892
|
|
|
|
- url: remove funny embedded comments in Curl_disonnect calls
|
|
|
|
- [Chris Paulson-Ellis brought this change]
|
|
|
|
conn: check for connection being dead before reuse
|
|
|
|
Prevents incorrect reuse of an HTTP connection that has been prematurely
|
|
shutdown() by the server.
|
|
|
|
Partial revert of 755083d00deb16
|
|
|
|
Fixes #5884
|
|
Closes #5893
|
|
|
|
Marc Hoersken (29 Aug 2020)
|
|
- buildconf: exec autoreconf to avoid additional process
|
|
|
|
Also make buildconf exit with the return code of autoreconf.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Follow up to #5853
|
|
Closes #5890
|
|
|
|
- CI/azure: no longer ignore results of test 1013
|
|
|
|
Follow up to #5771
|
|
Closes #5889
|
|
|
|
- docs: add description about CI platforms to CONTRIBUTE.md
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Reviewed-by: Marcel Raad
|
|
Reviewed-by: Jay Satiro
|
|
|
|
Closes #5882
|
|
|
|
Daniel Stenberg (29 Aug 2020)
|
|
- tests/getpart: use MIME::Base64 instead of home-cooked
|
|
|
|
Since we already use the base64 package since a while back, we can just
|
|
as well switch to that here too.
|
|
|
|
It also happens to use the exact same function name, which otherwise
|
|
causes a run-time warning.
|
|
|
|
Reported-by: Marc Hörsken
|
|
Fixes #5885
|
|
Closes #5887
|
|
|
|
Marcel Raad (29 Aug 2020)
|
|
- ntlm: fix condition for curl_ntlm_core usage
|
|
|
|
`USE_WINDOWS_SSPI` without `USE_WIN32_CRYPTO` but with any other DES
|
|
backend is fine, but was excluded before.
|
|
|
|
This also fixes test 1013 as the condition for SMB support in
|
|
configure.ac didn't match the condition in the source code. Now it
|
|
does.
|
|
|
|
Fixes https://github.com/curl/curl/issues/1262
|
|
Closes https://github.com/curl/curl/pull/5771
|
|
|
|
- AppVeyor: switch 64-bit Schannel Debug CMake builds to Unicode
|
|
|
|
The Schannel builds are the most useful to verify as they make the most
|
|
use of the Windows API. Classic MinGW doesn't support Unicode at all,
|
|
only MinGW-w64 and MSVC do.
|
|
|
|
Closes https://github.com/curl/curl/pull/5843
|
|
|
|
- CMake: add option to enable Unicode on Windows
|
|
|
|
As already existing for winbuild.
|
|
|
|
Closes https://github.com/curl/curl/pull/5843
|
|
|
|
Marc Hoersken (29 Aug 2020)
|
|
- select: simplify return code handling for poll and select
|
|
|
|
poll and select already return -1 on error according to POSIX,
|
|
so there is no need to perform a <0 to -1 conversion in code.
|
|
|
|
Also we can just use one check with <= 0 on the return code.
|
|
|
|
Assisted-by: Daniel Stenberg
|
|
Reviewed-by: Jay Satiro
|
|
|
|
Replaces #5852
|
|
Closes #5880
|
|
|
|
Daniel Stenberg (28 Aug 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
- [Jeroen Ooms brought this change]
|
|
|
|
tests: add test1912 with typechecks
|
|
|
|
Validates that gcc-typecheck macros match the new option type API.
|
|
|
|
Closes #5873
|
|
|
|
- easyoptions: provide debug function when DEBUGBUILD
|
|
|
|
... not CURLDEBUG as they're not always set in conjunction.
|
|
|
|
Follow-up to 6ebe63fac23f38df
|
|
|
|
Fixes #5877
|
|
Closes #5878
|
|
|
|
Marc Hoersken (28 Aug 2020)
|
|
- sockfilt: handle FD_CLOSE winsock event on write socket
|
|
|
|
Learn from the way Cygwin handles and maps the WinSock events
|
|
to simulate correct and complete poll and select behaviour
|
|
according to Richard W. Stevens Network Programming book.
|
|
|
|
Follow up to #5867
|
|
Closes #5879
|
|
|
|
- multi: handle connection state winsock events
|
|
|
|
Learn from the way Cygwin handles and maps the WinSock events
|
|
to simulate correct and complete poll and select behaviour
|
|
according to Richard W. Stevens Network Programming book.
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Reviewed-by: Marcel Raad
|
|
|
|
Follow up to #5634
|
|
Closes #5867
|
|
|
|
Daniel Stenberg (28 Aug 2020)
|
|
- Curl_pgrsTime - return new time to avoid timeout integer overflow
|
|
|
|
Setting a timeout to INT_MAX could cause an immediate error to get
|
|
returned as timeout because of an overflow when different values of
|
|
'now' were used.
|
|
|
|
This is primarily fixed by having Curl_pgrsTime() return the "now" when
|
|
TIMER_STARTSINGLE is set so that the parent function will continue using
|
|
that time.
|
|
|
|
Reported-by: Ionuț-Francisc Oancea
|
|
Fixes #5583
|
|
Closes #5847
|
|
|
|
- TLS: fix SRP detection by using the proper #ifdefs
|
|
|
|
USE_TLS_SRP will be true if *any* selected TLS backend can use SRP
|
|
|
|
HAVE_OPENSSL_SRP is defined when OpenSSL can use it
|
|
|
|
HAVE_GNUTLS_SRP is defined when GnuTLS can use it
|
|
|
|
Clarify in the curl_verison_info docs that CURL_VERSION_TLSAUTH_SRP is
|
|
set if at least one of the supported backends offers SRP.
|
|
|
|
Reported-by: Stefan Strogin
|
|
Fixes #5865
|
|
Closes #5870
|
|
|
|
- [Dan Kenigsberg brought this change]
|
|
|
|
docs: SSLCERTS: fix English syntax
|
|
|
|
Signed-off-by: Dan Kenigsberg <danken@redhat.com>
|
|
|
|
Closes #5876
|
|
|
|
- [Alessandro Ghedini brought this change]
|
|
|
|
docs: non-existing macros in man pages
|
|
|
|
As reported by man(1) when invoked as:
|
|
|
|
man --warnings -E UTF-8 -l -Tutf8 -Z <file> >/dev/null
|
|
|
|
Closes #5846
|
|
|
|
- [Alessandro Ghedini brought this change]
|
|
|
|
curl.1: fix typo invokved -> invoked
|
|
|
|
Closes #5846
|
|
|
|
- buildconf: invoke 'autoreconf -fi' instead
|
|
|
|
The custom script isn't necessary anymore - but remains for simplicity
|
|
and just invokes autoreconf.
|
|
|
|
Closes #5853
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
lib: make Curl_gethostname accept a const pointer
|
|
|
|
The address of that variable never gets changed, only the data in it so
|
|
why not make it a "char * const"?
|
|
|
|
Closes #5866
|
|
|
|
- docs/libcurl: update "Added in" version for curl_easy_option*
|
|
|
|
Follow-up to 6ebe63fac23f38
|
|
|
|
- scripts: improve the "get latest curl release tag" logic
|
|
|
|
... by insiting on it matching "^curl-".
|
|
|
|
- configure: added --disable-get-easy-options
|
|
|
|
To allow disabling of the curl_easy_option APIs in a build.
|
|
|
|
Closes #5365
|
|
|
|
- options: API for meta-data about easy options
|
|
|
|
const struct curl_easyoption *curl_easy_option_by_name(const char *name);
|
|
|
|
const struct curl_easyoption *curl_easy_option_by_id (CURLoption id);
|
|
|
|
const struct curl_easyoption *
|
|
curl_easy_option_next(const struct curl_easyoption *prev);
|
|
|
|
The purpose is to provide detailed enough information to allow for
|
|
example libcurl bindings to get option information at run-time about
|
|
what easy options that exist and what arguments they expect.
|
|
|
|
Assisted-by: Jeroen Ooms
|
|
Closes #5365
|
|
|
|
- [Eric Curtin brought this change]
|
|
|
|
HTTP/3: update to OpenSSL_1_1_1g-quic-draft-29
|
|
|
|
Closes #5871
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
Jay Satiro (26 Aug 2020)
|
|
- openssl: Fix wincrypt symbols conflict with BoringSSL
|
|
|
|
OpenSSL undefines the conflicting symbols but BoringSSL does not so we
|
|
must do it ourselves.
|
|
|
|
Reported-by: Samuel Tranchet
|
|
Assisted-by: Javier Blazquez
|
|
|
|
Ref: https://bugs.chromium.org/p/boringssl/issues/detail?id=371
|
|
Ref: https://github.com/openssl/openssl/blob/OpenSSL_1_1_1g/include/openssl/ossl_typ.h#L66-L73
|
|
|
|
Fixes https://github.com/curl/curl/issues/5669
|
|
Closes https://github.com/curl/curl/pull/5857
|
|
|
|
Daniel Stenberg (26 Aug 2020)
|
|
- socketpair: allow CURL_DISABLE_SOCKETPAIR
|
|
|
|
... to completely disable the use of socketpair
|
|
|
|
Closes #5850
|
|
|
|
- curl_get_line: build only if cookies or alt-svc are enabled
|
|
|
|
Closes #5851
|
|
|
|
- [fullincome brought this change]
|
|
|
|
schannel: fix memory leak when using get_cert_location
|
|
|
|
The get_cert_location function allocates memory only on success.
|
|
Previously get_cert_location was able to allocate memory and return
|
|
error. It wasn't obvious and in this case the memory wasn't
|
|
released.
|
|
|
|
Fixes #5855
|
|
Closes #5860
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
git: ignore libtests in 3XXX area
|
|
|
|
Currently the file tests/libtest/lib3010 is not getting
|
|
ignored by git. This fixes it by adding the 3XXX area to
|
|
the according .gitignore file.
|
|
|
|
Closes #5859
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
doh: add error message for DOH_DNS_NAME_TOO_LONG
|
|
|
|
When this error code was introduced in b6a53fff6c1d07e8a9, it was
|
|
forgotten to be added in the errors array and doh_strerror function.
|
|
|
|
Closes #5863
|
|
|
|
- ngtcp2: adapt to the new pkt_info arguments
|
|
|
|
Guidance-by: Tatsuhiro Tsujikawa
|
|
|
|
Closes #5864
|
|
|
|
- winbuild/README.md: make <options> visible
|
|
|
|
Follow-up to be753add31c2d8c
|
|
|
|
- winbuild: convert the instruction text to README.md
|
|
|
|
Closes #5861
|
|
|
|
- lib1560: verify "redirect" to double-slash leading URL
|
|
|
|
Closes #5849
|
|
|
|
Marc Hoersken (25 Aug 2020)
|
|
- multi: expand pre-check for socket readiness
|
|
|
|
Check readiness of all sockets before waiting on them
|
|
to avoid locking in case the one-time event FD_WRITE
|
|
was already consumed by a previous wait operation.
|
|
|
|
More information about WinSock network events:
|
|
https://docs.microsoft.com/en-us/windows/win32/api/
|
|
winsock2/nf-winsock2-wsaeventselect#return-value
|
|
|
|
Closes #5634
|
|
|
|
- [rcombs brought this change]
|
|
|
|
multi: implement wait using winsock events
|
|
|
|
This avoids using a pair of TCP ports to provide wakeup functionality
|
|
for every multi instance on Windows, where socketpair() is emulated
|
|
using a TCP socket on loopback which could in turn lead to socket
|
|
resource exhaustion.
|
|
|
|
A previous version of this patch failed to account for how in WinSock,
|
|
FD_WRITE is set only once when writing becomes possible and not again
|
|
until after a send has failed due to the buffer filling. This contrasts
|
|
to how FD_READ and FD_OOB continue to be set until the conditions they
|
|
refer to no longer apply. This meant that if a user wrote some data to
|
|
a socket, but not enough data to completely fill its send buffer, then
|
|
waited on that socket to become writable, we'd erroneously stall until
|
|
their configured timeout rather than returning immediately.
|
|
|
|
This version of the patch addresses that issue by checking each socket
|
|
we're waiting on to become writable with select() before the wait, and
|
|
zeroing the timeout if it's already writable.
|
|
|
|
Assisted-by: Marc Hörsken
|
|
Reviewed-by: Marcel Raad
|
|
Reviewed-by: Daniel Stenberg
|
|
Tested-by: Gergely Nagy
|
|
Tested-by: Rasmus Melchior Jacobsen
|
|
Tested-by: Tomas Berger
|
|
|
|
Replaces #5397
|
|
Reverts #5632
|
|
Closes #5634
|
|
|
|
- select: reduce duplication of Curl_poll in Curl_socket_check
|
|
|
|
Change Curl_socket_check to use select-fallback in Curl_poll
|
|
instead of implementing it in Curl_socket_check and Curl_poll.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Reviewed-by: Jay Satiro
|
|
|
|
Replaces #5262 and #5492
|
|
Closes #5707
|
|
|
|
- select: fix poll-based check not detecting connect failure
|
|
|
|
This commit changes Curl_socket_check to use POLLPRI to
|
|
check for connect failure on the write socket, because
|
|
POLLPRI maps to fds_err. This is in line with select(2).
|
|
|
|
The select-based socket check correctly checks for connect
|
|
failures by adding the write socket also to fds_err.
|
|
|
|
The poll-based implementation (which internally can itself
|
|
fallback to select again) did not previously check for
|
|
connect failure by using POLLPRI with the write socket.
|
|
|
|
See the follow up commit to this for more information.
|
|
|
|
This commit makes sure connect failures can be detected
|
|
and handled if HAVE_POLL_FINE is defined, eg. on msys2-devel.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Reviewed-by: Jay Satiro
|
|
|
|
Replaces #5509
|
|
Prepares #5707
|
|
|
|
- select.h: make socket validation macros test for INVALID_SOCKET
|
|
|
|
With Winsock the valid range is [0..INVALID_SOCKET-1] according to
|
|
https://docs.microsoft.com/en-us/windows/win32/winsock/socket-data-type-2
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Reviewed-by: Marcel Raad
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Closes #5760
|
|
|
|
Daniel Stenberg (24 Aug 2020)
|
|
- docs: --output-dir is added in 7.73.0, nothing else
|
|
|
|
Follow-up to 5620d2cc78c0
|
|
|
|
- curl: add --output-dir
|
|
|
|
Works with --create-dirs and with -J
|
|
|
|
Add test 3008, 3009, 3011, 3012 and 3013 to verify.
|
|
|
|
Closes #5637
|
|
|
|
- configure: fix pkg-config detecting wolfssl
|
|
|
|
When amending the include path with "/wolfssl", this now properly strips
|
|
off all whitespace from the path variable! Previously this would lead to
|
|
pkg-config builds creating bad command lines.
|
|
|
|
Closes #5848
|
|
|
|
- [Michael Musset brought this change]
|
|
|
|
sftp: add the option CURLKHSTAT_FINE_REPLACE
|
|
|
|
Replace the old fingerprint of the host with a new.
|
|
|
|
Closes #5685
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
The next release is now to become 7.73.0
|
|
|
|
- checksrc: verify do-while and spaces between the braces
|
|
|
|
Updated mprintf.c to comply
|
|
|
|
Closes #5845
|
|
|
|
- curl: support XDG_CONFIG_HOME to find .curlrc
|
|
|
|
Added test433 to verify. Updated documentation.
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Suggested-by: Eli Schwartz
|
|
Fixes #5829
|
|
Closes #5837
|
|
|
|
- etag: save and use the full received contents
|
|
|
|
... which makes it support weak tags and non-standard etags too!
|
|
|
|
Added test case 347 to verify blank incoming ETag:
|
|
|
|
Fixes #5610
|
|
Closes #5833
|
|
|
|
- setopt: if the buffer exists, refuse the new BUFFERSIZE
|
|
|
|
The buffer only exists during transfer and then we shouldn't change the
|
|
size (the setopt is not documented to work then).
|
|
|
|
Reported-by: Harry Sintonen
|
|
Closes #5842
|
|
|
|
- [COFFEETALES brought this change]
|
|
|
|
sftp: add new quote commands 'atime' and 'mtime'
|
|
|
|
Closes #5810
|
|
|
|
- CURLE_PROXY: new error code
|
|
|
|
Failures clearly returned from a (SOCKS) proxy now causes this return
|
|
code. Previously the situation was not very clear as what would be
|
|
returned and when.
|
|
|
|
In addition: when this error code is returned, an application can use
|
|
CURLINFO_PROXY_ERROR to query libcurl for the detailed error, which then
|
|
returns a value from the new 'CURLproxycode' enum.
|
|
|
|
Closes #5770
|
|
|
|
- runtests: make cleardir() erase dot files too
|
|
|
|
Because test cases might use dot files.
|
|
|
|
Closes #5838
|
|
|
|
- KNOWN_BUGS: 'no_proxy' string-matches IPv6 numerical addreses
|
|
|
|
Also: the current behavior is now documented in the curl.1 and
|
|
CURLOPT_NOPROXY.3 man pages.
|
|
|
|
Reported-by: Andrew Barnes
|
|
Closes #5745
|
|
Closes #5841
|
|
|
|
Viktor Szakats (22 Aug 2020)
|
|
- Makefile.m32: add ability to override zstd libs [ci skip]
|
|
|
|
Similarly to brotli, where this was already possible.
|
|
E.g. it allows to link zstd statically to libcurl.dll.
|
|
|
|
Ref: https://github.com/curl/curl-for-win/issues/12
|
|
Ref: https://github.com/curl/curl-for-win/commit/d9b266afd2e5d3f5604483010ef62340b5918c89
|
|
|
|
Closes https://github.com/curl/curl/pull/5840
|
|
|
|
Daniel Stenberg (21 Aug 2020)
|
|
- runtests: avoid 'fail to start' repeated messages in attempt loops
|
|
|
|
Closes #5834
|
|
|
|
- runtests: clear pid variables when failing to start a server
|
|
|
|
... as otherwise the parent doesn't detect the failure and believe it
|
|
actually worked to start.
|
|
|
|
Reported-by: Christian Weisgerber
|
|
Bug: https://curl.haxx.se/mail/lib-2020-08/0018.html
|
|
Closes #5834
|
|
|
|
- TODO: Virtual external sockets
|
|
|
|
Closes #5835
|
|
|
|
- [Don J Olmstead brought this change]
|
|
|
|
dist: add missing CMake Find modules to the distribution
|
|
|
|
Closes #5836
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
... and version bumped to 7.72.1
|
|
|
|
- tls: provide the CApath verbose log on its own line
|
|
|
|
... not newline separated from the previous line. This makes it output
|
|
asterisk prefixed properly like other verbose putput!
|
|
|
|
Reported-by: jmdavitt on github
|
|
Fixes #5826
|
|
Closes #5827
|
|
|
|
Version 7.72.0 (19 Aug 2020)
|
|
|
|
Daniel Stenberg (19 Aug 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
The curl 7.72.0 release
|
|
|
|
- THANKS: add names from curl 7.72.0 release
|
|
|
|
Jay Satiro (18 Aug 2020)
|
|
- KNOWN_BUGS: Schannel TLS 1.2 handshake bug in old Windows versions
|
|
|
|
Reported-by: plujon@users.noreply.github.com
|
|
|
|
Closes https://github.com/curl/curl/issues/5488
|
|
|
|
Daniel Stenberg (17 Aug 2020)
|
|
- Curl_easy: remember last connection by id, not by pointer
|
|
|
|
CVE-2020-8231
|
|
|
|
Bug: https://curl.haxx.se/docs/CVE-2020-8231.html
|
|
|
|
Reported-by: Marc Aldorasi
|
|
Closes #5824
|
|
|
|
- examples/rtsp.c: correct the copyright year
|
|
|
|
- RELEASE-PROCEDURE.md: add more future release dates
|
|
|
|
- [H3RSKO brought this change]
|
|
|
|
docs: change "web site" to "website"
|
|
|
|
According to wikipedia:
|
|
|
|
While "web site" was the original spelling, this variant has become
|
|
rarely used, and "website" has become the standard spelling
|
|
|
|
Closes #5822
|
|
|
|
- [Bevan Weiss brought this change]
|
|
|
|
CMake: don't complain about missing nroff
|
|
|
|
The curl_nroff_check() was always being called, and complaining if
|
|
*NROFF wasn't found, even when not making the manual.
|
|
|
|
Only check for nroff (and complain) if actually making the manual
|
|
|
|
Closes #5817
|
|
|
|
- [Brian Inglis brought this change]
|
|
|
|
libtest/Makefile.am: add -no-undefined for libstubgss for Cygwin
|
|
|
|
copy the LDFLAGS approach for adding same option with `libhostname` in
|
|
`libtest/Makefile.am`:
|
|
|
|
- init `libstubgss_la_LDFLAGS_EXTRA` variable,
|
|
- add option to variable inside conditional,
|
|
- use variable in `libstubgss_la_LDFLAGS`
|
|
|
|
Fixes #5819
|
|
Closes #5820
|
|
|
|
- docs: clarify MAX_SEND/RECV_SPEED functionality
|
|
|
|
... in particular what happens if the maximum speed limit is set to a
|
|
value that's smaller than the transfer buffer size in use.
|
|
|
|
Reported-by: Tomas Berger
|
|
Fixes #5788
|
|
Closes #5813
|
|
|
|
- test1140: compare stdout
|
|
|
|
To make problems more immediately obvious when tests fail.
|
|
|
|
Closes #5814
|
|
|
|
- asyn-ares: correct some bad comments
|
|
|
|
Closes #5812
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
docs: Add video link to docs/CONTRIBUTE.md
|
|
|
|
Closes #5811
|
|
|
|
- curl-config: ignore REQUIRE_LIB_DEPS in --libs output
|
|
|
|
Fixes a curl-config issue on cygwin by making sure REQUIRE_LIB_DEPS is
|
|
not considered for the --libs output.
|
|
|
|
Reported-by: ramsay-jones on github
|
|
Assisted-by: Brian Inglis and Ken Brown
|
|
Fixes #5793
|
|
Closes #5808
|
|
|
|
- copyright: update/correct the year range on a few files
|
|
|
|
- scripts/copyright.pl: ignore .muse files
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
multi: Remove 10-year old out-commented code
|
|
|
|
The code hasn't been touched since 2010-08-18
|
|
|
|
Closes #5805
|
|
|
|
- KNOWN_BUGS: A shared connection cache is not thread-safe
|
|
|
|
Closes #4915
|
|
Closes #5802
|
|
|
|
- CONTRIBUTE: extend git commit message description
|
|
|
|
In particular how the first line works.
|
|
|
|
Closes #5803
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- [Stefan Yohansson brought this change]
|
|
|
|
transfer: move retrycount from connect struct to easy handle
|
|
|
|
This flag was applied to the connection struct that is released on
|
|
retry. These changes move the retry counter into Curl_easy struct that
|
|
lives across retries and retains the new connection.
|
|
|
|
Reported-by: Cherish98 on github
|
|
Fixes #5794
|
|
Closes #5800
|
|
|
|
- libssh2: s/ssherr/sftperr/
|
|
|
|
The debug output used ssherr instead of sftperr which not only outputs
|
|
the wrong error code but also casues a warning on Windows.
|
|
|
|
Follow-up to 7370b4e39f1
|
|
|
|
Reported-by: Gisle Vanem
|
|
Bug: https://github.com/curl/curl/commit/7370b4e39f1390e701f5b68d910c619151daf72b#r41334700
|
|
Closes #5799
|
|
|
|
- ftp: don't do ssl_shutdown instead of ssl_close
|
|
|
|
The shutdown function is for downgrading a connection from TLS to plain,
|
|
and this is not requested here.
|
|
|
|
Have ssl_close reset the TLS connection state.
|
|
|
|
This partially reverts commit f002c850d98d
|
|
|
|
Reported-by: Rasmus Melchior Jacobsen
|
|
Reported-by: Denis Goleshchikhin
|
|
Fixes #5797
|
|
|
|
Marc Hoersken (9 Aug 2020)
|
|
- CI/azure: fix test outcome values and use latest API version
|
|
|
|
This makes sure that tests ignored or skipped are not shown
|
|
just in the category "Other", but with their correct state.
|
|
|
|
Closes #5796
|
|
|
|
- CI/azure: show runtime stats to investigate slowness
|
|
|
|
Also avoid naming conflict of TFLAGS env and tflags variables.
|
|
|
|
Closes #5776
|
|
|
|
Daniel Stenberg (8 Aug 2020)
|
|
- TLS naming: fix more Winssl and Darwinssl leftovers
|
|
|
|
The CMake option is now called CMAKE_USE_SCHANNEL
|
|
|
|
The winbuild flag is USE_SCHANNEL
|
|
|
|
The CI jobs and build scripts only use the new names and the new name
|
|
options
|
|
|
|
Tests now require 'Schannel' (when necessary)
|
|
|
|
Closes #5795
|
|
|
|
- smtp_parse_address: handle blank input string properly
|
|
|
|
Closes #5792
|
|
|
|
- runtests: run the DICT server on a random port number
|
|
|
|
Removed support for -b (base port number)
|
|
|
|
Closes #5783
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- runtests: move the TELNET server to a dynamic port
|
|
|
|
Rename the port variable to TELNETPORT to better match the existing
|
|
pattern.
|
|
|
|
Closes #5785
|
|
|
|
- ngtcp2: adapt to error code rename
|
|
|
|
Closes #5786
|
|
|
|
- runtests: move the smbserver to use a dynamic port number
|
|
|
|
Closes #5782
|
|
|
|
- runtests: run the http2 tests on a random port number
|
|
|
|
Closes #5779
|
|
|
|
- gtls: survive not being able to get name/issuer
|
|
|
|
Closes #5778
|
|
|
|
- runtests: move the gnutls-serv tests to a dynamic port
|
|
|
|
Affects test 320, 321, 322 and 324.
|
|
|
|
Closes #5778
|
|
|
|
- runtests: support dynamicly base64 encoded sections in tests
|
|
|
|
This allows us to make test cases to use base64 at run-time and still
|
|
use and verify information determined at run-time, such as the IMAP test
|
|
server's port number in test 842.
|
|
|
|
This change makes 12 tests run again that basically never ran since we
|
|
moved to dynamic port numbers.
|
|
|
|
ftpserver.pl is adjusted to load test instructions and test number from
|
|
the preprocessed test file.
|
|
|
|
FILEFORMAT.md now documents the new base64 encoding syntax.
|
|
|
|
Reported-by: Marcel Raad
|
|
Fixes #5761
|
|
Closes #5775
|
|
|
|
- curl.1: add a few missing valid exit codes
|
|
|
|
93 - 96 can be returned as well.
|
|
|
|
Closes #5777
|
|
|
|
- TODO: Use multiple parallel transfers for a single download
|
|
|
|
Closes #5774
|
|
|
|
- TODO: Set the modification date on an uploaded file
|
|
|
|
Closes #5768
|
|
|
|
- [Thomas M. DuBuisson brought this change]
|
|
|
|
CI: Add muse CI config
|
|
|
|
Closes #5772
|
|
|
|
- [Thomas M. DuBuisson brought this change]
|
|
|
|
travis/script.sh: fix use of `-n' with unquoted envvar
|
|
|
|
Shellcheck tells us "-n doesn't work with unquoted arguments. quote or
|
|
use [[ ]]."
|
|
|
|
And testing shows:
|
|
|
|
```
|
|
docker run --rm -it ubuntu bash
|
|
root@fe85ce156856:/# [ -n $DOES_NOT_EXIST ] && echo "I ran"
|
|
I ran
|
|
root@fe85ce156856:/# [ -n "$DOES_NOT_EXIST" ] && echo "I ran"
|
|
root@fe85ce156856:/#
|
|
```
|
|
|
|
Closes #5773
|
|
|
|
- h2: repair trailer handling
|
|
|
|
The previous h2 trailer fix in 54a2b63 was wrong and caused a
|
|
regression: it cannot deal with trailers immediately when read since
|
|
they may be read off the connection by the wrong 'data' owner.
|
|
|
|
This change reverts the logic back to gathering all trailers into a
|
|
single buffer, like before 54a2b63.
|
|
|
|
Reported-by: Tadej Vengust
|
|
Fixes #5663
|
|
Closes #5769
|
|
|
|
Viktor Szakats (3 Aug 2020)
|
|
- windows: disable Unix Sockets for old mingw
|
|
|
|
Classic mingw and 10y+ old versions of mingw-w64 don't ship with
|
|
Windows headers having the typedef necessary for Unix Sockets
|
|
support, so try detecting these environments to disable this
|
|
feature.
|
|
|
|
Ref: https://sourceforge.net/p/mingw-w64/mingw-w64/ci/cf6afc57179a5910621215f8f4037d406892072c/
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Fixes #5674
|
|
Closes #5758
|
|
|
|
Marcel Raad (3 Aug 2020)
|
|
- test1908: treat file as text
|
|
|
|
Fixes the line endings on Windows.
|
|
|
|
Closes https://github.com/curl/curl/pull/5767
|
|
|
|
- TrackMemory tests: ignore realloc and free in getenv.c
|
|
|
|
These are only called for WIN32.
|
|
|
|
Closes https://github.com/curl/curl/pull/5767
|
|
|
|
Daniel Stenberg (3 Aug 2020)
|
|
- tests/FILEFORMAT.md: mention %HTTP2PORT
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- tlsv1.3.d. only for TLS-using connections
|
|
|
|
... and rephrase that "not all" TLS backends support it.
|
|
|
|
Closes #5764
|
|
|
|
- tls-max.d: this option is only for TLS-using connections
|
|
|
|
Ref: #5763
|
|
Closes #5764
|
|
|
|
Marcel Raad (2 Aug 2020)
|
|
- [Cameron Cawley brought this change]
|
|
|
|
tool_doswin: Simplify Windows version detection
|
|
|
|
Closes https://github.com/curl/curl/pull/5754
|
|
|
|
- [Cameron Cawley brought this change]
|
|
|
|
win32: Add Curl_verify_windows_version() to curlx
|
|
|
|
Closes https://github.com/curl/curl/pull/5754
|
|
|
|
- runtests.pl: treat LibreSSL and BoringSSL as OpenSSL
|
|
|
|
This makes the tests that require the OpenSSL feature also run for
|
|
those two compatible libraries.
|
|
|
|
Closes https://github.com/curl/curl/pull/5762
|
|
|
|
Daniel Stenberg (1 Aug 2020)
|
|
- multi: Condition 'extrawait' is always true
|
|
|
|
Reported by Codacy.
|
|
|
|
Reviewed-by: Marcel Raad
|
|
Closes #5759
|
|
|
|
Marcel Raad (1 Aug 2020)
|
|
- openssl: fix build with LibreSSL < 2.9.1
|
|
|
|
`SSL_CTX_add0_chain_cert` and `SSL_CTX_clear_chain_certs` were
|
|
introduced in LibreSSL 2.9.1 [0].
|
|
|
|
[0] https://github.com/libressl-portable/openbsd/commit/0db809ee178457c8170abfae3931d7bd13abf3ef
|
|
|
|
Closes https://github.com/curl/curl/pull/5757
|
|
|
|
Daniel Stenberg (1 Aug 2020)
|
|
- [Marc Aldorasi brought this change]
|
|
|
|
multi_remove_handle: close unused connect-only connections
|
|
|
|
Previously any connect-only connections in a multi handle would be kept
|
|
alive until the multi handle was closed. Since these connections cannot
|
|
be re-used, they can be marked for closure when the associated easy
|
|
handle is removed from the multi handle.
|
|
|
|
Closes #5749
|
|
|
|
- checksrc: invoke script with -D to find .checksrc proper
|
|
|
|
Without the -D command line option, checksrc.pl won't know which
|
|
directory to load the ".checksrc" file from when building out of the
|
|
source tree.
|
|
|
|
Reported-by: Marcel Raad
|
|
Fixes #5715
|
|
Closes #5755
|
|
|
|
- [Carlo Marcelo Arenas Belón brought this change]
|
|
|
|
buildconf: retire ares buildconf invocation
|
|
|
|
no longer needed after 4259d2df7dd95637a4b1e3fb174fe5e5aef81069
|
|
|
|
- [Carlo Marcelo Arenas Belón brought this change]
|
|
|
|
buildconf: excempt defunct reference to ACLOCAL_FLAGS
|
|
|
|
retired with 09f278121e815028adb24d228d8092fc6cb022aa but kept around as
|
|
the name is generic enough that it might be in use and relied upon from
|
|
the environment.
|
|
|
|
- [Carlo Marcelo Arenas Belón brought this change]
|
|
|
|
buildconf: avoid array concatenation in die()
|
|
|
|
reported as error SC2145[1] by shellcheck, but not expected to cause
|
|
any behavioural differences otherwise.
|
|
|
|
[1] https://github.com/koalaman/shellcheck/wiki/SC2145
|
|
|
|
Closes #5701
|
|
|
|
- travis: add ppc64le and s390x builds
|
|
|
|
Closes #5752
|
|
|
|
Marc Hoersken (31 Jul 2020)
|
|
- connect: remove redundant message about connect failure
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Closes #5708
|
|
|
|
- tests/sshserver.pl: fix compatibility with OpenSSH for Windows
|
|
|
|
Follow up to #5721
|
|
|
|
- CI/azure: install libssh2 for use with msys2-based builds
|
|
|
|
This enables building and running the SFTP tests.
|
|
Unfortunately OpenSSH for Windows does not support SCP (yet).
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Closes #5721
|
|
|
|
- CI/azure: increase Windows job timeout once again
|
|
|
|
Avoid aborted jobs due to performance issues on Azure DevOps.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Reviewed-by: Jay Satiro
|
|
|
|
Closes #5738
|
|
|
|
Jay Satiro (30 Jul 2020)
|
|
- TODO: Schannel: 'Add option to allow abrupt server closure'
|
|
|
|
We should offer an option to allow abrupt server closures (server closes
|
|
SSL transfer without sending a known termination point such as length of
|
|
transfer or close_notify alert). Abrupt server closures are usually
|
|
because of misconfigured or very old servers.
|
|
|
|
Closes https://github.com/curl/curl/issues/4427
|
|
|
|
- url: fix CURLU and location following
|
|
|
|
Prior to this change if the user set a URL handle (CURLOPT_CURLU) it was
|
|
incorrectly used for the location follow, resulting in infinite requests
|
|
to the original location.
|
|
|
|
Reported-by: sspiri@users.noreply.github.com
|
|
|
|
Fixes https://github.com/curl/curl/issues/5709
|
|
Closes https://github.com/curl/curl/pull/5713
|
|
|
|
Daniel Stenberg (30 Jul 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
- [divinity76 brought this change]
|
|
|
|
docs: add date of 7.20 to CURLM_CALL_MULTI_PERFORM mentions
|
|
|
|
it helps make it obvious that most developers don't have to care about
|
|
the CURLM_CALL_MULTI_PERFORM value (last release using it is nearly 11
|
|
years old, November 4 2009)
|
|
|
|
Closes #5744
|
|
|
|
Jay Satiro (29 Jul 2020)
|
|
- tool_cb_wrt: fix outfile mode flags for Windows
|
|
|
|
- Use S_IREAD and S_IWRITE mode permission flags to create the file
|
|
on Windows instead of S_IRUSR, S_IWUSR, etc.
|
|
|
|
Windows only accepts a combination of S_IREAD and S_IWRITE. It does not
|
|
acknowledge other combinations, for which it may generate an assertion.
|
|
|
|
This is a follow-up to 81b4e99 from yesterday, which improved the
|
|
existing file check with -J.
|
|
|
|
Ref: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/open-wopen#remarks
|
|
Ref: https://github.com/curl/curl/pull/5731
|
|
|
|
Closes https://github.com/curl/curl/pull/5742
|
|
|
|
Daniel Stenberg (28 Jul 2020)
|
|
- checksrc: ban gmtime/localtime
|
|
|
|
They're not thread-safe so they should not be used in libcurl code.
|
|
|
|
Explictly enabled when deemed necessary and in examples and tests
|
|
|
|
Reviewed-by: Nicolas Sterchele
|
|
Closes #5732
|
|
|
|
- transfer: fix data_pending for builds with both h2 and h3 enabled
|
|
|
|
Closes #5734
|
|
|
|
- curl_multi_setopt: fix compiler warning "result is always false"
|
|
|
|
On systems with 32 bit long the expression is always false. Avoid
|
|
the warning.
|
|
|
|
Reported-by: Gisle Vanem
|
|
Bug: https://github.com/curl/curl/commit/61a08508f6a458fe21bbb18cd2a9bac2f039452b#commitcomment-40941232
|
|
Closes #5736
|
|
|
|
- curl: improve the existing file check with -J
|
|
|
|
Previously a file that isn't user-readable but is user-writable would
|
|
not be properly avoided and would get overwritten.
|
|
|
|
Reported-by: BrumBrum on hackerone
|
|
Assisted-by: Jay Satiro
|
|
Bug: https://hackerone.com/reports/926638
|
|
Closes #5731
|
|
|
|
- [Jonathan Nieder brought this change]
|
|
|
|
multi: update comment to say easyp list is linear
|
|
|
|
Since 09b9fc900 (multi: remove 'Curl_one_easy' struct, phase 1,
|
|
2013-08-02), the easy handle list is not circular but ends with
|
|
->next pointing to NULL.
|
|
|
|
Reported-by: Masaya Suzuki <masayasuzuki@google.com>
|
|
Closes #5737
|
|
|
|
- CURLOPT_NOBODY.3: fix the syntax for referring to options
|
|
|
|
As test 1140 fails otherwise!
|
|
|
|
Follow-up to e1bac81cc815
|
|
|
|
- ngtcp2: store address in sockaddr_storage
|
|
|
|
Reported-by: Tatsuhiro Tsujikawa
|
|
Closes #5733
|
|
|
|
- CURLOPT_NOBODY.3: clarify what setting to 0 means
|
|
|
|
... and mention that HTTP with other methods than HEAD might get a body and
|
|
there's no option available to stop that.
|
|
|
|
Closes #5729
|
|
|
|
- setopt: unset NOBODY switches to GET if still HEAD
|
|
|
|
Unsetting CURLOPT_NOBODY with 0L when doing HTTP has no documented
|
|
action but before 7.71.0 that used to switch back to GET and with this
|
|
change (assuming the method is still set to HEAD) this behavior is
|
|
brought back.
|
|
|
|
Reported-by: causal-agent on github
|
|
Fixes #5725
|
|
Closes #5728
|
|
|
|
- [Ehren Bendler brought this change]
|
|
|
|
configure: cleanup wolfssl + pkg-config conflicts when cross compiling.
|
|
|
|
Also choose a different wolfSSL function to test for NTLM support.
|
|
|
|
Fixes #5605
|
|
Closes #5682
|
|
|
|
- configure: show zstd "no" in summary when built without it
|
|
|
|
Reported-by: Marc Hörsken
|
|
Fixes #5720
|
|
Closes #5730
|
|
|
|
- quiche: handle calling disconnect twice
|
|
|
|
Reported-by: lilongyan-huawei on github
|
|
Fixes #5726
|
|
Closes #5727
|
|
|
|
- [Nicolas Sterchele brought this change]
|
|
|
|
getinfo: reset retry-after value in initinfo
|
|
|
|
- Avoid re-using retry_after value from preceding request
|
|
- Add libtest 3010 to verify
|
|
|
|
Reported-by: joey-l-us on github
|
|
Fixes #5661
|
|
Closes #5672
|
|
|
|
Marcel Raad (27 Jul 2020)
|
|
- WIN32: stop forcing narrow-character API
|
|
|
|
Except where the results are only used for character output.
|
|
getenv is not touched because it's part of the public API, and having
|
|
it return UTF-8 instead of ANSI would be a breaking change.
|
|
|
|
Fixes https://github.com/curl/curl/issues/5658
|
|
Fixes https://github.com/curl/curl/issues/5712
|
|
Closes https://github.com/curl/curl/pull/5718
|
|
|
|
Jay Satiro (27 Jul 2020)
|
|
- [Tobias Stoeckmann brought this change]
|
|
|
|
mprintf: Fix stack overflows
|
|
|
|
Stack overflows can occur with precisions for integers and floats.
|
|
|
|
Proof of concepts:
|
|
- curl_mprintf("%d, %.*1$d", 500, 1);
|
|
- curl_mprintf("%d, %+0500.*1$f", 500, 1);
|
|
|
|
Ideally, compile with -fsanitize=address which makes this undefined
|
|
behavior a bit more defined for debug purposes.
|
|
|
|
The format strings are valid. The overflows occur due to invalid
|
|
arguments. If these arguments are variables with contents controlled
|
|
by an attacker, the function's stack can be corrupted.
|
|
|
|
Also see CVE-2016-9586 which partially fixed the float aspect.
|
|
|
|
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
|
|
|
|
Closes https://github.com/curl/curl/pull/5722
|
|
|
|
- [Tobias Stoeckmann brought this change]
|
|
|
|
mprintf: Fix dollar string handling
|
|
|
|
Verify that specified parameters are in range. If parameters are too
|
|
large, fail early on and avoid out of boundary accesses.
|
|
|
|
Also do not read behind boundaries of illegal format strings.
|
|
|
|
These are defensive measures since it is expected that format strings
|
|
are well-formed. Format strings should not be modifiable by user
|
|
input due to possible generic format string attacks.
|
|
|
|
Closes https://github.com/curl/curl/pull/5722
|
|
|
|
Daniel Stenberg (26 Jul 2020)
|
|
- ntlm: free target_info before (re-)malloc
|
|
|
|
OSS-Fuzz found a way this could get called again with the pointer still
|
|
pointing to a malloc'ed memory, leading to a leak.
|
|
|
|
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24379
|
|
|
|
Closes #5724
|
|
|
|
Marcel Raad (26 Jul 2020)
|
|
- CI/macos: set minimum macOS version
|
|
|
|
This enables some deprecation warnings.
|
|
Previously, autotools defaulted to 10.8.
|
|
|
|
Closes https://github.com/curl/curl/pull/5723
|
|
|
|
Daniel Stenberg (26 Jul 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
Marcel Raad (25 Jul 2020)
|
|
- CI/macos: enable warnings as errors for CMake builds
|
|
|
|
Closes https://github.com/curl/curl/pull/5716
|
|
|
|
- CMake: fix test for warning suppressions
|
|
|
|
GCC doesn't warn for unknown `-Wno-` options, except if there are other
|
|
warnings or errors [0]. This was problematic with `CURL_WERROR` as that
|
|
warning-as-error cannot be suppressed. Notably, this always happened
|
|
with `-Wno-pedantic-ms-format` when not targeting Windows. So test for
|
|
the positive form of the warning instead, which should always result in
|
|
a diagnostic if unknown.
|
|
|
|
[0] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
|
|
|
|
Closes https://github.com/curl/curl/pull/5714
|
|
|
|
Jay Satiro (23 Jul 2020)
|
|
- curl.h: update CURLINFO_LASTONE
|
|
|
|
CURLINFO_LASTONE should have been updated when
|
|
CURLINFO_EFFECTIVE_METHOD was added.
|
|
|
|
Reported-by: xwxbug@users.noreply.github.com
|
|
|
|
Fixes https://github.com/curl/curl/issues/5711
|
|
|
|
Marc Hoersken (22 Jul 2020)
|
|
- CI/azure: unconditionally enable warnings-as-errors with autotools
|
|
|
|
Reviewed-by: Marcel Raad
|
|
|
|
Follow up to #5694
|
|
Closes #5706
|
|
|
|
Marcel Raad (21 Jul 2020)
|
|
- doh: remove redundant cast
|
|
|
|
Closes https://github.com/curl/curl/pull/5704
|
|
|
|
- CI/macos: unconditionally enable warnings-as-errors with autotools
|
|
|
|
Previously, warnings were only visible in the output for most jobs.
|
|
|
|
Closes https://github.com/curl/curl/pull/5694
|
|
|
|
- util: silence conversion warnings
|
|
|
|
timeval::tv_usec might be a 32-bit integer and timespec::tv_nsec might
|
|
be a 64-bit integer. This is the case when building for recent macOS
|
|
versions, for example. Just treat tv_usec as an int, which should
|
|
hopefully always be sufficient on systems with
|
|
`HAVE_CLOCK_GETTIME_MONOTONIC`.
|
|
|
|
Closes https://github.com/curl/curl/pull/5695
|
|
|
|
- md(4|5): don't use deprecated macOS functions
|
|
|
|
They are marked as deprecated for -mmacosx-version-min >= 10.15,
|
|
which might result in warnings-as-errors.
|
|
|
|
Closes https://github.com/curl/curl/pull/5695
|
|
|
|
Daniel Stenberg (18 Jul 2020)
|
|
- strdup: remove the odd strlen check
|
|
|
|
It confuses code analyzers with its use of -1 for unsigned value. Also,
|
|
a check that's not normally used in strdup() code - and not necessary.
|
|
|
|
Closes #5697
|
|
|
|
- [Alessandro Ghedini brought this change]
|
|
|
|
travis: update quiche builds for new boringssl layout
|
|
|
|
This is required after https://github.com/cloudflare/quiche/pull/593
|
|
moved BoringSSL around slightly.
|
|
|
|
This also means that Go is not needed to build BoringSSL anymore (the
|
|
one provided by quiche anyway).
|
|
|
|
Closes #5691
|
|
|
|
Marcel Raad (17 Jul 2020)
|
|
- configure: allow disabling warnings
|
|
|
|
When using `--enable-warnings`, it was not possible to disable warnings
|
|
via CFLAGS that got explicitly enabled. Now warnings are not enabled
|
|
anymore if they are explicitly disabled (or enabled) in CFLAGS. This
|
|
works for at least GCC, clang, and TCC as they have corresponding
|
|
`-Wno-` options for every warning.
|
|
|
|
Closes https://github.com/curl/curl/pull/5689
|
|
|
|
Daniel Stenberg (16 Jul 2020)
|
|
- ngtcp2: adjust to recent sockaddr updates
|
|
|
|
Closes #5690
|
|
|
|
- page-header: provide protocol details in the curl.1 man page
|
|
|
|
Add protocol and version specific information about all protocols curl
|
|
supports.
|
|
|
|
Fixes #5679
|
|
Reported-by: tbugfinder on github
|
|
Closes #5686
|
|
|
|
Daniel Gustafsson (16 Jul 2020)
|
|
- docs: Update a few leftover mentions of DarwinSSL
|
|
|
|
Commit 76a9c3c4be10b3d4d379d5b23ca76806bbae536a renamed DarwinSSL to the
|
|
more correct/common name Secure Transport, but a few mentions in the docs
|
|
remained.
|
|
|
|
Closes #5688
|
|
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
|
|
|
|
Daniel Stenberg (16 Jul 2020)
|
|
- file2memory: use a define instead of -1 unsigned value
|
|
|
|
... to use the maximum value for 'size_t' when detecting integer overflow.
|
|
Changed the limit to max/4 as already that seems unreasonably large.
|
|
|
|
Codacy didn't like the previous approach.
|
|
|
|
Closes #5683
|
|
|
|
- CURL_PUSH_ERROROUT: allow the push callback to fail the parent stream
|
|
|
|
... by adding support for a new dedicated return code.
|
|
|
|
Suggested-by: Jonathan Cardoso
|
|
Assisted-by: Erik Johansson
|
|
URL: https://curl.haxx.se/mail/lib-2020-06/0099.html
|
|
Closes #5636
|
|
|
|
- [Baruch Siach brought this change]
|
|
|
|
nss: fix build with disabled proxy support
|
|
|
|
Avoid reference to fields that do not exist when CURL_DISABLE_PROXY is
|
|
defined.
|
|
|
|
Closes #5667
|
|
|
|
- test1139: make it display the difference on test failures
|
|
|
|
- test1119: verify stdout in the test
|
|
|
|
So that failures will be displayed in the terminal, as it makes test failures
|
|
visually displayed easier and faster.
|
|
|
|
Closes #5644
|
|
|
|
- curl: add %{method} to the -w variables
|
|
|
|
Gets the CURLINFO_EFFECTIVE_METHOD from libcurl.
|
|
|
|
Added test 1197 to verify.
|
|
|
|
- CURLINFO_EFFECTIVE_METHOD: added
|
|
|
|
Provide the HTTP method that was used on the latest request, which might
|
|
be relevant for users when there was one or more redirects involved.
|
|
|
|
Closes #5511
|
|
|
|
Viktor Szakats (14 Jul 2020)
|
|
- windows: add unicode to feature list
|
|
|
|
Reviewed-by: Marcel Raad
|
|
Reviewed-by: Marc Hörsken
|
|
|
|
Closes #5491
|
|
|
|
Daniel Stenberg (14 Jul 2020)
|
|
- multi: remove two checks always true
|
|
|
|
Detected by Codacy
|
|
Closes #5676
|
|
|
|
Marc Hoersken (13 Jul 2020)
|
|
- workflows: limit what branches to run CodeQL on
|
|
|
|
Align CodeQL action with existing CI actions:
|
|
- Update branch filter to avoid duplicate CI runs.
|
|
- Shorten workflow name due to informative job name.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Closes #5660
|
|
|
|
- appveyor: collect libcurl.dll variants with prefix or suffix
|
|
|
|
On some platforms libcurl is build with a platform-specific
|
|
prefix and/or a version number suffix.
|
|
|
|
Assisted-by: Jay Satiro
|
|
|
|
Closes #5659
|
|
|
|
Daniel Stenberg (12 Jul 2020)
|
|
- [ihsinme brought this change]
|
|
|
|
socks: use size_t for size variable
|
|
|
|
Use the unsigned type (size_t) in the arithmetic of pointers. In this
|
|
context, the signed type (ssize_t) is used unnecessarily.
|
|
|
|
Authored-by: ihsinme on github
|
|
Closes #5654
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
... and bumped to 7.72.0 as the next release version number
|
|
|
|
- [Gilles Vollant brought this change]
|
|
|
|
content_encoding: add zstd decoding support
|
|
|
|
include zstd curl patch for Makefile.m32 from vszakats
|
|
and include Add CMake support for zstd from Peter Wu
|
|
|
|
Helped-by: Viktor Szakats
|
|
Helped-by: Peter Wu
|
|
Closes #5453
|
|
|
|
- asyn.h: remove the Curl_resolver_getsock define
|
|
|
|
- not used
|
|
- used the wrong number of arguments
|
|
- confused the Codeacy code analyzer
|
|
|
|
Closes #5647
|
|
|
|
- [Nicolas Sterchele brought this change]
|
|
|
|
configure.ac: Sort features name in summary
|
|
|
|
- Same as protocols
|
|
|
|
Closes #5656
|
|
|
|
- [Matthias Naegler brought this change]
|
|
|
|
cmake: fix windows xp build
|
|
|
|
Reviewed-by: Marcel Raad
|
|
Closes #5662
|
|
|
|
- ngtcp2: update to modified qlog callback prototype
|
|
|
|
Closes #5675
|
|
|
|
- transfer: fix memory-leak with CURLOPT_CURLU in a duped handle
|
|
|
|
Added test case 674 to reproduce and verify the bug report.
|
|
|
|
Fixes #5665
|
|
Reported-by: NobodyXu on github
|
|
Closes #5673
|
|
|
|
- [Baruch Siach brought this change]
|
|
|
|
bearssl: fix build with disabled proxy support
|
|
|
|
Avoid reference to fields that do not exist when CURL_DISABLE_PROXY is
|
|
defined.
|
|
|
|
Reviewed-by: Nicolas Sterchele
|
|
Closes #5666
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
Jay Satiro (11 Jul 2020)
|
|
- [Carlo Marcelo Arenas Belón brought this change]
|
|
|
|
cirrus-ci: upgrade 11-STABLE to 11.4
|
|
|
|
Meant to be the last of the 11 series and so make sure that all
|
|
other references reflect all 11 versions so they can be retired
|
|
together later.
|
|
|
|
Closes https://github.com/curl/curl/pull/5668
|
|
|
|
- [Filip Salomonsson brought this change]
|
|
|
|
CURLINFO_CERTINFO.3: fix typo
|
|
|
|
Closes https://github.com/curl/curl/pull/5655
|
|
|
|
Daniel Stenberg (4 Jul 2020)
|
|
- http2: only do the *done() cleanups for HTTP
|
|
|
|
Follow-up to ef86daf4d3
|
|
|
|
Closes #5650
|
|
Fixes #5646
|
|
|
|
- [Alex Kiernan brought this change]
|
|
|
|
gnutls: repair the build with `CURL_DISABLE_PROXY`
|
|
|
|
`http_proxy`/`proxy_ssl`/`tunnel_proxy` will not be available in `conn`
|
|
if `CURL_DISABLE_PROXY` is enabled. Repair the build with that
|
|
configuration.
|
|
|
|
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
|
|
Closes #5645
|
|
|
|
Alex Kiernan (3 Jul 2020)
|
|
- gnutls: Fetch backend when using proxy
|
|
|
|
Fixes: 89865c149 ("gnutls: remove the BACKEND define kludge")
|
|
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
|
|
|
|
Daniel Stenberg (3 Jul 2020)
|
|
- [Laramie Leavitt brought this change]
|
|
|
|
http2: close the http2 connection when no more requests may be sent
|
|
|
|
Well-behaving HTTP2 servers send two GOAWAY messages. The first
|
|
message is a warning that indicates that the server is going to
|
|
stop accepting streams. The second one actually closes the stream.
|
|
|
|
nghttp2 reports this state (and the other state of no more stream
|
|
identifiers) via the call nghttp2_session_check_request_allowed().
|
|
In this state the client should not create more streams on the
|
|
session (tcp connection), and in curl this means that the server
|
|
has requested that the connection is closed.
|
|
|
|
It would be also be possible to put the connclose() call into the
|
|
on_http2_frame_recv() function that triggers on the GOAWAY message.
|
|
|
|
This fixes a bug seen when the client sees the following sequence of
|
|
frames:
|
|
|
|
// advisory GOAWAY
|
|
HTTP2 GOAWAY [stream-id = 0, promised-stream-id = -1]
|
|
... some additional frames
|
|
|
|
// final GOAWAY
|
|
HTTP2 GOAWAY [stream-id = 0, promised-stream-id = N ]
|
|
|
|
Before this change, curl will attempt to reuse the connection even
|
|
after the last stream, will encounter this error:
|
|
|
|
* Found bundle for host localhost: 0x5595f0a694e0 [can multiplex]
|
|
* Re-using existing connection! (#0) with host localhost
|
|
* Connected to localhost (::1) port 10443 (#0)
|
|
* Using Stream ID: 9 (easy handle 0x5595f0a72e30)
|
|
> GET /index.html?5 HTTP/2
|
|
> Host: localhost:10443
|
|
> user-agent: curl/7.68.0
|
|
> accept: */*
|
|
>
|
|
* stopped the pause stream!
|
|
* Connection #0 to host localhost left intact
|
|
curl: (16) Error in the HTTP2 framing layer
|
|
|
|
This error may posion the connection cache, causing future requests
|
|
which resolve to the same curl connection to go through the same error
|
|
path.
|
|
|
|
Closes #5643
|
|
|
|
- ftpserver: don't verify SMTP MAIL FROM names
|
|
|
|
Rely on tests asking the names to get refused instead - test servers
|
|
should be as dumb as possible. Edited test 914, 955 and 959 accordingly.
|
|
|
|
Closes #5639
|
|
|
|
- curl_version_info.3: CURL_VERSION_KERBEROS4 is deprecated
|
|
|
|
This came up in #5640. It make sense to clarify this in the docs!
|
|
|
|
Reminded-by: Kamil Dudka
|
|
Closes #5642
|
|
|
|
Kamil Dudka (3 Jul 2020)
|
|
- tool_getparam: make --krb option work again
|
|
|
|
It was disabled by mistake in commit curl-7_37_1-23-ge38ba4301.
|
|
|
|
Bug: https://bugzilla.redhat.com/1833193
|
|
Closes #5640
|
|
|
|
Daniel Stenberg (2 Jul 2020)
|
|
- [Jeremy Maitin-Shepard brought this change]
|
|
|
|
http2: fix nghttp2_strerror -> nghttp2_http2_strerror in debug messages
|
|
|
|
Confusingly, nghttp2 has two different error code enums:
|
|
|
|
- nghttp2_error, to be used with nghttp2_strerror
|
|
- nghttp2_error_code, to be used with nghttp2_http2_strerror
|
|
|
|
Closes #5641
|
|
|
|
Marcel Raad (2 Jul 2020)
|
|
- url: silence MSVC warning
|
|
|
|
Since commit f3d501dc678, if proxy support is disabled, MSVC warns:
|
|
url.c : warning C4701: potentially uninitialized local variable
|
|
'hostaddr' used
|
|
url.c : error C4703: potentially uninitialized local pointer variable
|
|
'hostaddr' used
|
|
|
|
That could actually only happen if both `conn->bits.proxy` and
|
|
`CURL_DISABLE_PROXY` were enabled.
|
|
Initialize it to NULL to silence the warning.
|
|
|
|
Closes https://github.com/curl/curl/pull/5638
|
|
|
|
Daniel Stenberg (1 Jul 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
Version 7.71.1 (30 Jun 2020)
|
|
|
|
Daniel Stenberg (30 Jun 2020)
|
|
- RELEASE-NOTES: curl 7.71.1
|
|
|
|
- THANKS: add contributors to 7.71.1
|
|
|
|
- scripts/copyright.pl: skip .dcignore
|
|
|
|
- Revert "multi: implement wait using winsock events"
|
|
|
|
This reverts commit 8bc25c590e530de87595d1bb3577f699eb1309b9.
|
|
|
|
That commit (from #5397) introduced a regression in 7.71.0.
|
|
|
|
Reported-by: tmkk on github
|
|
Fixes #5631
|
|
Closes #5632
|
|
|
|
- TODO: Add flag to specify download directory
|
|
|
|
- TODO: return code to CURLMOPT_PUSHFUNCTION to fail connection
|
|
|
|
- cirrus-ci: disable FreeBSD 13 (again)
|
|
|
|
It has been failing for a good while again. This time we better leave it
|
|
disabled until we have more reason to believe it behaves.
|
|
|
|
Closes #5628
|
|
|
|
- ngtcp2: sync with current master
|
|
|
|
ngtcp2 added two new callbacks
|
|
|
|
Reported-by: Lucien Zürcher
|
|
Fixes #5624
|
|
Closes #5627
|
|
|
|
- examples/multithread.c: call curl_global_cleanup()
|
|
|
|
Reported-by: qiandu2006 on github
|
|
Fixes #5622
|
|
Closes #5623
|
|
|
|
- vtls: compare cert blob when finding a connection to reuse
|
|
|
|
Reported-by: Gergely Nagy
|
|
Fixes #5617
|
|
Closes #5619
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- terminology: call them null-terminated strings
|
|
|
|
Updated terminology in docs, comments and phrases to refer to C strings
|
|
as "null-terminated". Done to unify with how most other C oriented docs
|
|
refer of them and what users in general seem to prefer (based on a
|
|
single highly unscientific poll on twitter).
|
|
|
|
Reported-by: coinhubs on github
|
|
Fixes #5598
|
|
Closes #5608
|
|
|
|
- http: fix proxy auth with blank password
|
|
|
|
Regression in 7.71.0
|
|
|
|
Added test case 346 to verify.
|
|
|
|
Reported-by: Kristoffer Gleditsch
|
|
Fixes #5613
|
|
Closes #5616
|
|
|
|
- .dcignore: ignore tests and docs directories
|
|
|
|
This is a config file for deepcode.ai, a static code analyzer.
|
|
|
|
Jay Satiro (26 Jun 2020)
|
|
- tool_cb_hdr: Fix etag warning output and return code
|
|
|
|
- Return 'failure' on failure, to follow the existing style.
|
|
|
|
- Put Warning: and the warning message on the same line.
|
|
|
|
Ref: https://github.com/curl/curl/issues/5610
|
|
|
|
Closes https://github.com/curl/curl/pull/5612
|
|
|
|
Daniel Stenberg (26 Jun 2020)
|
|
- CURLOPT_READFUNCTION.3: provide the upload data size up front
|
|
|
|
Assisted-by: Jay Satiro
|
|
Closes #5607
|
|
|
|
- test1539: do a HTTP 1.0 POST without a set size (fails)
|
|
|
|
Attempt to reproduce #5593. Test case 1514 is very similar but uses
|
|
HTTP/1.1 and thus switches to chunked.
|
|
|
|
Closes #5595
|
|
|
|
- [Baruch Siach brought this change]
|
|
|
|
mbedtls: fix build with disabled proxy support
|
|
|
|
Don't reference fields that do not exist. Fixes build failure:
|
|
|
|
vtls/mbedtls.c: In function 'mbed_connect_step1':
|
|
vtls/mbedtls.c:249:54: error: 'struct connectdata' has no member named 'http_proxy'
|
|
|
|
Closes #5615
|
|
|
|
- codeql-analysis.yml: fix the 'languages' setting
|
|
|
|
It needs a 'with:' in front of it.
|
|
|
|
GitHub (26 Jun 2020)
|
|
- [Daniel Stenberg brought this change]
|
|
|
|
gtihub: codeql-analysis.yml
|
|
|
|
enables code security scanning with github actions
|
|
|
|
Daniel Stenberg (25 Jun 2020)
|
|
- tests: verify newline in username and password for HTTP
|
|
|
|
test 1296 is a simply command line test
|
|
|
|
test 1910 is a libcurl test including a redirect
|
|
|
|
- url: allow user + password to contain "control codes" for HTTP(S)
|
|
|
|
Reported-by: Jon Johnson Jr
|
|
Fixes #5582
|
|
Closes #5592
|
|
|
|
- escape: make the URL decode able to reject only %00 bytes
|
|
|
|
... or all "control codes" or nothing.
|
|
|
|
Assisted-by: Nicolas Sterchele
|
|
|
|
- http2: set the correct URL in pushed transfers
|
|
|
|
...previously CURLINFO_EFFECTIVE_URL would report the URL of the
|
|
original "mother transfer", not the actually pushed resource.
|
|
|
|
Reported-by: Jonathan Cardoso Machado
|
|
Fixes #5589
|
|
Closes #5591
|
|
|
|
Jay Satiro (25 Jun 2020)
|
|
- [Javier Blazquez brought this change]
|
|
|
|
openssl: Fix compilation on Windows when ngtcp2 is enabled
|
|
|
|
- Include wincrypt before OpenSSL includes so that the latter can
|
|
properly handle any conflicts between the two.
|
|
|
|
Closes https://github.com/curl/curl/pull/5606
|
|
|
|
Daniel Stenberg (25 Jun 2020)
|
|
- test543: extended to verify zero length input
|
|
|
|
As was reported in #5601
|
|
|
|
- escape: zero length input should return a zero length output
|
|
|
|
Regression added in 7.71.0.
|
|
|
|
Fixes #5601
|
|
Reported-by: Kristoffer Gleditsch
|
|
Closes #5602
|
|
|
|
- Curl_inet_ntop: always check the return code
|
|
|
|
Reported-by: Siva Sivaraman
|
|
Fixes #5412
|
|
Closes #5597
|
|
|
|
- sendf: improve the message on client write errors
|
|
|
|
Replace "Failed writing body (X != Y)" with
|
|
"Failure writing output to destination". Possibly slightly less cryptic.
|
|
|
|
Reported-by: coinhubs on github
|
|
Fixes #5594
|
|
Closes #5596
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- curlver: start working on 7.71.1
|
|
|
|
- [Denis Baručić brought this change]
|
|
|
|
DYNBUF.md: fix a typo: trail => tail
|
|
|
|
Closes #5599
|
|
|
|
Version 7.71.0 (23 Jun 2020)
|
|
|
|
Daniel Stenberg (23 Jun 2020)
|
|
- RELEASE-NOTES: curl 7.71.0 release
|
|
|
|
- THANKS: curl 7.71.0 additions
|
|
|
|
- url: make sure pushed streams get an allocated download buffer
|
|
|
|
Follow-up to c4e6968127e876b0
|
|
|
|
When a new transfer is created, as a resuly of an acknowledged push,
|
|
that transfer needs a download buffer allocated.
|
|
|
|
Closes #5590
|
|
|
|
Jay Satiro (22 Jun 2020)
|
|
- openssl: Don't ignore CA paths when using Windows CA store
|
|
|
|
This commit changes the behavior of CURLSSLOPT_NATIVE_CA so that it does
|
|
not override CURLOPT_CAINFO / CURLOPT_CAPATH, or the hardcoded default
|
|
locations. Instead the CA store can now be used at the same time.
|
|
|
|
The change is due to the impending release. The issue is still being
|
|
discussed. The behavior of CURLSSLOPT_NATIVE_CA is subject to change and
|
|
is now documented as experimental.
|
|
|
|
Ref: bc052cc (parent commit)
|
|
Ref: https://github.com/curl/curl/issues/5585
|
|
|
|
- tool_operate: Don't use Windows CA store as a fallback
|
|
|
|
Background:
|
|
|
|
148534d added CURLSSLOPT_NATIVE_CA to use the Windows OS certificate
|
|
store in libcurl w/ OpenSSL on Windows. CURLSSLOPT_NATIVE_CA overrides
|
|
CURLOPT_CAINFO if both are set. The curl tool will fall back to
|
|
CURLSSLOPT_NATIVE_CA if it could not find a certificate bundle to set
|
|
via CURLOPT_CAINFO.
|
|
|
|
Problem:
|
|
|
|
libcurl may be built with hardcoded paths to a certificate bundle or
|
|
directory, and if CURLSSLOPT_NATIVE_CA is used then those paths are
|
|
ignored.
|
|
|
|
Solution:
|
|
|
|
A solution is still being discussed but since there's an impending
|
|
release this commit removes using CURLSSLOPT_NATIVE_CA in the curl tool.
|
|
|
|
Ref: https://github.com/curl/curl/issues/5585
|
|
|
|
- openssl: Fix CA fallback logic for OpenSSL 3.0 build
|
|
|
|
Prior to this change I assume a build error would occur when
|
|
CURL_CA_FALLBACK was used.
|
|
|
|
Closes https://github.com/curl/curl/pull/5587
|
|
|
|
Daniel Stenberg (22 Jun 2020)
|
|
- copyright: update mismatched copyright years
|
|
|
|
- test1460: verify that -Ji is not ok
|
|
|
|
- tool_getparam: -i is not OK if -J is used
|
|
|
|
Reported-by: sn on hackerone
|
|
Bug: https://curl.haxx.se/docs/CVE-2020-8177.html
|
|
|
|
- [Peter Wu brought this change]
|
|
|
|
CMake: ignore INTERFACE_LIBRARY targets for pkg-config file
|
|
|
|
Reviewed-by: Marcel Raad
|
|
Fixes #5512
|
|
Closes #5517
|
|
|
|
- [Valentyn Korniienko brought this change]
|
|
|
|
multibyte: Fixed access-> waccess to file for Windows Plarform
|
|
|
|
Reviewed-by: Marcel Raad
|
|
Closes #5580
|
|
|
|
- altsvc: bump to h3-29
|
|
|
|
Closes #5584
|
|
|
|
- urlglob: treat literal IPv6 addresses with zone IDs as a host name
|
|
|
|
... and not as a "glob". Now done by passing the supposed host to the
|
|
URL parser which supposedly will do a better job at identifying "real"
|
|
numerical IPv6 addresses.
|
|
|
|
Reported-by: puckipedia on github
|
|
Fixes #5576
|
|
Closes #5579
|
|
|
|
- test1179: verify error message for non-existing cmdline option
|
|
|
|
- tool_getparam: repair the error message for unknown flag
|
|
|
|
Follow-up to 9e5669f3880674
|
|
Detected by Coverity CID 1464582 ("Logically dead code")
|
|
|
|
Closes #5577
|
|
|
|
- FILEFORMAT: describe verify/stderr
|
|
|
|
- connect: improve happy eyeballs handling
|
|
|
|
For QUIC but also for regular TCP when the second family runs out of IPs
|
|
with a failure while the first family is still trying to connect.
|
|
|
|
Separated the timeout handling for IPv4 and IPv6 connections when they
|
|
both have a number of addresses to iterate over.
|
|
|
|
- ngtcp2: never call fprintf() in lib code in release version
|
|
|
|
- ngtcp2: fix happy eyeballs quic connect crash
|
|
|
|
Reported-by: Peter Wu
|
|
Fixes #5565
|
|
Closes #5568
|
|
|
|
- select: remove the unused ELAPSED_MS() macro
|
|
|
|
Closes #5573
|
|
|
|
Marc Hoersken (17 Jun 2020)
|
|
- [rcombs brought this change]
|
|
|
|
multi: implement wait using winsock events
|
|
|
|
This avoids using a pair of TCP ports to provide wakeup functionality
|
|
for every multi instance on Windows, where socketpair() is emulated
|
|
using a TCP socket on loopback which could in turn lead to socket
|
|
resource exhaustion.
|
|
|
|
Reviewed-by: Gergely Nagy
|
|
Reviewed-by: Marc Hörsken
|
|
|
|
Closes #5397
|
|
|
|
Daniel Stenberg (17 Jun 2020)
|
|
- manpage: add three missing environment variables
|
|
|
|
CURL_SSL_BACKEND, QLOGDIR and SSLKEYLOGFILE
|
|
|
|
Closes #5571
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- configure: for wolfSSL, check for the DES func needed for NTLM
|
|
|
|
Also adds pkg-config support for the wolfSSL detection.
|
|
|
|
- [Ruurd Beerstra brought this change]
|
|
|
|
ntlm: enable NTLM support with wolfSSL
|
|
|
|
When wolfSSL is built with its OpenSSL API layer, it fetures the same DES*
|
|
functions that OpenSSL has. This change take advantage of that.
|
|
|
|
Co-authored-by: Daniel Stenberg
|
|
Closes #5556
|
|
Fixes #5548
|
|
|
|
- http: move header storage to Curl_easy from connectdata
|
|
|
|
Since the connection can be used by many independent requests (using
|
|
HTTP/2 or HTTP/3), things like user-agent and other transfer-specific
|
|
data MUST NOT be kept connection oriented as it could lead to requests
|
|
getting the wrong string for their requests. This struct data was
|
|
lingering like this due to old HTTP1 legacy thinking where it didn't
|
|
mattered..
|
|
|
|
Fixes #5566
|
|
Closes #5567
|
|
|
|
- CODE_REVIEW.md: how to do code reviews in curl
|
|
|
|
Assisted-by: Daniel Gustafsson
|
|
Assisted-by: Rich Salz
|
|
Assisted-by: Hugo van Kemenade
|
|
Assisted-by: James Fuller
|
|
Assisted-by: Marc Hörsken
|
|
Assisted-by: Jay Satiro
|
|
|
|
Closes #5555
|
|
|
|
- altsvc: remove the num field from the altsvc struct
|
|
|
|
It was superfluous since we have the list.size alredy
|
|
|
|
Reported-by: Jay Satiro
|
|
Fixes #5553
|
|
Closes #5563
|
|
|
|
- version.d: expanded and alpha-sorted
|
|
|
|
Added a few missing features not previously mentioned. Ordered them
|
|
alphabetically.
|
|
|
|
Closes #5558
|
|
|
|
- ABI.md: rename to .md and polish the markdown
|
|
|
|
Closes #5562
|
|
|
|
- HELP-US: add a section for "smaller tasks"
|
|
|
|
The point of this section is to meet the CII Best Practices gold level
|
|
critera:
|
|
|
|
"The project MUST clearly identify small tasks that can be performed by
|
|
new or casual contributors"
|
|
|
|
Closes #5560
|
|
|
|
- TODO: retry on the redirected-to URL
|
|
|
|
Closes #5462
|
|
|
|
- mailmap: Nicolas Sterchele
|
|
|
|
- [Nicolas Sterchele brought this change]
|
|
|
|
TODO: remove 19.3 section title
|
|
|
|
Follow-up to ad6416986755e417c66e2c6, which caused wrong formatting on
|
|
curl documentation website
|
|
|
|
Closes #5561
|
|
|
|
- [Martin V brought this change]
|
|
|
|
test1560: avoid possibly negative association in wording
|
|
|
|
Closes #5549
|
|
|
|
- share: don't set the share flag it something fails
|
|
|
|
When asking for a specific feature to be shared in the share object,
|
|
that bit was previously set unconditionally even if the shared feature
|
|
failed or otherwise wouldn't work.
|
|
|
|
Closes #5554
|
|
|
|
- buildconf: remove -print from the find command that removes files
|
|
|
|
It's just too annoying and unnecessary to get a long list of files shown
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- wording: avoid blacklist/whitelist stereotypes
|
|
|
|
Instead of discussing if there's value or meaning (implied or not) in
|
|
the colors, let's use words without the same possibly negative
|
|
associations.
|
|
|
|
Closes #5546
|
|
|
|
Jay Satiro (9 Jun 2020)
|
|
- tool_getparam: fix memory leak in parse_args
|
|
|
|
Prior to this change in Windows Unicode builds most parsed options would
|
|
not be freed.
|
|
|
|
Found using _CrtDumpMemoryLeaks().
|
|
|
|
Ref: https://github.com/curl/curl/issues/5545
|
|
|
|
Daniel Stenberg (8 Jun 2020)
|
|
- socks: detect connection close during handshake
|
|
|
|
The SOCKS4/5 state machines weren't properly terminated when the proxy
|
|
connection got closed, leading to a busy-loop.
|
|
|
|
Reported-By: zloi-user on github
|
|
Fixes #5532
|
|
Closes #5542
|
|
|
|
- [James Fuller brought this change]
|
|
|
|
multi: add defensive check on data->multi->num_alive
|
|
|
|
Closes #5540
|
|
|
|
- Curl_addrinfo: use one malloc instead of three
|
|
|
|
To reduce the amount of allocations needed for creating a Curl_addrinfo
|
|
struct, make a single larger malloc instead of three separate smaller
|
|
ones.
|
|
|
|
Closes #5533
|
|
|
|
- [Alessandro Ghedini brought this change]
|
|
|
|
quiche: update SSLKEYLOGFILE support
|
|
|
|
quiche now requires the application to explicitly set the keylog path
|
|
for each connection, rather than reading the environment variable
|
|
itself.
|
|
|
|
Closes #5541
|
|
|
|
- tests: add two simple tests for --login-options
|
|
|
|
Test 895 and 896 - as a follow-up to a3e972313b
|
|
|
|
Closes #5539
|
|
|
|
- ngtcp2: update with recent API changes
|
|
|
|
Syncs with ngtcp2 commit 7e9a917d386d98 merged June 7 2020.
|
|
|
|
Assisted-by: Tatsuhiro Tsujikawa
|
|
Closes #5538
|
|
|
|
- [James Fuller brought this change]
|
|
|
|
socks: remove unreachable breaks in socks.c and mime.c
|
|
|
|
Closes #5537
|
|
|
|
- tool_cfgable: free login_options at exit
|
|
|
|
Memory leak
|
|
Reported-by: Geeknik Labs
|
|
Fixes #5535
|
|
Closes #5536
|
|
|
|
- libssh2: keep sftp errors as 'unsigned long'
|
|
|
|
Remove weird work-around for storing the SFTP errors as int instead of
|
|
the "unsigned long" that libssh2 actually returns for SFTP errors.
|
|
|
|
Closes #5534
|
|
|
|
Marc Hoersken (6 Jun 2020)
|
|
- timeouts: move ms timeouts to timediff_t from int and long
|
|
|
|
Now that all functions in select.[ch] take timediff_t instead
|
|
of the limited int or long, we can remove type conversions
|
|
and related preprocessor checks to silence compiler warnings.
|
|
|
|
Avoiding conversions from time_t was already done in 842f73de.
|
|
|
|
Based upon #5262
|
|
Supersedes #5214, #5220 and #5221
|
|
Follow up to #5343 and #5479
|
|
Closes #5490
|
|
|
|
Daniel Stenberg (6 Jun 2020)
|
|
- [François Rigault brought this change]
|
|
|
|
openssl: set FLAG_TRUSTED_FIRST unconditionally
|
|
|
|
On some systems, openssl 1.0.x is still the default, but it has been
|
|
patched to contain all the recent security fixes. As a result of this
|
|
patching, it is possible for macro X509_V_FLAG_NO_ALT_CHAINS to be
|
|
defined, while the previous behavior of openssl to not look at trusted
|
|
chains first, remains.
|
|
|
|
Fix it: ensure X509_V_FLAG_TRUSTED_FIRST is always set, do not try to
|
|
probe for the behavior of openssl based on the existence ofmacros.
|
|
|
|
Closes #5530
|
|
|
|
- server/util: fix logmsg format using curl_off_t argument
|
|
|
|
... this caused segfaults on armv7.
|
|
|
|
Regression added in dd0365d560aea5a (7.70.0)
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Closes #5529
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- [Cherish98 brought this change]
|
|
|
|
socks: fix expected length of SOCKS5 reply
|
|
|
|
Commit 4a4b63d forgot to set the expected SOCKS5 reply length when the
|
|
reply ATYP is X'01'. This resulted in erroneously expecting more bytes
|
|
when the request length is greater than the reply length (e.g., when
|
|
remotely resolving the hostname).
|
|
|
|
Closes #5527
|
|
|
|
Marc Hoersken (5 Jun 2020)
|
|
- .gitignore: add directory containing the stats repo
|
|
|
|
Since the new curl/stats repository is designed to be
|
|
checked out into the curl repository working tree as stats/
|
|
it should be on the ignore list to aid in commit staging.
|
|
|
|
Daniel Stenberg (5 Jun 2020)
|
|
- [Adnan Khan brought this change]
|
|
|
|
HTTP3.md: clarify cargo build directory
|
|
|
|
Cargo needs to be called from within the 'quiche' directory.
|
|
|
|
Closes #5522
|
|
|
|
- user-agent.d: spell out what happens given a blank argument
|
|
|
|
Closes #5525
|
|
|
|
- trailers: switch h1-trailer logic to use dynbuf
|
|
|
|
In the continued effort to remove "manual" realloc schemes.
|
|
|
|
Closes #5524
|
|
|
|
- CURLINFO_ACTIVESOCKET.3: clarify the description
|
|
|
|
Reported-by: Jay Satiro
|
|
Fixes #5299
|
|
Closes #5520
|
|
|
|
- mailmap: Don J Olmstead
|
|
|
|
- configure: only strip first -L from LDFLAGS
|
|
|
|
In the logic that works out if a given OpenSSL path works, it stripped
|
|
off a possibly leading -L flag using an incorrect sed pattern which
|
|
would remove all instances of -L in the string, including if the path
|
|
itself contained that two-letter sequence!
|
|
|
|
The same pattern was used and is now updated in multiple places. Now it
|
|
only removes -L if it starts the strings.
|
|
|
|
Reported-by: Mohamed Osama
|
|
Fixes #5519
|
|
Closes #5521
|
|
|
|
Peter Wu (4 Jun 2020)
|
|
- quiche: advertise draft 28 support
|
|
|
|
Fix the verbose message while at it, quiche currently supports draft
|
|
27 and draft 28 simultaneously.
|
|
|
|
Closes #5518
|
|
|
|
Daniel Stenberg (4 Jun 2020)
|
|
- KNOWN_BUGS: RTSP authentication breaks without redirect support
|
|
|
|
Closes #4750
|
|
|
|
Jay Satiro (4 Jun 2020)
|
|
- projects: Add crypt32.lib to dependencies for all OpenSSL configs
|
|
|
|
Windows project configurations that use OpenSSL with USE_WIN32_CRYPTO
|
|
need crypt32.
|
|
|
|
Follow-up to 148534d which added CURLSSLOPT_NATIVE_CA for 7.71.0.
|
|
|
|
The changes that are in this commit were made by script.
|
|
|
|
Ref: https://gist.github.com/jay/a1861b50ecce2b32931237180f856e28
|
|
|
|
Closes https://github.com/curl/curl/pull/5516
|
|
|
|
Marc Hoersken (3 Jun 2020)
|
|
- CI/macos: fix 'is already installed' errors by using bundle
|
|
|
|
Avoid failing CI builds due to nghttp2 being already installed.
|
|
|
|
Closes #5513
|
|
|
|
Daniel Stenberg (3 Jun 2020)
|
|
- altsvc: fix 'dsthost' may be used uninitialized in this function
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- urldata: let the HTTP method be in the set.* struct
|
|
|
|
When the method is updated inside libcurl we must still not change the
|
|
method as set by the user as then repeated transfers with that same
|
|
handle might not execute the same operation anymore!
|
|
|
|
This fixes the libcurl part of #5462
|
|
|
|
Test 1633 added to verify.
|
|
|
|
Closes #5499
|
|
|
|
- hostip: fix the memory-leak introduced in 67d2802
|
|
|
|
Fixes #5503
|
|
Closes #5504
|
|
|
|
- test970: make it require proxy support
|
|
|
|
This test verifies the -w %json output and the test case includes a full
|
|
generated "blob". If there's no proxy support built into libcurl, it
|
|
will return an error for proxy related info variables and they will not
|
|
be included in the json, thus causing a mismatch and this test fails.
|
|
|
|
Reported-by: Marc Hörsken
|
|
Fixes #5501
|
|
Closes #5502
|
|
|
|
- [Radoslav Georgiev brought this change]
|
|
|
|
examples/http2-down/upload: add error checks
|
|
|
|
If `index.html` does not exist in the directory from which the example
|
|
is invoked, the fopen(upload, "rb") invocation in `setup` would fail,
|
|
returning NULL. This value is subsequently passed as the FILE* argument
|
|
of the `fread` invocation in the `read_callback` function, which is the
|
|
actual cause of the crash (apparently `fread` assumes that argument to
|
|
be non-null).
|
|
|
|
In addition, mitigate some possible crashes of similar origin.
|
|
|
|
Closes #5463
|
|
|
|
- [kotoriのねこ brought this change]
|
|
|
|
examples/ephiperfifo: turn off interval when setting timerfd
|
|
|
|
Reported-by: therealhirudo on github
|
|
Fixes #5485
|
|
Closes #5497
|
|
|
|
- [Saleem Abdulrasool brought this change]
|
|
|
|
vtls: repair the build with `CURL_DISABLE_PROXY`
|
|
|
|
`http_proxy` will not be available in `conndata` if `CURL_DISABLE_PROXY`
|
|
is enabled. Repair the build with that configuration.
|
|
|
|
Follow-up to f3d501dc67
|
|
|
|
Closes #5498
|
|
|
|
- transfer: remove k->str NULL check
|
|
|
|
"Null-checking k->str suggests that it may be null, but it has already
|
|
been dereferenced on all paths leading to the check" - and it can't
|
|
legally be NULL at this point. Remove check.
|
|
|
|
Detected by Coverity CID 1463884
|
|
|
|
Closes #5495
|
|
|
|
Marc Hoersken (1 Jun 2020)
|
|
- select: always use Sleep in Curl_wait_ms on Win32
|
|
|
|
Since Win32 almost always will also have USE_WINSOCK,
|
|
we can reduce complexity and always use Sleep there.
|
|
|
|
Assisted-by: Jay Satiro
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Follow up to #5343
|
|
Closes #5489
|
|
|
|
Daniel Stenberg (31 May 2020)
|
|
- conncache: download buffer needs +1 size for trailing zero
|
|
|
|
Follow-up to c4e6968127e
|
|
Detected by OSS-Fuzz: https://oss-fuzz.com/testcase-detail/5727799779524608
|
|
|
|
Marc Hoersken (31 May 2020)
|
|
- azure: use matrix strategy to avoid configuration redundancy
|
|
|
|
This also includes the following changes:
|
|
|
|
- Use the same timeout for all jobs on Linux (60 minutes)
|
|
and Windows (90 minutes)
|
|
- Use CLI stable apt-get install -y instead of apt install
|
|
which warns about that and run apt-get update first
|
|
- Enable MQTT for Windows msys2 builds instead of
|
|
legacy msys1 builds
|
|
- Add ./configure --prefix parameter to the msys2 builds
|
|
- The MSYSTEM environment variable is now preset inside
|
|
the container images for the msys2 builds
|
|
|
|
Note: on Azure Pipelines the matrix strategy is basically
|
|
just a simple list of job copies and not really a matrix.
|
|
|
|
Closes #5468
|
|
|
|
Daniel Stenberg (30 May 2020)
|
|
- build: disable more code/data when built without proxy support
|
|
|
|
Added build to travis to verify
|
|
|
|
Closes #5466
|
|
|
|
- url: alloc the download buffer at transfer start
|
|
|
|
... and free it as soon as the transfer is done. It removes the extra
|
|
alloc when a new size is set with setopt() and reduces memory for unused
|
|
easy handles.
|
|
|
|
In addition: the closure_handle now doesn't use an allocated buffer at
|
|
all but the smallest supported size as a stack based one.
|
|
|
|
Closes #5472
|
|
|
|
- timeouts: change millisecond timeouts to timediff_t from time_t
|
|
|
|
For millisecond timers we like timediff_t better. Also, time_t can be
|
|
unsigned so returning a negative value doesn't work then.
|
|
|
|
Closes #5479
|
|
|
|
Marc Hoersken (30 May 2020)
|
|
- select: add overflow checks for timeval conversions
|
|
|
|
Using time_t and suseconds_t if suseconds_t is available,
|
|
long on Windows (maybe others in the future) and int elsewhere.
|
|
|
|
Also handle case of ULONG_MAX being greater or equal to INFINITE.
|
|
|
|
Assisted-by: Jay Satiro
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Part of #5343
|
|
|
|
- select: use timediff_t instead of time_t and int for timeout_ms
|
|
|
|
Make all functions in select.[ch] take timeout_ms as timediff_t
|
|
which should always be large enough and signed on all platforms
|
|
to take all possible timeout values and avoid type conversions.
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Replaces #5107 and partially #5262
|
|
Related to #5240 and #5286
|
|
Closes #5343
|
|
|
|
- unit1604.c: fix implicit conv from 'SANITIZEcode' to 'CURLcode'
|
|
|
|
GCC 10 warns about this with warning: implicit conversion
|
|
from 'SANITIZEcode' to 'CURLcode' [-Wenum-conversion]
|
|
|
|
Since 'expected_result' is not really of type 'CURLcode' and
|
|
it is not exposed in any way, we can just use 'SANITIZEcode'.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Reviewed-by: Marcel Raad
|
|
|
|
Closes #5476
|
|
|
|
- tests/libtest: fix undefined reference to 'curlx_win32_fopen'
|
|
|
|
Since curl_setup.h now makes use of curlx_win32_fopen for Win32
|
|
builds with USE_WIN32_LARGE_FILES or USE_WIN32_SMALL_FILES defined,
|
|
we need to include the relevant files for tests using fopen,
|
|
because the libtest sources are also including curl_setup.h
|
|
|
|
Reviewed-by: Marcel Raad
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Follow up to #3784 (ffdddb45d9)
|
|
Closes #5475
|
|
|
|
- appveyor: add non-debug plain autotools-based build
|
|
|
|
This should enable us to catch linking issues with the
|
|
testsuite early, like the one described/fixed in #5475.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Reviewed-by: Marcel Raad
|
|
|
|
Closes #5477
|
|
|
|
Daniel Stenberg (29 May 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
- Revert "buildconf: use find -execdir"
|
|
|
|
This partially reverts commit c712009838f44211958854de431315586995bc61.
|
|
|
|
Keep the ares_ files removed but bring back the older way to run find,
|
|
to make it work with busybox's find, as apparently that's being used.
|
|
|
|
Reported-by: Max Peal
|
|
Fixes #5483
|
|
Closes #5484
|
|
|
|
- server/sws: fix asan warning on use of uninitialized variable
|
|
|
|
- libssh2: improved error output for wrong quote syntax
|
|
|
|
Reported-by: Werner Stolz
|
|
|
|
Closes #5474
|
|
|
|
- mk-lib1521: generate code for testing BLOB options as well
|
|
|
|
Follow-up to cac5374298b3
|
|
|
|
Closes #5478
|
|
|
|
- configure: repair the check if argv can be written to
|
|
|
|
Due to bad escaping of the test code, the test wouldn't build and thus
|
|
result in a negative test result, which would lead to the unconditional
|
|
assumption that overwriting the arguments doesn't work and thus curl
|
|
would never hide credentials given in the command line, even when it
|
|
would otherwise be possible.
|
|
|
|
Regression from commit 2d4c2152c (7.60.0)
|
|
|
|
Reported-by: huzunhao on github
|
|
Fixes #5470
|
|
Closes #5471
|
|
|
|
Peter Wu (28 May 2020)
|
|
- CMake: rebuild Makefile.inc.cmake when Makefile.inc changes
|
|
|
|
Otherwise the build might fail due to missing source files, as
|
|
demonstrated by the recent keylog.c addition on an existing build dir.
|
|
|
|
Closes #5469
|
|
|
|
Daniel Stenberg (28 May 2020)
|
|
- urldata: fix comments: Curl_done() is called multi_done() now
|
|
|
|
... since 575e885db
|
|
|
|
Peter Wu (27 May 2020)
|
|
- ngtcp2: use common key log routine for better thread-safety
|
|
|
|
Tested with ngtcp2 built against the OpenSSL library. Additionally
|
|
tested with MultiSSL (NSS for TLS and ngtcp2+OpenSSL for QUIC).
|
|
|
|
The TLS backend (independent of QUIC) may or may not already have opened
|
|
the keylog file before. Therefore Curl_tls_keylog_open is always called
|
|
to ensure the file is open.
|
|
|
|
- wolfssl: add SSLKEYLOGFILE support
|
|
|
|
Tested following the same curl and tshark commands as in commit
|
|
"vtls: Extract and simplify key log file handling from OpenSSL" using
|
|
WolfSSL v4.4.0-stable-128-g5179503e8 from git master built with
|
|
`./configure --enable-all --enable-debug CFLAGS=-DHAVE_SECRET_CALLBACK`.
|
|
|
|
Full support for this feature requires certain wolfSSL build options,
|
|
see "Availability note" in lib/vtls/wolfssl.c for details.
|
|
|
|
Closes #5327
|
|
|
|
- vtls: Extract and simplify key log file handling from OpenSSL
|
|
|
|
Create a set of routines for TLS key log file handling to enable reuse
|
|
with other TLS backends. Simplify the OpenSSL backend as follows:
|
|
|
|
- Drop the ENABLE_SSLKEYLOGFILE macro as it is unconditionally enabled.
|
|
- Do not perform dynamic memory allocation when preparing a log entry.
|
|
Unless the TLS specifications change we can suffice with a reasonable
|
|
fixed-size buffer.
|
|
- Simplify state tracking when SSL_CTX_set_keylog_callback is
|
|
unavailable. My original sslkeylog.c code included this tracking in
|
|
order to handle multiple calls to SSL_connect and detect new keys
|
|
after renegotiation (via SSL_read/SSL_write). For curl however we can
|
|
be sure that a single master secret eventually becomes available
|
|
after SSL_connect, so a simple flag is sufficient. An alternative to
|
|
the flag is examining SSL_state(), but this seems more complex and is
|
|
not pursued. Capturing keys after server renegotiation was already
|
|
unsupported in curl and remains unsupported.
|
|
|
|
Tested with curl built against OpenSSL 0.9.8zh, 1.0.2u, and 1.1.1f
|
|
(`SSLKEYLOGFILE=keys.txt curl -vkso /dev/null https://localhost:4433`)
|
|
against an OpenSSL 1.1.1f server configured with:
|
|
|
|
# Force non-TLSv1.3, use TLSv1.0 since 0.9.8 fails with 1.1 or 1.2
|
|
openssl s_server -www -tls1
|
|
# Likewise, but fail the server handshake.
|
|
openssl s_server -www -tls1 -Verify 2
|
|
# TLS 1.3 test. No need to test the failing server handshake.
|
|
openssl s_server -www -tls1_3
|
|
|
|
Verify that all secrets (1 for TLS 1.0, 4 for TLS 1.3) are correctly
|
|
written using Wireshark. For the first and third case, expect four
|
|
matches per connection (decrypted Server Finished, Client Finished, HTTP
|
|
Request, HTTP Response). For the second case where the handshake fails,
|
|
expect a decrypted Server Finished only.
|
|
|
|
tshark -i lo -pf tcp -otls.keylog_file:keys.txt -Tfields \
|
|
-eframe.number -eframe.time -etcp.stream -e_ws.col.Info \
|
|
-dtls.port==4433,http -ohttp.desegment_body:FALSE \
|
|
-Y 'tls.handshake.verify_data or http'
|
|
|
|
A single connection can easily be identified via the `tcp.stream` field.
|
|
|
|
Daniel Stenberg (27 May 2020)
|
|
- FILEFORMAT: add more features that tests can depend on
|
|
|
|
- [Michael Kaufmann brought this change]
|
|
|
|
transfer: close connection after excess data has been read
|
|
|
|
For HTTP 1.x, it's a protocol error when the server sends more bytes
|
|
than announced. If this happens, don't reuse the connection, because the
|
|
start position of the next response is undefined.
|
|
|
|
Closes #5440
|
|
|
|
- [Estanislau Augé-Pujadas brought this change]
|
|
|
|
Revert "ssh: ignore timeouts during disconnect"
|
|
|
|
This reverts commit f31760e63b4e9ef1eb25f8f211390f8239388515. Shipped in
|
|
curl 7.54.1.
|
|
|
|
Bug: https://curl.haxx.se/mail/lib-2020-05/0068.html
|
|
Closes #5465
|
|
|
|
- urldata: connect related booleans live in struct ConnectBits
|
|
|
|
And remove a few unused booleans!
|
|
|
|
Closes #5461
|
|
|
|
- hostip: on macOS avoid DoH when given a numerical IP address
|
|
|
|
When USE_RESOLVE_ON_IPS is set (defined on macOS), it means that
|
|
numerical IP addresses still need to get "resolved" - but not with DoH.
|
|
|
|
Reported-by: Viktor Szakats
|
|
Fixes #5454
|
|
Closes #5459
|
|
|
|
- ngtcp2: cleanup memory when failing to connect
|
|
|
|
Reported-by: Peter Wu
|
|
Fixes #5447 (the ngtcp2 side of it)
|
|
Closes #5451
|
|
|
|
- quiche: clean up memory properly when failing to connect
|
|
|
|
Addresses the quiche side of #5447
|
|
Reported-by: Peter Wu
|
|
Closes #5450
|
|
|
|
- cleanup: use a single space after equals sign in assignments
|
|
|
|
- url: accept "any length" credentials for proxy auth
|
|
|
|
They're only limited to the maximum string input restrictions, not to
|
|
256 bytes.
|
|
|
|
Added test 1178 to verify
|
|
|
|
Reported-by: Will Roberts
|
|
Fixes #5448
|
|
Closes #5449
|
|
|
|
- [Maksim Stsepanenka brought this change]
|
|
|
|
test1167: fixes in badsymbols.pl
|
|
|
|
Closes #5442
|
|
|
|
- altsvc: fix parser for lines ending with CRLF
|
|
|
|
Fixed the alt-svc parser to treat a newline as end of line.
|
|
|
|
The unit tests in test 1654 were done without CRLF and thus didn't quite
|
|
match the real world. Now they use CRLF as well.
|
|
|
|
Reported-by: Peter Wu
|
|
Assisted-by: Peter Wu
|
|
Assisted-by: Jay Satiro
|
|
Fixes #5445
|
|
Closes #5446
|
|
|
|
Viktor Szakats (25 May 2020)
|
|
- all: fix codespell errors
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Reviewed-by: Daniel Stenberg
|
|
Closes https://github.com/curl/curl/pull/5452
|
|
|
|
Peter Wu (25 May 2020)
|
|
- ngtcp2: fix build with current ngtcp2 master implementing draft 28
|
|
|
|
Based on client.cc changes from ngtcp2. Tested with current git master,
|
|
ngtcp2 commit c77d5731ce92, nghttp3 commit 65ff479d4380.
|
|
|
|
Fixes #5444
|
|
Closes #5443
|
|
|
|
Daniel Stenberg (25 May 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
moved the new setopts up to a "change"
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- copyright: updated year ranges out of sync
|
|
|
|
... and whitelisted a few more files in the the copyright.pl script.
|
|
|
|
- [Gilles Vollant brought this change]
|
|
|
|
setopt: add CURLOPT_PROXY_ISSUERCERT(_BLOB) for coherency
|
|
|
|
Closes #5431
|
|
|
|
- curl: remove -J "informational" written on stdout
|
|
|
|
curl would previously show "curl: Saved to filename 'name from header'"
|
|
if -J was used and a name was picked from the Content-Disposition
|
|
header. That output could interfer with other stdout output, such as -w.
|
|
|
|
This commit removes that output line.
|
|
Bug: https://curl.haxx.se/mail/archive-2020-05/0044.html
|
|
Reported-by: Коваленко Анатолий Викторович
|
|
Closes #5435
|
|
|
|
Peter Wu (22 May 2020)
|
|
- travis: simplify quiche build instructions wrt boringssl
|
|
|
|
quiche builds boringssl as static library, reuse that instead of
|
|
building another shared library.
|
|
|
|
Closes #5438
|
|
|
|
- configure: fix pthread check with static boringssl
|
|
|
|
A shared boringssl/OpenSSL library requires -lcrypto only for linking.
|
|
A static build additionally requires `-ldl -lpthread`. In the latter
|
|
case `-lpthread` is added to LIBS which prevented `-pthread` from being
|
|
added to CFLAGS. Clear LIBS to fix linking failures for libtest tests.
|
|
|
|
Daniel Stenberg (22 May 2020)
|
|
- Revert "sendf: make failf() use the mvsnprintf() return code"
|
|
|
|
This reverts commit 74623551f306990e70c7c5515b88972005604a74.
|
|
|
|
Instead mark the function call with (void). Getting the return code and
|
|
using it instead triggered Coverity warning CID 1463596 because
|
|
snprintf() can return a negative value...
|
|
|
|
Closes #5441
|
|
|
|
- typecheck-gcc.h: CURLINFO_PRIVATE does not need a 'char *'
|
|
|
|
Reported-by: Billyzou0741326 on github
|
|
Fixes #5432
|
|
Closes #5436
|
|
|
|
- tests/server/util.h: add extern to silence compiler warning
|
|
|
|
Follow-up from a3b0699d5c1
|
|
|
|
- typecheck-gcc.h: fix the OFF_T check
|
|
|
|
The option number also needs to be less than CURLOPTTYPE_BLOB.
|
|
|
|
Follow-up to cac5374298
|
|
Reported-by: Jeroen Ooms
|
|
Bug: https://github.com/curl/curl/pull/5365#issuecomment-631084114
|
|
|
|
- TODO: --dry-run
|
|
|
|
Closes #5426
|
|
|
|
- TODO: Ratelimit or wait between serial requests
|
|
|
|
Closes #5406
|
|
|
|
- tool_paramhlp: fixup C89 mistake
|
|
|
|
Follow-up to c5f0a9db22.
|
|
|
|
- [Siva Sivaraman brought this change]
|
|
|
|
tool_paramhlp: fixed potentially uninitialized strtol() variable
|
|
|
|
Seems highly unlikely to actually be possible, but better safe than
|
|
sorry.
|
|
|
|
Closes #5417
|
|
|
|
- [Siva Sivaraman brought this change]
|
|
|
|
tool_operate: fixed potentially uninitialized variables
|
|
|
|
... in curl_easy_getinfo() calls. They're harmless but clearing the
|
|
variables makes the code safer and comforts the reader.
|
|
|
|
Closes #5416
|
|
|
|
- sha256: move assign to the declaration line
|
|
|
|
Follow-up to fae30656. Should've been squashed with that commit...
|
|
|
|
- [Siva Sivaraman brought this change]
|
|
|
|
sha256: fixed potentially uninitialized variable
|
|
|
|
Closes #5414
|
|
|
|
- sendf: make failf() use the mvsnprintf() return code
|
|
|
|
... and avoid a strlen() call. Fixes a MonocleAI warning.
|
|
|
|
Reported-by: MonocleAI
|
|
Fixes #5413
|
|
Closes #5420
|
|
|
|
- hostip: make Curl_printable_address not return anything
|
|
|
|
It was not used much anyway and instead we let it store a blank buffer
|
|
in case of failure.
|
|
|
|
Reported-by: MonocleAI
|
|
Fixes #5411
|
|
Closes #5418
|
|
|
|
- ftp: mark return-ignoring calls to Curl_GetFTPResponse with (void)
|
|
|
|
They're done on purpose, make that visible in the code.
|
|
Reported-by: MonocleAI
|
|
Fixes #5412
|
|
Closes #549
|
|
|
|
- TODO: forbid TLS post-handshake auth and do TLS record padding
|
|
|
|
Closes #5396
|
|
Closes #5398
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- dynbuf: return NULL when there's no buffer length
|
|
|
|
... as returning a "" is not a good idea as the string is supposed to be
|
|
allocated and returning a const string will cause issues.
|
|
|
|
Reported-by: Brian Carpenter
|
|
Follow-up to ed35d6590e72c
|
|
Closes #5405
|
|
|
|
Peter Wu (16 May 2020)
|
|
- travis: upgrade to bionic, clang-9, improve readability
|
|
|
|
Changes, partially to reduce build failures from external dependencies:
|
|
- Upgrade Ubuntu and drop unnecessary third-party repos.
|
|
- Properly clone apt config to ensure retries.
|
|
- Upgrade to clang-9 from the standard repos.
|
|
- Use Ubuntu 20.04 focal for the libssh build, use of ssh_get_publickey
|
|
fails on -Werror=deprecated-declarations in Ubuntu 18.04. Do not use
|
|
focal everywhere yet since Travis CI has not documented this option.
|
|
In focal, python-impacket (Py2.7) has been removed, leaving only
|
|
python3-impacket. Since it is only needed for SMB tests and not SSH,
|
|
skip it for the libssh job since it might need more work.
|
|
- apt: Remove gcc-8 and libstdc++-8-dev, already installed via g++-8.
|
|
|
|
Non-functional cleanups:
|
|
- Simplify test matrix, drop redundant os and compiler keys.
|
|
- Deprecation fixes: remove sudo, rename matrix -> jobs.
|
|
- Every job has an 'env' key, put this key first in a list item.
|
|
|
|
Closes #5370
|
|
|
|
- travis: whitespace-only changes for consistency
|
|
|
|
Automatically apply a consistent indentation with:
|
|
|
|
python3 -c 'from ruamel.yaml import YAML;y=YAML();d=y.load(open(".travis.yml"));y.width=500;y.dump(d,open(".travis.yml.new","w"))'
|
|
|
|
followed by manually re-indenting three comments.
|
|
|
|
Closes #5370
|
|
|
|
- CMake: add libssh build support
|
|
|
|
Closes #5372
|
|
|
|
Daniel Stenberg (15 May 2020)
|
|
- KNOWN_BUGS: wolfssh: publickey auth doesn't work
|
|
|
|
Closes #4820
|
|
|
|
- KNOWN_BUGS: OS400 port requires deprecated IBM library
|
|
|
|
Closes #5176
|
|
|
|
- [Vyron Tsingaras brought this change]
|
|
|
|
http2: keep trying to send pending frames after req.upload_done
|
|
|
|
Fixes #1410
|
|
Closes #5401
|
|
|
|
- [Gilles Vollant brought this change]
|
|
|
|
setopt: support certificate options in memory with struct curl_blob
|
|
|
|
This change introduces a generic way to provide binary data in setopt
|
|
options, called BLOBs.
|
|
|
|
This change introduces these new setopts:
|
|
|
|
CURLOPT_ISSUERCERT_BLOB, CURLOPT_PROXY_SSLCERT_BLOB,
|
|
CURLOPT_PROXY_SSLKEY_BLOB, CURLOPT_SSLCERT_BLOB and CURLOPT_SSLKEY_BLOB.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Closes #5357
|
|
|
|
- source cleanup: remove all custom typedef structs
|
|
|
|
- Stick to a single unified way to use structs
|
|
- Make checksrc complain on 'typedef struct {'
|
|
- Allow them in tests, public headers and examples
|
|
|
|
- Let MD4_CTX, MD5_CTX, and SHA256_CTX typedefs remain as they actually
|
|
typedef different types/structs depending on build conditions.
|
|
|
|
Closes #5338
|
|
|
|
- travis: remove the .checksrc fiddling
|
|
|
|
- ftp: make domore_getsock() return the secondary socket properly
|
|
|
|
Previously, after PASV and immediately after the data connection has
|
|
connected, the function would only return the control socket to wait for
|
|
which then made the data connection simply timeout and not get polled
|
|
correctly. This become obvious when running test 1631 and 1632 event-
|
|
based.
|
|
|
|
- test1632: verify FTP through HTTPS-proxy with connection re-use
|
|
|
|
- test1631: verify FTP download through HTTPS-proxy
|
|
|
|
- sws: as last resort, get test number from server cmd file
|
|
|
|
If it can't be found in the request. Also support --cmdfile to set it to
|
|
a custom file name.
|
|
|
|
runtests.pl always writes this file with the test number in it since a
|
|
while back.
|
|
|
|
- ftp: shut down the secondary connection properly when SSL is used
|
|
|
|
Reported-by: Neal Poole
|
|
Fixes #5340
|
|
Closes #5385
|
|
|
|
Marcel Raad (14 May 2020)
|
|
- KNOWN_BUGS: adapt 5.5 to recent changes
|
|
|
|
It only applies to non-Unicode builds now.
|
|
Also merge 5.10 into it as it's effectively a duplicate.
|
|
|
|
Closes https://github.com/curl/curl/pull/3784
|
|
|
|
- curl_setup: support Unicode functions to open files on Windows
|
|
|
|
Use them only if `_UNICODE` is defined, in which case command-line
|
|
arguments have been converted to UTF-8.
|
|
|
|
Closes https://github.com/curl/curl/pull/3784
|
|
|
|
- tool: support UTF-16 command line on Windows
|
|
|
|
- use `wmain` instead of `main` when `_UNICODE` is defined [0]
|
|
- define `argv_item_t` as `wchar_t *` in this case
|
|
- use the curl_multibyte gear to convert the command-line arguments to
|
|
UTF-8
|
|
|
|
This makes it possible to pass parameters with characters outside of
|
|
the current locale on Windows, which is required for some tests, e.g.
|
|
the IDN tests. Out of the box, this currently only works with the
|
|
Visual Studio project files, which default to Unicode, and winbuild
|
|
with the `ENABLE_UNICODE` option.
|
|
|
|
[0] https://devblogs.microsoft.com/oldnewthing/?p=40643
|
|
|
|
Ref: https://github.com/curl/curl/issues/3747
|
|
Closes https://github.com/curl/curl/pull/3784
|
|
|
|
- curl_multibyte: add to curlx
|
|
|
|
This will also be needed in the tool and tests.
|
|
|
|
Ref: https://github.com/curl/curl/pull/3758#issuecomment-482197512
|
|
Closes https://github.com/curl/curl/pull/3784
|
|
|
|
Daniel Stenberg (14 May 2020)
|
|
- url: make the updated credentials URL-encoded in the URL
|
|
|
|
Found-by: Gregory Jefferis
|
|
Reported-by: Jeroen Ooms
|
|
Added test 1168 to verify. Bug spotted when doing a redirect.
|
|
Bug: https://github.com/jeroen/curl/issues/224
|
|
Closes #5400
|
|
|
|
- tests: add https-proxy support to the test suite
|
|
|
|
Initial test 1630 added with basic HTTPS-proxy use. HTTPS-proxy is like
|
|
HTTP proxy but with a full TLS connection to the proxy.
|
|
|
|
Closes #5399
|
|
|
|
- mailmap: James Fuller
|
|
|
|
- [Major_Tom brought this change]
|
|
|
|
vauth/cleartext: fix theoretical integer overflow
|
|
|
|
Fix theoretical integer overflow in Curl_auth_create_plain_message.
|
|
|
|
The security impact of the overflow was discussed on hackerone. We
|
|
agreed this is more of a theoretical vulnerability, as the integer
|
|
overflow would only be triggerable on systems using 32-bits size_t with
|
|
over 4GB of available memory space for the process.
|
|
|
|
Closes #5391
|
|
|
|
Jay Satiro (13 May 2020)
|
|
- curl.1: Quote globbed URLs
|
|
|
|
- Quote the globbing example URLs that contain characters [] {} since
|
|
otherwise they may be interpreted as shell metacharacters.
|
|
|
|
Bug: https://github.com/curl/curl/issues/5388
|
|
Reported-by: John Simpson
|
|
|
|
Closes https://github.com/curl/curl/pull/5394
|
|
|
|
Daniel Stenberg (14 May 2020)
|
|
- checksrc: enhance the ASTERISKSPACE and update code accordingly
|
|
|
|
Fine: "struct hello *world"
|
|
|
|
Not fine: "struct hello* world" (and variations)
|
|
|
|
Closes #5386
|
|
|
|
- docs/options-in-versions: which version added each cmdline option
|
|
|
|
Added test 971 to verify that the list is in sync with the files in
|
|
cmdline-opts. The check also verifies that .d-files that uses Added:
|
|
specify the same version number as the options-in-versions file does.
|
|
|
|
Closes #5381
|
|
|
|
- docs: unify protocol lists
|
|
|
|
We boast support for 25 transfer protocols. Make sure the lists are
|
|
consistent
|
|
|
|
Closes #5384
|
|
|
|
- OpenSSL: have CURLOPT_CRLFILE imply CURLSSLOPT_NO_PARTIALCHAIN
|
|
|
|
... to avoid an OpenSSL bug that otherwise makes the CRL check to fail.
|
|
|
|
Reported-by: Michael Kaufmann
|
|
Fixes #5374
|
|
Closes #5376
|
|
|
|
- tls13-ciphers.d: shorten the Arg
|
|
|
|
- sasl-authzid.d: add Arg: and shorten the desc
|
|
|
|
- cert-type.d: mention the available types in the desc
|
|
|
|
- tool: shorten 3 --help descriptions
|
|
|
|
--happy-eyeballs-timeout-ms, --resolve and --ssl-revoke-best-effort
|
|
|
|
gen.pl already warned about these lines but we didn't listen
|
|
|
|
Closes #5379
|
|
|
|
- configure: the wolfssh backend does not provide SCP
|
|
|
|
Closes #5387
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- url: reject too long input when parsing credentials
|
|
|
|
Since input passed to libcurl with CURLOPT_USERPWD and
|
|
CURLOPT_PROXYUSERPWD circumvents the regular string length check we have
|
|
in Curl_setstropt(), the input length limit is enforced in
|
|
Curl_parse_login_details too, separately.
|
|
|
|
Reported-by: Thomas Bouzerar
|
|
Closes #5383
|
|
|
|
- list-only.d: this option existed already in 4.0
|
|
|
|
Jay Satiro (12 May 2020)
|
|
- retry-all-errors.d: Shorten the summary line
|
|
|
|
Follow-up to b995bb5 from a few moments ago.
|
|
|
|
Reported-by: Daniel Stenberg
|
|
|
|
Ref: https://github.com/curl/curl/commit/b995bb5#r39108929
|
|
|
|
- [denzor brought this change]
|
|
|
|
easy: fix dangling pointer on easy_perform fail
|
|
|
|
Closes https://github.com/curl/curl/pull/5363
|
|
|
|
- tool: Add option --retry-all-errors to retry on any error
|
|
|
|
The "sledgehammer" of retrying.
|
|
|
|
Closes https://github.com/curl/curl/pull/5185
|
|
|
|
Daniel Stenberg (12 May 2020)
|
|
- [James Le Cuirot brought this change]
|
|
|
|
libcurl.pc: Merge Libs.private into Libs for static-only builds
|
|
|
|
A project being built entirely statically will call pkg-config with
|
|
--static, which utilises the Libs.private field. Conversely it will
|
|
not use --static when not being built entirely statically, even if
|
|
there is only a static build of libcurl available. This will most
|
|
likely cause the build to fail due to underlinking unless we merge the
|
|
Libs fields.
|
|
|
|
Consider that this is what the Meson build system does when it
|
|
generates pkg-config files.
|
|
|
|
I have also reflected this in the --libs argument of curl-config even
|
|
though REQUIRE_LIB_DEPS always seems to be "yes" anyway.
|
|
|
|
Closes #5373
|
|
|
|
- [Peter Wu brought this change]
|
|
|
|
CMake: fix runtests.pl with CMake, add new test targets
|
|
|
|
* runtests.pl:
|
|
- Fix out-of-tree build under CMake when srcdir is not set. Default
|
|
srcdir to the location of runtests.pl.
|
|
- Add a hack to allow CMake to use the TFLAGS option as documented
|
|
in tests/README and used in scripts/travis/script.sh.
|
|
* Bump CMake version to 3.2 for USES_TERMINAL, dropping Debian Jessie
|
|
support (no one should care, it is already EOL.).
|
|
* Remove CTest since it defines its own 'test' target with no tests
|
|
since all unittests are already broken and not built by default.
|
|
* Add new test targets based on the options from Makefile.am. Since
|
|
new test targets are rarely added, I opted for duplicating the
|
|
runtests.pl options as opposed to creating a new Makefile.inc file.
|
|
Use top-level target names (test-x) instead of x-test since that is
|
|
used by CI and others.
|
|
|
|
Closes #5358
|
|
|
|
- [Peter Wu brought this change]
|
|
|
|
CMake: do not build test programs by default
|
|
|
|
The default target should only build libcurl and curl. Add a dedicated
|
|
'testdeps' target which will be used later when running tests. Note that
|
|
unittests are currently broken in CMake and already excluded.
|
|
|
|
Closes #5368
|
|
|
|
- FILEFORMAT: moved up the variables section and further polished
|
|
|
|
- runtests: remove ftp2 support, not used
|
|
|
|
We once supported two separate ftp instances in the test suite. Has not
|
|
been used the last decade.
|
|
|
|
Closes #5375
|
|
|
|
- url: sort the protocol schemes in rough popularity order
|
|
|
|
When looking for a protocol match among supported schemes, check the
|
|
most "popular" schemes first. It has zero functionality difference and
|
|
for all practical purposes a speed difference will not be measureable
|
|
but it still think it makes sense to put the least likely matches last.
|
|
|
|
"Popularity" based on the 2019 user survey.
|
|
|
|
Closes #5377
|
|
|
|
Marc Hoersken (11 May 2020)
|
|
- test1238: avoid tftpd being busy for tests shortly following
|
|
|
|
The tftpd server may still be busy if the total timeout of
|
|
25 seconds has not been reached or no sread error was received
|
|
during or after the execution of the timeout test 1238.
|
|
|
|
Once the next TFTP test comes around (eg. 1242 or 1243),
|
|
those will fail because the tftpd server is still waiting
|
|
on data from curl due to the UDP protocol being stateless
|
|
and having no connection close. On Linux this error may not
|
|
happen, because ICMP errors generated due to a swrite error
|
|
can also be returned async on the next sread call instead.
|
|
|
|
Therefore we will now just kill the tftpd server after test
|
|
1238 to make sure that the following tests are not affected.
|
|
|
|
This enables us to no longer ignore tests 1242, 1243, 2002
|
|
and 2003 on the CI platforms CirrusCI and AppVeyor.
|
|
|
|
Assisted-by: Peter Wu
|
|
Closes #5364
|
|
|
|
Daniel Stenberg (11 May 2020)
|
|
- write-out.d: added "response_code"
|
|
|
|
- KNOWN_BUGS: Build with staticly built dependency
|
|
|
|
I rewrote the item 5.4 to be more generic about static dependencies.
|
|
|
|
- ROADMAP: remove old entries
|
|
|
|
MQTT - the start has already landed
|
|
|
|
tiny-curl - also mostly landed and is a continuous work
|
|
|
|
make menuconfig - basically no interest from users, not pushing there
|
|
|
|
- [Peter Wu brought this change]
|
|
|
|
travis: Add ngtcp2 and quiche tests for CMake
|
|
|
|
To avoid an explosion of jobs, extend the existing CMake tests with
|
|
ngtcp2 and quiche support. macOS was previously moved to GitHub actions,
|
|
so the non-Linux case can be dropped.
|
|
|
|
- [Peter Wu brought this change]
|
|
|
|
CMake: add ENABLE_ALT_SVC option
|
|
|
|
Tested alt-svc with quiche. While at it, add missing MultiSSL reporting
|
|
(not tested).
|
|
|
|
- [Peter Wu brought this change]
|
|
|
|
CMake: add HTTP/3 support (ngtcp2+nghttp3, quiche)
|
|
|
|
Add three new CMake Find modules (using the curl license, but I grant
|
|
others the right to apply the CMake BSD license instead).
|
|
|
|
This CMake config is simpler than the autotools one because it assumes
|
|
ngtcp2 and nghttp3 to be used together. Another difference is that this
|
|
CMake config checks whether QUIC is actually supported by the TLS
|
|
library (patched OpenSSL or boringssl) since this can be a common
|
|
configuration mistake that could result in build errors later.
|
|
|
|
Unlike autotools, CMake does not warn you that the features are
|
|
experimental. The user is supposed to already know that and read the
|
|
documentation. It requires a very special build environment anyway.
|
|
|
|
Tested with ngtcp2+OpenSSL+nghttp3 and quiche+boringssl, both built from
|
|
current git master. Use `LD_DEBUG=files src/curl |& grep need` to figure
|
|
out which features (libldap-2.4, libssh2) to disable due to conflicts
|
|
with boringssl.
|
|
|
|
Closes #5359
|
|
|
|
Marc Hoersken (10 May 2020)
|
|
- tests/server/tftpd.c: fix include and enhance debug logging
|
|
|
|
setjmp.h should only be included if HAVE_SETJMP_H is defined.
|
|
|
|
Add additional log statements to see wether reads and writes
|
|
are blocking or finishing before an alarm signal is received.
|
|
|
|
Assisted-by: Peter Wu
|
|
Part of #5364
|
|
|
|
Daniel Stenberg (10 May 2020)
|
|
- tool_operate: only set CURLOPT_SSL_OPTIONS if SSL support is present
|
|
|
|
Reported-by: Marcel Raad
|
|
Follow-up to 148534db5
|
|
Fixes #5367
|
|
Closes #5369
|
|
|
|
Marc Hoersken (9 May 2020)
|
|
- appveyor: update comments to be clear about toolchain
|
|
|
|
- CMake-based MSYS builds use mingw-w64 to cross-compile.
|
|
- autotools-based builds are compiled using msys2-devel.
|
|
|
|
The difference is that the later ones are not cross-compiled
|
|
to Windows and instead require the msys2 runtime to be present.
|
|
|
|
At the moment only the Azure Pipelines CI builds actually
|
|
run autotools-based cross-compilation builds for Windows.
|
|
|
|
- TODO: update regarding missing Schannel features
|
|
|
|
Some aspects have already been implemented over the years.
|
|
|
|
15.1 Client certificates are now supported:
|
|
|
|
- System stores via e35b0256eb34f1fe562e3e2a2615beb50a391c52
|
|
- PKCS#12 files via 0fdf96512613574591f501d63fe49495ba40e1d5
|
|
|
|
15.2 Ciphers can now be specified through:
|
|
|
|
- Algorithms via 9aefbff30d280c60fc9d8cc3e0b2f19fc70a2f28
|
|
|
|
Reviewed-by: Daniel Stenberg and Marcel Raad
|
|
Closes #5358
|
|
|
|
Daniel Stenberg (8 May 2020)
|
|
- checksrc: close the .checksrc file handle when done reading
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
And bumped next version to 7.71.0
|
|
|
|
- [Gilles Vollant brought this change]
|
|
|
|
CURLOPT_SSL_OPTIONS: add *_NATIVE_CA to use Windows CA store (with openssl)
|
|
|
|
Closes #4346
|
|
|
|
- TODO: native IDN support on macOS
|
|
|
|
- urlapi: accept :: as a valid IPv6 address
|
|
|
|
Text 1560 is extended to verify.
|
|
|
|
Reported-by: Pavel Volgarev
|
|
Fixes #5344
|
|
Closes #5351
|
|
|
|
- THANKS-filter: Peter Wang
|
|
|
|
- [Peter Wang brought this change]
|
|
|
|
*_sspi: fix bad uses of CURLE_NOT_BUILT_IN
|
|
|
|
Return CURLE_AUTH_ERROR instead of CURLE_NOT_BUILT_IN for other
|
|
instances of QuerySecurityPackageInfo failing, as in
|
|
commit 2a81439553286f12cd04a4bdcdf66d8e026d8201.
|
|
|
|
Closes #5355
|
|
|
|
- docs/HTTP3: add qlog to the quiche build instruction
|
|
|
|
- ngtcp2: introduce qlog support
|
|
|
|
If the QLOGDIR environment variable is set, enable qlogging.
|
|
|
|
... and create Curl_qlogdir() in the new generic vquic/vquic.c file for
|
|
QUIC functions that are backend independent.
|
|
|
|
Closes #5353
|
|
|
|
- ntlm_sspi: fix bad use of CURLE_NOT_BUILT_IN
|
|
|
|
That return code is reserved for build-time conditional code not being
|
|
present while this was a regular run-time error from a Windows API.
|
|
|
|
Reported-by: wangp on github
|
|
Fixes #5349
|
|
Closes #5350
|
|
|
|
- runtests: show elapsed test time with higher precision (ms)
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- http2: simplify and clean up trailer handling
|
|
|
|
Triggered by a crash detected by OSS-Fuzz after the dynbuf introduction in
|
|
ed35d6590e72. This should make the trailer handling more straight forward and
|
|
hopefully less error-prone.
|
|
|
|
Deliver the trailer header to the callback already at receive-time. No
|
|
longer caches the trailers to get delivered at end of stream.
|
|
|
|
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=22030
|
|
Closes #5348
|
|
|
|
Marc Hoersken (7 May 2020)
|
|
- appveyor: disable test 1139 instead of ignoring it
|
|
|
|
Spending time on manpage checking makes no sense
|
|
for these builds due to lacking manpage support.
|
|
|
|
- appveyor: disable flaky test 1501 and ignore broken 1056
|
|
|
|
Test 1501 is flaky on Windows CI due to being time sensitive
|
|
and the testsuite relying on taskkill.exe to check for the
|
|
existance of processes which can take to much time itself.
|
|
|
|
Test 1056 is broken in autotools-based Windows builds due
|
|
to scope ID support missing in these builds at the moment.
|
|
|
|
- test613.pl: make tests 613 and 614 work with OpenSSH for Windows
|
|
|
|
OpenSSH for Windows shows group and other/world permissions as *,
|
|
because those concepts do not exist on Windows. It also does not
|
|
show the current or parent directory, so we just ignore those.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Closes #5328
|
|
|
|
Daniel Stenberg (6 May 2020)
|
|
- runtests: set +x mode again
|
|
|
|
- libssh2: convert over to use dynbuf
|
|
|
|
In my very basic test that lists sftp://127.0.0.1/tmp/, this patched
|
|
code makes 161 allocations compared to 194 in git master. A 17%
|
|
reduction.
|
|
|
|
Closes #5336
|
|
|
|
- travis: add "qlog" as feature in the quiche build
|
|
|
|
- quiche: enable qlog output
|
|
|
|
quiche has the potential to log qlog files. To enable this, you must
|
|
build quiche with the qlog feature enabled `cargo build --features
|
|
qlog`. curl then passes a file descriptor to quiche, which takes
|
|
ownership of the file. The FD transfer only works on UNIX.
|
|
|
|
The convention is to enable logging when the QLOGDIR environment is
|
|
set. This should be a path to a folder where files are written with the
|
|
naming template <SCID>.qlog.
|
|
|
|
Co-authored-by: Lucas Pardue
|
|
Replaces #5337
|
|
Closes #5341
|
|
|
|
- urldata.h: remove #define HEADERSIZE, not used anymore
|
|
|
|
Follow-up to ed35d6590e72c
|
|
|
|
- ngtcp2: convert to dynbuf
|
|
|
|
Closes #5335
|
|
|
|
- connect: make happy eyeballs work for QUIC (again)
|
|
|
|
Follow-up from dbd16c3e256c6c (regression in 7.70.0)
|
|
|
|
Closes #5334
|
|
|
|
- connect: add two asserts to clue code analyzers in a little
|
|
|
|
- http_proxy: ported to use dynbuf instead of a static size buffer
|
|
|
|
Removes a 16K static buffer from the easy handle. Simplifies the code.
|
|
|
|
- dynbuf: introduce internal generic dynamic buffer functions
|
|
|
|
A common set of functions instead of many separate implementations for
|
|
creating buffers that can grow when appending data to them. Existing
|
|
functionality has been ported over.
|
|
|
|
In my early basic testing, the total number of allocations seem at
|
|
roughly the same amount as before, possibly a few less.
|
|
|
|
See docs/DYNBUF.md for a description of the API.
|
|
|
|
Closes #5300
|
|
|
|
- runtests: remove sleep calls
|
|
|
|
Remove many one second sleeps that were done *after* each newly started
|
|
test server already has been verified. They should not have any purpose
|
|
there.
|
|
|
|
Closes #5323
|
|
|
|
- asyn-*: remove support for never-used NULL entry pointers
|
|
|
|
... and instead convert those to asserts to make sure they are truly
|
|
never NULL.
|
|
|
|
Closes #5324
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
doc: Rename VERSIONS to VERSIONS.md as it already has Markdown syntax
|
|
|
|
Closes #5325
|
|
|
|
Jay Satiro (2 May 2020)
|
|
- asyn-thread: fix cppcheck warning
|
|
|
|
- Check for NULL entry parameter before attempting to deref entry in
|
|
Curl_resolver_is_resolved, like is already done in asyn-ares.
|
|
|
|
This is to silence cppcheck which does not seem to understand that
|
|
asyn-ares and asyn-thread have separate Curl_resolver_is_resolved
|
|
and those units are mutually exclusive. Prior to this change it warned
|
|
of a scenario where asyn-thread's Curl_resolver_is_resolved is called
|
|
with a NULL entry from asyn-ares, but that couldn't happen.
|
|
|
|
Reported-by: rl1987@users.noreply.github.com
|
|
|
|
Fixes https://github.com/curl/curl/issues/5326
|
|
|
|
- select: fix overflow protection in Curl_socket_check
|
|
|
|
Follow-up to a96c752 which changed the timeout_ms type from time_t to
|
|
timediff_t.
|
|
|
|
Ref: https://github.com/curl/curl/pull/5240
|
|
|
|
Closes https://github.com/curl/curl/pull/5286
|
|
|
|
Marc Hoersken (2 May 2020)
|
|
- sockfilt: make select_ws stop waiting on exit signal event
|
|
|
|
This makes sure that select_ws behaves similar to real select
|
|
which stops waiting on a signal handler being triggered.
|
|
|
|
This makes it possible to gracefully stop sockfilt.exe on
|
|
Windows with taskkill /IM sockfilt.exe (without /F force flag).
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Part of #5260
|
|
|
|
- tests/server/util.[ch]: add exit event to stop waiting on Windows
|
|
|
|
This commit adds a global exit event to the test servers that
|
|
Windows-specific wait routines can use to get triggered if the
|
|
program was signaled to be terminated, eg. select_ws in sockfilt.c
|
|
|
|
The exit event will be managed by the signal handling code and is
|
|
set to not reset automatically to support multiple wait routines.
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Closes #5260
|
|
|
|
- tests/server/util.c: fix thread handle not being closed
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Part of #5260
|
|
|
|
- tests/server/util.c: use raise instead of calling signal handler
|
|
|
|
Use raise to trigger signal handler instead of calling it
|
|
directly and causing potential unexpected control flow.
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Part of #5260
|
|
|
|
- tests: add support for SSH server variant specific transfer paths
|
|
|
|
OpenSSH for Windows requires paths in the format of /C:/
|
|
instead of the pseudo-POSIX paths /cygdrive/c/ or just /c/
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Closes #5298
|
|
|
|
Daniel Stenberg (2 May 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
- libssh2: set the expected total size in SCP upload init
|
|
|
|
... as otherwise the progress callback gets called without that
|
|
information, making the progress meter have less info.
|
|
|
|
Reported-by: Murugan Balraj
|
|
Bug: https://curl.haxx.se/mail/archive-2020-05/0000.html
|
|
Closes #5317
|
|
|
|
- runtests: make the logmsg from the ssh server only show in verbose
|
|
|
|
- tests: make test 1248 + 1249 use %NOLISTENPORT
|
|
|
|
... instead of a port of a non-running server so that it works
|
|
stand-alone.
|
|
|
|
Closes #5318
|
|
|
|
- examples: remove asiohiper.cpp
|
|
|
|
This example has repeatedly been reported to contain bugs, and as users
|
|
copy and paste code from this into production, I now deem it better to
|
|
not provide the example at all.
|
|
|
|
Closes #5090
|
|
Closes #5322
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
doc: add missing closing parenthesis in CURLINFO_SSL_VERIFYRESULT.3
|
|
|
|
Closes #5320
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
KNOWN_BUGS: Remove "curl --upload-file . hang if delay in STDIN"
|
|
|
|
It was fixed in 9a2cbf3
|
|
|
|
Closes #5319
|
|
|
|
- cirrus: disable SFTP and SCP tests
|
|
|
|
... as we can't seem to start the sshd server on it. Those problems
|
|
existed before d1239b50bececd (running the SSH server on a random port),
|
|
but they're more noticable now since there are more failed attempts in
|
|
the logs.
|
|
|
|
Closes #5315
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
runtests: fix typo in the existence of disabled tests checker
|
|
|
|
Closes #5316
|
|
|
|
Dan Fandrich (30 Apr 2020)
|
|
- test75: Remove precheck test
|
|
|
|
This has not been needed since commit 9fa42bed and often prevents it
|
|
from running at all with dynamic test ports.
|
|
|
|
- tests: Stop referring to server ports when they're not used
|
|
|
|
Several tests referred to specific server ports even when the test
|
|
didn't actually use that server or specify that it's needed. In such
|
|
cases, the test harness substitutes the text "[not running]" as the port
|
|
number which causes many such tests to fail due to the inability to
|
|
parse the URL. These tests are changed to use %NOLISTENPORT which will
|
|
always be substituted correctly.
|
|
|
|
Daniel Stenberg (30 Apr 2020)
|
|
- [Emil Engler brought this change]
|
|
|
|
GnuTLS: Backend support for CURLINFO_SSL_VERIFYRESULT
|
|
|
|
Closes #5287
|
|
|
|
- conncache: various concept cleanups
|
|
|
|
More connection cache accesses are protected by locks.
|
|
|
|
CONNCACHE_* is a beter prefix for the connection cache lock macros.
|
|
|
|
Curl_attach_connnection: now called as soon as there's a connection
|
|
struct available and before the connection is added to the connection
|
|
cache.
|
|
|
|
Curl_disconnect: now assumes that the connection is already removed from
|
|
the connection cache.
|
|
|
|
Ref: #4915
|
|
Closes #5009
|
|
|
|
- tests: tests: run stunnel for HTTPS and FTPS on dynamic ports
|
|
|
|
As stunnel is an external tool and it has no specific option to export
|
|
the actually used port number when asked to listen to 0, runtests
|
|
instead iterates over ten randomly picked high number ports and sticks
|
|
to the first one stunnel can listen to.
|
|
|
|
Closes #5267
|
|
|
|
- tests: pick a random port number for SSH
|
|
|
|
Since sshd doesn't have such an option by itself, we iterate over a
|
|
series of random ports until one works.
|
|
|
|
Closes #5273
|
|
|
|
- [Rikard Falkeborn brought this change]
|
|
|
|
libtest/cmake: Remove commented code
|
|
|
|
These were commented out in e9dd0998706a when Makefile.inc was included
|
|
instead. 11 years have passed since then and the commented code is of
|
|
course very outdated. Remove it to avoid confusion.
|
|
|
|
Closes #5311
|
|
|
|
- schannel: source code reindent
|
|
|
|
White space edits only. Conform better to standard curl source code
|
|
indenting style.
|
|
|
|
Closes #5305
|
|
|
|
Kamil Dudka (29 Apr 2020)
|
|
- test1177: look for curl.h in source directory
|
|
|
|
If we use a separate build directory, there is no copy of the header.
|
|
|
|
Closes #5310
|
|
|
|
- tests: look for preprocessed tests in build directory
|
|
|
|
... which is not always the same directory as source directory
|
|
|
|
Closes #5310
|
|
|
|
Daniel Stenberg (29 Apr 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
... and bumped curlver.h to 7.70.1
|
|
|
|
Version 7.70.0 (29 Apr 2020)
|
|
|
|
Daniel Stenberg (29 Apr 2020)
|
|
- RELEASE-NOTES: 7.70.0
|
|
|
|
- THANKS: synced with the 7.70.0 release
|
|
|
|
- headers: copyright range fix
|
|
|
|
- [Rikard Falkeborn brought this change]
|
|
|
|
doh: Constify some input pointers
|
|
|
|
Closes #5306
|
|
|
|
- nss: check for PK11_CreateDigestContext() returning NULL
|
|
|
|
... to avoid crashes!
|
|
|
|
Reported-by: Hao Wu
|
|
Fixes #5302
|
|
Closes #5303
|
|
|
|
- travis: bump the wolfssl CI build to use 4.4.0
|
|
|
|
Closes #5301
|
|
|
|
- copyright updates: adjust year ranges
|
|
|
|
Marc Hoersken (26 Apr 2020)
|
|
- CI: do not include */ci branches in PR builds
|
|
|
|
Align Azure Pipelines with GitHub Actions.
|
|
|
|
Daniel Stenberg (25 Apr 2020)
|
|
- runtests: check for the disabled tests relative srcdir
|
|
|
|
To make it work correctly for out-of-tree builds.
|
|
|
|
Follow-up to 75e8feb6fb08b
|
|
|
|
Bug: https://github.com/curl/curl/pull/5288#issuecomment-619346389
|
|
Reported-by: Marcel Raad
|
|
Closes #5297
|
|
|
|
- runtests: revert commenting out a line I did for debugging
|
|
|
|
Follow-up to 11091cd4d. It was not meant to be pushed!
|
|
|
|
- smtp: set auth correctly
|
|
|
|
Regression since 7.69.0 and 68fb25fa3fcff.
|
|
|
|
The code wrongly assigned 'from' instead of 'auth' which probably was a
|
|
copy and paste mistake from other code, leading to that auth could
|
|
remain NULL and later cause an error to be returned.
|
|
|
|
Assisted-by: Eric Sauvageau
|
|
Fixes #5294
|
|
Closes #5295
|
|
|
|
Marcel Raad (25 Apr 2020)
|
|
- lib: clean up whitespace
|
|
|
|
This fixes CodeFactor warnings.
|
|
|
|
Daniel Stenberg (25 Apr 2020)
|
|
- [Anderson Toshiyuki Sasaki brought this change]
|
|
|
|
libssh: avoid options override by configuration files
|
|
|
|
Previously, options set explicitly through command line options could be
|
|
overridden by the configuration files parsed automatically when
|
|
ssh_connect() was called.
|
|
|
|
By calling ssh_options_parse_config() explicitly, the configuration
|
|
files are parsed before setting the options, avoiding the options
|
|
override. Once the configuration files are parsed, the automatic
|
|
configuration parsing is not executed.
|
|
|
|
Fixes #4972
|
|
Closes #5283
|
|
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
|
|
|
|
- runtests: when <killserver> mentions http, kill http/2 too
|
|
|
|
Since the http2 test server is a mere proxy that needs to know about the
|
|
dynamic port the HTTP server is using, it too needs to get restarted
|
|
when the http server is killed.
|
|
|
|
A regression caused by 80d6515.
|
|
|
|
Fixes #5289
|
|
Closes #5291
|
|
|
|
- [Yuri Slobodyanyuk brought this change]
|
|
|
|
docs: fix two typos
|
|
|
|
Closes #5292
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
tests/git: ignore mqttd and port files
|
|
|
|
Closes #5290
|
|
|
|
- tests: make runtests check that disabled tests exists
|
|
|
|
... and error out if so. Removed '536' from DISABLED as there is no such
|
|
test file.
|
|
|
|
Closes #5288
|
|
|
|
- test1154: set a proper name
|
|
|
|
- select: make Curl_socket_check take timediff_t timeout
|
|
|
|
Coverity found CID 1461718:
|
|
|
|
Integer handling issues (CONSTANT_EXPRESSION_RESULT) "timeout_ms >
|
|
9223372036854775807L" is always false regardless of the values of its
|
|
operands. This occurs as the logical second operand of "||".
|
|
|
|
Closes #5240
|
|
|
|
- [i-ky brought this change]
|
|
|
|
libcurl-multi.3: added missing full stop
|
|
|
|
Closes #5285
|
|
|
|
Jay Satiro (22 Apr 2020)
|
|
- transfer: Switch PUT to GET/HEAD on 303 redirect
|
|
|
|
Prior to this change if there was a 303 reply to a PUT request then
|
|
the subsequent request to respond to that redirect would also be a PUT.
|
|
It was determined that was most likely incorrect based on the language
|
|
of the RFCs. Basically 303 means "see other" resource, which implies it
|
|
is most likely not the same resource, therefore we should not try to PUT
|
|
to that different resource.
|
|
|
|
Refer to the discussions in #5237 and #5248 for more information.
|
|
|
|
Fixes https://github.com/curl/curl/issues/5237
|
|
Closes https://github.com/curl/curl/pull/5248
|
|
|
|
Daniel Stenberg (22 Apr 2020)
|
|
- lib/mk-ca-bundle: skip empty certs
|
|
|
|
Reviewed-by: Emil Engler
|
|
Reported-by: Ashwin Metpalli
|
|
Fixes #5278
|
|
Closes #5280
|
|
|
|
- version: skip idn2_check_version() check and add precaution
|
|
|
|
A gcc-10's -fanalyze complaint made me spot and do these improvements.
|
|
|
|
Closes #5281
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- [Brian Bergeron brought this change]
|
|
|
|
curl.h: update comment typo
|
|
|
|
"routines with be invoked" -> "routines will be invoked"
|
|
|
|
Closes #5279
|
|
|
|
- [Emil Engler brought this change]
|
|
|
|
GnuTLS: Don't skip really long certificate fields
|
|
|
|
Closes #5271
|
|
|
|
- gnutls: bump lowest supported version to 3.1.10
|
|
|
|
GnuTLS 3.1.10 added new functions we want to use. That version was
|
|
released on Mar 22, 2013. Removing support for older versions also
|
|
greatly simplifies the code.
|
|
|
|
Ref: #5271
|
|
Closes #5276
|
|
|
|
- mqtt: make NOSTATE get within the debug name array
|
|
|
|
- tests: run the RTSP test server on a dynamic port number
|
|
|
|
To avoid port collisions.
|
|
|
|
Closes #5272
|
|
|
|
- tests: add %NOLISTENPORT and use it
|
|
|
|
The purpose with this variable is to provide a port number that is
|
|
reasonably likely to not have a listener on the local host so that tests
|
|
can try connect failures against it. It uses port 47 - "reserved"
|
|
according to IANA.
|
|
|
|
Updated six tests to use it instead of the previous different ports.
|
|
|
|
Assisted-by: Emil Engler
|
|
Closes #5270
|
|
|
|
- mqtt: remove code with no purpose
|
|
|
|
Detected by Coverity. CID 1462319.
|
|
|
|
"The same code is executed when the condition result is true or false,
|
|
because the code in the if-then branch and after the if statement is
|
|
identical."
|
|
|
|
Closes #5275
|
|
|
|
- mqtt: fix Curl_read() error handling while reading remaining length
|
|
|
|
Detected by Coverity. CID 1462320.
|
|
|
|
Closes #5274
|
|
|
|
- server/tftpd: fix compiler warning
|
|
|
|
Follow-up from 369ce38ac1d
|
|
Reported-by: Marc Hörsken
|
|
|
|
- http: free memory when Alt-Used header creation fails due to OOM
|
|
|
|
Reported-by: James Fuller
|
|
Fixes #5268
|
|
Closes #5269
|
|
|
|
Daniel Gustafsson (20 Apr 2020)
|
|
- lib: fix typos in comments and errormessages
|
|
|
|
This fixes a few randomly spotted typos in recently merged code, most
|
|
notably one in a userfacing errormessage the schannel code.
|
|
|
|
Daniel Stenberg (20 Apr 2020)
|
|
- tests: run the SOCKS test server on a dynamic port number
|
|
|
|
Closes #5266
|
|
|
|
- [Johannes Schindelin brought this change]
|
|
|
|
multi-ssl: reset the SSL backend on `Curl_global_cleanup()`
|
|
|
|
When cURL is compiled with support for multiple SSL backends, it is
|
|
possible to configure an SSL backend via `curl_global_sslset()`, but
|
|
only *before* `curl_global_init()` was called.
|
|
|
|
If another SSL backend should be used after that, a user might be
|
|
tempted to call `curl_global_cleanup()` to start over. However, we did
|
|
not foresee that use case and forgot to reset the SSL backend in that
|
|
cleanup.
|
|
|
|
Let's allow that use case.
|
|
|
|
Fixes #5255
|
|
Closes #5257
|
|
Reported-by: davidedec on github
|
|
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
|
|
|
|
- tests: run the TFTP test server on a dynamic port number
|
|
|
|
Picking a dynamic unused port is better than a fixed to avoid the
|
|
collision risk.
|
|
|
|
Closes #5265
|
|
|
|
- mqtt: improve the state machine
|
|
|
|
To handle PUBLISH before SUBACK and more.
|
|
|
|
Updated the existing tests and added three new ones.
|
|
|
|
Reported-by: Christoph Krey
|
|
Bug: https://curl.haxx.se/mail/lib-2020-04/0021.html
|
|
Closes #5246
|
|
|
|
- runtests: always put test number in servercmd file
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- release-notes.pl: fix parsing typo
|
|
|
|
James Fuller (20 Apr 2020)
|
|
- ensure all references to ports are replaced by vars
|
|
|
|
- add more alt-svc test coverage
|
|
|
|
Daniel Stenberg (20 Apr 2020)
|
|
- test1247: use http server to get the port number set
|
|
|
|
Follow-up to 0f5db7b263f
|
|
|
|
- runtests: use a unix domain socket path with the pid in the name
|
|
|
|
To make it impossible for test cases to access the file name without
|
|
using the proper variable for the purpose.
|
|
|
|
Closes #5264
|
|
|
|
Daniel Gustafsson (19 Apr 2020)
|
|
- [Mipsters on github brought this change]
|
|
|
|
src: Remove C99 constructs to ensure C89 compliance
|
|
|
|
This fixes the error: 'for' loop initial declaration used outside C99
|
|
mode by declaring the loop increment variable in the beginning of the
|
|
block instead of inside the for loop.
|
|
|
|
Fixes #5254
|
|
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
|
|
|
|
Daniel Stenberg (19 Apr 2020)
|
|
- runtests: dummy init the ports variables to avoid warnings
|
|
|
|
... and generate something that can help debug test cases.
|
|
|
|
- [Patrick Monnerat brought this change]
|
|
|
|
mime: properly check Content-Type even if it has parameters
|
|
|
|
New test 669 checks this fix is effective.
|
|
|
|
Fixes #5256
|
|
Closes #5258
|
|
Reported-by: thanhchungbtc on github
|
|
|
|
- tests/FILEFORMAT: converted to markdown and extended
|
|
|
|
Closes #5261
|
|
|
|
- test1245: make it work with dynamic FTP server port
|
|
|
|
- test1055: make it work with dynamic FTP port
|
|
|
|
- test1028: make it run on dynamic FTP server port
|
|
|
|
- tests: move pingpong server to dynamic listening port
|
|
|
|
FTP, IMAP, POP3, SMTP and their IPv6 versions are now all on dynamic
|
|
ports
|
|
|
|
Test 842-845 are unfortunately a bit hard to move over to this concept
|
|
right now and require "default port" still...
|
|
|
|
- test1056: work with dynamic HTTP ipv6 port
|
|
|
|
- test1448: work with dynamic HTTP server port
|
|
|
|
- tests: introduce preprocessed test cases
|
|
|
|
The runtests script now always performs variable replacement on the
|
|
entire test source file before the test gets executed, and saves the
|
|
updated version in a temporary file (log/test[num]) so that all test
|
|
case readers/servers can use that version (if present) and thus enjoy
|
|
the powers of test case variable substitution.
|
|
|
|
This is necessary to allow complete port number freedom.
|
|
|
|
Test 309 is updated to work with a non-fixed port number thanks to this.
|
|
|
|
- tests: make 2006-2010 handle different port number lengths
|
|
|
|
- tests: run the sws server on "any port"
|
|
|
|
Makes the test servers for HTTP and Gopher pop up on a currently unused
|
|
port and runtests adapts to that!
|
|
|
|
Closes #5247
|
|
|
|
Marc Hoersken (18 Apr 2020)
|
|
- sockfilt: tidy variable naming and data structure in select_ws
|
|
|
|
This commit does not introduce any logical changes to the code.
|
|
|
|
Reviewed-by: Jay Satiro and Marcel Raad
|
|
Closes #5238
|
|
|
|
Daniel Stenberg (17 Apr 2020)
|
|
- [Anderson Toshiyuki Sasaki brought this change]
|
|
|
|
libssh: Use new ECDSA key types to check known hosts
|
|
|
|
From libssh 0.9.0, ssh_key_type() returns different key types for ECDSA
|
|
keys depending on the curve.
|
|
|
|
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
|
|
Fixes #5252
|
|
Closes #5253
|
|
|
|
Marcel Raad (17 Apr 2020)
|
|
- appveyor: add Unicode winbuild jobs
|
|
|
|
These are cheap as they don't build tests.
|
|
|
|
Closes https://github.com/curl/curl/pull/5063
|
|
|
|
Daniel Stenberg (16 Apr 2020)
|
|
- mqttd: s/errno/SOCKERRNO
|
|
|
|
To behave proper on Windows
|
|
Reported-by: Gisle Vanem
|
|
Bug: https://github.com/curl/curl/commit/5e855bbd18f84a02c951be7cac6188276818cdac#r38507132
|
|
Closes #5241
|
|
|
|
- buildconf: use find -execdir instead, remove -print and the ares files
|
|
|
|
Follow-up to 1e41bec96a6e
|
|
|
|
Suggested-by: Marc Hörsken
|
|
|
|
- [Alexander V. Tikhonov brought this change]
|
|
|
|
buildconf: avoid using tempfile when removing files
|
|
|
|
Closes #5213
|
|
|
|
- copyright: bump the copyright year range
|
|
|
|
- scripts/release-notes.pl: accept colon after the Fixes/Closes keywords
|
|
|
|
- [JP Mens brought this change]
|
|
|
|
docs/MQTT: replace confusing 80 by 75
|
|
|
|
I was a bit surprised by the `80`: first thought: what's HTTP doing
|
|
here? ;)
|
|
|
|
Closes #5236
|
|
|
|
- [Brad King brought this change]
|
|
|
|
cmake: Avoid MSVC C4273 warnings in send/recv checks
|
|
|
|
We use `check_c_source_compiles` to check possible send/recv signatures
|
|
by reproducing the forward declarations from system headers. On Windows
|
|
the `winsock2.h` header adds dll linkage settings to its forward
|
|
declaration. If ours does not match the compiler warns:
|
|
|
|
warning C4273: 'recv': inconsistent dll linkage
|
|
|
|
Add `WINSOCK_API_LINKAGE` to our test signatures when it is defined so
|
|
that our linkage is consistent with that from `winsock2.h`.
|
|
|
|
Fixes #4764
|
|
Closes #5232
|
|
|
|
Jay Satiro (14 Apr 2020)
|
|
- KNOWN_BUGS: Add entry 'Blocking socket operations'
|
|
|
|
- Add threaded resolver cleanup and GSSAPI for FTP to the TODO list of
|
|
known blocking operations.
|
|
|
|
- New known bugs entry 'Blocking socket operations in non-blocking API'
|
|
that directs to the TODO's list of known blocking operations.
|
|
|
|
Ref: https://github.com/curl/curl/pull/5214#issuecomment-612488021
|
|
|
|
Reported-by: Marc Hoersken
|
|
|
|
Closes https://github.com/curl/curl/pull/5216
|
|
|
|
Marc Hoersken (14 Apr 2020)
|
|
- test2043: use revoked.badssl.com instead of revoked.grc.com
|
|
|
|
The certificate of revoked.grc.com has expired on 2020-04-13.
|
|
|
|
Reviewed-by: Jay Satiro
|
|
|
|
Closes #5233
|
|
|
|
- sockfilt: fix broken pipe on Windows to be ready in select_ws
|
|
|
|
Closes #5228
|
|
|
|
Daniel Stenberg (14 Apr 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
- scripts/release-notes: fix duplicate output header
|
|
|
|
- github/workflow: enable MQTT in the macOS debug build
|
|
|
|
- azure: add mqtt support to one of the Windows builds
|
|
|
|
- travis: add mqtt job on Linux
|
|
|
|
- tests: add four MQTT tests 1190 - 1193
|
|
|
|
- tests: add the mqtt test server mqttd
|
|
|
|
- tests: support hex encoded data and mqtt server
|
|
|
|
The mqtt server is started using a "random" port.
|
|
|
|
- [Björn Stenberg brought this change]
|
|
|
|
mqtt: add new experimental protocol
|
|
|
|
Closes #5173
|
|
|
|
- TODO: Consider convenience options for JSON and XML?
|
|
|
|
Closes #5203
|
|
|
|
- tool: do not declare functions with Curl_ prefix
|
|
|
|
To avoid collision risks with private libcurl symbols when linked with
|
|
static versions (or just versions not hiding internal symbols).
|
|
|
|
Reported-by: hydra3333 on github
|
|
Fixes #5219
|
|
Closes #5234
|
|
|
|
- [Nathaniel R. Lewis brought this change]
|
|
|
|
cmake: add aliases so exported target names are available in tree
|
|
|
|
Reviewed-by: Brad King
|
|
Closes #5206
|
|
|
|
- version: increase buffer space for ssl version output
|
|
|
|
To avoid it getting truncated, especially when several SSL backends are
|
|
built-in.
|
|
|
|
Reported-by: Gisle Vanem
|
|
Fixes #5222
|
|
Closes #5226
|
|
|
|
Marc Hoersken (13 Apr 2020)
|
|
- cirrus: no longer ignore test 504 which is working again
|
|
|
|
The test is working again, because TCP blackholing is disabled.
|
|
|
|
- appveyor: completely disable tests that fail to timeout early
|
|
|
|
The tests changed from ignored to disabled are tests that are
|
|
about connecting to non-listening socket. On AppVeyor these
|
|
tests are not reliable, because for some unknown reason the
|
|
connect is not timing out before the test time limit is reached.
|
|
|
|
Daniel Stenberg (13 Apr 2020)
|
|
- test1908: avoid using fixed port number in test data
|
|
|
|
Closes #5225
|
|
|
|
Jay Satiro (12 Apr 2020)
|
|
- [Andrew Kurushin brought this change]
|
|
|
|
schannel: Fix blocking timeout logic
|
|
|
|
- Fix schannel_send for the case when no timeout was set.
|
|
|
|
Prior to this change schannel would error if the socket was not ready
|
|
to send data and no timeout was set.
|
|
|
|
This commit is similar to parent commit 89dc6e0 which recently made the
|
|
same change for SOCKS, for the same reason. Basically it was not well
|
|
understood that when Curl_timeleft returns 0 it is not a timeout of 0 ms
|
|
but actually means no timeout.
|
|
|
|
Fixes https://github.com/curl/curl/issues/5177
|
|
Closes https://github.com/curl/curl/pull/5221
|
|
|
|
- socks: Fix blocking timeout logic
|
|
|
|
- Document in Curl_timeleft's comment block that returning 0 signals no
|
|
timeout (ie there's infinite time left).
|
|
|
|
- Fix SOCKS' Curl_blockread_all for the case when no timeout was set.
|
|
|
|
Prior to this change if the timeout had a value of 0 and that was passed
|
|
to SOCKET_READABLE it would return right away instead of blocking. That
|
|
was likely because it was not well understood that when Curl_timeleft
|
|
returns 0 it is not a timeout of 0 ms but actually means no timeout.
|
|
|
|
Ref: https://github.com/curl/curl/pull/5214#issuecomment-612512360
|
|
|
|
Closes https://github.com/curl/curl/pull/5220
|
|
|
|
- [Marc Hoersken brought this change]
|
|
|
|
gopher: check remaining time left during write busy loop
|
|
|
|
Prior to this change gopher's blocking code would block forever,
|
|
ignoring any set timeout value.
|
|
|
|
Assisted-by: Jay Satiro
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Similar to #5220 and #5221
|
|
Closes #5214
|
|
|
|
Daniel Stenberg (13 Apr 2020)
|
|
- [Dirkjan Bussink brought this change]
|
|
|
|
gnutls: ensure TLS 1.3 when SRP isn't requested
|
|
|
|
When SRP is requested in the priority string, GnuTLS will disable
|
|
support for TLS 1.3. Before this change, curl would always add +SRP to
|
|
the priority list, effectively always disabling TLS 1.3 support.
|
|
|
|
With this change, +SRP is only added to the priority list when SRP
|
|
authentication is also requested. This also allows updating the error
|
|
handling here to not have to retry without SRP. This is because SRP is
|
|
only added when requested and in that case a retry is not needed.
|
|
|
|
Closes #5223
|
|
|
|
Marc Hoersken (12 Apr 2020)
|
|
- tests/server: add hidden window to gracefully handle WM_CLOSE
|
|
|
|
Forward Window events as signals to existing signal event handler.
|
|
|
|
- tests/server: add CTRL event handler for Win32 consoles
|
|
|
|
Forward CTRL events as signals to existing signal event handler.
|
|
|
|
- tests/server: move all signal handling routines to util.[ch]
|
|
|
|
Avoid code duplication to prepare for portability enhancements.
|
|
|
|
Daniel Stenberg (12 Apr 2020)
|
|
- compressed.d: stress that the headers are not modified
|
|
|
|
Suggested-by: Michael Osipov
|
|
Assisted-by: Jay Satiro
|
|
Bug: https://github.com/curl/curl/issues/5182#issuecomment-611638008
|
|
Closes #5217
|
|
|
|
Marc Hoersken (11 Apr 2020)
|
|
- tests/server/util.c: use curl_off_t instead of long for pid
|
|
|
|
Avoid potential overflow of huge PIDs on Windows.
|
|
|
|
Related to #5188
|
|
Assisted-by: Marcel Raad
|
|
|
|
- tests: use Cygwin/msys PIDs for stunnel and sshd on Windows
|
|
|
|
Since the Windows versions of both programs would write Windows
|
|
PIDs to their pidfiles which we cannot handle, we need to use
|
|
our known perl.exe Cygwin/msys PID together with exec() in order
|
|
to tie the spawned processes to the existance of our perl.exe
|
|
|
|
The perl.exe that is executing secureserver.pl and sshserver.pl
|
|
has a Cygwin/msys PID, because it is started inside Cygwin/msys.
|
|
|
|
Related to #5188
|
|
|
|
- tests: add Windows compatible pidwait like pidkill and pidterm
|
|
|
|
Related to #5188
|
|
|
|
- tests: fix conflict between Cygwin/msys and Windows PIDs
|
|
|
|
Add 65536 to Windows PIDs to allow Windows specific treatment
|
|
by having disjunct ranges for Cygwin/msys and Windows PIDs.
|
|
|
|
See also:
|
|
- https://cygwin.com/git/?p=newlib-cygwin.git;a=commit; ↵
|
|
h=b5e1003722cb14235c4f166be72c09acdffc62ea
|
|
- https://cygwin.com/git/?p=newlib-cygwin.git;a=commit; ↵
|
|
h=448cf5aa4b429d5a9cebf92a0da4ab4b5b6d23fe
|
|
|
|
Replaces #5178
|
|
Closes #5188
|
|
|
|
Daniel Stenberg (11 Apr 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
- release-notes.pl: detect the start of the references in cleanup mode
|
|
|
|
- Revert "file: on Windows, refuse paths that start with \\"
|
|
|
|
This reverts commit 1b71bc532bde8621fd3260843f8197182a467ff2.
|
|
|
|
Reminded-by: Chris Roberts
|
|
Bug: https://curl.haxx.se/mail/archive-2020-04/0013.html
|
|
|
|
Closes #5215
|
|
|
|
Jay Satiro (11 Apr 2020)
|
|
- lib: fix conversion warnings for SOCKET_WRITABLE/READABLE
|
|
|
|
- If loss of data may occur converting a timediff_t to time_t and
|
|
the time value is > TIME_T_MAX then treat it as TIME_T_MAX.
|
|
|
|
This is a follow-up to 8843678 which removed the (time_t) typecast
|
|
from the macros so that conversion warnings could be identified.
|
|
|
|
Closes https://github.com/curl/curl/pull/5199
|
|
|
|
- test1148: tolerate progress updates better (again)
|
|
|
|
- Ignore intermediate progress updates.
|
|
|
|
- Support locales that use a character other than period as decimal
|
|
separator (eg 100,0%).
|
|
|
|
test1148 checks that the progress finishes at 100% and has the right
|
|
bar width. Prior to this change the test assumed that the only progress
|
|
reported for such a quick transfer was 100%, however in rare instances
|
|
(like in the CI where transfer time can slow considerably) there may be
|
|
intermediate updates. For example, below is stderrlog1148 from a failed
|
|
CI run with explicit \r and \n added (it is one line; broken up so that
|
|
it's easier to understand).
|
|
|
|
\r
|
|
\r################################## 48.3%
|
|
\r######################################################################## 100.0%
|
|
\n
|
|
|
|
Closes https://github.com/curl/curl/pull/5194
|
|
|
|
Marc Hoersken (10 Apr 2020)
|
|
- sshserver.pl: use cached Win32 environment check variable
|
|
|
|
- appveyor: partially revert 3413a110 to keep build without proxy
|
|
|
|
Ref: #5211 and #4526
|
|
Reported-by: Marcel Raad
|
|
|
|
- appveyor: ignore failing 'connect to non-listening proxy' tests
|
|
|
|
Closes #5211
|
|
|
|
- CI/macos: convert CRLF to LF and align indentation
|
|
|
|
Daniel Stenberg (9 Apr 2020)
|
|
- url: allow non-HTTPS altsvc-matching for debug builds
|
|
|
|
This is already partly supported but this part was missing.
|
|
Reported-by: James Fuller
|
|
|
|
Closes #5205
|
|
|
|
- server/resolve: remove AI_CANONNAME to make macos tell the truth
|
|
|
|
With this bit set, my mac successfully resolves "ip6-localhost" when in
|
|
fact there is no such host known to my machine! That in turn made test
|
|
241 wrongly execute and fail.
|
|
|
|
Closes #5202
|
|
|
|
- runtests: fix warning about using an undefined variable
|
|
|
|
Follow-up from 4d939ef6ceb2db1
|
|
|
|
- release-notes: fix the initial reference list output
|
|
|
|
- github actions: run when pushed to master or */ci + PRs
|
|
|
|
Avoid double-builds when using "local" branches for PRs. For both macos
|
|
and fuzz jobs.
|
|
|
|
Closes #5201
|
|
|
|
- runtests: provide nicer errormsg when protocol "dump" file is empty
|
|
|
|
- [Gilles Vollant brought this change]
|
|
|
|
schannel: support .P12 or .PFX client certificates
|
|
|
|
Used with curl command line option like this: --cert
|
|
<filename>:<password> --cert-type p12
|
|
|
|
Closes #5193
|
|
|
|
- tests: verify split initial HTTP requests with CURL_SMALLREQSEND
|
|
|
|
test1294: "split request" being when the entire request isn't sent in
|
|
the first go, and the remainder is sent in the PERFORM state. A GET
|
|
request is otherwise not sending anything during PERFORM.
|
|
|
|
test1295: same kind of split but with POST
|
|
|
|
Closes #5197
|
|
|
|
- http: don't consider upload done if the request isn't completely sent off
|
|
|
|
Fixes #4919
|
|
Closes #5197
|
|
|
|
- http: allow Curl_add_buffer_send() to do a short first send by force
|
|
|
|
In a debug build, settting the environment variable "CURL_SMALLREQSEND"
|
|
will make the first HTTP request send not send more bytes than the set
|
|
amount, thus ending up verifying that the logic for handling a split
|
|
HTTP request send works correctly.
|
|
|
|
- connect: store connection info for QUIC connections
|
|
|
|
Restores the --head functionality to the curl utility which extracts
|
|
'protocol' that is stored that way.
|
|
|
|
Reported-by: James Fuller
|
|
Fixes #5196
|
|
Closes #5198
|
|
|
|
- tests/README: update the port numbers list
|
|
|
|
Since the pipelining server is long gone.
|
|
Reported-by: James Fuller
|
|
|
|
- select: remove typecast from SOCKET_WRITABLE/READABLE macros
|
|
|
|
So that they don't hide conversions-by-mistake
|
|
|
|
Reviewed-by: Jay Satiro
|
|
Closes #5190
|
|
|
|
- CURLOPT_WRITEFUNCTION.3: add inline example and new see-also
|
|
|
|
Closes #5192
|
|
|
|
- release-notes: output trailing references sorted numerically
|
|
|
|
- cleanup: correct copyright year range on a few files
|
|
|
|
- configure: remove use of -vec-report0 from CFLAGS with icc
|
|
|
|
... as it apparently isn't (always) supported.
|
|
Reported-by: Alain Miniussi
|
|
Fixes #5096
|
|
Closes #5191
|
|
|
|
- warnless: remove code block for icc that didn't work
|
|
|
|
Reported-by: Alain Miniussi
|
|
Fixes #5096
|
|
|
|
Marc Hoersken (6 Apr 2020)
|
|
- dist: add missing setup-win32.h
|
|
|
|
Follow up to d820224b8b
|
|
|
|
Daniel Stenberg (6 Apr 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
- scripts/release-notes.pl: add helper script for RELEASE-NOTES maintenance
|
|
|
|
This script helps putting entries in the RELEASE-NOTES using a coherent
|
|
style and sorting with a minimal human editing effort - as long as the
|
|
first line in the commit message is good enough! There's a short howto
|
|
at the top of the file.
|
|
|
|
- [Dennis Felsing brought this change]
|
|
|
|
configure: don't check for Security.framework when cross-compiling
|
|
|
|
Since it checks for the local file, not the cross-compiled one.
|
|
|
|
Closes #5189
|
|
|
|
- TODO: Option to make -Z merge lined based outputs on stdout
|
|
|
|
Closes #5175
|
|
|
|
- lib: never define CURL_CA_BUNDLE with a getenv
|
|
|
|
- it breaks the build (since 6de756c9b1de34b7a1)
|
|
- it's not documented and not consistent across platforms
|
|
- the curl tool does that getenv magic
|
|
|
|
Bug: https://github.com/curl/curl/commit/6de756c#r38127030
|
|
Reported-by: Gisle Vanem
|
|
|
|
Closes #5187
|
|
|
|
Marc Hoersken (5 Apr 2020)
|
|
- lib670: use the same Win32 API check as all other lib tests
|
|
|
|
- appveyor: use random test server ports based upon APPVEYOR_API_URL
|
|
|
|
Avoid conflicts of test server ports with AppVeyor API on localhost.
|
|
|
|
Closes #5034
|
|
|
|
- appveyor: sort builds by type and add two new variants
|
|
|
|
Related to #5034 and #5063
|
|
|
|
- appveyor: show failed tests in log even if test is ignored
|
|
|
|
And print API response with newline only if there is one
|
|
|
|
- appveyor: turn disabled tests into ignored result tests
|
|
|
|
Daniel Stenberg (5 Apr 2020)
|
|
- KNOWN_BUGS: fixed "USE_UNIX_SOCKETS on Windows"
|
|
|
|
Fixed with #5170 (commit 23a870f2fd041278)
|
|
|
|
- test1566: verify --etag-compare that gets a 304 back
|
|
|
|
Verifies the fix in #5183
|
|
|
|
Closes #5186
|
|
|
|
- [Kwon-Young Choi brought this change]
|
|
|
|
CURLINFO_CONDITION_UNMET: return true for 304 http status code
|
|
|
|
In libcurl, CURLINFO_CONDITION_UNMET is used to avoid writing to the
|
|
output file if the server did not transfered a file based on time
|
|
condition. In the same manner, getting a 304 HTTP response back from the
|
|
server, for example after passing a custom If-Match-* header, also
|
|
fulfill this condition.
|
|
|
|
Fixes #5181
|
|
Closes #5183
|
|
|
|
- [Kwon-Young Choi brought this change]
|
|
|
|
curl: allow both --etag-compare and --etag-save with same file name
|
|
|
|
This change inverse the order of processing for the --etag-compare and
|
|
--etag-save option to process first --etag-compare. This in turn allows
|
|
to use the same file name to compare and save an etag.
|
|
|
|
The original behavior of not failing if the etag file does not exists is
|
|
conserved.
|
|
|
|
Fixes #5179
|
|
Closes #5180
|
|
|
|
Viktor Szakats (4 Apr 2020)
|
|
- windows: enable UnixSockets with all build toolchains
|
|
|
|
Extend existing unix socket support in Windows builds to be
|
|
enabled for all toolchain vendors or versions. (Previously
|
|
it was only supported with certain MSVC versions + more recent
|
|
Windows 10 SDKs)
|
|
|
|
Ref: https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
|
|
Ref: https://github.com/curl/curl/issues/5162
|
|
Closes: https://github.com/curl/curl/pull/5170
|
|
|
|
Daniel Stenberg (4 Apr 2020)
|
|
- KNOWN_BUGS: Store TLS context per transfer instead of per connection
|
|
|
|
Closes #5102
|
|
|
|
Marc Hoersken (3 Apr 2020)
|
|
- sockfilt: remove redundancy in timeout handling
|
|
|
|
And update other logmsg output in select_ws on Windows.
|
|
|
|
- sockfilt: fix handling of ready closed sockets on Windows
|
|
|
|
Replace the incomplete workaround regarding FD_CLOSE
|
|
only signalling once by instead doing a pre-check with
|
|
standard select and storing the result for later use.
|
|
|
|
select keeps triggering on closed sockets on Windows while
|
|
WSAEventSelect fires only once with data still available.
|
|
By doing the pre-check we do not run in a deadlock
|
|
due to waiting forever for another FD_CLOSE event.
|
|
|
|
- sockfilt: fix race-condition of waiting threads and event handling
|
|
|
|
Fix race-condition of waiting threads finishing while events are
|
|
already being processed which lead to invalid or skipped events.
|
|
|
|
Use mutex to check for one event at a time or do post-processing.
|
|
In addition to mutex-based locking use specific event as signal.
|
|
|
|
Closes #5156
|
|
|
|
Daniel Stenberg (2 Apr 2020)
|
|
- [Leo Neat brought this change]
|
|
|
|
CI-fuzz: increase fuzz time to 40 minutes
|
|
|
|
Closes #5174
|
|
|
|
Marc Hoersken (2 Apr 2020)
|
|
- CI: increase Azure Pipelines timeouts due to performance issues
|
|
|
|
The current demand on Azure negatively impacts the CI performance.
|
|
|
|
- runtests.pl: log host OS as detected by Perl environment
|
|
|
|
- ftpserver.pl: log before and after data connection is closed
|
|
|
|
Daniel Stenberg (1 Apr 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
- RELEASE-PROCEDURE.md: run the copyright.pl script!
|
|
|
|
- vquic/ngtcp2.h: update copyright year range
|
|
|
|
Follow-up to 0736ee73d346a52
|
|
|
|
- [Daiki Ueno brought this change]
|
|
|
|
CI: add build with ngtcp2 + gnutls on Travis CI
|
|
|
|
- [Daiki Ueno brought this change]
|
|
|
|
vquic: add support for GnuTLS backend of ngtcp2
|
|
|
|
Currently, the TLS backend used by vquic/ngtcp2.c is selected at compile
|
|
time. Therefore OpenSSL support needs to be explicitly disabled.
|
|
|
|
Signed-off-by: Daiki Ueno <dueno@redhat.com>
|
|
Closes #5148
|
|
|
|
- [Gisle Vanem brought this change]
|
|
|
|
examples/sessioninfo.c: add include to fix compiler warning
|
|
|
|
Fixes #5171
|
|
|
|
- misc: copyright year updates
|
|
|
|
Follow-up to 7a71965e9
|
|
|
|
- [Harry Sintonen brought this change]
|
|
|
|
build: fixed build for systems with select() in unistd.h
|
|
|
|
Closes #5169
|
|
|
|
- memdebug: don't log free(NULL)
|
|
|
|
... it serves no purpose and fills up the log.
|
|
|
|
- cleanup: insert newline after if() conditions
|
|
|
|
Our code style mandates we put the conditional block on a separate
|
|
line. These mistakes are now detected by the updated checksrc.
|
|
|
|
- checksrc: warn on obvious conditional blocks on the same line as if()
|
|
|
|
Closes #5164
|
|
|
|
- [Roger Orr brought this change]
|
|
|
|
cmake: add CMAKE_MSVC_RUNTIME_LIBRARY
|
|
|
|
Fixes #5165
|
|
Closes #5167
|
|
|
|
- [Daiki Ueno brought this change]
|
|
|
|
ngtcp2: update to git master for the key installation API change
|
|
|
|
This updates the ngtcp2 OpenSSL backend to follow the API change in
|
|
commit 32e703164 of ngtcp2.
|
|
|
|
Notable changes are:
|
|
- ngtcp2_crypto_derive_and_install_{rx,tx}_key have been added to replace
|
|
ngtcp2_crypto_derive_and_install_key
|
|
- the 'side' argument of ngtcp2_crypto_derive_and_install_initial_key
|
|
has been removed
|
|
|
|
Fixes #5166
|
|
Closes #5168
|
|
|
|
- [Cyrus brought this change]
|
|
|
|
SECURITY.md: minor rephrase
|
|
|
|
Closes #5158
|
|
|
|
- output.d: quote the URL when globbing
|
|
|
|
Some shells do globbing of their own unless the URL is quoted, so maybe
|
|
encourage this.
|
|
|
|
Co-authored-by: Jay Satiro
|
|
Closes #5160
|
|
|
|
- dist: add tests/version-scan.pl to tarball
|
|
|
|
... used in test 1177.
|
|
|
|
Follow-up to a97d826f6de3
|
|
|
|
- test1177: verify that all the CURL_VERSION_ bits are documented
|
|
|
|
- curl.h: remnove CURL_VERSION_ESNI. Never supported nor documented
|
|
|
|
Considered experimental and therefore we can do this.
|
|
|
|
Closes #5157
|
|
|
|
- KNOWN_BUGS: DoH doesn't inherit all transfer options
|
|
|
|
Closes #4578
|
|
Closes #4579
|
|
|
|
- KNOWN_BUGS: DoH leaks memory after followlocation
|
|
|
|
Closes #4592
|
|
|
|
- KNOWN_BUGS: "FTPS needs session reuse"
|
|
|
|
Closes #4654
|
|
|
|
- KNOWN_BUGS: "stick to same family over SOCKS pro" is presumed fixed
|
|
|
|
- TODO: Set custom client ip when using haproxy protocol
|
|
|
|
Closes #5125
|
|
|
|
Michael Kaufmann (27 Mar 2020)
|
|
- writeout_json: Fix data type issues
|
|
|
|
Load long values correctly (e.g. for http_code).
|
|
|
|
Use curl_off_t (not long) for:
|
|
- size_download (CURLINFO_SIZE_DOWNLOAD_T)
|
|
- size_upload (CURLINFO_SIZE_UPLOAD_T)
|
|
|
|
The unit for these values is bytes/second, not microseconds:
|
|
- speed_download (CURLINFO_SPEED_DOWNLOAD_T)
|
|
- speed_upload (CURLINFO_SPEED_UPLOAD_T)
|
|
|
|
Fixes #5131
|
|
Closes #5152
|
|
|
|
Daniel Stenberg (27 Mar 2020)
|
|
- mailmap: fixup a few author names/fields
|
|
|
|
Douglas Steinwand, Gökhan Şengün, Jessa Chandler, Julian Z and
|
|
Svyatoslav Mishyn
|
|
|
|
- version: add 'cainfo' and 'capath' to version info struct
|
|
|
|
Suggested-by: Timothe Litt
|
|
URL: https://curl.haxx.se/mail/lib-2020-03/0090.html
|
|
Reviewed-by: Jay Satiro
|
|
|
|
Closes #5150
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
Jay Satiro (26 Mar 2020)
|
|
- SSLCERTS.md: Fix example code for setting CA cert file
|
|
|
|
Prior to this change the documentation erroneously said use
|
|
CURLOPT_CAPATH to set a CA cert file.
|
|
|
|
Bug: https://curl.haxx.se/mail/lib-2020-03/0121.html
|
|
Reported-by: Timothe Litt
|
|
|
|
Closes https://github.com/curl/curl/pull/5151
|
|
|
|
Marc Hoersken (26 Mar 2020)
|
|
- sockfilt: add logmsg output to select_ws_wait_thread on Windows
|
|
|
|
Assisted-by: Jay Satiro
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Closes #5086
|
|
|
|
Daniel Stenberg (26 Mar 2020)
|
|
- docs/make: generate curl.1 from listed files only
|
|
|
|
Previously it rendered the page from files matching "*.d" in the correct
|
|
directory, which worked fine in git builds when the files were added but
|
|
made it easy to forget adding the files to the dist.
|
|
|
|
Now, only man page sections listed in DPAGES in Makefile.inc will be
|
|
used, thus "forcing" us to update this to get the man page right and get
|
|
it included in the dist at the same time.
|
|
|
|
Ref: #5146
|
|
Closes #5149
|
|
|
|
- openssl: adapt to functions marked as deprecated since version 3
|
|
|
|
OpenSSL 3 deprecates SSL_CTX_load_verify_locations and the MD4, DES
|
|
functions we use.
|
|
|
|
Fix the MD4 and SSL_CTX_load_verify_locations warnings.
|
|
|
|
In configure, detect OpenSSL v3 and if so, inhibit the deprecation
|
|
warnings. OpenSSL v3 deprecates the DES functions we use for NTLM and
|
|
until we rewrite the code to use non-deprecated functions we better
|
|
ignore these warnings as they don't help us.
|
|
|
|
Closes #5139
|
|
|
|
- dist: add mail-rcpt-allowfails.d to the tarball
|
|
|
|
Reported-by: Maksim Stsepanenka
|
|
Reviewed-by: Jat Satiro
|
|
|
|
Closes #5146
|
|
|
|
- travis: update the ngtcp2 build to use the latest OpenSSL patch
|
|
|
|
... which also makes it OpenSSL 1.1.1d based and not v3.
|
|
|
|
Marc Hoersken (24 Mar 2020)
|
|
- CI: remove default Ubuntu build from GitHub Actions
|
|
|
|
We are already running a very similar Ubuntu build on Travis CI.
|
|
The macOS variant of this default build is kept on Github Actions.
|
|
|
|
- CI: bring GitHub Actions fuzzing job in line with macOS jobs
|
|
|
|
Update YAML formatting, job naming and triggers.
|
|
|
|
- CI: migrate macOS jobs from Azure and Travis CI to GitHub Actions
|
|
|
|
Reduce workload on Azure Pipelines and Travis CI while
|
|
consolidating macOS jobs onto less utilized GitHub Actions.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
|
|
Closes #5124
|
|
|
|
Daniel Stenberg (24 Mar 2020)
|
|
- config: remove all defines of HAVE_DES_H
|
|
|
|
As there's no code using it.
|
|
|
|
Closes #5144
|
|
|
|
- copyright: fix out-of-date copyright ranges and missing headers
|
|
|
|
Reported by the new script 'scripts/copyright.pl'. The script has a
|
|
regex whitelist for the files that don't need copyright headers.
|
|
|
|
Removed three (mostly usesless) README files from docs/
|
|
|
|
Closes #5141
|
|
|
|
- packages: add OS400/chkstrings.c to the dist
|
|
|
|
Reported-by: Jon Rumsey
|
|
Fixes #5142
|
|
Closes #5143
|
|
|
|
- [Clément Notin brought this change]
|
|
|
|
nghttp2: 1.12.0 required
|
|
|
|
since nghttp2_session_set_local_window_size is needed
|
|
|
|
Closes #5140
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- [Calvin Buckley brought this change]
|
|
|
|
OS400: Update strings for ccsid-ifier
|
|
|
|
Fixes build.
|
|
|
|
Closes #5132
|
|
|
|
- cirrus: make freebsd ignore the tests instead of skipping
|
|
|
|
To allow us to see in the CI logs how they actually behave
|
|
|
|
Closes #5091
|
|
|
|
- cirrus: move the sanitizer build from freebsd 13 to freebsd 12
|
|
|
|
- Revert "cirrus-ci: disable the FreeBSD 13 builds"
|
|
|
|
This reverts commit 691b71be930f0e285c8f7a76efd56bbe0576cda6.
|
|
|
|
- getinfo: provide CURLINFO_HEADER_SIZE and CURLINFO_REQUEST_SIZE override
|
|
|
|
To let debug-builds return fake values, like in test 970.
|
|
|
|
Ref: #5131
|
|
Closes #5136
|
|
|
|
- test970: improve the test
|
|
|
|
- send more data to make problems more obvious
|
|
- don't start the data with minus, it makes diffs harder to read
|
|
- skip the headers in the stdout comparison
|
|
- save to a file name to also verify 'filename_effective'
|
|
|
|
Ref: #5131
|
|
|
|
- CURLINFO_NUM_CONNECTS: improve accuracy
|
|
|
|
The counter was not bumped in all cases correctly.
|
|
|
|
Reported-by: Marcel Raad
|
|
Ref: #5131
|
|
Closes #5135
|
|
|
|
- TODO: Use "random" ports for the test servers
|
|
|
|
- lib/curl_setup: adjust the copyright year range
|
|
|
|
Follow-up from d820224b8
|
|
|
|
Jay Satiro (21 Mar 2020)
|
|
- curl_setup: define _WIN32_WINNT_[OS] symbols
|
|
|
|
.. because not all Windows build systems have those symbols, and even
|
|
those that do may be missing newer symbols (eg the Windows 7 SDK does
|
|
not define _WIN32_WINNT_WIN10).
|
|
|
|
Those symbols are used in build-time logic to decide which API to use
|
|
and prior to this change if the symbols were missing it would have
|
|
resulted in deprecated API being used when more recent functions were
|
|
available (eg GetVersionEx used instead of VerifyVersionInfo).
|
|
|
|
Reported-by: FuccDucc@users.noreply.github.com
|
|
|
|
Probably fixes https://github.com/curl/curl/issues/4995
|
|
Closes https://github.com/curl/curl/pull/5057
|
|
|
|
- [Ross Burton brought this change]
|
|
|
|
curl-functions.m4: remove inappropriate AC_REQUIRE
|
|
|
|
AC_REQUIRE means "if this macro hasn't been executed already, execute
|
|
it". So in a wrapper around AC_RUN_IFELSE, AC_REQUIRE(AC_RUN_IFELSE)
|
|
isn't correct at that will execute AC_RUN_IFELSE without any arguments.
|
|
|
|
With autoconf 2.69 this is basically a no-op, but with autoconf 2.70,
|
|
AC_RUN_IFELSE without a default value when cross-compiling is fatal.
|
|
The result is that curl with autoconf 2.70 cannot cross-compile.
|
|
|
|
Fixes https://github.com/curl/curl/issues/5126
|
|
Closes https://github.com/curl/curl/pull/5130
|
|
|
|
Marc Hoersken (20 Mar 2020)
|
|
- ci/tests: fix Azure Pipelines not running Windows containers
|
|
|
|
Workaround posted here: microsoft/azure-pipelines-agent#2864
|
|
|
|
Assisted-by: Simon Chalifoux
|
|
Assisted-by: Tommy Petty
|
|
|
|
Fixes #5117
|
|
Closes #5129
|
|
|
|
Daniel Stenberg (20 Mar 2020)
|
|
- tests: add test 430, 431 and 432 to verify the --config fix
|
|
|
|
Verify the fixes in 4e0b4fee4
|
|
|
|
- [Rici Lake brought this change]
|
|
|
|
cmdline: fix handling of OperationConfig linked list (--next)
|
|
|
|
Ensures that -K/--config inserts new items at the end of the list
|
|
instead of overwriting the second item, and that after a -K/--config
|
|
option has been parsed, the option parser's view of the current config
|
|
is update.
|
|
|
|
Fixes #5120
|
|
Closes #5123
|
|
|
|
Marc Hoersken (20 Mar 2020)
|
|
- test2100: fix static port instead of dynamic value being used
|
|
|
|
- test970: fix static ip:port instead of dynamic values being used
|
|
|
|
Daniel Stenberg (19 Mar 2020)
|
|
- secure transport: remove the BACKEND define kludge
|
|
|
|
Closes #5122
|
|
|
|
- mbedtls: remove the BACKEND define kludge
|
|
|
|
- bearssl: remove the BACKEND define kludge
|
|
|
|
- wolfssl: remove the BACKEND define kludge
|
|
|
|
- nss: remove the BACKEND define kludge
|
|
|
|
- gnutls: remove the BACKEND define kludge
|
|
|
|
- openssl: remove the BACKEND define kludge
|
|
|
|
Use a proper variable instead to make it easier to use a debugger and
|
|
read the code.
|
|
|
|
Marc Hoersken (19 Mar 2020)
|
|
- tests: make Python-based servers compatible with Python 2 and 3
|
|
|
|
Update smbserver.py and negtelnetserver.py to be compatible with
|
|
Python 3 while staying backwards-compatible to support Python 2.
|
|
|
|
Fix string encoding and handling of echoed and transferred data.
|
|
|
|
Tested with both Python 2.7.17 and Python 3.7.7
|
|
|
|
Reported-by: Daniel Stenberg
|
|
Assisted-by: Kamil Dudka
|
|
Reviewed-by: Marcel Raad
|
|
|
|
Fixes #5104
|
|
Closes #5110
|
|
|
|
Daniel Stenberg (18 Mar 2020)
|
|
- writeout_json: use curl_off_t printf() option for the time output
|
|
|
|
Follow-up to: 04c03416e68fd635a15
|
|
|
|
Closes #5115
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
Uh, I missed this in 1a46b218db
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
... and bumped curlver.h to 7.70.0
|
|
|
|
Jay Satiro (18 Mar 2020)
|
|
- http2: Fix erroneous debug message that h2 connection closed
|
|
|
|
Prior to this change in libcurl debug builds http2 stream closure was
|
|
erroneously referred to as connection closure.
|
|
|
|
Before:
|
|
* nread <= 0, server closed connection, bailing
|
|
|
|
After:
|
|
* nread == 0, stream closed, bailing
|
|
|
|
Closes https://github.com/curl/curl/pull/5118
|
|
|
|
Daniel Stenberg (18 Mar 2020)
|
|
- tool_setopt: correct the copyright year range
|
|
|
|
Follow-up to 5450428491
|
|
|
|
Jay Satiro (18 Mar 2020)
|
|
- [Johannes Schindelin brought this change]
|
|
|
|
schannel: add "best effort" revocation check option
|
|
|
|
- Implement new option CURLSSLOPT_REVOKE_BEST_EFFORT and
|
|
--ssl-revoke-best-effort to allow a "best effort" revocation check.
|
|
|
|
A best effort revocation check ignores errors that the revocation check
|
|
was unable to take place. The reasoning is described in detail below and
|
|
discussed further in the PR.
|
|
|
|
---
|
|
|
|
When running e.g. with Fiddler, the schannel backend fails with an
|
|
unhelpful error message:
|
|
|
|
Unknown error (0x80092012) - The revocation function was unable
|
|
to check revocation for the certificate.
|
|
|
|
Sadly, many enterprise users who are stuck behind MITM proxies suffer
|
|
the very same problem.
|
|
|
|
This has been discussed in plenty of issues:
|
|
https://github.com/curl/curl/issues/3727,
|
|
https://github.com/curl/curl/issues/264, for example.
|
|
|
|
In the latter, a Microsoft Edge developer even made the case that the
|
|
common behavior is to ignore issues when a certificate has no recorded
|
|
distribution point for revocation lists, or when the server is offline.
|
|
This is also known as "best effort" strategy and addresses the Fiddler
|
|
issue.
|
|
|
|
Unfortunately, this strategy was not chosen as the default for schannel
|
|
(and is therefore a backend-specific behavior: OpenSSL seems to happily
|
|
ignore the offline servers and missing distribution points).
|
|
|
|
To maintain backward-compatibility, we therefore add a new flag
|
|
(`CURLSSLOPT_REVOKE_BEST_EFFORT`) and a new option
|
|
(`--ssl-revoke-best-effort`) to select the new behavior.
|
|
|
|
Due to the many related issues Git for Windows and GitHub Desktop, the
|
|
plan is to make this behavior the default in these software packages.
|
|
|
|
The test 2070 was added to verify this behavior, adapted from 310.
|
|
|
|
Based-on-work-by: georgeok <giorgos.n.oikonomou@gmail.com>
|
|
Co-authored-by: Markus Olsson <j.markus.olsson@gmail.com>
|
|
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
|
|
|
|
Closes https://github.com/curl/curl/pull/4981
|
|
|
|
- multi: Improve parameter check for curl_multi_remove_handle
|
|
|
|
- If an easy handle is owned by a multi different from the one specified
|
|
then return CURLM_BAD_EASY_HANDLE.
|
|
|
|
Prior to this change I assume user error could cause corruption.
|
|
|
|
Closes https://github.com/curl/curl/pull/5116
|
|
|
|
Viktor Szakats (17 Mar 2020)
|
|
- windows: suppress UI in all CryptAcquireContext() calls
|
|
|
|
Ref: https://docs.microsoft.com/windows/win32/api/wincrypt/nf-wincrypt-cryptacquirecontexta#parameters
|
|
Reviewed-by: Marc Hörsken
|
|
Closes https://github.com/curl/curl/pull/5088
|
|
|
|
Daniel Stenberg (17 Mar 2020)
|
|
- writeout_json: add missing comma to fix the HTTP version
|
|
|
|
Follow-up to 04c03416e68fd635a15
|
|
|
|
- test 970: verify --write-out '%{json}'
|
|
|
|
Makes curl_easy_getinfo() of "variable" numerical content instead return
|
|
the number set in the env variable `CURL_TIME`.
|
|
|
|
Makes curl_version() of "variable" textual content. This guarantees a
|
|
stable version string which can be tested against. Environment variable
|
|
`CURL_VERSION` defines the content.
|
|
|
|
Assisted-by: Mathias Gumz
|
|
|
|
- [Mathias Gumz brought this change]
|
|
|
|
writeout: support to generate JSON output
|
|
|
|
This commit adds support to generate JSON via the writeout feature:
|
|
|
|
-w "%{json}"
|
|
|
|
It leverages the existing infrastructure as much as possible. Thus,
|
|
generating the JSON on STDERR is possible by:
|
|
|
|
-w "%{stderr}%{json}"
|
|
|
|
This implements a variant of
|
|
https://github.com/curl/curl/wiki/JSON#--write-out-json.
|
|
|
|
Closes #4870
|
|
|
|
- CI: stop ignoring 323, it is disabled
|
|
|
|
- DISABLED: disable test 323
|
|
|
|
The test uses SRP to "a server not supporting it" but modern stunnel
|
|
versions will silently accept it and remain happy. The test is therefore
|
|
faulty.
|
|
|
|
I haven't figured out how to make stunnel explicitly reject SRP-using
|
|
connects.
|
|
|
|
Reported-by: Marc Hörsken
|
|
Fixes #5105
|
|
Closes #5113
|
|
|
|
Marc Hoersken (17 Mar 2020)
|
|
- ci/tests: increase timeouts for torture builds on Azure Pipelines
|
|
|
|
For some reason the torture builds have slowed down recently.
|
|
|
|
Reported-by: Daniel Stenberg
|
|
|
|
Daniel Stenberg (16 Mar 2020)
|
|
- cmake: add support for building with wolfSSL
|
|
|
|
My working build cmdline:
|
|
|
|
$ cmake -DCMAKE_PREFIX_PATH=$HOME/build-wolfssl -DCMAKE_USE_WOLFSSL=ON .
|
|
|
|
Assisted-by: Brad King
|
|
Closes #5095
|
|
|
|
- tool_operate: fix add_parallel_transfers when more are in queue
|
|
|
|
Trying to return early from the function if no new transfers were added
|
|
would break the "morep" argument and cause issues. This could lead to
|
|
zero content "transfers" (within quotes since they would never be
|
|
started) when parallel-max was reduced.
|
|
|
|
Reported-by: Gavin Wong
|
|
Analyzed-by: Jay Satiro
|
|
Fixes #4937
|
|
Closes #5112
|
|
|
|
- vtls: free ssl_config leftovers on out-of-memory
|
|
|
|
Torture testing 2034 and 2037 found this.
|
|
|
|
Reported-by: Marc Hörsken
|
|
Fixes #5108
|
|
Closes #5109
|
|
|
|
Marc Hoersken (16 Mar 2020)
|
|
- ci/tests: fix Azure Pipelines not running for pull requests
|
|
|
|
Closes #5111
|
|
|
|
Daniel Stenberg (15 Mar 2020)
|
|
- gskit: update the copyright year range
|
|
|
|
Follow-up from 083603c63a3
|
|
|
|
Marc Hoersken (15 Mar 2020)
|
|
- gskit: use our internal select wrapper for portability
|
|
|
|
Follow up to c52b342
|
|
Closes #5106
|
|
|
|
- tests: fix verification of stdout in test 1452 due to newline
|
|
|
|
Fixes test1452:41:1: error: missing </stdout> tag before </verify>
|
|
|
|
- ci/tests: install impacket for SMB tests on FreeBSD using CirrusCI
|
|
|
|
Also force the package index/cache to be updated before installing.
|
|
|
|
Closes #5103
|
|
|
|
- tests/README: add note about manually installing python-impacket
|
|
|
|
Follow up to 4be2560
|
|
|
|
Daniel Stenberg (15 Mar 2020)
|
|
- transfer: cap retries of "dead connections" to 5
|
|
|
|
When libcurl retries a connection due to it being "seemingly dead" or by
|
|
REFUSED_STREAM, it will now only do it up five times before giving up,
|
|
to avoid never-ending loops.
|
|
|
|
Reported-by: Dima Tisnek
|
|
Bug: https://curl.haxx.se/mail/lib-2020-03/0044.html
|
|
Closes #5074
|
|
|
|
- TODO: TLS-PSK with OpenSSL
|
|
|
|
Closes #5081
|
|
|
|
Marc Hoersken (15 Mar 2020)
|
|
- select: add 'timeout_ms' wrap-around precaution to Curl_select
|
|
|
|
- select: fix 'pending_ms' is assigned a value that is never used
|
|
|
|
Detected by Codacy
|
|
|
|
- select: move duplicate select preparation code into Curl_select
|
|
|
|
Reviewed by Daniel Stenberg
|
|
Reviewed by Marcel Raad
|
|
Closes #5078
|
|
|
|
Daniel Stenberg (15 Mar 2020)
|
|
- connect: happy eyeballs cleanup
|
|
|
|
Make sure each separate index in connn->tempaddr[] is used for a fixed
|
|
family (and only that family) during the connection process.
|
|
|
|
If family one takes a long time and family two fails immediately, the
|
|
previous logic could misbehave and retry the same family two address
|
|
repeatedly.
|
|
|
|
Reported-by: Paul Vixie
|
|
Reported-by: Jay Satiro
|
|
Fixes #5083
|
|
Fixes #4954
|
|
Closes #5089
|
|
|
|
Marc Hoersken (15 Mar 2020)
|
|
- ci/tests: fix and align setting TFLAGS for make test-nonflaky
|
|
|
|
- ci/tests: install test suite dependencies stunnel and impacket
|
|
|
|
- tests: remove python_dependencies for smbserver from our tree
|
|
|
|
Users of the SMB tests will have to install impacket manually.
|
|
|
|
Reasoning: our in-tree version of impacket was quite outdated
|
|
and only compatible with Python 2 which is already end-of-life.
|
|
Upgrading to Python 3 and a compatible impacket version would
|
|
require to import additional Python-only and CPython-extension
|
|
dependencies. This would have hindered portability enormously.
|
|
|
|
Closes #5094
|
|
|
|
Jay Satiro (14 Mar 2020)
|
|
- Makefile.m32: Improve windres parameter compatibility
|
|
|
|
- s/COFF/coff/
|
|
|
|
Some versions of windres do not recognize uppercase COFF as a valid
|
|
way to specify the COFF output format.
|
|
|
|
Reported-by: Steven Penny
|
|
|
|
Fixes https://github.com/curl/curl/issues/5099
|
|
Closes https://github.com/curl/curl/pull/5101
|
|
|
|
- easy: Fix curl_easy_duphandle for builds missing IPv6 that use c-ares
|
|
|
|
- Ignore CURLE_NOT_BUILT_IN errors returned by c-ares functions in
|
|
curl_easy_duphandle.
|
|
|
|
Prior to this change if c-ares was used as the resolver backend and
|
|
either it was too old or libcurl was built without IPv6 support then
|
|
some of our resolver functions could return CURLE_NOT_BUILT_IN to
|
|
curl_easy_duphandle causing it to fail.
|
|
|
|
Caused by c8f086b which shipped in 7.69.1.
|
|
|
|
Reported-by: Karl Chen
|
|
|
|
Fixes https://github.com/curl/curl/issues/5097
|
|
Closes https://github.com/curl/curl/pull/5100
|
|
|
|
Daniel Stenberg (13 Mar 2020)
|
|
- docs: add warnings about FILE: URLs on Windows
|
|
|
|
- --url man page section
|
|
- libcurl-security.3 gets the full text
|
|
- CURLOPT_URL.3
|
|
|
|
Reported-by: Tim Sedlmeyer
|
|
|
|
- server/getpart: make the "XML-parser" stricter
|
|
|
|
When extracting a <section> <part> and there's no </part> before
|
|
</section>, this now outputs an error and returns a wrong string to
|
|
make users spot the mistake.
|
|
|
|
Ref: #5070
|
|
Closes #5071
|
|
|
|
Marc Hoersken (13 Mar 2020)
|
|
- impacket: some more Python 3 code compatibility updates
|
|
|
|
This makes smbserver load on Python 3, but still not work completely.
|
|
|
|
- smbserver: pin Python version to 2 since we are not yet 3 compatible
|
|
|
|
Even though the existing code can be fixed to run on Python 3, the
|
|
tests will fail due to the Unicode transition the protocol is invalid.
|
|
|
|
Follow up to ee63837
|
|
Closes #5085
|
|
|
|
Daniel Stenberg (12 Mar 2020)
|
|
- [Viktor Szakats brought this change]
|
|
|
|
cleanup: fix some text/comment typos
|
|
|
|
Closes #5087
|
|
|
|
Marc Hoersken (12 Mar 2020)
|
|
- smbserver: fix Python version specific ConfigParser import
|
|
|
|
Follow up to ee63837 and 8c7c4a6
|
|
Fixes #5077
|
|
|
|
Daniel Stenberg (11 Mar 2020)
|
|
- RELEASE-NOTES: synced
|
|
|
|
bumped to 7.69.2
|
|
|
|
Dan Fandrich (11 Mar 2020)
|
|
- tests/data: Fix some XML formatting issues in test cases
|
|
|
|
This allows these test files to pass xmllint.
|
|
|
|
Daniel Stenberg (11 Mar 2020)
|
|
- [Muhammad Herdiansyah brought this change]
|
|
|
|
Makefile: run the cd commands in a subshell
|
|
|
|
In bmake, if the directory is changed (with cd or anything else), bmake
|
|
won't return to the "root directory" on the next command (in the same
|
|
Makefile rule). This commit runs the cd command in a subshell so it
|
|
would work in bmake.
|
|
|
|
Closes #5073
|
|
|
|
- configure: convert -I to -isystem as a last step
|
|
|
|
As all the -I uses in CFLAGS at that point are for system headers and
|
|
third party libraries this helps us remove/ignore warnings on those!
|
|
|
|
Closes #5060
|
|
|
|
- configure: fix -pedantic-errors for GCC 5 and later
|
|
|
|
If --enable-werror is used.
|
|
|
|
Follow-up to d5c0351055d5709da which added it too early in the configure
|
|
script before $compiler_num was set correctly and thus this option was
|
|
never used.
|
|
|
|
Reported-by: Stepan Efremov
|
|
Fixes #5067
|
|
Closes #5068
|
|
|
|
- configure: document 'compiler_num' for gcc
|
|
|
|
The CURL_CHECK_COMPILER_GNU_C function sets the number to MAJOR*100 +
|
|
MINOR and ignores the patch version, and since gcc version 7 it only
|
|
sets it to MAJOR*100.
|
|
|
|
Reported-by: Stepan Efremov
|
|
Ref: #5067
|
|
Closes #5069
|
|
|
|
Version 7.69.1 (11 Mar 2020)
|
|
|
|
Daniel Stenberg (11 Mar 2020)
|
|
- RELEASE-NOTES: 7.69.1
|
|
|
|
- THANKS: from the 7.69.1 release
|
|
|
|
- [Marc Hoersken brought this change]
|
|
|
|
test1129: fix invalid case of closing XML-tag and Content-Length
|
|
|
|
Fixes #5070
|
|
Closes #5072
|
|
|
|
Marc Hoersken (10 Mar 2020)
|
|
- tests/data: fix static ip instead of dynamic value being used
|
|
|
|
Follow up to 94ced8e
|
|
|
|
- tests/data: fix static ip:port instead of dynamic values being used
|
|
|
|
Closes #5065
|
|
|
|
- tests/server: fix missing use of exe_ext helper function
|
|
|
|
Follow up to 9819984 and 3dce984
|
|
Reviewed-By: Daniel Stenberg
|
|
Closes #5064
|
|
|
|
- runtests: log minimal and maximal used port numbers
|
|
|
|
Daniel Stenberg (9 Mar 2020)
|
|
- [James Fuller brought this change]
|
|
|
|
sftp: fix segfault regression introduced by #4747
|
|
|
|
This fix adds a defensive check for the case where the char *name in
|
|
struct libssh2_knownhost is NULL
|
|
|
|
Fixes #5041
|
|
Closes #5062
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
- socks4: fix host resolve regression
|
|
|
|
1. The socks4 state machine was broken in the host resolving phase
|
|
|
|
2. The code now insists on IPv4-only when using SOCKS4 as the protocol
|
|
only supports that.
|
|
|
|
Regression from #4907 and 4a4b63d, shipped in 7.69.0
|
|
|
|
Reported-by: amishmm on github
|
|
Bug: https://github.com/curl/curl/issues/5053#issuecomment-596191594
|
|
Closes #5061
|
|
|
|
- [Patrick Monnerat brought this change]
|
|
|
|
silly web server: silent a compilation warning
|
|
|
|
Recent gcc warns when byte count of strncpy() equals the destination
|
|
buffer size. Since the destination buffer is previously cleared and
|
|
the source string is always shorter, reducing the byte count by one
|
|
silents the warning without affecting the result.
|
|
|
|
Closes #5059
|
|
|
|
- [Patrick Monnerat brought this change]
|
|
|
|
cookie: get_top_domain() sets zero length for null domains
|
|
|
|
This silents a compilation warning with gcc -O3.
|
|
|
|
- [Patrick Monnerat brought this change]
|
|
|
|
test 1560: avoid valgrind false positives
|
|
|
|
When using maximum code optimization level (-O3), valgrind wrongly
|
|
detects uses of uninitialized values in strcmp().
|
|
|
|
Preset buffers with all zeroes to avoid that.
|
|
|
|
Steve Holme (8 Mar 2020)
|
|
- sha256: Added WinCrypt implementation
|
|
|
|
Closed #5030
|
|
|
|
- sha256: Added SecureTransport implementation
|
|
|
|
Daniel Stenberg (7 Mar 2020)
|
|
- lib1564: reduce number of mid-wait wakeup calls
|
|
|
|
This test does A LOT of *wakeup() calls and then calls curl_multi_poll()
|
|
twice. The first *poll() is then expected to return early and the second
|
|
not - as the first is supposed to drain the socketpair pipe.
|
|
|
|
It turns out however that when given "excessive" amounts of writes to
|
|
the pipe, some operating systems (the Solaris based are known) will
|
|
return EAGAIN before the pipe is drained, which in our test case causes
|
|
the second *poll() call to also abort early.
|
|
|
|
This change attempts to avoid the OS-specific behaviors in the test by
|
|
reducing the amount of wakeup calls from 1234567 to 10.
|
|
|
|
Reported-by: Andy Fiddaman
|
|
Fixes #5037
|
|
Closes #5058
|
|
|
|
- [Patrick Monnerat brought this change]
|
|
|
|
mime: fix the binary encoder to handle large data properly
|
|
|
|
New test 666 checks this is effective.
|
|
As upload buffer size is significant in this kind of tests, shorten it
|
|
in similar test 652.
|
|
|
|
Fixes #4860
|
|
Closes #4833
|
|
Reported-by: RuurdBeerstra on github
|
|
|
|
- [Patrick Monnerat brought this change]
|
|
|
|
mime: do not perform more than one read in a row
|
|
|
|
Input buffer filling may delay the data sending if data reads are slow.
|
|
To overcome this problem, file and callback data reads do not accumulate
|
|
in buffer anymore. All other data (memory data and mime framing) are
|
|
considered as fast and still concatenated in buffer.
|
|
As this may highly impact performance in terms of data overhead, an early
|
|
end of part data check is added to spare a read call.
|
|
When encoding a part's data, an encoder may require more bytes than made
|
|
available by a single read. In this case, the above rule does not apply
|
|
and reads are performed until the encoder is able to deliver some data.
|
|
|
|
Tests 643, 644, 645, 650 and 654 have been adapted to the output data
|
|
changes, with test data size reduced to avoid the boredom of long lists of
|
|
1-byte chunks in verification data.
|
|
New test 667 checks mimepost using single-byte read callback with encoder.
|
|
New test 668 checks the end of part data early detection.
|
|
|
|
Fixes #4826
|
|
Reported-by: MrdUkk on github
|
|
|
|
- [Patrick Monnerat brought this change]
|
|
|
|
mime: latch last read callback status.
|
|
|
|
In case a read callback returns a status (pause, abort, eof,
|
|
error) instead of a byte count, drain the bytes read so far but
|
|
remember this status for further processing.
|
|
Takes care of not losing data when pausing, and properly resume a
|
|
paused mime structure when requested.
|
|
New tests 670-673 check unpausing cases, with easy or multi
|
|
interface and mime or form api.
|
|
|
|
Fixes #4813
|
|
Reported-by: MrdUkk on github
|
|
|
|
Marc Hoersken (7 Mar 2020)
|
|
- runtests: fix missing use of exe_ext helper function
|
|
|
|
Daniel Stenberg (7 Mar 2020)
|
|
- [Ernst Sjöstrand brought this change]
|
|
|
|
ares: store dns parameters for duphandle
|
|
|
|
With c-ares the dns parameters lives in ares_channel. Store them in the
|
|
curl handle and set them again in easy_duphandle.
|
|
|
|
Regression introduced in #3228 (6765e6d), shipped in curl 7.63.0.
|
|
|
|
Fixes #4893
|
|
Closes #5020
|
|
Signed-off-by: Ernst Sjöstrand <ernst.sjostrand@verisure.com>
|
|
|
|
- version: make curl_version* thread-safe without using global context
|
|
|
|
Closes #5010
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
Marc Hoersken (7 Mar 2020)
|
|
- tests: use native Sleep function as fallback on Windows
|
|
|
|
Reviewed-By: Daniel Stenberg
|
|
Closes #5054
|
|
|
|
- perl: align order and completeness of Windows OS checks
|
|
|
|
Daniel Stenberg (7 Mar 2020)
|
|
- tool_cb_see: set correct copyright year range
|
|
|
|
Follow-up to a39e5bfb9
|
|
|
|
Marc Hoersken (7 Mar 2020)
|
|
- seek: fix fallback for missing ftruncate on Windows
|
|
|
|
This fixes test 198 on versions of MinGW-w64 without ftruncate
|
|
|
|
Reviewed-By: Daniel Stenberg
|
|
Reviewed-By: Marcel Raad
|
|
Closes #5055
|
|
|
|
- config-win32: Windows does not have ftruncate
|
|
|
|
Daniel Stenberg (7 Mar 2020)
|
|
- pause: force a connection (re-)check after unpausing
|
|
|
|
There might be data available that was already read off the socket, for
|
|
example in the TLS layer.
|
|
|
|
Reported-by: Anders Berg
|
|
Fixes #4966
|
|
Closes #5049
|
|
|
|
- socks5: switch state properly when the resolve is done
|
|
|
|
Regression from 4a4b63d (and #4907)
|
|
Reported-by: vitaha85 on github
|
|
Fixes #5053
|
|
Closes #5056
|
|
|
|
Jay Satiro (7 Mar 2020)
|
|
- libssh: Fix matching user-specified MD5 hex key
|
|
|
|
Prior to this change a match would never be successful because it
|
|
was mistakenly coded to compare binary data from libssh to a
|
|
user-specified hex string (ie CURLOPT_SSH_HOST_PUBLIC_KEY_MD5).
|
|
|
|
Reported-by: fds242@users.noreply.github.com
|
|
|
|
Fixes https://github.com/curl/curl/issues/4971
|
|
Closes https://github.com/curl/curl/pull/4974
|
|
|
|
Daniel Stenberg (6 Mar 2020)
|
|
- pause: bail out on bad input
|
|
|
|
A NULL easy handle or an easy handle without an associated connection
|
|
cannot be paused or unpaused.
|
|
|
|
Closes #5050
|
|
|
|
Steve Holme (6 Mar 2020)
|
|
- unit1612: fixed the inclusion and compilation of the HMAC unit test
|
|
|
|
Follow up to 3f74e5e6 to fix:
|
|
|
|
- A typo in Makefile.inc where unit1611 was used instead
|
|
- Some compilation issues in unit1612.c
|
|
|
|
Closes #5024
|
|
|
|
Daniel Stenberg (6 Mar 2020)
|
|
- pause: return early for calls that don't change pause state
|
|
|
|
Reviewed-by: Patrick Monnerat
|
|
Ref: #4833
|
|
Closes #5026
|
|
|
|
Jay Satiro (6 Mar 2020)
|
|
- curl_share_setopt.3: Note sharing cookies doesn't enable the engine
|
|
|
|
Follow-up to d0a7ee3 which fixed a bug in 7.66.0 that caused
|
|
CURL_LOCK_DATA_COOKIE to enable the easy handle's cookie engine.
|
|
|
|
Bug: https://curl.haxx.se/mail/lib-2020-03/0019.html
|
|
Reported-by: Felipe Gasper
|
|
|
|
Closes https://github.com/curl/curl/pull/5048
|
|
|
|
- multi: skip EINTR check on wakeup socket if it was closed
|
|
|
|
- Don't check errno on wakeup socket if sread returned 0 since sread
|
|
doesn't set errno in that case.
|
|
|
|
This is a follow-up to cf7760a from several days ago which fixed
|
|
Curl_multi_wait to stop busy looping sread on the non-blocking wakeup
|
|
socket if it was closed (ie sread returns 0). Due to a logic error it
|
|
was still possible to busy loop in that case if errno == EINTR.
|
|
|
|
Closes https://github.com/curl/curl/pull/5047
|
|
|
|
Daniel Stenberg (6 Mar 2020)
|
|
- transfer: set correct copyright year range
|
|
|
|
- urldata: remove the 'stream_was_rewound' connectdata struct member
|
|
|
|
... as it is never set anywhere.
|
|
|
|
Follow-up to 2f44e94ef
|
|
Closes #5046
|
|
|
|
- Revert "pause: force-drain the transfer on unpause"
|
|
|
|
This reverts commit fa0216b294af4c7113a9040ca65eefc7fc18ac1c (from #5000)
|
|
|
|
Clearly that didn't solve the problem correctly.
|
|
|
|
Reported-by: Christopher Reid
|
|
Reopens #4966
|
|
Fixes #5044
|
|
|
|
- RELEASE-NOTES: synced
|
|
|
|
and bumped curlver.h
|
|
|
|
- MANUAL: update a dict-using command line
|
|
|
|
The 'web1913' database is now invalid, use 'gcide' instead.
|
|
|
|
- KNOWN_BUGS: configure --with-gssapi with Heimdal is ignored on macOS
|
|
|
|
Closes #3841
|
|
|
|
- polarssl: remove more references and mentions
|
|
|
|
Assisted-by: Jay Satiro
|
|
Follow-up to 6357a19ff29dac04
|
|
Closes #5036
|
|
|
|
Marc Hoersken (4 Mar 2020)
|
|
- tests: wrap ignored test failures in braces
|
|
|
|
- tests: align some Windows sleep defines with each other
|
|
|
|
- tests: try to make sleeping portable by avoiding select
|
|
|
|
select does not support just waiting on Windows:
|
|
https://perldoc.perl.org/perlport.html#select
|
|
|
|
Reviewed-By: Daniel Stenberg
|
|
Closes #5035
|
|
|
|
Daniel Stenberg (4 Mar 2020)
|
|
- runtests.1: rephrase how to specify what tests to run
|
|
|
|
Also mention the new tilde-prefixed way to ignore test results.
|
|
|
|
Reviewed-By: Marc Hoersken
|
|
Closes #5033
|
|
|
|
- cirrus-ci: disable the FreeBSD 13 builds
|
|
|
|
FreeBSD 13.0 is apparently close to a year away from a stable release
|
|
and has proven to cause intermittent builds failures recently.
|
|
|
|
Assisted-by: Dan Fandrich
|
|
Assisted-by: Fedor Korotkov
|
|
Fixes #5028
|
|
Closes #5029
|
|
|
|
Version 7.69.0 (4 Mar 2020)
|
|
|
|
Daniel Stenberg (4 Mar 2020)
|
|
- RELEASE-NOTES: 7.69.0
|
|
|
|
- THANKS: from 7.69.0
|
|
|
|
Now sorted case insensitive
|
|
|
|
Marc Hoersken (3 Mar 2020)
|
|
- ci/tests: fix escaping of testnames and disable proxy for CI APIs
|
|
|
|
Follow up to ada581f and c0d8b96
|
|
Closes #5031
|
|
|
|
Jay Satiro (3 Mar 2020)
|
|
- cmake: Show HTTPS-proxy in the features output
|
|
|
|
- Show HTTPS-proxy in the features output for those backends that
|
|
support it: OpenSSL, GnuTLS and NSS.
|
|
|
|
Prior to this change HTTPS-proxy was missing from the cmake features
|
|
output even if curl was built with it. Only cmake output was affected.
|
|
Both the library and tool correctly reported the feature.
|
|
|
|
Bug: https://curl.haxx.se/mail/lib-2020-03/0008.html
|
|
Reported-by: David Lopes
|
|
|
|
Closes https://github.com/curl/curl/pull/5025
|
|
|
|
Marc Hoersken (3 Mar 2020)
|
|
- ci/tests: Make it possible to still run but ignore failing tests
|
|
|
|
This enables the development of a solution for the failing tests by
|
|
running them on CI while ignoring their result for the overall status.
|
|
|
|
Closes #4994
|
|
|
|
- README.md: add Azure DevOps Pipelines build status badge
|
|
|
|
- ci/tests: Move CI test result creation above environment setup
|
|
|
|
This avoids using our test servers as proxy to the AppVeyor API.
|
|
|
|
Closes #5022
|
|
|
|
- ci/tests: Send test results to AppVeyor for status overview
|
|
|
|
Closes #5021
|
|
|
|
Daniel Stenberg (3 Mar 2020)
|
|
- Revert "sha256: Added SecureTransport implementation"
|
|
|
|
This reverts commit 4feb38deed33fed14ff7c370a6a9153c661dbb9c (from #4956)
|
|
|
|
That commit broke test 1610 on macos builds without TLS.
|
|
|
|
Closes #5027
|
|
|
|
- dist: include tests/azure.pm in the tarball
|
|
|
|
Bug: https://github.com/curl/curl/commit/ada581f2cc32f48c1629b729707ac19208435b27#commitcomment-37601589
|
|
Reported-by: Marcel Raad
|
|
|
|
Steve Holme (3 Mar 2020)
|
|
- configure.ac: Disable metalink if mbedTLS is specified
|
|
|
|
Follow up to cdcc9df1 and #5006. Even though I mentioned mbedTLS as
|
|
being one of the backends that metalink needs to be disabled for, I
|
|
seem to have included it in the list of allowed SSL/TLS backends in
|
|
comnfigure.ac :(
|
|
|
|
Closes #5013
|
|
|
|
- sha256: Tidy up following recent changes
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Closes #4956
|
|
|
|
- sha256: Added WinCrypt implementation
|
|
|
|
- sha256: Added SecureTransport implementation
|
|
|
|
- sha256: Added mbedtls implementation
|
|
|
|
- sha256: Added GNU TLS gcrypt implementation
|
|
|
|
- sha256: Added GNU TLS Nettle implementation
|
|
|
|
Jay Satiro (2 Mar 2020)
|
|
- curl_escape.3: Add a link to curl_free
|
|
|
|
Ref: https://github.com/curl/curl/pull/5016#issuecomment-593628582
|
|
|
|
- curl_getenv.3: Fix the memory handling description
|
|
|
|
- Tell the user to call curl_free() to free the pointer returned by
|
|
curl_getenv().
|
|
|
|
Prior to this change the user was directed to call free(), but that
|
|
would not work in cases where the library and application use separate C
|
|
runtimes and therefore have separate heap memory management.
|
|
|
|
Closes https://github.com/curl/curl/pull/5016
|
|
|
|
Daniel Stenberg (2 Mar 2020)
|
|
- [Nick Zitzmann brought this change]
|
|
|
|
md4: use init/update/final functions in Secure Transport
|
|
|
|
We can use CC_MD4_Init/Update/Final without having to allocate memory
|
|
directly.
|
|
|
|
Closes #4979
|
|
|
|
Marc Hoersken (2 Mar 2020)
|
|
- ci/tests: some MacOS builds randomly take longer than 20min
|
|
|
|
Daniel Stenberg (2 Mar 2020)
|
|
- multi_wait: stop loop when sread() returns zero
|
|
|
|
It's unclear why it would ever return zero here, but this change fixes
|
|
Robert's problem and it shouldn't loop forever...
|
|
|
|
Reported-by: Robert Dunaj
|
|
Bug: https://curl.haxx.se/mail/archive-2020-02/0011.html
|
|
Closes #5019
|
|
|
|
- http: mark POSTs with no body as "upload done" from the start
|
|
|
|
As we have logic that checks if we get a >= 400 reponse code back before
|
|
the upload is done, which then got confused since it wasn't "done" but
|
|
yet there was no data to send!
|
|
|
|
Reported-by: IvanoG on github
|
|
Fixes #4996
|
|
Closes #5002
|
|
|
|
- tests: disable 962, 963 and 964 on Windows
|
|
|
|
These tests are also doing UTF-8 SMTP.
|
|
|
|
Follow-up to df207d2dd93b9e73
|
|
|
|
Marc Hoersken (2 Mar 2020)
|
|
- ci/tests: fine-tune Azure Pipeline timeouts with a small puffer
|
|
|
|
Daniel Stenberg (2 Mar 2020)
|
|
- configure: bump the AC_COPYRIGHT year range
|
|
|
|
- [Steve Holme brought this change]
|
|
|
|
tests: disable SMTP UTF-8 tests on Windows
|
|
|
|
Fixes #4988
|
|
Closes #4992
|
|
|
|
- formdata/mime: copyright year range update
|
|
|
|
Due to the merge/revert cycle
|
|
|
|
- Revert "mime: latch last read callback status."
|
|
|
|
This reverts commit 87869e38d7afdec3ef1bb4965711458b088e254f.
|
|
|
|
Fixes #5014
|
|
Closes #5015
|
|
Reopens #4833
|
|
|
|
- Revert "mime: do not perform more than one read in a row"
|
|
|
|
This reverts commit ed0f357f7d25566110d4302f33759f4ffb5a6f83.
|
|
|
|
- Revert "mime: fix the binary encoder to handle large data properly"
|
|
|
|
This reverts commit b2caaa0681f329eed317ffb6ae6927f4a539f0c1.
|
|
|
|
- altsvc: both h3 backends now speak h3-27
|
|
|
|
... also updated the HTTP3 build description for ngtcp2 accordingly.
|
|
|
|
- [Patrick Monnerat brought this change]
|
|
|
|
mime: fix the binary encoder to handle large data properly
|
|
|
|
New test 666 checks this is effective.
|
|
As upload buffer size is significant in this kind of tests, shorten it
|
|
in similar test 652.
|
|
|
|
Fixes #4860
|
|
Reported-by: RuurdBeerstra on github
|
|
|
|
- [Patrick Monnerat brought this change]
|
|
|
|
mime: do not perform more than one read in a row
|
|
|
|
Input buffer filling may delay the data sending if data reads are slow.
|
|
To overcome this problem, file and callback data reads do not accumulate
|
|
in buffer anymore. All other data (memory data and mime framing) are
|
|
considered as fast and still concatenated in buffer.
|
|
As this may highly impact performance in terms of data overhead, an early
|
|
end of part data check is added to spare a read call.
|
|
When encoding a part's data, an encoder may require more bytes than made
|
|
available by a single read. In this case, the above rule does not apply
|
|
and reads are performed until the encoder is able to deliver some data.
|
|
|
|
Tests 643, 644, 645, 650 and 654 have been adapted to the output data
|
|
changes, with test data size reduced to avoid the boredom of long lists of
|
|
1-byte chunks in verification data.
|
|
New test 664 checks mimepost using single-byte read callback with encoder.
|
|
New test 665 checks the end of part data early detection.
|
|
|
|
Fixes #4826
|
|
Reported-by: MrdUkk on github
|
|
|
|
- [Patrick Monnerat brought this change]
|
|
|
|
mime: latch last read callback status.
|
|
|
|
In case a read callback returns a status (pause, abort, eof,
|
|
error) instead of a byte count, drain the bytes read so far but
|
|
remember this status for further processing.
|
|
Takes care of not losing data when pausing, and properly resume a
|
|
paused mime structure when requested.
|
|
New tests 670-673 check unpausing cases, with easy or multi
|
|
interface and mime or form api.
|
|
|
|
Fixes #4813
|
|
Reported-by: MrdUkk on github
|
|
Closes #4833
|
|
|
|
Steve Holme (1 Mar 2020)
|
|
- unit1651: Fixed conversion compilation warning
|
|
|
|
371:17: warning: conversion to 'unsigned char' from 'int' may alter its
|
|
value [-Wconversion]
|
|
|
|
Closes #5008
|
|
|
|
- configure.ac: Disable metalink support if an incompatible SSL/TLS specified
|
|
|
|
tool_metalink only supports cryptography from OpenSSL, GnuTLS, NSS,
|
|
The Win32 Crypto library and Apple's Common Crypto library.
|
|
|
|
If an TLS backend such as mbedTLS or WolfSSL is specified then the
|
|
following error is given during compilation along, with a load of
|
|
unresolved extern errors:
|
|
|
|
Can't compile METALINK support without a crypto library.
|
|
|
|
Reviewed-by: Daniel Stenberg
|
|
Closes #5006
|
|
|
|
Marc Hoersken (1 Mar 2020)
|
|
- ci/tests: Update Azure DevOps pipeline job display names
|
|
|
|
Make the configure step more descriptive and align others.
|
|
|
|
- ci/tests: Fix typo in previous commit 597cf2
|
|
|
|
- ci/tests: Make sure that the AZURE_ACCESS_TOKEN is available
|
|
|
|
For security reasons the access token is not available to PR builds.
|
|
Therefore we should not try to use the DevOps API with an empty token.
|