diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-04-08 17:59:41 +0300 |
---|---|---|
committer | shadchin <shadchin@yandex-team.ru> | 2022-04-08 17:59:41 +0300 |
commit | 3ddbfb08ff9f73d895488293e6a83b4ba68b3c5a (patch) | |
tree | e9250668656f42d41807809160f7919ef3630ee9 /contrib/libs/curl/CHANGES | |
parent | 61f0d7ab77dad7c33fb4d2570d36e4e76f672bbf (diff) | |
download | ydb-3ddbfb08ff9f73d895488293e6a83b4ba68b3c5a.tar.gz |
CONTRIB-2513 Update contrib/libs/curl to 7.75.0
ref:7c8de2c266b810de3b31604360c6ad878fa166ab
Diffstat (limited to 'contrib/libs/curl/CHANGES')
-rw-r--r-- | contrib/libs/curl/CHANGES | 3705 |
1 files changed, 1856 insertions, 1849 deletions
diff --git a/contrib/libs/curl/CHANGES b/contrib/libs/curl/CHANGES index 56859b4993..f3439fd046 100644 --- a/contrib/libs/curl/CHANGES +++ b/contrib/libs/curl/CHANGES @@ -6,6 +6,1862 @@ Changelog +Version 7.75.0 (3 Feb 2021) + +Daniel Stenberg (3 Feb 2021) +- RELEASE-NOTES: synced + +- THANKS: added contributors from 7.75.0 + +- copyright: fix year ranges in need of updates + +- TODO: remove items for next SONAME bump etc + + We want to avoid that completely, so we don't plan for things after such + an event. + +- [Jay Satiro brought this change] + + ngtcp2: Fix build error due to change in ngtcp2_settings + + - Separate ngtcp2_transport_params. + + ngtcp2/ngtcp2@05d7adc made ngtcp2_transport_params separate from + ngtcp2_settings. + + ngtcp2 master is required to build curl with http3 support. + + Closes #6554 + +- vtls: remove md5sum + + As it is not used anymore. + + Reported-by: Jacob Hoffman-Andrews + Bug: https://curl.se/mail/lib-2021-02/0000.html + + Closes #6557 + +- [Alessandro Ghedini brought this change] + + quiche: don't use primary_ip / primary_port + + Closes #6555 + +Alessandro Ghedini (1 Feb 2021) +- travis: enable quiche's FFI feature + +Daniel Stenberg (30 Jan 2021) +- [Dmitry Wagin brought this change] + + http: improve AWS HTTP v4 Signature auth + + - Add support services without region and service prefixes in + the URL endpoint (ex. Min.IO, GCP, Yandex Cloud, Mail.Ru Cloud Solutions, etc) + by providing region and service parameters via aws-sigv4 option. + - Add [:region[:service]] suffix to aws-sigv4 option; + - Fix memory allocation errors. + - Refactor memory management. + - Use Curl_http_method instead() STRING_CUSTOMREQUEST. + - Refactor canonical headers generating. + - Remove repeated sha256_to_hex() usage. + - Add some docs fixes. + - Add some codestyle fixes. + - Add overloaded strndup() for debug - curl_dbg_strndup(). + - Update tests. + + Closes #6524 + +- hyper: fix CONNECT to set 'data' as userdata + + Follow-up to 14e075d1a7fd + +- [Layla brought this change] + + connect: fix compile errors in `Curl_conninfo_local` + + .. for the `#else` (`!HAVE_GETSOCKNAME`) case + + Fixes https://github.com/curl/curl/issues/6548 + Closes #6549 + + Signed-off-by: Layla <layla@insightfulvr.com> + +- [Michał Antoniak brought this change] + + transfer: fix GCC 10 warning with flag '-Wint-in-bool-context' + + ... and return the error code from the Curl_mime_rewind call. + + Closes #6537 + +- [Michał Antoniak brought this change] + + avoid warning: enum constant in boolean context + +- copyright: fix missing year (range) updates + +- RELEASE-NOTES: synced + +- openssl: lowercase the hostname before using it for SNI + + ... because it turns out several servers out there don't actually behave + correctly otherwise in spite of the fact that the SNI field is + specifically said to be case insensitive in RFC 6066 section 3. + + Reported-by: David Earl + Fixes #6540 + Closes #6543 + +- KNOWN_BUGS: cmake: ExternalProject_Add does not set CURL_CA_PATH + + Closes #6313 + +- KNOWN_BUGS: Multi perform hangs waiting for threaded resolver + + Closes #4852 + +- KNOWN_BUGS: "pulseUI VPN client" is known to be buggy + + First entry in the new section "applications" for known problems in + libcurl using applications. + + Closes #6306 + +- tool_writeout: make %{errormsg} blank for no errors + + Closes #6539 + +Jay Satiro (27 Jan 2021) +- [Gisle Vanem brought this change] + + build: fix djgpp builds + + - Update build instructions in packages/DOS/README + + - Extend 'VPATH' with 'vquic' and 'vssh'. + + - Allow 'Makefile.dist' to build both 'lib' and 'src'. + + - Allow using the Windows hosted djgpp cross compiler to build for MSDOS + under Windows. + + - 'USE_SSL' -> 'USE_OPENSSL' + + - Added a 'link_EXE' macro. Etc, etc. + + - Linking 'curl.exe' needs '$(CURLX_CFILES)' too. + + - Do not pick-up '../lib/djgpp/*.o' files. Recompile locally. + + - Generate a gzipped 'tool_hugehelp.c' if 'USE_ZLIB=1'. + + - Remove 'djgpp-clean' + + - Adapt to new C-ares directory structure + + - Use conditional variable assignments + + Clarify the 'conditional variable assignment' in 'common.dj'. + + Closes https://github.com/curl/curl/pull/6382 + +Daniel Stenberg (27 Jan 2021) +- [Ikko Ashimine brought this change] + + hyper: fix typo in c-hyper.c + + settting -> setting + + Closes #6538 + +- libssh2: fix CURL_LIBSSH2_DEBUG-enabled build + + Follow-up to 2dcc940959772a + + Reported-by: Gisle Vanem + Bug: https://github.com/curl/curl/commit/2dcc940959772a652f6813fb6bd3092095a4877b#commitcomment-46420088 + +Jay Satiro (27 Jan 2021) +- asyn-thread: fix build for when getaddrinfo missing + + This is a follow-up to 8315343 which several days ago moved the resolver + pointer into the async struct but did not update the code that uses it + when getaddrinfo is not present. + + Closes https://github.com/curl/curl/pull/6536 + +Daniel Stenberg (27 Jan 2021) +- urldata: move 'ints' to the end of 'connectdata' + + To optimize storage slightly. + + Closes #6534 + +- urldata: store ip version in a single byte + + Closes #6534 + +- urldata: remove duplicate 'upkeep_interval_ms' from connectdata + + ... and rely only on the value already set in Curl_easy. + + Closes #6534 + +- urldata: remove 'local_ip' from the connectdata struct + + As the info is already stored in the transfer handle anyway, there's no + need to carry around a duplicate buffer for the life-time of the handle. + + Closes #6534 + +- urldata: remove duplicate port number storage + + ... and use 'int' for ports. We don't use 'unsigned short' since -1 is + still often used internally to signify "unknown value" and 0 - 65535 are + all valid port numbers. + + Closes #6534 + +- urldata: remove the duplicate 'ip_addr_str' field + + ... as the numerical IP address is already stored and kept in 'primary_ip'. + + Closes #6534 + +- select: convert Curl_select() to private static function + + The old function should not be used anywhere anymore (the only remaining + gskit use has to be fixed to instead use Curl_poll or none at all). + + The static function version is now called our_select() and is only built + if necessary. + + Closes #6531 + +- Curl_chunker: shrink the struct + + ... by removing a field, converting the hex index into a byte and + rearranging the order. Cuts it down from 48 bytes to 32 on x86_64. + + Closes #6527 + +- curl: include the file name in --xattr/--remote-time error msgs + +- curl: s/config->global/global/ in single_transfer() + +- curl: move fprintf outputs to warnf + + For setting and getting time of the download. To make the outputs + respect --silent etc. + + Reported-by: Viktor Szakats + Fixes #6533 + Closes #6535 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: Fix http3 upload stall + + Closes #6521 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: Fix stack buffer overflow + + Closes #6521 + +- warnless.h: remove the prototype for curlx_ultosi + + Follow-up to 217552503ff3 + +- warnless: remove curlx_ultosi + + ... not used anywhere + + Closes #6530 + +- [Patrick Monnerat brought this change] + + lib: remove conn->data uses + + Closes #6515 + +- pingpong: remove the 'conn' struct member + + ... as it's superfluous now when Curl_easy is passed in and we can + derive the connection from that instead and avoid the duplicate copy. + + Closes #6525 + +- hostip/proxy: remove conn->data use + + Closes #6513 + +- url: reduce conn->data references + + ... there are a few left but let's keep them to last + + Closes #6512 + +- scripts/singleuse: add curl_easy_option* + +Jay Satiro (25 Jan 2021) +- test410: fix for windows + + - Pass the very long request header via file instead of command line. + + Prior to this change the 49k very long request header string was passed + via command line and on Windows that is too long so it was truncated and + the test would fail (specifically msys CI). + + Closes https://github.com/curl/curl/pull/6516 + +Daniel Stenberg (25 Jan 2021) +- libssh2: move data from connection object to transfer object + + Readdir data, filenames and attributes are strictly related to the + transfer and not the connection. This also reduces the total size of the + fixed connectdata struct. + + Closes #6519 + +- RELEASE-NOTES: synced + +- [Patrick Monnerat brought this change] + + lib: remove conn->data uses + + Closes #6499 + +- hyper: remove the conn->data references + + Closes #6508 + +- travis: build ngtcp2 --with-gnutls + + ... since they disable it by default since a few days back. + + Closes #6506 + Fixes #6493 + +- hostip: remove conn->data from resolver functions + + This also moves the 'async' struct from the connectdata struct into the + Curl_easy struct, which seems like a better home for it. + + Closes #6497 + +Jay Satiro (22 Jan 2021) +- strerror: skip errnum >= 0 assertion on windows + + On Windows an error number may be greater than INT_MAX and negative once + cast to int. + + The assertion is checked only in debug builds. + + Closes https://github.com/curl/curl/pull/6504 + +Daniel Stenberg (21 Jan 2021) +- doh: make Curl_doh_is_resolved survive a NULL pointer + + ... if Curl_doh() returned a NULL, this function gets called anyway as + in a asynch procedure. Then the doh struct pointer is NULL and signifies + an OOM situation. + + Follow-up to 6246a1d8c6776 + +- wolfssh: remove conn->data references + + ... and repair recent build breakage + + Closes #6507 + +- http: empty reply connection are not left intact + + ... so mark the connection as closed in this condition to prevent that + verbose message to wrongly appear. + + Reported-by: Matt Holt + Bug: https://twitter.com/mholt6/status/1352130240265375744 + Closes #6503 + +- chunk/encoding: remove conn->data references + + ... by anchoring more functions on Curl_easy instead of connectdata + + Closes #6498 + +Jay Satiro (20 Jan 2021) +- [Erik Olsson brought this change] + + lib: save a bit of space with some structure packing + + - Reorder some internal struct members so that less padding is used. + + This is an attempt at saving a bit of space by packing some structs + (using pahole to find the holes) where it might make sense to do + so without losing readability. + + I.e., I tried to avoid separating fields that seem grouped + together (like the cwd... fields in struct ftp_conn for instance). + Also abstained from touching fields behind conditional macros as + that quickly can get complicated. + + Closes https://github.com/curl/curl/pull/6483 + +Daniel Stenberg (20 Jan 2021) +- INSTALL.md: fix typo + + Found-by: Marcel Raad + +- [Fabian Keil brought this change] + + http: get CURLOPT_REQUEST_TARGET working with a HTTP proxy + + Added test 1613 to verify. + + Closes #6490 + +- Merge branch 'bagder/curl_range-data-conn' + +- ftp: remove conn->data leftover + +- curl_range: remove conn->data + + Closes #6496 + +- INSTALL: now at 85 operating systems + +- quiche: fix unused parameter ‘conn’ + + Follow-up to 2bdec0b3 + +- transfer: fix ‘conn’ undeclared mistake for iconv build + + Follow-up to 219d9f8620d + +- doh: allocate state struct on demand + + ... instead of having it static within the Curl_easy struct. This takes + away 1176 bytes (18%) from the Curl_easy struct that aren't used very + often and instead makes the code allocate it when needed. + + Closes #6492 + +- socks: use the download buffer instead + + The SOCKS code now uses the generic download buffer for temporary + storage during the connection procedure, instead of having its own + private 600 byte buffer that adds to the connectdata struct size. This + works fine because this point the buffer is allocated but is not use for + download yet since the connection hasn't completed. + + This reduces the connection struct size by 22% on a 64bit arch! + + The SOCKS buffer needs to be at least 600 bytes, and the download buffer + is guaranteed to never be smaller than 1000 bytes. + + Closes #6491 + +- urldata: make magic be the first struct field + + By making the `magic` identifier the same size and at the same place + within the structs (easy, multi, share), libcurl will be able to more + reliably detect and safely error out if an application passes in the + wrong handle to APIs. Easier to detect and less likely to cause crashes + if done. + + Such mixups can't be detected at compile-time due to them being + typedefed void pointers - unless `CURL_STRICTER` is defined. + + Closes #6484 + +- http_chunks: correct and clarify a comment on hexnumber length + + ... and also rename the define for max length. + + Closes #6489 + +- curl_path: remove conn->data use + + Closes #6487 + +- transfer: remove conn->data use + + Closes #6486 + +- quic: remove conn->data use + + Closes #6485 + +- [Fabian Keil brought this change] + + Add test1181: Proxy request with --proxy-header "Connection: Keep-Alive" + +- [Fabian Keil brought this change] + + Add test1180: Proxy request with -H "Proxy-Connection: Keep-Alive" + + At the moment the test fails as curl sends two Proxy-Connection + headers. + +- c-hyper: avoid duplicated Proxy-Connection headers + +- http: make providing Proxy-Connection header not cause duplicated headers + + Fixes test 1180 + + Bug: https://curl.se/mail/lib-2021-01/0095.html + Reported-by: Fabian Keil + Closes #6472 + +- runtests: preprocess DISABLED to allow conditionals + + ... with this function provided, we can disable tests for specific + environments and setups directly within this file. + + Closes #6477 + +- runtests: turn preprocessing into a separate function + + ... and remove all other variable substitutions as they're now done once + and for all in the preprocessor. + +- lib/Makefile.inc: convert to listing each file on its own line + + ... to make it diff friendlier and easier to read. + + Closes #6448 + +- ftplistparser: remove use of conn->data + + Closes #6482 + +- lib: more conn->data cleanups + + Closes #6479 + +- [Patrick Monnerat brought this change] + + vtls: reduce conn->data use + + Closes #6474 + +- hyper: deliver data to application with Curl_client_write + + ... just as the native code path does. Avoids sending too large data + chunks in the callback and more. + + Reported-by: Gisle Vanem + Fixes #6462 + Closes #6473 + +- gopher: remove accidental conn->data leftover + +- libssh: avoid plain free() of libssh-memory + + Since curl's own memory debugging system redefines free() calls to track + and fiddle with memory, it cannot be used on memory allocated by 3rd + party libraries. + + Third party libraries SHOULD NOT require free() to release allocated + resources for this reason - and libs can use separate healp allocators + on some systems (like Windows) so free() doesn't necessarily work + anyway. + + Filed as an issue with libssh: https://bugs.libssh.org/T268 + + Closes #6481 + +- send: assert that Curl_write_plain() has a ->conn when called + + To help catch bad invokes. + + Closes #6476 + +- test410: verify HTTPS GET with a 49K request header + + skip test 410 for mesalink in the CI as it otherwise hangs "forever" + +- lib: pass in 'struct Curl_easy *' to most functions + + ... in most cases instead of 'struct connectdata *' but in some cases in + addition to. + + - We mostly operate on transfers and not connections. + + - We need the transfer handle to log, store data and more. Everything in + libcurl is driven by a transfer (the CURL * in the public API). + + - This work clarifies and separates the transfers from the connections + better. + + - We should avoid "conn->data". Since individual connections can be used + by many transfers when multiplexing, making sure that conn->data + points to the current and correct transfer at all times is difficult + and has been notoriously error-prone over the years. The goal is to + ultimately remove the conn->data pointer for this reason. + + Closes #6425 + +Emil Engler (17 Jan 2021) +- docs: fix typos in NEW-PROTOCOL.md + + This fixes a misspelled "it" and a grammatically wrong "-ing" suffix. + + Closes #6471 + +Daniel Stenberg (16 Jan 2021) +- RELEASE-NOTES: synced + +Jay Satiro (16 Jan 2021) +- [Razvan Cojocaru brought this change] + + cmake: expose CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG + + This does for cmake builds what --disable-openssl-auto-load-config + does for autoconf builds. + + Closes https://github.com/curl/curl/pull/6435 + +Daniel Stenberg (15 Jan 2021) +- test1918: verify curl_easy_option_by_name() and curl_easy_option_by_id() + + ... and as a practical side-effect, make sure that the + Curl_easyopts_check() function is asserted in debug builds, which we + want to detect mismatches between the options list in easyoptions.c and + the options in curl.h + + Found-by: Gisle Vanem + Bug: https://github.com/curl/curl/commit/08e8455dddc5e48e58a12ade3815c01ae3da3b64#commitcomment-45991815 + + Closes #6461 + +- [Gisle Vanem brought this change] + + easyoptions: add the missing AWS_SIGV4 + + Follow-up from AWS_SIGV4 + +- schannel_verify: fix safefree call typo + + Follow-up from e87ad71d1ba00519 + + Closes #6459 + +- mime: make sure setting MIMEPOST to NULL resets properly + + ... so that a function can first use MIMEPOST and then set it to NULL to + reset it back to a blank POST. + + Added test 584 to verify the fix. + + Reported-by: Christoph M. Becker + + Fixes #6455 + Closes #6456 + +- multi: set the PRETRANSFER time-stamp when we switch to PERFORM + + ... instead of at end of the DO state. This makes the timer more + accurate for the protocols that use the DOING state (such as FTP), and + simplifies how the function (now called init_perform) is called. + + The timer will then include the entire procedure up to PERFORM - + including all instructions for getting the transfer started. + + Closes #6454 + +- CURLINFO_PRETRANSFER_TIME.3: clarify + + ... the timer *does* include the instructions for getting the remote + file. + + Ref: #6452 + Closes #6453 + +- [Gisle Vanem brought this change] + + schannel: plug a memory-leak + + ... when built without -DUNICODE. + + Closes #6457 + +Jay Satiro (14 Jan 2021) +- gitattributes: Set batch files to CRLF line endings on checkout + + If a batch file is run without CRLF line endings (ie LF-only) then + arbitrary behavior may occur. I consider that a bug in Windows, however + the effects can be serious enough (eg unintended code executed) that + we're fixing it in the repo by requiring CRLF line endings for batch + files on checkout. + + Prior to this change the checked-out line endings of batch files were + dependent on a user's git preferences. On Windows it is common for git + users to have automatic CRLF conversion enabled (core.autocrlf true), + but those users that don't would run into this behavior. + + For example a user has reported running the Visual Studio project + generator batch file (projects/generate.bat) and it looped forever. + Output showed that the Windows OS interpreter was occasionally jumping + to arbitrary points in the batch file and executing commands. This + resulted in unintended files being removed (a removal sequence called) + and looping forever. + + Ref: https://serverfault.com/q/429594 + Ref: https://stackoverflow.com/q/232651 + Ref: https://www.dostips.com/forum/viewtopic.php?t=8988 + Ref: https://git-scm.com/docs/gitattributes#_checking_out_and_checking_in + Ref: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_core_autocrlf + + Bug: https://github.com/curl/curl/discussions/6427 + Reported-by: Ganesh Kamath + + Closes https://github.com/curl/curl/pull/6442 + +Daniel Stenberg (14 Jan 2021) +- tool_operate: spellfix a comment + +- ROADMAP: refreshed + + o removed HSTS - already implemented + o added HTTPS RR records + o mention HTTP/3 completion + +- http_chunks: remove Curl_ prefix from static functions + +- transfer: remove Curl_ prefix from static functions + +- tftp: remove Curl_ prefix from static functions + +- multi: remove Curl_ prefix from static functions + +- ldap: remove Curl_ prefix from static functions + +- doh: remove Curl_ prefix from static functions + +- asyn-ares: remove Curl_ prefix from static functions + +- vtls: remove Curl_ prefix from static functions + +- bearssl: remove Curl_ prefix from static functions + +- mbedtls: remove Curl_ prefix from static functions + +- wolfssl: remove Curl_ prefix from static functions + +- nss: remove Curl_ prefix from static functions + +- gnutls: remove Curl_ prefix from static functions + +- openssl: remove Curl_ prefix from static functions + + ... as we reserve this prefix to library-wide functions. + + Closes #6443 + +- nss: get the run-time version instead of build-time + + Closes #6445 + +Jay Satiro (12 Jan 2021) +- tool_doswin: Restore original console settings on CTRL signal + + - Move Windows terminal init code from tool_main to tool_doswin. + + - Restore the original console settings on CTRL+C and CTRL+BREAK. + + Background: On Windows the curl tool changes the console settings to + enable virtual terminal processing (eg color output) if supported + (ie Win 10). The original settings are restored on exit but prior to + this change were not restored in the case of the CTRL signals. + + Windows VT behavior varies depending on console/powershell/terminal; + refer to the discussion in #6226. + + Assisted-by: Rich Turner + + Closes https://github.com/curl/curl/pull/6226 + +Daniel Stenberg (12 Jan 2021) +- gen.pl: fix perl syntax + + Follow-up to 324cf1d2e + +- [Emil Engler brought this change] + + help: update to current codebase + + This commit bumps the help to the current state of the project. + + Closes #6437 + +- [Emil Engler brought this change] + + docs: fix line length bug in gen.pl + + The script warns if the length of $opt and $desc is > 78. However, these + two variables are on totally separate lines so the check makes no sense. + Also the $bitmask field is totally forgotten. Currently this leads to + two warnings within `--resolve` and `--aws-sigv4`. + + Closes #6438 + +- [Emil Engler brought this change] + + docs: fix wrong documentation in help.d + + curl does not list all categories when you invoke "--help" without any + parameters. + + Closes #6436 + +- aws-sigv4.d: polish the wording + + Make it shorter and imperative form + + Closes #6439 + +- [Fabian Keil brought this change] + + misc: fix typos + + Bug: https://curl.se/mail/lib-2021-01/0063.html + Closes #6434 + +- multi_runsingle: bail out early on data->conn == NULL + + As that's a significant error condition and scan-build warns for NULL + pointer dereferences if we don't. + + Closes #6433 + +- multi: skip DONE state if there's no connection left for ftp wildcard + + ... to avoid running in that state with data->conn being NULL. + +- libssh2: fix "Value stored to 'readdir_len' is never read" + + Detected by scan-build + +- connect: mark intentional ignores of setsockopt return values + + Pointed out by Coverity + + Closes #6431 + +Jay Satiro (11 Jan 2021) +- http_proxy: Fix CONNECT chunked encoding race condition + + - During the end-of-headers response phase do not mark the tunnel + complete unless the response body was completely parsed/ignored. + + Prior to this change if the entirety of a CONNECT response with chunked + encoding was not received by the time the final header was parsed then + the connection would be marked done prematurely, before all the chunked + data could be read in and ignored (since this is what we do with any + CONNECT response body) and the connection could not be used. + + Bug: https://curl.se/mail/lib-2021-01/0033.html + Reported-by: Fabian Keil + + Closes https://github.com/curl/curl/pull/6432 + +Daniel Stenberg (11 Jan 2021) +- RELEASE-NOTES: synced + +- url: if IDNA conversion fails, fallback to Transitional + + This improves IDNA2003 compatiblity. + + Reported-by: Bubu on github + Fixes #6423 + Closes #6428 + +- travis: make the Hyper build from its master branch + + Closes #6430 + +- http: make 'authneg' also work for Hyper + + When doing a request with a request body expecting a 401/407 back, that + initial request is sent with a zero content-length. Test 177 and more. + + Closes #6424 + +Jay Satiro (8 Jan 2021) +- cmake: Add an option to disable libidn2 + + New option USE_LIBIDN2 defaults to ON for libidn2 detection. Prior to + this change libidn2 detection could not be turned off in cmake builds. + + Reported-by: William A Rowe Jr + + Fixes https://github.com/curl/curl/issues/6361 + Closes https://github.com/curl/curl/pull/6362 + +Daniel Stenberg (8 Jan 2021) +- HYPER: no longer needs the special branch + +- test179: use consistent header line endings + + ... to make "Hyper mode" work better. + +- file: don't provide content-length for directories + + ... as it is misleading. + + Ref #6379 + Closes #6421 + +- TODO: Directory listing for FILE: + + Ref #6379 + +- curl.h: add CURLPROTO_GOPHERS as own protocol identifier + + Follow-up to a1f06f32b860, to make sure it can be handled separately + from plain gopher. + + Closes #6418 + +- http: have CURLOPT_FAILONERROR fail after all headers + + ... so that Retry-After and other meta-content can still be used. + + Added 1634 to verify. Adjusted test 194 and 281 since --fail now also + includes the header-terminating CRLF in the output before it exits. + + Fixes #6408 + Closes #6409 + +- global_init: debug builds allocates a byte in init + + ... to make build tools/valgrind warn if no curl_global_cleanup is + called. + + This is conditionally only done for debug builds with the env variable + CURL_GLOBAL_INIT set. + + Closes #6410 + +- lib/unit tests: add missing curl_global_cleanup() calls + +- travis: adapt to Hyper build change + + Closes #6419 + +- pretransfer: setup the User-Agent header here + + ... and not in the connection setup, as for multiplexed transfers the + connection setup might be skipped and then the transfer would end up + without the set user-agent! + + Reported-by: Flameborn on github + Assisted-by: Andrey Gursky + Assisted-by: Jay Satiro + Assisted-by: Mike Gelfand + Fixes #6312 + Closes #6417 + +- test66: disable with Hyper + + ...as Hyper doesn't support HTTP/0.9 + +- c-hyper: poll the tasks until end correctly + + ... makes test 36 work. + + Closes #6412 + +- [Gergely Nagy brought this change] + + mk-ca-bundle.pl: deterministic output when using -t + + Printing trust purposes are now sorted, making the output deterministic + when running on the same input certdata.txt. + + Closes #6413 + +- KNOWN_BUGS: fixed "wolfSSL lacks support for renegotiation" + + Fixed by #6411 + +- [Himanshu Gupta brought this change] + + wolfssl: add SECURE_RENEGOTIATION support + + Closes #6411 + +- RELEASE-NOTES: synced + +- wolfssl: update copyright year range + + Follow-up to 7de2e96535e9 + +- c-hyper: make CURLE_GOT_NOTHING work + + Test 30 + + Closes #6407 + +- http_proxy: make CONNECT work with the Hyper backend + + Makes test 80 run + + Closes #6406 + +- TODO: --fail-with-body perchance? + +Jay Satiro (4 Jan 2021) +- tool_operate: fix the suppression logic of some error messages + + - Fix the failed truncation and failed writing body error messages to + not be shown unless error messages are shown. (ie the user has + specified -sS, or has not specified -s). + + - Also prefix same error messages with "curl: ", for example: + curl: (23) Failed to truncate, exiting + + Prior to this change the failed truncation error messages would be shown + if not -s, but did not account for -sS which should show. + + Prior to this change the failed writing body error messages would be + shown always. + + Ref: https://curl.se/docs/manpage.html#-S + + Bug: https://curl.se/mail/archive-2020-12/0017.html + Reported-by: Hongyi Zhao + + Closes https://github.com/curl/curl/pull/6402 + +- wolfssl: Support wolfSSL builds missing TLS 1.1 + + The wolfSSL TLS library defines NO_OLD_TLS in some of their build + configurations and that causes the library to be built without TLS 1.1. + For example if MD5 is explicitly disabled when building wolfSSL then + that defines NO_OLD_TLS and the library is built without TLS 1.1 [1]. + + Prior to this change attempting to build curl with a wolfSSL that was + built with NO_OLD_TLS would cause a build link error undefined reference + to wolfTLSv1_client_method. + + [1]: https://github.com/wolfSSL/wolfssl/blob/v4.5.0-stable/configure.ac#L2366 + + Bug: https://curl.se/mail/lib-2020-12/0121.html + Reported-by: Julian Montes + + Closes https://github.com/curl/curl/pull/6388 + +Daniel Stenberg (4 Jan 2021) +- test1633: set appropriate name + + "--retry with a 429 response and Retry-After:" + +- travis: limit the tests with quiche builds to HTTPS and FTPS only + + ... since it runs into the 50 minute time limit too often otherwise. + + Closes #6403 + +- HISTORY: added dates to early history + + Mostly thanks to this archived web page for urlget: + + https://web.archive.org/web/19980216125115/http://www.inf.ufrgs.br/~sagula/urlget.html + +- httpauth: make multi-request auth work with custom port + + When doing HTTP authentication and a port number set with CURLOPT_PORT, + the code would previously have the URL's port number override as if it + had been a redirect to an absolute URL. + + Added test 1568 to verify. + + Reported-by: UrsusArctos on github + Fixes #6397 + Closes #6400 + +- [Emil Engler brought this change] + + language: s/behaviour/behavior/g + + We currently use both spellings the british "behaviour" and the american + "behavior". However "behavior" is more used in the project so I think + it's worth dropping the british name. + + Closes #6395 + +- cmdline-opts/retry.d: mention response code 429 as well + + Reported-by: Cherish98 + Bug: https://curl.se/mail/archive-2020-12/0018.html + +- docs/HYPER.md: mention outstanding issues + + To make it more obvious to users what doesn't work (yet) + + Closes #6389 + +- COPYING/configure: bump copyright year range + +- c-hyper: add timecondition to the request + + Test 77-78 + + Closes #6391 + +- c-hyper: make Digest and NTLM work + + Test 64, 65, 67, 68, 69, 70, 72 + + Closes #6390 + +- examples/curlgtk.c: fix the copyright year range + + ... and make private functions static. + +- [Olaf Hering brought this change] + + docs/examples: adjust prototypes for CURLOPT_READFUNCTION + + The type of the buffer in curl_read_callback is 'char *', not 'void *'. + + Signed-off-by: Olaf Hering <olaf@aepfle.de> + Closes #6392 + +- examples: fix more empty expression statement has no effect + + Follow-up to 26e46617b9 + +- cleanup: fix two empty expression statement has no effect + + Follow-up to 26e46617b9 + +- configure: set -Wextra-semi-stmt for clang with --enable-debug + + To have it properly complain on empty statements with no effect. + + Ref: #6376 + Closes #6378 + +- tests/unit: fix empty statements with no effect + + ... by making macros use "do {} while(0)" + +- [Paul Groke brought this change] + + dns: extend CURLOPT_RESOLVE syntax for adding non-permanent entries + + Extend the syntax of CURLOPT_RESOLVE strings: allow using a '+' prefix + (similar to the existing '-' prefix for removing entries) to add + DNS cache entries that will time out just like entries that are added + by libcurl itself. + + Append " (non-permanent)" to info log message in case a non-permanent + entry is added. + + Adjust relevant comments to reflect the new behavior. + + Adjust documentation. + + Extend unit1607 to test the new functionality. + + Closes #6294 + +- schannel: fix "empty expression statement has no effect" + + Bug: https://github.com/curl/curl/commit/8ab78f720ae478d533e30b202baec4b451741579#commitcomment-45445950 + Reported-by: Gisle Vanem + Closes #6381 + +- [Denis Laxalde brought this change] + + docs: remove redundant "better" in --fail help + + Closes #6385 + +- [Kevin Ushey brought this change] + + curl.1: fix typo microsft -> microsoft + + Closes #6380 + +- [XhmikosR brought this change] + + misc: assorted typo fixes + + Closes #6375 + +- RELEASE-NOTES: synced + +- tool_operate: avoid NULL dereference of first_arg + + Follow-up to 6a5e020d4d2b04a + Identified by OSS-Fuzz + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28999 + Closes #6377 + +- misc: fix "warning: empty expression statement has no effect" + + Turned several macros into do-while(0) style to allow their use to work + find with semicolon. + + Bug: https://github.com/curl/curl/commit/08e8455dddc5e48e58a12ade3815c01ae3da3b64#commitcomment-45433279 + Follow-up to 08e8455dddc5e4 + Reported-by: Gisle Vanem + Closes #6376 + +- KNOWN_BUGS: 6.10 curl never completes Negotiate over HTTP + + Closes #5235 + Closes #6370 + +- writeout: fix NULL dereference for "this url" + + Detected by torture test 1029 + + Follow-up to 7a90ddf88f5a + + Closes #6374 + +- failf: remove newline from formatting strings + + ... as failf adds one itself. + + Also: add an assert() to failf() that triggers on a newline in the + format string! + + Closes #6365 + +- [XhmikosR brought this change] + + CI: fix warning with the latest versions + + `git checkout HEAD^2` is no longer needed + + Closes #6369 + +- INSTALL: update the list known OSes and CPU archs curl has run on + + Closes #6366 + +- [Cherish98 brought this change] + + curl: fix handling of -q option + + The match of the "-q" option (short for "--disable") should: + a) allow concatenation with other single-letters; and + b) be case-sensitive, lest confusing with "-Q" ("--quote") + + Closes #6364 + +- tests/badsymbols.pl: ignore stand-alone single hash lines + + Bug: https://curl.se/mail/lib-2020-12/0084.html + Reported-by: Dennis Clarke + Assisted-by: Jay Satiro + + Closes #6355 + +- curl_easy_pause.3: add multiplexed pause effects + + and generally refresh and update. Remove details for ancient versions. + + Reviewed-by: Jay Satiro + Closes #6360 + +Jay Satiro (22 Dec 2020) +- curl_easy_pause.3: fix man page reference + + Follow-up to ac9a724 from earlier today. + + Ref: https://github.com/curl/curl/pull/6359 + +Daniel Stenberg (22 Dec 2020) +- EXPERIMENTAL: add the Hyper backend to the list + + ... of current experimental features in curl. + +- speedcheck: exclude paused transfers + + Paused transfers should not be stopped due to slow speed even when + CURLOPT_LOW_SPEED_LIMIT is set. Additionally, the slow speed timer is + now reset when the transfer is unpaused - as otherwise it would easily + just trigger immediately after unpausing. + + Reported-by: Harry Sintonen + Fixes #6358 + Closes #6359 + +- h2: do not wait for RECV on paused transfers + + ... as the socket might be readable all the time when paused and thus + causing a busy-loop. + + Reported-by: Harry Sintonen + Reviewed-by: Jay Satiro + Fixes #6356 + Closes #6357 + +- RELEASE-NOTES: synced + +- cmdline-opts/gen.pl: return hard on errors + + ... as the warnings tend to go unnoticed otherwise! + + Closes #6354 + +- examples/libtest: add .checksrc to dist + + ... so that (auto)builds from tarballs also get the correct instructions. + + Fixes #6176 + Closes #6353 + +- test: verify new --write-out variables + + Extended test 1029 and added 1188 + +- test970: adapted to the new internal order of variables + +- curl: add variables to --write-out + + In particular, these ones can help a user to create its own error + message when one or transfers fail. + + writeout: add 'onerror', 'url', 'urlnum', 'exitcode', 'errormsg' + + onerror - lets a user only show the rest on non-zero exit codes + + url - the input URL used for this transfer + + urlnum - the numerical URL counter (0 indexed) for this transfer + + exitcode - the numerical exit code for the transfer + + errormsg - obvious + + Reported-by: Earnestly on github + Fixes #6199 + Closes #6207 + +- [Matthias Gatto brought this change] + + tests: add very simple AWS HTTP v4 Signature test + + Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com> + +- [Matthias Gatto brought this change] + + docs: add AWS HTTP v4 Signature + +- [Matthias Gatto brought this change] + + tool: add AWS HTTP v4 Signature support + + Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com> + +- [Matthias Gatto brought this change] + + http: Make the call to v4 signature + + This patch allow to call the v4 signature introduce in previous commit + + Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com> + +- [Matthias Gatto brought this change] + + http: introduce AWS HTTP v4 Signature + + It is a security process for HTTP. + + It doesn't seems to be standard, but it is used by some cloud providers. + + Aws: + https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html + Outscale: + https://wiki.outscale.net/display/EN/Creating+a+Canonical+Request + GCP (I didn't test that this code work with GCP though): + https://cloud.google.com/storage/docs/access-control/signing-urls-manually + + most of the code is in lib/http_v4_signature.c + + Information require by the algorithm: + - The URL + - Current time + - some prefix that are append to some of the signature parameters. + + The data extracted from the URL are: the URI, the region, + the host and the API type + + example: + https://api.eu-west-2.outscale.com/api/latest/ReadNets + ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ + ^ ^ ^ + / \ URI + API type region + + Small description of the algorithm: + - make canonical header using content type, the host, and the date + - hash the post data + - make canonical_request using custom request, the URI, + the get data, the canonical header, the signed header + and post data hash + - hash canonical_request + - make str_to_sign using one of the prefix pass in parameter, + the date, the credential scope and the canonical_request hash + - compute hmac from date, using secret key as key. + - compute hmac from region, using above hmac as key + - compute hmac from api_type, using above hmac as key + - compute hmac from request_type, using above hmac as key + - compute hmac from str_to_sign using above hmac as key + - create Authorization header using above hmac, prefix pass in parameter, + the date, and above hash + + Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com> + + Closes #5703 + +- [Matthias Gatto brought this change] + + http: add hmac support for sha256 + + It seems current hmac implementation use md5 for the hash, + V4 signature require sha256, so I've added the needed struct in + this commit. + + I've added the functions that do the hmac in v4 signature file + as a static function ,in the next patch of the serie, + because it's used only by this file. + + Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com> + +- [Cristian Rodríguez brought this change] + + connect: on linux, enable reporting of all ICMP errors on UDP sockets + + The linux kernel does not report all ICMP errors back to userspace due + to historical reasons. + + IP*_RECVERR sockopt must be turned on to have the correct behaviour + which is to pass all ICMP errors to userspace. + + See https://bugzilla.kernel.org/show_bug.cgi?id=202355 + + Closes #6341 + +- curl: add --create-file-mode [mode] + + This option sets the (octal) mode to use for the remote file when one is + created, using the SFTP, SCP or FILE protocols. When not set, the + default is 0644. + + Closes #6244 + +- c-hyper: fix compiler warnings + + Identified by clang on windows. + + Reported-by: Gisle Vanem + Bug: 58974d25d8173aec154e593ed9d866da566c9811 + + Closes #6351 + +- KNOWN_BUGS: Remote recursive folder creation with SFTP + + Closes #5204 + +Jay Satiro (20 Dec 2020) +- badsymbols.pl: Add verbose mode -v + + Use -v as the first option to enable verbose mode which will show source + input, extracted symbol and line info. For example: + + Source: ./../include/curl/typecheck-gcc.h + Symbol: curlcheck_socket_info(info) + Line #423: #define curlcheck_socket_info(info) \ + + Ref: https://curl.se/mail/lib-2020-12/0084.html + + Closes https://github.com/curl/curl/pull/6349 + +- KNOWN_BUGS: Secure Transport disabling hostname validation also disables SNI + + That behavior is a limitation of Apple's Secure Transport. + + Reported-by: Cory Benfield + Reported-by: Ian Spence + Confirmed-by: Nick Zitzmann + + Ref: https://github.com/curl/curl/issues/998 + + Closes https://github.com/curl/curl/issues/6347 + Closes https://github.com/curl/curl/pull/6348 + +Daniel Stenberg (18 Dec 2020) +- TODO: alt-svc should fallback if alt-svc doesn't work + + Closes #4908 + +- travis: restrict the openssl3 job to only run https and ftps tests + + ... as it runs too long otherwise and the other tests are verified in + other builds anyway. + + Closes #6345 + +- build: repair http disabled but mqtt enabled build + + ... as the mqtt code reuses the "method" originally used for HTTP. + + Closes #6344 + +- [Jon Wilkes brought this change] + + cookie: avoid the C1001 internal compiler error with MSVC 14 + + Fixes #6112 + Closes #6135 + +- RELEASE-NOTES: synced + +- mqtt: handle POST/PUBLISH without a set POSTFIELDSIZE + + Detected by OSS-Fuzz + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28735 + + Added test 1916 and 1917 to verify. + + Closes #6338 + +- travis: add CI job for Hyper build + +- tests: updated tests for Hyper + +- lib: introduce c-hyper for using Hyper + + ... as an alternative HTTP backend within libcurl. + +- tool_setopt: provide helper output in debug builds + + ... for when setopt() returns error. + +- setopt: adjust to Hyper and disabled HTTP builds + +- rtsp: disable if Hyper is used + +- getinfo: build with disabled HTTP support + +- version: include hyper version + +- docs: add HYPER.md + +- configure: add --with-hyper + + As the first (optional) HTTP backend alternative instead of native + + Close #6110 + +- test1522: add debug tracing + + I used this to track down some issues and I figured I could just as well + keep this extra logging in here for future needs. + + Closes #6331 + +- http: show the request as headers even when split-sending + + When the initial request isn't possible to send in its entirety, the + remainder of request would be delivered to the debug callback as data + and would wrongly be counted internally as body-bytes sent. + + Extended test 1295 to verify. + + Closes #6328 + +- multi: when erroring in TOOFAST state, act as for PERFORM + + When failing in TOOFAST, the multi_done() wasn't called so the same + cleanup and handling wasn't done like when it fails in PERFORM, which in + the case of FTP could mean that the control connection wouldn't be + marked as "dead" for the CURLE_ABORTED_BY_CALLBACK case. Which caused + ftp_disconnect() to use it to send "QUIT", which could end up waiting + for a response a long time before giving up! + + Reported-by: Tomas Berger + Fixes #6333 + Closes #6337 + +- cmake: enable gophers correctly in curl-config + + Closes #6336 + +- test1198/9: add two mqtt publish tests without payload lengths + + Closes #6335 + +- tests/mqttd: extract the client id from the correct offset + + Closes #6334 + +- TODO: Prevent terminal injection when writing to terminal + + Closes #6150 + +- Revert "CI/github: work-around for brew breakage on macOS" + + This reverts commit 4cbb17a2cbbbe6337142d39479e21c3990b9c22f. + + ... as the work-around now causes failures. + + Closes #6332 + +- examples: remove superfluous asterisk uses + + ... for function pointers. Breaks in ancient compilers. + +- RELEASE-NOTES: synced + +- test1272: fix line ending + + Follow-up to f24784f9143 + +- URL-SYNTAX: add gophers details + +- test1272: test gophers + +- runtests: add support for gophers, gopher over TLS + +- [parazyd brought this change] + + gopher: Implement secure gopher protocol. + + This commit introduces a "gophers" handler inside the gopher protocol if + USE_SSL is defined. This protocol is no different than the usual gopher + prococol, with the added TLS encapsulation upon connecting. The protocol + has been adopted in the gopher community, and many people have enabled + TLS in their gopher daemons like geomyidae(8), and clients, like clic(1) + and hurl(1). + + I have not implemented test units for this protocol because my knowledge + of Perl is sub-par. However, for someone more knowledgeable it might be + fairly trivial, because the same test that tests the plain gopher + protocol can be used for "gophers" just by adding a TLS listener. + + Signed-off-by: parazyd <parazyd@dyne.org> + + Closes #6208 + +- TODO: Package curl for Windows in a signed installer + + Closes #5424 + +- mqtt: deal with 0 byte reads correctly + + OSS-Fuzz found it + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28676 + + Closes #6327 + +- BUG-BOUNTY: minor language update + + ... and remove the wording about entries from before 2019 as the "within + 12 months" is still there and covers that. + + Closes #6318 + +- tooĺ_writeout: fix the -w time output units + + Fix regression from commit fc813f80e1bcac (#6248) that changed the unit + to microseconds instead of seconds with fractions + + Reported-by: 不确定 + Fixes #6321 + Closes #6322 + +- quiche: remove fprintf() leftover + +Jay Satiro (14 Dec 2020) +- KNOWN_BUGS: SHA-256 digest not supported in Windows SSPI builds + + Closes https://github.com/curl/curl/issues/6302 + +- digest_sspi: Show InitializeSecurityContext errors in verbose mode + + The error is shown with infof rather than failf so that the user will + see the extended error message information only in verbose mode, and + will still see the standard CURLE_AUTH_ERROR message. For example: + + --- + + * schannel: InitializeSecurityContext failed: SEC_E_QOP_NOT_SUPPORTED + (0x8009030A) - The per-message Quality of Protection is not supported by + the security package + * multi_done + * Connection #1 to host 127.0.0.1 left intact + curl: (94) An authentication function returned an error + + --- + + Ref: https://github.com/curl/curl/issues/6302 + + Closes https://github.com/curl/curl/pull/6315 + +Daniel Stenberg (13 Dec 2020) +- URL-SYNTAX: add default port numbers and IDNA details + + Closes #6316 + +- URL-SYNTAX: mention how FILE:// access can access network on windows + + Closes #6314 + +Jay Satiro (12 Dec 2020) +- URL-SYNTAX: Document default SMTP port 25 + + Note that ports 25 and 587 are common ports for smtp, the former being + the default. + + Closes https://github.com/curl/curl/pull/6310 + +Daniel Stenberg (12 Dec 2020) +- CURLOPT_URL.3: remove scheme specific details + + ... that are now found in URL-SYNTAX.md + + Closes #6307 + +Dan Fandrich (12 Dec 2020) +- docs: Fix some typos + + [skip ci] + +Daniel Stenberg (12 Dec 2020) +- URL-SYNTAX: mention all supported schemes + + Closes #6311 + +- [Douglas R. Reno brought this change] + + URL-SYNTAX.md: minor language improvements + + Closes #6308 + +- docs/URL-SYNTAX: the URL syntax curl accepts and works with + + Closes #6285 + +- [0xflotus brought this change] + + docs: enable syntax highlighting in several docs files + + ... for better readability + + Closes #6286 + +- test1564/1565: require the 'wakeup' feature to run + + Fixes #6299 + Fixes #6300 + Closes #6301 + +- runtests: add 'wakeup' as a feature + +- tests/server/disabled: add "wakeup" + + To allow the test suite to know if wakeup support is disabled in the + build. + +- lib1564/5: verify that curl_multi_wakeup returns OK + +- tests: make --libcurl tests only test FTP options if ftp enabled + + Adjust six --libcurl tests to only check the FTP option if FTP is + actually present in the build. + + Fixes #6303 + Closes #6305 + +- runtests.pl: fix "uninitialized value" warning + + follow-up to e12825c642a88774 + +- runtests: add support for %if [feature] conditions + + ... to make tests run differently or expect different results depending + on what features that are present or not in curl. + + Bonus: initial minor 'Hyper' awareness but nothing is using that yet + + Closes #6304 + +- [Jon Rumsey brought this change] + + OS400: update ccsidcurl.c + + Add 'struct' to cast and declaration of cfcdata to fix compilation + error. + + Fixes #6292 + Closes #6297 + +- ngtcp2: make it build it current master again + + Closes #6296 + +- [Cristian Rodríguez brought this change] + + connect: defer port selection until connect() time + + If supported, defer port selection until connect() time + if --interface is given and source port is 0. + + Reproducer: + + * start fast webserver on port 80 + * starve system of ephemeral ports + $ sysctl net.ipv4.ip_local_port_range="60990 60999" + + * start a curl/libcurl "crawler" + $curl --keepalive --parallel --parallel-immediate --head --interface + 127.0.0.2 "http://127.0.0.[1-254]/file[001-002].txt" + + current result: + (possible some successful data) + curl: (45) bind failed with errno 98: Address already in use + + result after patch: + (complete success or few connections failing, higlhy depending on load) + + Fail only when all the possible 4-tuple combinations are exhausted, + which is impossible to do when port is selected at bind() time becuse + the kernel does not know if socket will be listen()'ed on or connect'ed + yet. + + Closes #6295 + +- [Hans-Christian Noren Egtvedt brought this change] + + connect: zero variable on stack to silence valgrind complaint + + Valgrind will complain that ssrem buffer usage if not explicit + initialized, hence initialize it to zero. + + This completes the change intially started in commit 2c0d7212151 ('ftp: + retry getpeername for FTP with TCP_FASTOPEN') where the ssloc buffer has + a similar memset to zero. + + Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com> + Closes #6289 + +- RELEASE-NOTES: synced + + start over on the next release cycle + Version 7.74.0 (9 Dec 2020) Daniel Stenberg (9 Dec 2020) @@ -5589,1852 +7445,3 @@ Daniel Stenberg (14 May 2020) 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 |