summaryrefslogtreecommitdiff
path: root/libs/libcurl/docs/CHANGES
diff options
context:
space:
mode:
authordartraiden <wowemuh@gmail.com>2021-11-16 22:24:39 +0300
committerdartraiden <wowemuh@gmail.com>2021-11-16 22:26:13 +0300
commit53a0928794b1b7f3e9bbb7c09d939d32378379d6 (patch)
tree00b4b965972b4133dd56fcaa1e80b5c330687837 /libs/libcurl/docs/CHANGES
parentaa3402bb65378066b00862547ebe7b6ce5c821c6 (diff)
libcurl: update to 7.80.0
Diffstat (limited to 'libs/libcurl/docs/CHANGES')
-rw-r--r--libs/libcurl/docs/CHANGES6347
1 files changed, 3278 insertions, 3069 deletions
diff --git a/libs/libcurl/docs/CHANGES b/libs/libcurl/docs/CHANGES
index 3842d916a4..f77f0a9e13 100644
--- a/libs/libcurl/docs/CHANGES
+++ b/libs/libcurl/docs/CHANGES
@@ -6,6 +6,3277 @@
Changelog
+Version 7.80.0 (10 Nov 2021)
+
+Daniel Stenberg (10 Nov 2021)
+- RELEASE-NOTES: synced
+
+ for curl 7.80.0
+
+- THANKS: add contributors from the 7.80.0 cycle
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: advertise h3 as well as h3-29
+
+ Advertise h3 as well as h3-29 since some servers out there require h3
+ for QUIC v1.
+
+ Closes #7979
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: use QUIC v1 consistently
+
+ Since we switched to v1 quic_transport_parameters codepoint in #7960
+ with quictls, lets use QUIC v1 consistently.
+
+ Closes #7979
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: compile with the latest nghttp3
+
+ Closes #7978
+
+Marc Hoersken (9 Nov 2021)
+- tests: add Schannel-specific tests and disable unsupported ones
+
+ Adds Schannel variants of SSLpinning tests that include the option
+ --ssl-revoke-best-effort to ignore certificate revocation check
+ failures which is required due to our custom test CA certificate.
+
+ Disable the original variants if the Schannel backend is enabled.
+
+ Also skip all IDN tests which are broken while using an msys shell.
+
+ This is a step to simplify test exclusions for Windows and MinGW.
+
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Daniel Stenberg
+ Closes #7968
+
+Daniel Stenberg (8 Nov 2021)
+- docs: NAME fixes in easy option man pages
+
+ Closes #7975
+
+- [Roger Young brought this change]
+
+ ftp: make the MKD retry to retry once per directory
+
+ Reported-by: Roger Young
+ Fixes #7967
+ Closes #7976
+
+- tool_operate: reorder code to avoid compiler warning
+
+ tool_operate.c(889) : warning C4701: potentially uninitialized local
+ variable 'per' use
+
+ Follow-up to cc71d352651a0d95
+ Reported-by: Marc Hörsken
+ Bug: https://github.com/curl/curl/pull/7922#issuecomment-963042676
+ Closes #7971
+
+- curl_easy_perform.3: add a para about recv and send data
+
+ Reported-by: Godwin Stewart
+ Fixes #7973
+ Closes #7974
+
+- tool_operate: fclose stream only if fopened
+
+ Fixes torture test failures
+ Follow-up to cc71d352651
+
+ Closes #7972
+
+- libcurl-easy.3: language polish
+
+- limit-rate.d: this is average over several seconds
+
+ Closes #7970
+
+- docs: reduce/avoid English contractions
+
+ You're => You are
+ Hasn't => Has not
+ Doesn't => Does not
+ Don't => Do not
+ You'll => You will
+ etc
+
+ Closes #7930
+
+- tool_operate: fix torture leaks with etags
+
+ Spotted by torture testing 343 344 345 347.
+
+ Follow-up from cc71d352651a0
+ Pointed-out-by: Dan Fandrich
+
+ Closes #7969
+
+- [Amaury Denoyelle brought this change]
+
+ ngtcp2: support latest QUIC TLS RFC9001
+
+ QUIC Transport Parameters Extension has been changed between draft-29
+ and latest RFC9001. Most notably, its identifier has been updated from
+ 0xffa5 to 0x0039. The version is selected through the QUIC TLS library
+ via the legacy codepoint.
+
+ Disable the usage of legacy codepoint in curl to switch to latest
+ RFC9001. This is required to be able to keep up with latest QUIC
+ implementations.
+
+ Acked-by: Tatsuhiro Tsujikawa
+ Closes #7960
+
+- test1173: make manpage-syntax.pl spot \n errors in examples
+
+- man pages: fix backslash-n in examples
+
+ ... to be proper backslash-backslash-n sequences to render nicely in man
+ and on website.
+
+ Follow-up to 24155569d8a
+ Reported-by: Sergey Markelov
+
+ Fixes https://github.com/curl/curl-www/issues/163
+ Closes #7962
+
+- scripts/release-notes.pl: use out of repo links verbatim in refs
+
+- tool_operate: a failed etag save now only fails that transfer
+
+ When failing to create the output file for saving an etag, only fail
+ that particular single transfer and allow others to follow.
+
+ In a serial transfer setup, if no transfer at all is done due to them
+ all being skipped because of this error, curl will output an error
+ message and return exit code 26.
+
+ Added test 369 and 370 to verify.
+
+ Reported-by: Earnestly on github
+ Ref: #7942
+ Closes #7945
+
+- [Kevin Burke brought this change]
+
+ .github: retry macos "brew install" command on failure
+
+ Previously we saw errors attempting to run "brew install", see
+ https://github.com/curl/curl/runs/4095721123?check_suite_focus=true for
+ an example, since this command is idempotent, it is safe to run again.
+
+ Closes #7955
+
+- CURLOPT_ALTSVC_CTRL.3: mention conn reuse is preferred
+
+ Ref: https://github.com/curl/curl/discussions/7954
+
+ Closes #7957
+
+- RELEASE-NOTES: synced
+
+- zuul: pin the quiche build to use an older cmake-rs
+
+ The latest cmake-rs assumes cmake's --parallel works. That was added in
+ cmake 3.12, but a lot of our CI builds run on Ubuntu Bionic which only
+ has cmake 3.10.
+
+ Fixes #7927
+ Closes #7952
+
+- [Marc Hoersken brought this change]
+
+ Revert "src/tool_filetime: disable -Wformat on mingw for this file"
+
+ This reverts commit 7c88fe375b15c44d77bccc9ab733b8069d228e6f.
+
+ Follow up to #6535 as the pragma is obsolete with warnf
+
+ Closes #7941
+
+Jay Satiro (2 Nov 2021)
+- schannel: fix memory leak due to failed SSL connection
+
+ - Call schannel_shutdown if the SSL connection fails.
+
+ Prior to this change schannel_shutdown (which shuts down the SSL
+ connection as well as memory cleanup) was not called when the SSL
+ connection failed (eg due to failed handshake).
+
+ Co-authored-by: Gisle Vanem
+
+ Fixes https://github.com/curl/curl/issues/7877
+ Closes https://github.com/curl/curl/pull/7878
+
+Daniel Stenberg (2 Nov 2021)
+- Curl_updateconninfo: store addresses for QUIC connections too
+
+ So that CURLINFO_PRIMARY_IP etc work for HTTP/3 like for other HTTP
+ versions.
+
+ Reported-by: Jerome Mao
+ Fixes #7939
+ Closes #7944
+
+- [Sergio Durigan Junior brought this change]
+
+ curl.1: fix typos in the manpage
+
+ s/transfering/transferring/
+ s/transfered/transferred/
+
+ Signed-off-by: Sergio Durigan Junior <sergiodj@sergiodj.net>
+ Closes #7937
+
+Marc Hoersken (1 Nov 2021)
+- tests/smbserver.py: fix compatibility with impacket 0.9.23+
+
+ impacket now performs sanity checks if the requested and to
+ be served file path actually is inside the real share path.
+
+ Ref: https://github.com/SecureAuthCorp/impacket/pull/1066
+
+ Fixes #7924
+ Closes #7935
+
+Daniel Stenberg (1 Nov 2021)
+- docs: reduce use of "very"
+
+ "Very" should be avoided in most texts. If intensifiers are needed, try
+ find better words instead.
+
+ Closes #7936
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: specify the missing required callback functions
+
+ Closes #7929
+
+- CURLOPT_[PROXY]_SSL_CIPHER_LIST.3: bold instead of quote
+
+ Bold the example ciphers instead of using single quotes, which then also
+ avoids the problem of how to use single quotes when first in a line.
+
+ Also rephrased the pages a little.
+
+ Reported-by: Sergio Durigan Junior
+ Ref: #7928
+ Closes #7934
+
+- gen.pl: replace leading single quotes with \(aq
+
+ ... and allow single quotes to be used "normally" in the .d files.
+
+ Makes the output curl.1 use better nroff.
+
+ Reported-by: Sergio Durigan Junior
+ Ref: #7928
+ Closes #7933
+
+Marc Hoersken (1 Nov 2021)
+- tests: kill some test servers afterwards to avoid locked logfiles
+
+ Reviewed-by: Daniel Stenberg
+ Closes #7925
+
+Daniel Stenberg (1 Nov 2021)
+- smooth-gtk-thread.c: enhance the mutex lock use
+
+ Reported-by: ryancaicse on github
+ Fixes #7926
+ Closes #7931
+
+Marc Hoersken (31 Oct 2021)
+- CI/runtests.pl: restore -u flag, but remove it from CI runs
+
+ This makes it possible to use -u again for local testing,
+ but removes the flag from CI config files and make targets.
+
+ Reviewed-by: Daniel Stenberg
+
+ Partially reverts #7841
+ Closes #7921
+
+Daniel Stenberg (29 Oct 2021)
+- [Jonathan Cardoso Machado brought this change]
+
+ CURLOPT_HSTSWRITEFUNCTION.3: using CURLOPT_HSTS_CTRL is required
+
+ Closes #7923
+
+- [Axel Morawietz brought this change]
+
+ imap: display quota information
+
+ Show response to "GETQUOTAROOT INBOX" command.
+
+ Closes #6973
+
+- RELEASE-NOTES: synced
+
+- [Boris Rasin brought this change]
+
+ cmake: fix error getting LOCATION property on non-imported target
+
+ Closes #7885
+
+- [x2018 brought this change]
+
+ url: check the return value of curl_url()
+
+ Closes #7917
+
+- [Roy Li brought this change]
+
+ configure.ac: replace krb5-config with pkg-config
+
+ The rationale is that custom *-config tools don't work well when
+ cross-compiling or using sysroots (such as when using Yocto project) and
+ require custom fixing for each of them; pkg-config on the other hand
+ works similarly everywhere.
+
+ Signed-off-by: Roy Li <rongqing.li@windriver.com>
+ Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
+ Closes #7916
+
+- test1160: edited to work with hyper
+
+ Closes #7912
+
+- data/DISABLED: enable tests that now work with hyper
+
+ Closes #7911
+
+- test559: add 'HTTP' in keywords
+
+ Makes it run fine with hyper
+
+ Closes #7911
+
+- test552: updated to work with hyper
+
+ Closes #7911
+
+Marc Hoersken (27 Oct 2021)
+- github: fix incomplete permission to label PRs for Hacktoberfest
+
+ Unfortunately the GitHub API requires a token with write permission
+ for both issues and pull-requests to edit labels on even just PRs.
+
+ Follow up to #7897
+
+Daniel Stenberg (27 Oct 2021)
+- opt-manpages: use 'Added in' instead of 'Since'
+
+ Closes #7913
+
+Marc Hoersken (27 Oct 2021)
+- github: fix missing permission to label PRs for Hacktoberfest
+
+ Follow up to #7897
+
+ Test references to see if permissions are now sufficient:
+
+ Closes #7832
+ Closes #7897
+
+- CI: more use of test-ci make target and verbose output
+
+ Replace test-nonflaky with test-ci and enable verbose output
+ in all remaining CIs except Zuul which is customized a lot.
+
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Jay Satiro
+
+ Follow up to #7785
+ Closes #7832
+
+- github: add support for Hacktoberfest using labels
+
+ Automatically add hacktoberfest-accepted label to PRs opened between
+ September 30th and November 1st once a commit with a close reference
+ to it is pushed onto the master branch.
+
+ With this workflow we can participate in Hacktoberfest while not
+ relying on GitHub to identify PRs as merged due to our rebasing.
+
+ Requires hacktoberfest-accepted labels to exist for PRs on the
+ participating repository. Also requires hacktoberfest topic on
+ the participating repository to avoid applying to forked repos.
+
+ Reviewed-by: Daniel Stenberg
+
+ Fixes #7865
+ Closes #7897
+
+Daniel Stenberg (27 Oct 2021)
+- http: reject HTTP response codes < 100
+
+ ... which then also includes negative ones as test 1430 uses.
+
+ This makes native + hyper backend act identically on this and therefore
+ test 1430 can now be enabled when building with hyper. Adjust test 1431
+ as well.
+
+ Closes #7909
+
+- [Kerem Kat brought this change]
+
+ docs: fix typo in CURLOPT_TRAILERFUNCTION example
+
+ Closes #7910
+
+- docs/HYPER: remove some remaining issues, add HTTP/0.9 limitation
+
+- configure: when hyper is selected, deselect nghttp2
+
+ Closes #7908
+
+- [Patrick Monnerat brought this change]
+
+ sendf: accept zero-length data in Curl_client_write()
+
+ Historically, Curl_client_write() used a length value of 0 as a marker
+ for a null-terminated data string. This feature has been removed in
+ commit f4b85d2. To detect leftover uses of the feature, a DEBUGASSERT
+ statement rejecting a length with value 0 was introduced, effectively
+ precluding use of this function with zero-length data.
+
+ The current commit removes the DEBUGASSERT and makes the function to
+ return immediately if length is 0.
+
+ A direct effect is to fix trying to output a zero-length distinguished
+ name in openldap.
+
+ Another DEBUGASSERT statement is also rephrased for better readability.
+
+ Closes #7898
+
+- hyper: disable test 1294 since hyper doesn't allow such crazy headers
+
+ Closes #7905
+
+- c-hyper: make CURLOPT_SUPPRESS_CONNECT_HEADERS work
+
+ Verified by the enabled test 1288
+
+ Closes #7905
+
+- test1287: make work on hyper
+
+ Closes #7905
+
+- test1266/1267: disabled on hyper: no HTTP/0.9 support
+
+ Closes #7905
+
+Viktor Szakats (25 Oct 2021)
+- Makefile.m32: fix to not require OpenSSL with -libssh2 or -rtmp options
+
+ Previously, -libssh2/-rtmp options assumed that OpenSSL is also enabled
+ (and then failed with an error when not finding expected OpenSSL headers),
+ but this isn't necessarly true, e.g. when building both libssh2 and curl
+ against Schannel. This patch makes sure to only enable the OpenSSL backend
+ with -libssh2/-rtmp, when there was no SSL option explicitly selected.
+
+ - Re-implement the logic as a single block of script.
+ - Also fix an indentation while there.
+
+ Assisted-by: Jay Satiro
+
+ Closes #7895
+
+Daniel Stenberg (25 Oct 2021)
+- docs: consistent use of "Added in"
+
+ Make them all say "Added in [version]" without using 'curl' or 'libcurl'
+ in that phrase.
+
+- man pages: require all to use the same section header order
+
+ This is the same order we already enforce among the options' man pages:
+ consistency is good. Add lots of previously missing examples.
+
+ Adjust the manpage-syntax script for this purpose, used in test 1173.
+
+ Closes #7904
+
+- [David Hu brought this change]
+
+ docs/HTTP3: improve build instructions
+
+ 1. If writing to a system path if the command is not prefixed with
+ `sudo` it will cause a permission denied error
+
+ 2. The patched OpenSSL branch has been updated to `openssl-3.0.0+quic`
+ to match upstream OpenSSL version.
+
+ 3. We should not disable GnuTLS docs.
+
+ Updated some commands about `make install`
+
+ Closes #7842
+
+- [Ricardo Martins brought this change]
+
+ CMake: restore support for SecureTransport on iOS
+
+ Restore support for building curl for iOS with SecureTransport enabled.
+
+ Closes #7501
+
+- tests: enable more tests with hyper
+
+ Adjusted 1144, 1164 and 1176.
+
+ Closes #7900
+
+- docs: provide "RETURN VALUE" section for more func manpages
+
+ Three were missing, one used a non-standard name for the header.
+
+ Closes #7902
+
+Jay Satiro (25 Oct 2021)
+- curl_multi_socket_action.3: add a "RETURN VALUE" section
+
+ .. because it may not be immediately clear to the user what
+ curl_multi_socket_action returns.
+
+ Ref: https://curl.se/mail/lib-2021-10/0035.html
+
+ Closes https://github.com/curl/curl/pull/7901
+
+Daniel Stenberg (24 Oct 2021)
+- RELEASE-NOTES: synced
+
+- [Samuel Henrique brought this change]
+
+ tests: use python3 in test 1451
+
+ This is a continuation of commit ec91b5a69000bea0794bbb3 in which
+ changing this test was missed. There are no other python2 leftovers
+ now.
+
+ Based on a Debian patch originally written by Alessandro Ghedini
+ <ghedo@debian.org>
+
+ Closes #7899
+
+- [Eddie Lumpkin brought this change]
+
+ lib: fixing comment spelling typos in lib files
+
+ Closes #7894
+ Signed-off-by: ewlumpkin <ewlumpkin@gmail.com>
+
+- openssl: if verifypeer is not requested, skip the CA loading
+
+ It was previously done mostly to show a match/non-match in the verbose
+ output even when verification was not asked for. This change skips the
+ loading of the CA certs unless verifypeer is set to save memory and CPU.
+
+ Closes #7892
+
+- curl-confopts.m4: remove --enable/disable-hidden-symbols
+
+ These configure options have been saying "deprecated" since 9e24b9c7af
+ (April 2012). It was about time we remove them.
+
+ Closes #7891
+
+- c-hyper: don't abort CONNECT responses early when auth-in-progress
+
+ ... and make sure to stop ignoring the body once the CONNECT is done.
+
+ This should make test 206 work proper again and not be flaky.
+
+ Closes #7889
+
+- hyper: does not support disabling CURLOPT_HTTP_TRANSFER_DECODING
+
+ Simply because hyper doesn't have this ability. Mentioned in docs now.
+
+ Skip test 326 then
+
+ Closes #7889
+
+- test262: don't attempt with hyper
+
+ This test verifies that curl works with binary zeroes in HTTP response
+ headers and hyper refuses such. They're not kosher http.
+
+ Closes #7889
+
+- c-hyper: make test 217 run
+
+ Closes #7889
+
+- DISABLED: enable test 209+213 for hyper
+
+ Follow-up to 823d3ab855c
+
+ Closes #7889
+
+- test207: accept a different error code for hyper
+
+ It returns HYPERE_UNEXPECTED_EOF for this case which we convert to the
+ somewhat generic CURLE_RECV_ERROR.
+
+ Closes #7889
+
+- [Érico Nogueira brought this change]
+
+ INSTALL: update symbol hiding option
+
+ --enable-hidden-symbols was deprecated in
+ 9e24b9c7afbcb81120af4cf3f6cdee49a06d8224.
+
+ Closes #7890
+
+- http_proxy: multiple CONNECT with hyper done better
+
+ Enabled test 206
+
+ Closes #7888
+
+- hyper: pass the CONNECT line to the debug callback
+
+ Closes #7887
+
+- mailmap: Malik Idrees Hasan Khan
+
+Jay Satiro (21 Oct 2021)
+- [Malik Idrees Hasan Khan brought this change]
+
+ build: fix typos
+
+ Closes https://github.com/curl/curl/pull/7886
+
+- URL-SYNTAX: add IMAP UID SEARCH example
+
+ - Explain the difference between IMAP search via URL (which returns
+ message sequence numbers) and IMAP search via custom request (which
+ can return UID numbers if prefixed with UID, eg "UID SEARCH ...").
+
+ Bug: https://github.com/curl/curl/issues/7626
+ Reported-by: orycho@users.noreply.github.com
+
+ Ref: https://github.com/curl/curl/issues/2789
+
+ Closes https://github.com/curl/curl/pull/7881
+
+Daniel Stenberg (20 Oct 2021)
+- manpage: adjust the asterisk in some SYNOPSIS sections
+
+ Closes #7884
+
+- curl_multi_perform.3: polish wording
+
+ - simplify the example by using curl_multi_poll
+
+ - mention curl_multi_add_handle in the text
+
+ - cut out the description of pre-7.20.0 return code behavior - that version
+ is now more than eleven years old and is basically no longer out there
+
+ - adjust the "typical usage" to mention curl_multi_poll
+
+ Closes #7883
+
+- docs/THANKS: removed on request
+
+- FAQ: polish the explanation of libcurl
+
+- curl_easy_perform.3: minor wording tweak
+
+- [Erik Stenlund brought this change]
+
+ mime: mention CURL_DISABLE_MIME in comment
+
+ CURL_DISABLE_MIME is not mentioned in the comment describing the if else
+ preprocessor directive.
+
+ Closes #7882
+
+- tls: remove newline from three infof() calls
+
+ Follow-up to e7416cf
+
+ Reported-by: billionai on github
+ Fixes #7879
+ Closes #7880
+
+- RELEASE-NOTES: synced
+
+- curl_gssapi: fix build warnings by removing const
+
+ Follow-up to 20e980f85b0ea6
+
+ In #7875 these inits were modified but I get two warnings that these new
+ typecasts are necessary for.
+
+ Closes #7876
+
+- [Bo Anderson brought this change]
+
+ curl_gssapi: fix link error on macOS Monterey
+
+ Fixes #7657
+ Closes #7875
+
+- test1185: verify checksrc
+
+ Closes #7866
+
+- checksrc: improve the SPACESEMICOLON error message
+
+ and adjust the MULTISPACE one to use plural
+
+ Closes #7866
+
+- url: set "k->size" -1 at start of request
+
+ The size of the transfer is unknown at that point.
+
+ Fixes #7871
+ Closes #7872
+
+Daniel Gustafsson (18 Oct 2021)
+- doh: remove experimental code for DoH with GET
+
+ The code for sending DoH requests with GET was never enabled in a way
+ such that it could be used or tested. As there haven't been requests
+ for this feature, and since it at this is effectively dead, remove it
+ and favor reimplementing the feature in case anyone is interested.
+
+ Closes #7870
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (18 Oct 2021)
+- cirrus: remove FreeBSD 11.4 from the matrix
+
+ It has reached End-Of-Life and causes some LDAP CI issues.
+
+ Closes #7869
+
+- cirrus: switch to openldap24-client
+
+ ... as it seems openldap-client doesn't exist anymore.
+
+ Reported-by: Jay Satiro
+ Fixes #7868
+ Closes #7869
+
+- checksrc: ignore preprocessor lines
+
+ In order to check the actual code better, checksrc now ignores
+ everything that look like preprocessor instructions. It also means
+ that code in macros are now longer checked.
+
+ Note that some rules then still don't need to be followed when code is
+ exactly below a cpp instruction.
+
+ Removes two checksrc exceptions we needed previously because of
+ preprocessor lines being checked.
+
+ Reported-by: Marcel Raad
+ Fixes #7863
+ Closes #7864
+
+- urlapi: skip a strlen(), pass in zero
+
+ ... to let curl_easy_escape() itself do the strlen. This avoids a (false
+ positive) Coverity warning and it avoids us having to store the strlen()
+ return value in an int variable.
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7862
+
+- misc: update copyright years
+
+- examples/htmltidy: correct wrong printf() use
+
+ ... and update the includes to match how current htmltidy wants them
+ used.
+
+ Reported-by: Stathis Kapnidis
+ Fixes #7860
+ Closes #7861
+
+Jay Satiro (15 Oct 2021)
+- http: set content length earlier
+
+ - Make content length (ie download size) accessible to the user in the
+ header callback, but only after all headers have been processed (ie
+ only in the final call to the header callback).
+
+ Background:
+
+ For a long time the content length could be retrieved in the header
+ callback via CURLINFO_CONTENT_LENGTH_DOWNLOAD_T as soon as it was parsed
+ by curl.
+
+ Changes were made in 8a16e54 (precedes 7.79.0) to ignore content length
+ if any transfer encoding is used. A side effect of that was that
+ content length was not set by libcurl until after the header callback
+ was called the final time, because until all headers are processed it
+ cannot be determined if content length is valid.
+
+ This change keeps the same intention --all headers must be processed--
+ but now the content length is available before the final call to the
+ header function that indicates all headers have been processed (ie
+ a blank header).
+
+ Bug: https://github.com/curl/curl/commit/8a16e54#r57374914
+ Reported-by: sergio-nsk@users.noreply.github.com
+
+ Co-authored-by: Daniel Stenberg
+
+ Fixes https://github.com/curl/curl/issues/7804
+ Closes https://github.com/curl/curl/pull/7803
+
+Daniel Stenberg (15 Oct 2021)
+- [Abhinav Singh brought this change]
+
+ aws-sigv4: make signature work when post data is binary
+
+ User sets the post fields size for binary data. Hence, we should not be
+ using strlen on it.
+
+ Added test 1937 and 1938 to verify.
+
+ Closes #7844
+
+- [a1346054 brought this change]
+
+ MacOSX-Framework: remove redundant ';'
+
+ Closes #7859
+
+- RELEASE-NOTES: synced
+
+- openssl: with OpenSSL 1.1.0+ a failed RAND_status means goaway
+
+ One reason we know it can fail is if a provider is used that doesn't do
+ a proper job or is wrongly configured.
+
+ Reported-by: Michael Baentsch
+ Fixes #7840
+ Closes #7856
+
+Marcel Raad (14 Oct 2021)
+- [Ryan Mast brought this change]
+
+ cmake: add CURL_ENABLE_SSL option and make CMAKE_USE_* SSL backend options depend on it
+
+ Closes https://github.com/curl/curl/pull/7822
+
+Daniel Stenberg (14 Oct 2021)
+- http: remove assert that breaks hyper
+
+ Reported-by: Jay Satiro
+ Fixes #7852
+ Closes #7855
+
+- http_proxy: fix one more result assign for hyper
+
+ and remove the bad assert again, since it was run even with no error!
+
+ Closes #7854
+
+Jay Satiro (14 Oct 2021)
+- sws: fix memory leak on exit
+
+ - Free the allocated http request struct on cleanup.
+
+ Prior to this change if sws was built with leak sanitizer it would
+ report a memory leak error during testing.
+
+ Closes https://github.com/curl/curl/pull/7849
+
+Daniel Stenberg (14 Oct 2021)
+- c-hyper: make Curl_http propagate errors better
+
+ Pass on better return codes when errors occur within Curl_http instead
+ of insisting that CURLE_OUT_OF_MEMORY is the only possible one.
+
+ Pointed-out-by: Jay Satiro
+ Closes #7851
+
+- http_proxy: make hyper CONNECT() return the correct error code
+
+ For every 'goto error', make sure the result variable holds the error
+ code for what went wrong.
+
+ Reported-by: Rafał Mikrut
+ Fixes #7825
+ Closes #7846
+
+- docs/Makefile.am: repair 'make html'
+
+ by removing index.html which isn't around anymore
+
+ Closes #7853
+
+- [Борис Верховский brought this change]
+
+ curl: correct grammar in generated libcurl code
+
+ Closes #7802
+
+- tests: disable test 2043
+
+ It uses revoked.badssl.com which now is expired and therefor this now
+ permafails. We should not use external sites for tests, this test should
+ be converted to use our own infra.
+
+ Closes #7845
+
+- runtests: split out ignored tests
+
+ Report ignore tests separately from the actual fails.
+
+ Don't exit non-zero if test servers couldn't get killed.
+
+ Assisted-by: Jay Satiro
+
+ Fixes #7818
+ Closes #7841
+
+- http2: make getsock not wait for write if there's no remote window
+
+ While uploading, check for remote window availability in the getsock
+ function so that we don't wait for a writable socket if no data can be
+ sent.
+
+ Reported-by: Steini2000 on github
+ Fixes #7821
+ Closes #7839
+
+- test368: verify dash is appended for "-r [num]"
+
+ Follow-up to 8758a26f8878
+
+- [Борис Верховский brought this change]
+
+ curl: actually append "-" to --range without number only
+
+ Closes #7837
+
+- RELEASE-NOTES: synced
+
+- urlapi: URL decode percent-encoded host names
+
+ The host name is stored decoded and can be encoded when used to extract
+ the full URL. By default when extracting the URL, the host name will not
+ be URL encoded to work as similar as possible as before. When not URL
+ encoding the host name, the '%' character will however still be encoded.
+
+ Getting the URL with the CURLU_URLENCODE flag set will percent encode
+ the host name part.
+
+ As a bonus, setting the host name part with curl_url_set() no longer
+ accepts a name that contains space, CR or LF.
+
+ Test 1560 has been extended to verify percent encodings.
+
+ Reported-by: Noam Moshe
+ Reported-by: Sharon Brizinov
+ Reported-by: Raul Onitza-Klugman
+ Reported-by: Kirill Efimov
+ Fixes #7830
+ Closes #7834
+
+Marc Hoersken (8 Oct 2021)
+- CI/makefiles: introduce dedicated test target
+
+ Make it easy to use the same set of test flags
+ throughout all current and future CI builds.
+
+ Reviewed-by: Jay Satiro
+
+ Follow up to #7690
+ Closes #7785
+
+Daniel Stenberg (8 Oct 2021)
+- maketgz: redirect updatemanpages.pl output to /dev/null
+
+- CURLOPT_HTTPHEADER.3: add descripion for specific headers
+
+ Settting Host: or Transfer-Encoding: chunked actually have special
+ meanings to libcurl. This change tries to document them
+
+ Closes #7829
+
+- c-hyper: use hyper_request_set_uri_parts to make h2 better
+
+ and make sure to not send Host: over h2.
+
+ Fixes #7679
+ Reported-by: David Cook
+ Closes #7827
+
+- [Michael Afanasiev brought this change]
+
+ curl-openssl.m4: modify library order for openssl linking
+
+ lcrypto may depend on lz, and configure corrently fails with when
+ statically linking as the order is "-lz -lcrypto". This commit switches
+ the order to "-lcrypto -lz".
+
+ Closes #7826
+
+Marcel Raad (7 Oct 2021)
+- sha256: use high-level EVP interface for OpenSSL
+
+ Available since OpenSSL 0.9.7. The low-level SHA256 interface is
+ deprecated in OpenSSL v3, and its usage was discouraged even before.
+
+ Closes https://github.com/curl/curl/pull/7808
+
+- curl_ntlm_core: use OpenSSL only if DES is available
+
+ This selects another SSL backend then if available, or otherwise at
+ least gives a meaningful error message.
+
+ Closes https://github.com/curl/curl/pull/7808
+
+- md5: fix compilation with OpenSSL 3.0 API
+
+ Only use OpenSSL's MD5 code if it's available.
+
+ Also fix wolfSSL build with `NO_MD5`, in which case neither the
+ wolfSSL/OpenSSL implementation nor the fallback implementation was
+ used.
+
+ Closes https://github.com/curl/curl/pull/7808
+
+Daniel Stenberg (7 Oct 2021)
+- print_category: printf %*s needs an int argument
+
+ ... not a size_t!
+
+ Detected by Coverity: CID 1492331.
+ Closes #7823
+
+Jay Satiro (7 Oct 2021)
+- version_win32: use actual version instead of manifested version
+
+ - Use RtlVerifyVersionInfo instead of VerifyVersionInfo, when possible.
+
+ Later versions of Windows have normal version functions that compare and
+ return versions based on the way the application is manifested, instead
+ of the actual version of Windows the application is running on. We
+ prefer the actual version of Windows so we'll now call the Rtl variant
+ of version functions (RtlVerifyVersionInfo) which does a proper
+ comparison of the actual version.
+
+ Reported-by: Wyatt O'Day
+
+ Ref: https://github.com/curl/curl/pull/7727
+
+ Fixes https://github.com/curl/curl/issues/7742
+ Closes https://github.com/curl/curl/pull/7810
+
+Daniel Stenberg (6 Oct 2021)
+- RELEASE-NOTES: synced
+
+- http: fix Basic auth with empty name field in URL
+
+ Add test 367 to verify.
+
+ Reported-by: Rick Lane
+ Fixes #7819
+ Closes #7820
+
+- [Jeffrey Tolar brought this change]
+
+ CURLOPT_MAXLIFETIME_CONN: maximum allowed lifetime for conn reuse
+
+ ... and close connections that are too old instead of reusing them.
+
+ By default, this behavior is disabled.
+
+ Bug: https://curl.se/mail/lib-2021-09/0058.html
+ Closes #7751
+
+Daniel Gustafsson (6 Oct 2021)
+- docs/examples: add missing binaries to gitignore
+
+ Commit f65d7889b added getreferrer, and commit ae8e11ed5 multi-legacy,
+ both of which missed adding .gitignore clauses for the built binaries.
+
+ Closes #7817
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (5 Oct 2021)
+- [Josip Medved brought this change]
+
+ HTTP3: fix the HTTP/3 Explained book link
+
+ Closes #7813
+
+- [Lucas Holt brought this change]
+
+ misc: fix a few issues on MidnightBSD
+
+ Closes #7812
+
+Daniel Gustafsson (4 Oct 2021)
+- [8U61ife brought this change]
+
+ tool_main: fix typo in comment
+
+ Closes: #7811
+ Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
+
+Daniel Stenberg (4 Oct 2021)
+- [Ryan Mast brought this change]
+
+ BINDINGS: URL updates
+
+ For cpr, BBHTTP, Eiffel, Harbour, Haskell, Mono, and Rust
+
+ Closes #7809
+
+- scripts/delta: hide a git error message we don't care about
+
+ fatal: path 'src/tool_listhelp.c' exists on disk, but not in [tag]
+
+- [Patrick Monnerat brought this change]
+
+ sasl: binary messages
+
+ Capabilities of sasl module are extended to exchange messages in binary
+ as an alternative to base64.
+
+ If http authentication flags have been set, those are used as sasl
+ default preferred mechanisms.
+
+ Closes #6930
+
+- [Hayden Roche brought this change]
+
+ wolfssl: use for SHA256, MD4, MD5, and setting DES odd parity
+
+ Prior to this commit, OpenSSL could be used for all these functions, but
+ not wolfSSL. This commit makes it so wolfSSL will be used if USE_WOLFSSL
+ is defined.
+
+ Closes #7806
+
+- scripts/delta: count command line options in the new file
+
+ ... which makes the shown delta number wrong until next release.
+
+- RELEASE-NOTES: synced
+
+- print_category: print help descriptions aligned
+
+ Adjust the description position to make an aligned column when doing
+ help listings, which is more pleasing to the eye.
+
+ Suggested-by: Gisle Vanem
+ Closes #7792
+
+- lib/mk-ca-bundle.pl: skip certs passed Not Valid After date
+
+ With this change applied, the now expired 'DST Root CA X3' cert will no
+ longer be included in the output.
+
+ Details: https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/
+
+ Closes #7801
+
+- tool_listhelp: easier to generate with gen.pl
+
+ tool_listhelp.c is now a separate file with only the command line --help
+ output, exactly as generated by gen.pl. This makes it easier to generate
+ updates according to what's in the docs/cmdline-opts docs.
+
+ cd $srcroot/docs/cmdline-opts
+ ./gen.pl listhelp *.d > $srcroot/src/tool_listhelp.c
+
+ With a configure build, this also works:
+
+ make -C src listhelp
+
+ Closes #7787
+
+- [Anthony Hu brought this change]
+
+ wolfssl: allow setting of groups/curves
+
+ In particular, the quantum safe KEM and hybrid curves if wolfSSL is
+ built to support them.
+
+ Closes #7728
+
+- [Jan Mazur brought this change]
+
+ connnect: use sysaddr_un fron sys/un.h or custom-defined for windows
+
+ Closes #7737
+
+Jay Satiro (30 Sep 2021)
+- [Rikard Falkeborn brought this change]
+
+ hostip: Move allocation to clarify there is no memleak
+
+ By just glancing at the code, it looks like there is a memleak if the
+ call to Curl_inet_pton() fails. Looking closer, it is clear that the
+ call to Curl_inet_pton() can not fail, so the code will never leak
+ memory. However, we can make this obvious by moving the allocation
+ after the if-statement.
+
+ Closes https://github.com/curl/curl/pull/7796
+
+Daniel Stenberg (30 Sep 2021)
+- gen.pl: make the output date format work better
+
+ Follow-up to 15910dfd143dd
+
+ The previous strftime format used didn't work correctly on Windows, so
+ change to %B %d %Y which today looks like "September 29 2021".
+
+ Reported-by: Gisle Vanem
+ Bug: #7782
+ Closes #7793
+
+- typecheck-gcc.h: add CURLOPT_PREREQDATA awareness
+
+ Follow-up to a517378de58358a
+
+ To make test 1912 happy again
+
+ Closes #7799
+
+Marcel Raad (29 Sep 2021)
+- configure: remove `HAVE_WINSOCK_H` definition
+
+ It's not used anymore.
+
+ Closes https://github.com/curl/curl/pull/7795
+
+- CMake: remove `HAVE_WINSOCK_H` definition
+
+ It's not used anymore.
+
+ Closes https://github.com/curl/curl/pull/7795
+
+- config: remove `HAVE_WINSOCK_H` definition
+
+ It's not used anymore.
+
+ Closes https://github.com/curl/curl/pull/7795
+
+- lib: remove `HAVE_WINSOCK_H` usage
+
+ WinSock v1 is not supported anymore. Exclusively use `HAVE_WINSOCK2_H`
+ instead.
+
+ Closes https://github.com/curl/curl/pull/7795
+
+Daniel Stenberg (29 Sep 2021)
+- easyoptions: add the two new PRE* options
+
+ Follow-up to a517378de58358a
+
+ Also fix optiontable.pl to do the correct remainder on the entry.
+
+ Reported-by: Gisle Vanem
+ Bug: https://github.com/curl/curl/commit/a517378de58358a85b7cfe9efecb56051268f629#commitcomment-57224830
+ Closes #7791
+
+- Revert "build: remove checks for WinSock 1"
+
+ Due to CI issues
+
+ This reverts commit c2ea04f92b00b6271627cb218647527b5a50f2fc.
+
+ Closes #7790
+
+Daniel Gustafsson (29 Sep 2021)
+- lib: avoid fallthrough cases in switch statements
+
+ Commit b5a434f7f0ee4d64857f8592eced5b9007d83620 inhibits the warning
+ on implicit fallthrough cases, since the current coding of indicating
+ fallthrough with comments is falling out of fashion with new compilers.
+ This attempts to make the issue smaller by rewriting fallthroughs to no
+ longer fallthrough, via either breaking the cases or turning switch
+ statements into if statements.
+
+ lib/content_encoding.c: the fallthrough codepath is simply copied
+ into the case as it's a single line.
+ lib/http_ntlm.c: the fallthrough case skips a state in the state-
+ machine and fast-forwards to NTLMSTATE_LAST. Do this before the
+ switch statement instead to set up the states that we actually
+ want.
+ lib/http_proxy.c: the fallthrough is just falling into exiting the
+ switch statement which can be done easily enough in the case.
+ lib/mime.c: switch statement rewritten as if statement.
+ lib/pop3.c: the fallthrough case skips to the next state in the
+ statemachine, do this explicitly instead.
+ lib/urlapi.c: switch statement rewritten as if statement.
+ lib/vssh/wolfssh.c: the fallthrough cases fast-forwards the state
+ machine, do this by running another iteration of the switch
+ statement instead.
+ lib/vtls/gtls.c: switch statement rewritten as if statement.
+ lib/vtls/nss.c: the fallthrough codepath is simply copied into the
+ case as it's a single line. Also twiddle a comment to not be
+ inside a non-brace if statement.
+
+ Closes: #7322
+ See-also: #7295
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Marcel Raad (28 Sep 2021)
+- config-win32ce: enable WinSock 2
+
+ WinSock 2.2 is supported by Windows CE .NET 4.1 (from 2002, out of
+ support since 2013).
+
+ Ref: https://docs.microsoft.com/en-us/previous-versions/windows/embedded/ms899586(v=msdn.10)
+
+ Closes https://github.com/curl/curl/pull/7778
+
+- externalsocket: use WinSock 2.2
+
+ That's the only version we support.
+
+ Closes https://github.com/curl/curl/pull/7778
+
+- build: remove checks for WinSock 1
+
+ It's not supported anymore.
+
+ Closes https://github.com/curl/curl/pull/7778
+
+Daniel Stenberg (28 Sep 2021)
+- scripts/copyright: .muse is .lift now
+
+ And update 5 files with old copyright year range
+
+- cmdline-opts: made the 'Added:' field mandatory
+
+ Since "too old" versions are no longer included in the generated man
+ page, this field is now mandatory so that it won't be forgotten and then
+ not included in the documentation.
+
+ Closes #7786
+
+- curl.1: remove mentions of really old version changes
+
+ To make the man page more readable, this change removes all references
+ to changes in support/versions etc that happened before 7.30.0 from the
+ curl.1 output file. 7.30.0 was released on Apr 12 2013. This particular
+ limit is a bit arbitrary but was fairly easy to grep for.
+
+ It is handled like this: the 'Added' keyword is only used in output if
+ it refers to 7.30.0 or later. All occurances of "(Added in $VERSION)" in
+ description will be stripped out if the mentioned $VERSION is from
+ before 7.30.0. It is therefore important that the "Added in..."
+ references are always written exactly like that - and on a single line,
+ not split over two.
+
+ This change removes about 80 version number references from curl.1, down
+ to 138 from 218.
+
+ Closes #7786
+
+- RELEASE-NOTES: synced
+
+- tool_cb_prg: make resumed upload progress bar show better
+
+ This is a regression that was *probably* injected in the larger progress
+ bar overhaul in 2018.
+
+ Reported-by: beslick5 on github
+ Fixes #7760
+ Closes #7777
+
+- gen.pl: insert the current date and version in generated man page
+
+ Reported-by: Gisle Vanem
+ Ref: #7780
+ Closes #7782
+
+- NTLM: use DES_set_key_unchecked with OpenSSL
+
+ ... as the previously used function DES_set_key() will in some cases
+ reject using a key that it deems "weak" which will cause curl to
+ continue using the unitialized buffer content as key instead.
+
+ Assisted-by: Harry Sintonen
+ Fixes #7779
+ Closes #7781
+
+Marc Hoersken (27 Sep 2021)
+- CI: align make and test flags in various config files
+
+ 1. Use Makefile target to run tests in autotools builds on AppVeyor.
+ 2. Disable testing of SCP protocol on native Windows environments.
+ 3. Remove redundant parameters -a -p from target test-nonflaky.
+ 4. Don't use -vc parameter which is reserved for debugging.
+
+ Replaces #7591
+ Closes #7690
+
+Daniel Stenberg (27 Sep 2021)
+- mailmap: unify Max!
+
+- [Max Dymond brought this change]
+
+ CURLOPT_PREREQFUNCTION: add new callback
+
+ Triggered before a request is made but after a connection is set up
+
+ Changes:
+
+ - callback: Update docs and callback for pre-request callback
+ - Add documentation for CURLOPT_PREREQDATA and CURLOPT_PREREQFUNCTION,
+ - Add redirect test and callback failure test
+ - Note that the function may be called multiple times on a redirection
+ - Disable new 2086 test due to Windows weirdness
+
+ Closes #7477
+
+- KNOWN_BUGS: HTTP/2 connections through HTTPS proxy frequently stall
+
+ Closes #6936
+
+- TODO: make configure use --cache-file more and better
+
+ Closes #7753
+
+- [Sergey Markelov brought this change]
+
+ urlapi: support UNC paths in file: URLs on Windows
+
+ - file://host.name/path/file.txt is a valid UNC path
+ \\host.name\path\files.txt to a non-local file transformed into URI
+ (RFC 8089 Appendix E.3)
+
+ - UNC paths on other OSs must be smb: URLs
+
+ Closes #7366
+
+- [Gleb Ivanovsky brought this change]
+
+ urlapi: add curl_url_strerror()
+
+ Add curl_url_strerror() to convert CURLUcode into readable string and
+ facilitate easier troubleshooting in programs using URL API.
+ Extend CURLUcode with CURLU_LAST for iteration in unit tests.
+ Update man pages with a mention of new function.
+ Update example code and tests with new functionality where it fits.
+
+ Closes #7605
+
+- RELEASE-NOTES: synced
+
+- [Mats Lindestam brought this change]
+
+ libssh2: add SHA256 fingerprint support
+
+ Added support for SHA256 fingerprint in command line curl and in
+ libcurl.
+
+ Closes #7646
+
+- libcurl.rc: switch out the copyright symbol for plain ASCII
+
+ Reported-by: Vitaly Varyvdin
+ Assisted-by: Viktor Szakats
+ Fixes #7765
+ Closes #7776
+
+- [Jun-ya Kato brought this change]
+
+ ngtcp2: fix QUIC transport parameter version
+
+ fix inappropriate version setting for QUIC transport parameters.
+ this patch keeps curl with ngtcp2 uses QUIC draft version (h3-29).
+
+ Closes #7771
+
+- examples/imap-append: fix end-of-data check
+
+ Reported-by: Alexander Chuykov
+ Fixes #7774
+ Closes #7775
+
+Michael Kaufmann (24 Sep 2021)
+- vtls: Fix a memory leak if an SSL session cannot be added to the cache
+
+ On connection shutdown, a new TLS session ticket may arrive after the
+ SSL session cache has already been destructed. In this case, the new
+ SSL session cannot be added to the SSL session cache.
+
+ The callers of Curl_ssl_addsessionid() need to know whether the SSL
+ session has been added to the cache. If it has not been added, the
+ reference counter of the SSL session must not be incremented, or memory
+ used by the SSL session must be freed. This is now possible with the new
+ output parameter "added" of Curl_ssl_addsessionid().
+
+ Fixes #7683
+ Closes #7752
+
+Daniel Stenberg (24 Sep 2021)
+- [Momoka Yamamoto brought this change]
+
+ HTTP3.md: use 'autoreconf -fi' instead of buildconf
+
+ buildconf is not used since #5853
+
+ Closes #7746
+
+- GIT-INFO: rephrase to adapt to s/buildconf/autoreconf
+
+- [h1zzz brought this change]
+
+ llist: remove redundant code, branch will not be executed
+
+ Closes #7770
+
+- [tlahn brought this change]
+
+ HTTP-COOKIES.md: remove duplicate 'each'
+
+ Closes #7772
+
+Jay Satiro (24 Sep 2021)
+- [Joel Depooter brought this change]
+
+ libssh2: Get the version at runtime if possible
+
+ Previously this code used a compile time constant, meaning that libcurl
+ always reported the libssh2 version that libcurl was built with. This
+ could differ from the libssh2 version actually being used. The new code
+ uses the CURL_LIBSSH2_VERSION macro, which is defined in ssh.h. The
+ macro calls the libssh2_version function if it is available, otherwise
+ it falls back to the compile time version.
+
+ Closes https://github.com/curl/curl/pull/7768
+
+- [Joel Depooter brought this change]
+
+ schannel: fix typo
+
+ Closes https://github.com/curl/curl/pull/7769
+
+Daniel Stenberg (23 Sep 2021)
+- cmake: with OpenSSL, define OPENSSL_SUPPRESS_DEPRECATED
+
+ To avoid the "... is deprecated" warnings brought by OpenSSL v3.
+ (We need to address the underlying code at some point of course.)
+
+ Assisted-by: Jakub Zakrzewski
+ Closes #7767
+
+- curl-openssl: pass argument to sed single-quoted
+
+ ... instead of using an escaped double-quote. This is an attempt to make
+ this work better with ksh that otherwise would insist on a double
+ escape!
+
+ Reported-by: Randall S. Becker
+ Fixes #7758
+ Closes #7764
+
+- RELEASE-NOTES: synced
+
+ Bumped curlver to 7.80.0-dev
+
+- [a1346054 brought this change]
+
+ misc: fix typos in docs and comments
+
+ No user facing output from curl/libcurl is changed by this, just
+ comments.
+
+ Closes #7747
+
+- [Thomas M. DuBuisson brought this change]
+
+ ci: update Lift config to match requirements of curl build
+
+ Also renamed Muse -> Lift, the new tool name.
+
+ Closes #7761
+
+- [Rikard Falkeborn brought this change]
+
+ cleanup: constify unmodified static structs
+
+ Constify a number of static structs that are never modified. Make them
+ const to show this.
+
+ Closes #7759
+
+Version 7.79.1 (22 Sep 2021)
+
+Daniel Stenberg (22 Sep 2021)
+- RELEASE-NOTES: synced
+
+ curl 7.79.1 release
+
+- THANKS: added names from the 7.79.1 release
+
+- test897: verify delivery of IMAP post-body header content
+
+ The "content" is delivered as "body" by curl, but the envelope continues
+ after the body and the rest of it should be delivered as header.
+
+ The IMAP server can now get 'POSTFETCH' set to include more data to
+ include after the body and test 897 is done to verify that such "extra"
+ header data is in fact delivered by curl as header.
+
+ Ref: #7284 but fails to reproduce the issue
+
+ Closes #7748
+
+- KNOWN_BUGS: connection migration doesn't work
+
+ Closes #7695
+
+- RELEASE-NOTES: synced
+
+- http: fix the broken >3 digit response code detection
+
+ When the "reason phrase" in the HTTP status line starts with a digit,
+ that was treated as the forth response code digit and curl would claim
+ the response to be non-compliant.
+
+ Added test 1466 to verify this case.
+
+ Regression brought by 5dc594e44f73b17
+ Reported-by: Glenn de boer
+ Fixes #7738
+ Closes #7739
+
+Jay Satiro (17 Sep 2021)
+- strerror: use sys_errlist instead of strerror on Windows
+
+ - Change Curl_strerror to use sys_errlist[errnum] instead of strerror to
+ retrieve the error message on Windows.
+
+ Windows' strerror writes to a static buffer and is not thread-safe.
+
+ Follow-up to 2f0bb86 which removed most instances of strerror in favor
+ of calling Curl_strerror (which calls strerror_r for other platforms).
+
+ Ref: https://github.com/curl/curl/pull/7685
+ Ref: https://github.com/curl/curl/commit/2f0bb86
+
+ Closes https://github.com/curl/curl/pull/7735
+
+Daniel Stenberg (16 Sep 2021)
+- dist: provide lib/.checksrc in the tarball
+
+ So that debug builds work (checksrc really)
+
+ Reported-by: Marcel Raad
+ Reported-by: tawmoto on github
+ Fixes #7733
+ Closes #7734
+
+- TODO: Improve documentation about fork safety
+
+ Closes #6968
+
+- hsts: CURLSTS_FAIL from hsts read callback should fail transfer
+
+ ... and have CURLE_ABORTED_BY_CALLBACK returned.
+
+ Extended test 1915 to verify.
+
+ Reported-by: Jonathan Cardoso
+ Fixes #7726
+ Closes #7729
+
+- test1184: disable
+
+ The test should be fine and it works for me repeated when run manually,
+ but clearly it causes CI failures and it needs more research.
+
+ Reported-by: RiderALT on github
+ Fixes #7725
+ Closes #7732
+
+- Curl_http2_setup: don't change connection data on repeat invokes
+
+ Regression from 3cb8a748670ab88c (releasde in 7.79.0). That change moved
+ transfer oriented inits to before the check but also erroneously moved a
+ few connection oriented ones, which causes problems.
+
+ Reported-by: Evangelos Foutras
+ Fixes #7730
+ Closes #7731
+
+- RELEASE-NOTES: synced
+
+ and bump to 7.79.1
+
+Kamil Dudka (16 Sep 2021)
+- tests/sshserver.pl: make it work with openssh-8.7p1
+
+ ... by not using options with no argument where an argument is required:
+
+ === Start of file tests/log/ssh_server.log
+ curl_sshd_config line 6: no argument after keyword "DenyGroups"
+ curl_sshd_config line 7: no argument after keyword "AllowGroups"
+ curl_sshd_config line 10: Deprecated option AuthorizedKeysFile2
+ curl_sshd_config line 29: Deprecated option KeyRegenerationInterval
+ curl_sshd_config line 39: Deprecated option RhostsRSAAuthentication
+ curl_sshd_config line 40: Deprecated option RSAAuthentication
+ curl_sshd_config line 41: Deprecated option ServerKeyBits
+ curl_sshd_config line 45: Deprecated option UseLogin
+ curl_sshd_config line 56: no argument after keyword "AcceptEnv"
+ curl_sshd_config: terminating, 3 bad configuration options
+ === End of file tests/log/ssh_server.log
+
+ === Start of file log/sftp_server.log
+ curl_sftp_config line 33: Unsupported option "rhostsrsaauthentication"
+ curl_sftp_config line 34: Unsupported option "rsaauthentication"
+ curl_sftp_config line 52: no argument after keyword "sendenv"
+ curl_sftp_config: terminating, 1 bad configuration options
+ Connection closed.
+ Connection closed
+ === End of file log/sftp_server.log
+
+ Closes #7724
+
+Daniel Stenberg (15 Sep 2021)
+- hsts: handle unlimited expiry
+
+ When setting a blank expire string, meaning unlimited, curl would pass
+ TIME_T_MAX to getime_r() when creating the output, while on 64 bit
+ systems such a large value cannot be convetered to a tm struct making
+ curl to exit the loop with an error instead. It can't be converted
+ because the year it would represent doesn't fit in the 'int tm_year'
+ field!
+
+ Starting now, unlimited expiry is instead handled differently by using a
+ human readable expiry date spelled out as "unlimited" instead of trying
+ to use a distant actual date.
+
+ Test 1660 and 1915 have been updated to help verify this change.
+
+ Reported-by: Jonathan Cardoso
+ Fixes #7720
+ Closes #7721
+
+- curl_multi_fdset: make FD_SET() not operate on sockets out of range
+
+ The VALID_SOCK() macro was made to only check for FD_SETSIZE if curl was
+ built to use select(), even though the curl_multi_fdset() function
+ always and unconditionally uses FD_SET and needs the check.
+
+ Reported-by: 0xee on github
+ Fixes #7718
+ Closes #7719
+
+- FAQ: add GOPHERS + curl works on data, not files
+
+Version 7.79.0 (14 Sep 2021)
+
+Daniel Stenberg (14 Sep 2021)
+- RELEASE-NOTES: synced
+
+ For the 7.79.0 release
+
+- THANKS: add contributors from 7.79.0 release cycle
+
+- FAQ: add two dev related questions
+
+ 8.1 Why does curl use C89?
+ 8.2 Will curl be rewritten?
+
+ Spell-checked-by: Paul Johnson
+ Closes #7715
+
+- zuul.d/jobs: disable three tests for *-openssl-disable-proxy
+
+ ... as they mysteriously seem to permfail without being related to
+ proxy.
+
+ Closes #7714
+
+- [Patrick Monnerat brought this change]
+
+ ftp,imap,pop3,smtp: reject STARTTLS server response pipelining
+
+ If a server pipelines future responses within the STARTTLS response, the
+ former are preserved in the pingpong cache across TLS negotiation and
+ used as responses to the encrypted commands.
+
+ This fix detects pipelined STARTTLS responses and rejects them with an
+ error.
+
+ CVE-2021-22947
+
+ Bug: https://curl.se/docs/CVE-2021-22947.html
+
+- [Patrick Monnerat brought this change]
+
+ ftp,imap,pop3: do not ignore --ssl-reqd
+
+ In imap and pop3, check if TLS is required even when capabilities
+ request has failed.
+
+ In ftp, ignore preauthentication (230 status of server greeting) if TLS
+ is required.
+
+ Bug: https://curl.se/docs/CVE-2021-22946.html
+
+ CVE-2021-22946
+
+- [z2_ on hackerone brought this change]
+
+ mqtt: clear the leftovers pointer when sending succeeds
+
+ CVE-2021-22945
+
+ Bug: https://curl.se/docs/CVE-2021-22945.html
+
+- zuul: bump the rustls job to use v0.7.2
+
+ ... and add -lm when using a rust library.
+
+ Closes #7701
+
+- RELEASE-PROCEDURE: add release dates from now to 8.0.0 in 2023
+
+- SECURITY-PROCESS: tweak a little to match current practices
+
+ Closes #7713
+
+- http_proxy: fix the User-Agent inclusion in CONNECT
+
+ It should not refer to the uagent string that is allocated and created
+ for the end server http request, as that pointer may be cleared on
+ subsequent CONNECT requests.
+
+ Added test case 1184 to verify.
+
+ Reported-by: T200proX7 on github
+ Fixes #7705
+ Closes #7707
+
+- Curl_hsts_loadcb: don't attempt to load if hsts wasn't inited
+
+ Reported-by: Jonathan Cardoso
+ Fixes #7710
+ Closes #7711
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: fix build with ngtcp2 and nghttp3
+
+ ngtcp2_conn_client_new and nghttp3_conn_client_new are now macros.
+ Check the wrapped functions instead.
+
+ ngtcp2_stream_close callback now takes flags parameter.
+
+ Closes #7709
+
+- write-out.d: clarify size_download/upload
+
+ They show the number of "body" bytes transfered.
+ Fixes #7702
+ Closes #7706
+
+- http2: Curl_http2_setup needs to init stream data in all invokes
+
+ Thus function was written to avoid doing multiple connection data
+ initializations, which is fine, but since it also initiates stream
+ related data it is crucial that it doesn't skip those even if called
+ again for the same connection. Solved by moving the stream
+ initializations before the "doing-it-again" check.
+
+ Reported-by: Inho Oh
+ Fixes #7630
+ Closes #7692
+
+- url: fix compiler warning in no-verbose builds
+
+ Follow-up from 2f0bb864c12
+
+ Closes #7700
+
+- non-ascii: fix build errors from strerror fix
+
+ Follow-up to 2f0bb864c12
+
+ Closes #7697
+
+- parse_args: redo the warnings for --remote-header-name combos
+
+ ... to avoid the memory leak risk pointed out by scan-build.
+
+ Follow-up from 7a3e981781d6c18a
+
+ Closes #7698
+
+- ngtcp2: adapt to new size defintions upstream
+
+ Reviewed-by: Tatsuhiro Tsujikawa
+ Closes #7699
+
+- rustls: add strerror.h include
+
+ Follow-up to 2f0bb864c12
+
+- docs: the security list is reached at security at curl.se now
+
+ Also update the FAQ section a bit to encourage users to rather submit
+ security issues on hackerone than sending email.
+
+ Closes #7689
+
+Marc Hoersken (9 Sep 2021)
+- runtests: add option -u to error on server unexpectedly alive
+
+ Let's try to actually handle the server unexpectedly alive
+ case by first making them visible on CI builds as failures.
+
+ This is needed to detect issues with killing of the test
+ servers completely including nested process chains with
+ multiple PIDs per test server (including bash and perl).
+
+ On Windows/cygwin platforms this is especially helpful with
+ debugging PID mixups due to cygwin using its own PID space.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #7180
+
+Daniel Stenberg (9 Sep 2021)
+- opts docs: unify phrasing in NAME header
+
+ - avoid writing "set ..." or "enable/disable ..." or "specify ..."
+ *All* options for curl_easy_setopt() are about setting or enabling
+ things and most of the existing options didn't use that way of
+ description.
+
+ - start with lowercase letter, unless abbreviation. For consistency.
+
+ - Some additional touch-ups
+
+ Closes #7688
+
+- strerror.h: remove the #include from files not using it
+
+- lib: don't use strerror()
+
+ We have and provide Curl_strerror() internally for a reason: strerror()
+ is not necessarily thread-safe so we should always try to avoid it.
+
+ Extended checksrc to warn for this, but feature the check disabled by
+ default and only enable it in lib/
+
+ Closes #7685
+
+Daniel Gustafsson (8 Sep 2021)
+- cirrus: Add FreeBSD 13.0 job and disable sanitizer build
+
+ As alluded to the in the now removed comment, a 13.0 image became
+ available and is now ready to be used.
+
+ The sanitizer builds were running on the 12.1 image which since has
+ been removed from the config, leaving the builds not running at all.
+ When enabled it turns out that they don't actually work due to very
+ long timeouts in executing the tests, so keep the disabled for now
+ but a bit more controlled.
+
+ Closes #7592
+
+Daniel Stenberg (8 Sep 2021)
+- copyrights: update copyright year ranges
+
+- RELEASE-NOTES: synced
+
+- INTERNALS: c-ares has a new home: c-ares.org
+
+- docs: remove experimental mentions from HSTS and MQTT
+
+ Reported-by: Jonathan Cardoso
+ Bug: https://github.com/curl/curl/pull/6700#issuecomment-913792863
+ Closes #7681
+
+- [Cao ZhenXiang brought this change]
+
+ curl: add warning for incompatible parameters usage
+
+ --continue-at - and --remote-header-name are known incompatible parameters
+
+ Closes #7674
+
+- [git-bruh brought this change]
+
+ examples/*hiperfifo.c: fix calloc arguments to match function proto
+
+ Closes #7678
+
+- INTERNALS: bump c-ares requirement to 1.16.0
+
+ Since ba904db0705c93 we use ares_getaddrinfo, added in c-ares 1.16.0
+
+- curl: stop retry if Retry-After: is longer than allowed
+
+ If Retry-After: specifies a period that is longer than what fits within
+ --retry-max-time, then stop retrying immediately.
+
+ Added test 366 to verify.
+
+ Reported-by: Kari Pahula
+ Fixes #7675
+ Closes #7676
+
+- [Michał Antoniak brought this change]
+
+ mbedtls: avoid using a large buffer on the stack
+
+ Use dynamic memory allocation for the buffer used in checking "pinned
+ public key". The PUB_DER_MAX_BYTES parameter with default settings is
+ set to a value greater than 2kB.
+
+ Co-authored-by: Daniel Stenberg
+ Closes #7586
+
+- configure: make --disable-hsts work
+
+ The AC_ARG_ENABLE() macro itself uses a variable called
+ 'enable_[option]', so when our script also used a variable with that
+ name for the purpose of storing what the user wants, it also
+ accidentally made it impossible to switch off the feature with
+ --disable-hsts. Fix this by renaming our variable.
+
+ Reported-by: Michał Antoniak
+ Fixes #7669
+ Closes #7672
+
+Jay Satiro (5 Sep 2021)
+- config.d: note that curlrc is used even when --config
+
+ Bug: https://github.com/curl/curl/pull/7666#issuecomment-912214751
+ Reported-by: Viktor Szakats
+
+ Closes https://github.com/curl/curl/pull/7667
+
+Daniel Stenberg (4 Sep 2021)
+- RELEASE-NOTES: synced
+
+- test1173: check references to libcurl options
+
+ ... that they refer to actual existing libcurl options.
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7656
+
+- CURLOPT_UNIX_SOCKET_PATH.3: remove nginx reference, add see also
+
+ Closes #7656
+
+- opt-docs: verify man page sections + order
+
+ In every libcurl option man page there are now 8 mandatory sections that
+ must use the right name in the correct order and test 1173 verifies
+ this. Only 14 man pages needed adjustments.
+
+ The sections and the order is as follows:
+
+ - NAME
+ - SYNOPSIS
+ - DESCRIPTION
+ - PROTOCOLS
+ - EXAMPLE
+ - AVAILABILITY
+ - RETURN VALUE
+ - SEE ALSO
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7656
+
+- opt-docs: make sure all man pages have examples
+
+ Extended manpage-syntax.pl (run by test 1173) to check that every man
+ page for a libcurl option has an EXAMPLE section that is more than two
+ lines. Then fixed all errors it found and added examples.
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7656
+
+- get.d: provide more useful examples
+
+ Closes #7668
+
+- page-header: add GOPHERS, simplify wording in the 1st para
+
+ Closes #7665
+
+- connect: get local port + ip also when reusing connections
+
+ Regression. In d6a37c23a3c (7.75.0) we removed the duplicated storage
+ (connection + easy handle), so this info needs be extracted again even
+ for re-used connections.
+
+ Add test 435 to verify
+
+ Reported-by: Max Dymond
+ Fixes #7660
+ Closes #7662
+
+Marcel Raad (2 Sep 2021)
+- multi: fix compiler warning with `CURL_DISABLE_WAKEUP`
+
+ `use_wakeup` is unused in this case.
+
+ Closes https://github.com/curl/curl/pull/7661
+
+Daniel Stenberg (1 Sep 2021)
+- tests: adjust the tftpd output to work with hyper mode
+
+ By making them look less like http headers, the hyper mode "tweak"
+ doesn't interfere.
+
+ Enable test 2002 and 2003 in hyper builds (and 1280 which is unrelated
+ but should be enabled).
+
+ Closes #7658
+
+Daniel Gustafsson (1 Sep 2021)
+- [Gisle Vanem brought this change]
+
+ openssl: annotate SSL3_MT_SUPPLEMENTAL_DATA
+
+ This adds support for the previously unhandled supplemental data which
+ in -v output was printed like:
+
+ TLSv1.2 (IN), TLS header, Unknown (23):
+
+ These will now be printed with proper annotation:
+
+ TLSv1.2 (OUT), TLS header, Supplemental data (23):
+
+ Closes #7652
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (1 Sep 2021)
+- curl.1: provide examples for each option
+
+ The file format for each option now features a "Example:" header that
+ can provide one or more examples that get rendered appropriately in the
+ output. All options MUST have at least one example or gen.pl complains
+ at build-time.
+
+ This fix also does a few other minor format and consistency cleanups.
+
+ Closes #7654
+
+- progress: make trspeed avoid floats
+
+ and compiler warnings for data conversions.
+
+ Reported-by: Michał Antoniak
+ Fixes #7645
+ Closes #7653
+
+- test365: verify response with chunked AND Content-Length headers
+
+- http: ignore content-length if any transfer-encoding is used
+
+ Fixes #7643
+ Closes #7649
+
+- RELEASE-NOTES: synced
+
+- Revert "http2: skip immediate parsing of payload following protocol switch"
+
+ This reverts commit 455a63c66f188598275e87d32de2c4e8e26b80cb.
+
+ Reported-by: Tk Xiong
+ Fixes #7633
+ Closes #7648
+
+- KNOWN_BUGS: HTTP/3 doesn't support client certs
+
+ Closes #7625
+
+- mailing lists: move from cool.haxx.se to lists.haxx.se
+
+- http_proxy: only wait for writable socket while sending request
+
+ Otherwise it would wait socket writability even after the entire CONNECT
+ request has sent and make curl basically busy-loop while waiting for a
+ response to come back.
+
+ The previous fix attempt in #7484 (c27a70a591a4) was inadequate.
+
+ Reported-by: zloi-user on github
+ Reported-by: Oleguer Llopart
+ Fixes #7589
+ Closes #7647
+
+- http: disallow >3-digit response codes
+
+ Make the built-in HTTP parser behave similar to hyper and reject any
+ HTTP response using more than 3 digits for the response code.
+
+ Updated test 1432 accordingly.
+ Enabled test 1432 in the hyper builds.
+
+ Closes #7641
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: stop buffering crypto data
+
+ Stop buffering crypto data because libngtcp2 now buffers submitted
+ crypto data.
+
+ Closes #7637
+
+- test1280: CRLFify the response to please hyper
+
+ Closes #7639
+
+- tests: enable test 1129 for hyper builds
+
+ Closes #7638
+
+- curl: better error message when -O fails to get a good name
+
+ Due to how this currently works internally, it needs a working initial
+ file name to store contents in, so it may still fail even with -J is
+ used (and thus accepting a name from content-disposition:) if the file
+ name part of the URL isn't "good enough".
+
+ Fixes #7628
+ Closes #7635
+
+- curl_easy_setopt: tweak the string copy wording
+
+ Reported-by: Yaobin Wen
+ Fixes #7632
+ Closes #7634
+
+- RELEASE-NOTES: synced
+
+- [Don J Olmstead brought this change]
+
+ cmake: sync CURL_DISABLE options
+
+ Adds the full listing of CURL_DISABLE options to the CMake build. Moves
+ all option code, except for CURL_DISABLE_OPENSSL_AUTO_LOA_CONFIG which
+ resides near OpenSSL configuration, to the same block of code. Also
+ sorts the options here and in the cmake config header.
+
+ Additionally sorted the CURL-DISABLE listing and fixed the
+ CURL_DISABLE_POP3 option.
+
+ Closes #7624
+
+Jay Satiro (25 Aug 2021)
+- KNOWN_BUGS: FTPS upload data loss with TLS 1.3
+
+ Bug: https://github.com/curl/curl/issues/6149
+ Reported-by: Bylon2@users.noreply.github.com
+
+ Closes https://github.com/curl/curl/pull/7623
+
+Daniel Stenberg (24 Aug 2021)
+- cmake: avoid poll() on macOS
+
+ ... like we do in configure builds. Since poll() on macOS is not
+ reliable enough.
+
+ Reported-by: marc-groundctl
+ Fixes #7595
+ Closes #7619
+
+- c-hyper: handle HTTP/1.1 => HTTP/1.0 downgrade on reused connection
+
+ Enable test 1074
+
+ Closes #7617
+
+- c-hyper: deal with Expect: 100-continue combined with POSTFIELDS
+
+ Enable test 1130 and 1131
+
+ Closes #7616
+
+- [a1346054 brought this change]
+
+ tests: be explicit about using 'python3' instead of 'python'
+
+ This fixes running tests in virtualenvs (or on distros) that no longer
+ have a symlink from python to python2 or python3.
+
+ Closes #7602
+
+- [a1346054 brought this change]
+
+ scripts: invoke interpreters through /usr/bin/env
+
+ Closes #7602
+
+- DISABLED: enable 11 more tests for hyper builds
+
+ Closes #7612
+
+- setopt: enable CURLOPT_IGNORE_CONTENT_LENGTH for hyper
+
+ Since this option is also used for FTP, it needs to work to set for
+ applications even if hyper doesn't support it for HTTP. Verified by test
+ 1137.
+
+ Updated docs to specify that the option doesn't work for HTTP when using
+ the hyper backend.
+
+ Closes #7614
+
+- test1138: remove trailing space to make work with hyper
+
+ Closes #7613
+
+- libcurl-errors.3: clarify two CURLUcode errors
+
+ CURLUE_BAD_HANDLE and CURLUE_BAD_PARTPOINTER should be for "bad" or
+ wrong pointers in a generic sense, not just for NULL pointers.
+
+ Reviewed-by: Jay Satiro
+
+ Ref: #7605
+ Closes #7611
+
+Jay Satiro (23 Aug 2021)
+- symbols-in-versions: fix CURLSSLBACKEND_QSOSSL last used version
+
+ ... and also change the 'Removed' column name to 'Last' since that
+ column is for the last version to contain the symbol.
+
+ Closes https://github.com/curl/curl/pull/7609
+
+Daniel Stenberg (23 Aug 2021)
+- urlapi.c:seturl: assert URL instead of using if-check
+
+ There's no code flow possible where this can happen. The assert makes
+ sure it also won't be introduced undetected in the future.
+
+ Closes #7610
+
+- curl-openssl.m4: show correct output for OpenSSL v3
+
+ Using 3.0.0 versions configure should now show this:
+
+ checking for OpenSSL headers version... 3.0.0 - 0x300
+ checking for OpenSSL library version... 3.0.0
+ checking for OpenSSL headers and library versions matching... yes
+
+ This output doesn't actually change what configure generates but is only
+ "cosmetic".
+
+ Reported-by: Randall S. Becker
+ Fixes #7606
+ Closes #7608
+
+Jay Satiro (22 Aug 2021)
+- mksymbolsmanpage.pl: Fix showing symbol's last used version
+
+ Prior to this change the symbol's deprecated version was erroneously
+ shown as its last used version.
+
+ Bug: https://github.com/curl/curl/commit/4e53b94#commitcomment-55239509
+ Reported-by: i-ky@users.noreply.github.com
+
+Daniel Stenberg (21 Aug 2021)
+- mksymbolsmanpage.pl: match symbols case insenitively
+
+ Follow-up to 4e53b9430c750 which made this bug show.
+
+ Reported-by: i-ky
+ Bug: https://github.com/curl/curl/commit/4e53b9430c7504de8984796e2a2091ec16f27136#commitcomment-55239253
+ Closes #7607
+
+- asyn-ares: call ares_freeaddrinfo() to clean up addrinfo results
+
+ As this leaks memory otherwise
+
+ Follow-up to ba904db0705c931
+
+ Closes #7599
+
+- [Ehren Bendler brought this change]
+
+ wolfssl: clean up wolfcrypt error queue
+
+ If wolfSSL is built in certain ways (OPENSSL_EXTRA or Debug), the error
+ queue gets added on to for each session and never freed. Fix it by
+ calling ERR_clear_error() like in vtls/openssl when needed. This func is
+ a no-op in wolfcrypt if the error queue is not enabled.
+
+ Closes #7594
+
+- man pages: remove trailing whitespaces
+
+ Extended test 1173 (via the manpage-syntax.pl script) to detect and warn
+ for them.
+
+ Ref: #7602
+ Reported-by: a1346054 on github
+ Closes #7604
+
+- mailmap: add Gleb Ivanovsky
+
+- config.d: escape the backslash properly
+
+ Closes #7603
+
+- [Don J Olmstead brought this change]
+
+ curl_setup.h: sync values for HTTP_ONLY
+
+ The values for HTTP_ONLY differed between CMakeLists.txt and
+ curl_setup.h. Sync them and sort the values in curl_setup.h to make it
+ easier to spot differences.
+
+ Closes #7601
+
+Jay Satiro (21 Aug 2021)
+- configure: set classic mingw minimum OS version to XP
+
+ - If the user has not specified a minimum OS version (via WINVER or
+ _WIN32_WINNT macros) then set it to Windows XP.
+
+ Prior to this change classic MinGW defaulted the minimum OS version
+ to Windows NT 4.0 which is way too old. At least Windows XP is needed
+ for getaddrinfo (which resolves hostnames to IPv6 addresses).
+
+ Ref: https://github.com/curl/curl/issues/7483#issuecomment-891597034
+
+ Closes https://github.com/curl/curl/pull/7581
+
+- schannel: Work around typo in classic mingw macro
+
+ - Define ALG_CLASS_DHASH (the typo from the include) to ALG_CLASS_HASH.
+
+ Prior to this change there was an incomplete fix to ignore the
+ CALG_TLS1PRF macro on those versions of MinGW where it uses the
+ ALG_CLASS_DHASH typoed macro.
+
+ Ref: 48cf45c
+ Ref: https://osdn.net/projects/mingw/ticket/38391
+ Ref: https://github.com/curl/curl/issues/2924
+
+ Closes https://github.com/curl/curl/pull/7580
+
+Daniel Stenberg (20 Aug 2021)
+- RELEASE-NOTES: synced
+
+- http_proxy: fix user-agent and custom headers for CONNECT with hyper
+
+ Enable test 287
+
+ Closes #7598
+
+- c-hyper: initial support for "dumping" 1xx HTTP responses
+
+ With the use hyper_request_on_informational()
+
+ Enable test 155 and 158
+
+ Closes #7597
+
+Marc Hoersken (18 Aug 2021)
+- tests/*server.pl: flush output before executing subprocess
+
+ Also avoid shell processes staying around by using exec.
+ This is necessary to avoid output data being buffering
+ inside the process chain of Perl, Bash/Shell and our
+ test server binaries. On non-Windows systems the exec
+ will also make the subprocess replace the intermediate
+ shell, but on Windows it will at least bind the processes
+ together since there is no real fork or exec available.
+
+ See: https://cygwin.com/cygwin-ug-net/highlights.html
+ and: https://docs.microsoft.com/cpp/c-runtime-library/exec-wexec-functions
+ Ref: https://github.com/curl/curl/pull/7530#issuecomment-900949010
+
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Jay Satiro
+ Closes #7530
+
+- CI: use GitHub Container Registry instead of Docker Hub
+
+ Avoid limits on Docker Hub and improve image pull/download speed.
+
+ Closes #7587
+
+Daniel Stenberg (18 Aug 2021)
+- openssl: when creating a new context, there cannot be an old one
+
+ Remove the previous handling that would call SSL_CTX_free(), and instead
+ add an assert that halts a debug build if there ever is a context
+ already set at this point.
+
+ Closes #7585
+
+Jay Satiro (18 Aug 2021)
+- KNOWN_BUGS: Renegotiate from server may cause hang for OpenSSL backend
+
+ Closes https://github.com/curl/curl/issues/6785
+
+Viktor Szakats (17 Aug 2021)
+- docs/BINDINGS: URL update
+
+Marc Hoersken (17 Aug 2021)
+- tests/server/*.c: align handling of portfile argument and file
+
+ 1. Call the internal variable portname (like pidname) everywhere.
+ 2. Have a variable wroteportfile (like wrotepidfile) everywhere.
+ 3. Make sure the file is cleaned up on exit (like pidfile).
+ 4. Add parameter --portfile to usage outputs everywhere.
+
+ Reviewed-by: Daniel Stenberg
+
+ Replaces #7523
+ Closes #7574
+
+Daniel Gustafsson (17 Aug 2021)
+- KNOWN_BUGS: Fix a number of typos in KNOWN_BUGS
+
+ Fixes a set of typos found in section 11.3.
+
+Daniel Stenberg (17 Aug 2021)
+- getparameter: fix the --local-port number parser
+
+ It could previously get tricked into parsing the uninitialized stack
+ based buffer.
+
+ Reported-by: Brian Carpenter
+ Closes #7582
+
+- KNOWN_BUGS: Can't use Secure Transport with Crypto Token Kit
+
+ Closes #7048
+
+- [Jan Verbeek brought this change]
+
+ curl: add warning for ignored data after quoted form parameter
+
+ In an argument like `-F 'x=@/etc/hostname;filename="foo"abc'` the `abc`
+ is ignored. This adds a warning if the ignored data isn't all
+ whitespace.
+
+ Closes #7394
+
+Jay Satiro (17 Aug 2021)
+- codeql: fix error "Resource not accessible by integration"
+
+ - Enable codeql writing security-events.
+
+ GitHub set the default permissions to read, apparently since earlier
+ this year.
+
+ Ref: https://github.com/github/codeql-action/issues/464
+ Ref: https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token/
+
+ Fixes https://github.com/curl/curl/issues/7575
+ Closes https://github.com/curl/curl/pull/7576
+
+- tool_operate: Fix --fail-early with parallel transfers
+
+ - Abort via progress callback to fail early during parallel transfers.
+
+ When a critical error occurs during a transfer (eg --fail-early
+ constraint) then other running transfers will be aborted via progress
+ callback and finish with error CURLE_ABORTED_BY_CALLBACK (42). In this
+ case, the callback error does not become the most recent error and a
+ custom error message is used for those transfers:
+
+ curld --fail --fail-early --parallel
+ https://httpbin.org/status/404 https://httpbin.org/delay/10
+
+ curl: (22) The requested URL returned error: 404
+ curl: (42) Transfer aborted due to critical error in another transfer
+
+ > echo %ERRORLEVEL%
+ 22
+
+ Fixes https://github.com/curl/curl/issues/6939
+ Closes https://github.com/curl/curl/pull/6984
+
+Daniel Stenberg (17 Aug 2021)
+- [Sergey Markelov brought this change]
+
+ sectransp: support CURLINFO_CERTINFO
+
+ Fixes #4130
+ Closes #7372
+
+- ngtcp2: remove the acked_crypto_offset struct field init
+
+ ... as it is gone from the API upstream.
+
+ Closes #7578
+
+- misc: update incorrect copyright year ranges
+
+ Closes #7577
+
+- KNOWN_BUGS: HTTP/3 quiche upload large file fails
+
+ Closes #7532
+
+- KNOWN_BUGS: CMake build with MIT Kerberos does not work
+
+ Closes #6904
+
+- TODO: add asynch getaddrinfo support
+
+ Closes #6746
+
+- RELEASE-NOTES: synced
+
+- [Artur Sinila brought this change]
+
+ http2: revert call the handle-closed function correctly on closed stream
+
+ Reverts 252790c5335a221
+
+ Assisted-by: Gergely Nagy
+ Fixes #7400
+ Closes #7525
+
+- [Patrick Monnerat brought this change]
+
+ auth: do not append zero-terminator to authorisation id in kerberos
+
+ RFC4752 Section 3.1 states "The authorization identity is not terminated
+ with a zero-valued (%x00) octet". Although a comment in code said it may
+ be needed anyway, nothing confirms it. In addition, servers may consider
+ it as part of the identity, causing a failure.
+
+ Closes #7008
+
+- [Patrick Monnerat brought this change]
+
+ auth: use sasl authzid option in kerberos
+
+ ... instead of deriving it from active ticket.
+ Closes #7008
+
+- [Patrick Monnerat brought this change]
+
+ auth: we do not support a security layer after kerberos authentication
+
+ Closes #7008
+
+- [Patrick Monnerat brought this change]
+
+ auth: properly handle byte order in kerberos security message
+
+ Closes #7008
+
+- [z2_ brought this change]
+
+ x509asn1: fix heap over-read when parsing x509 certificates
+
+ Assisted-by: Patrick Monnerat
+ Closes #7536
+
+- KNOWN_BUGS: Disconnects don't do verbose
+
+ Closes #6995
+
+- mailmap: fixup Michał Antoniak
+
+- [Michał Antoniak brought this change]
+
+ build: fix compiler warnings
+
+ For when CURL_DISABLE_VERBOSE_STRINGS and DEBUGBUILD flags are both
+ active.
+
+ - socks.c : warning C4100: 'lineno': unreferenced formal parameter
+ (co-authored by Daniel Stenberg)
+
+ - mbedtls.c: warning C4189: 'port': local variable is initialized but
+ not referenced
+
+ - schannel.c: warning C4189: 'hostname': local variable is initialized
+ but not referenced
+
+ Cloes #7528
+
+- [Gleb Ivanovsky brought this change]
+
+ CODE_STYLE-md: fix bold font style
+
+ Markdown gets confused with abundance of asterisks, so use underscores
+ instead.
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7569
+
+- [Gleb Ivanovsky brought this change]
+
+ CODE_STYLE-md: add missing comma
+
+ Reviewed-by: Daniel Gustafsson
+ Closes #7570
+
+- [Daniel Gustafsson brought this change]
+
+ examples/ephiperfifo.c: simplify signal handler
+
+ The signal handler registered for SIGINT is only handling SIGINT
+ so there isn't much need for inspecting the signo. While there,
+ rename the handler to be more specific.
+
+ g_should_exit should really be of sig_atomic_t type, but relying
+ on autoconf in the examples seems like a bad idea so keep that
+ for now.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #7310
+
+- c-hyper: initial step for 100-continue support
+
+ Enabled test 154
+
+ Closes #7568
+
+- [Ikko Ashimine brought this change]
+
+ vtls: fix typo in schannel_verify.c
+
+ occurence -> occurrence
+
+ Closes #7566
+
+- [Emil Engler brought this change]
+
+ curl_url_get.3: clarify about path and query
+
+ The current man-page lacks some details regarding the obtained path and
+ query.
+
+ Closes #7563
+
+- c-hyper: fix header value passed to debug callback
+
+ Closes #7567
+
+Viktor Szakats (12 Aug 2021)
+- cleanup: URL updates
+
+ - replace broken URL with the one it was most probably pointing to
+ when added (lib/tftp.c)
+ - replace broken URL with archive.org link (lib/curl_ntlm_wb.c)
+ - delete unnecessary protocol designator from archive.org URL
+ (docs/BINDINGS.md)
+
+ Closes #7562
+
+Daniel Stenberg (12 Aug 2021)
+- [April King brought this change]
+
+ DEPRECATE.md: linkify curl-library mailing list
+
+ Closes #7561
+
+- [Barry Pollard brought this change]
+
+ output.d: add method to suppress response bodies
+
+ Closes #7560
+
+- TODO: remove 'c-ares deviates on http://1346569778'
+
+ Fixed since 56a037cc0ad1b2 (7.77.0)
+
+- [Colin O'Dell brought this change]
+
+ BINDINGS.md: update links to use https where available
+
+ Closes #7558
+
+- asyn-ares.c: move all version number checks to the top
+
+ ... and use #ifdef [feature] in the code as per our guidelines.
+
+- ares: use ares_getaddrinfo()
+
+ ares_getaddrinfo() is the getaddrinfo() cloned provided by c-ares, introduced
+ in version 1.16.0.
+
+ With older c-ares versions, curl invokes ares_gethostbyname() twice - once for
+ IPv4 and once for IPv6 to resolve both addresses, and then combines the
+ returned results.
+
+ Reported-by: jjandesmet
+ Fixes #7364
+ Closes #7552
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: utilize crypto API functions to simplify
+
+ Closes #7551
+
+- [megatronking brought this change]
+
+ ngtcp2: reset the oustanding send buffer again when drained
+
+ Closes #7538
+
+Michael Kaufmann (10 Aug 2021)
+- progress: fix a compile warning on some systems
+
+ lib/progress.c:380:40: warning: conversion to 'long double' from
+ 'curl_off_t {aka long long int}' may alter its value [-Wconversion]
+
+ Closes #7549
+
+Daniel Stenberg (10 Aug 2021)
+- RELEASE-NOTES: synced
+
+- http: consider cookies over localhost to be secure
+
+ Updated test31.
+ Added test 392 to verify secure cookies used for http://localhost
+
+ Reviewed-by: Daniel Gustafsson
+ Fixes #6733
+ Closes #7263
+
+- TODO: erase secrets from heap/stack after use
+
+ Closes #7268
+
+Jay Satiro (10 Aug 2021)
+- hostip: Make Curl_ipv6works function independent of getaddrinfo
+
+ - Do not assume IPv6 is not working when getaddrinfo is not present.
+
+ The check to see if IPv6 actually works is now independent of whether
+ there is any resolver that can potentially resolve a hostname to IPv6.
+
+ Prior to this change if getaddrinfo() was not found at compile time then
+ Curl_ipv6works() would be defined as a macro that returns FALSE.
+
+ When getaddrinfo is not found then libcurl is built with CURLRES_IPV4
+ defined instead of CURLRES_IPV6, meaning that it cannot do IPv6 lookups
+ in the traditional way. With this commit if libcurl is built with IPv6
+ support (ENABLE_IPV6) but without getaddrinfo (CURLRES_IPV6), and the
+ IPv6 stack is actually working, then it is possible for libcurl to
+ resolve IPv6 addresses by using DoH.
+
+ Ref: https://github.com/curl/curl/issues/7483#issuecomment-890765378
+
+ Closes https://github.com/curl/curl/pull/7529
+
+- test1565: fix windows build errors
+
+ - Use our wait_ms() instead of sleep() since Windows doesn't have the
+ latter.
+
+ - Use a separate variable to keep track of whether the pthread_t thread
+ id is valid.
+
+ On Windows pthread_t is not an integer type. pthread offers no macro for
+ invalid pthread_t thread id, so validity is kept track of separately.
+
+ Closes https://github.com/curl/curl/pull/7527
+
+- [Jeremy Falcon brought this change]
+
+ winbuild/README.md: clarify GEN_PDB option
+
+ - Document that GEN_PDB option creates an external database.
+
+ Ref: https://github.com/curl/curl/issues/7502
+
+Daniel Stenberg (9 Aug 2021)
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: replace deprecated functions with nghttp3_conn_shutdown_stream_read
+
+ Closes #7546
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: rework the return value handling of ngtcp2_conn_writev_stream
+
+ Rework the return value handling of ngtcp2_conn_writev_stream and treat
+ NGTCP2_ERR_STREAM_SHUT_WR separately.
+
+ Closes #7546
+
+- configure: error out if both ngtcp2 and quiche are specified
+
+ Reported-by: Vincent Grande
+ See #7539
+ Closes #7545
+
+- [Jeff Mears brought this change]
+
+ easy: use a custom implementation of wcsdup on Windows
+
+ ... so that malloc/free overrides from curl_global_init are used for
+ wcsdup correctly.
+
+ Closes #7540
+
+- zuul: add an mbedtls3 CI job
+
+ Closes #7544
+
+- [Benau brought this change]
+
+ mbedTLS: initial 3.0.0 support
+
+ Closes #7428
+
+- RELEASE-NOTES: synced
+
+- configure.ac: revert bad nghttp2 library detection improvements
+
+ This reverts commit b4b34db65f9f8, 673753344c5f and 29c7cf79e8b.
+
+ The logic is now back to assuming that the nghttp2 lib is called nghttp2 and
+ nothing else.
+
+ Reported-by: Rui Pinheiro
+ Reported-by: Alex Crichton
+ Fixes #7514
+ Closes #7515
+
+- happy-eyeballs-timeout-ms.d: polish the wording
+
+ Reported-by: Josh Soref
+ Fixes #7433
+ Closes #7542
+
+- [modbw brought this change]
+
+ mbedtls_threadlock: fix unused variable warning
+
+ Closes #7393
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: compile with the latest ngtcp2 and nghttp3
+
+ Closes #7541
+
+Marc Hoersken (31 Jul 2021)
+- CI/cirrus: reduce compile time with increased parallism
+
+ Cirrus CI VMs have 2 CPUs, let's use them also for Windows builds.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #7505
+
+Daniel Stenberg (30 Jul 2021)
+- [Bin Lan brought this change]
+
+ tool/tests: fix potential year 2038 issues
+
+ The length of 'long' in a 32-bit system is 32 bits, which cannot be used
+ to save timestamps after 2038. Most operating systems have extended
+ time_t to 64 bits.
+
+ Remove the castings to long.
+
+ Closes #7466
+
+- compressed.d: it's a request, not an order
+
+ Clarified
+
+ Reported-by: Dan Jacobson
+ Reviewed-by: Daniel Gustafsson
+ Fixes #7516
+ Closes #7517
+
+- [Bernhard M. Wiedemann brought this change]
+
+ tests: make three tests pass until 2037
+
+ after 2038 something in test1915 fails on 32-bit OSes
+
+ Closes #7512
+
+Daniel Gustafsson (30 Jul 2021)
+- connect: remove superfluous conditional
+
+ Commit dbd16c3e2 cleaned up the logic for traversing the addrinfos,
+ but the move left a conditional on ai which no longer is needed as
+ the while loop reevaluation will cover it.
+
+ Closes #7511
+ Reviewed-by: Carlo Marcelo Arenas Belón
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (29 Jul 2021)
+- RELEASE-NOTES: synced
+
+ and bump curlver to 7.79.0 for next release
+
+Marc Hoersken (29 Jul 2021)
+- tests/*server.py: remove pidfile on server termination
+
+ Avoid pidfile leaking/laying around after server already exited.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #7506
+
+Daniel Gustafsson (27 Jul 2021)
+- tool_main: fix typo in comment
+
+ The referred to library is NSPR, so fix the switched around characters.
+
+Daniel Stenberg (28 Jul 2021)
+- [Aleksandr Krotov brought this change]
+
+ bearssl: support CURLOPT_CAINFO_BLOB
+
+ Closes #7468
+
+- curl.1: mention "global" flags
+
+ Mention options that are "global". A global command line option is one
+ that doesn't get reset at --next uses and therefore don't need to be
+ used again.
+
+ Reported-by: Josh Soref
+
+ Fixes #7457
+ Closes #7510
+
+- CURLOPT_DOH_URL.3: CURLOPT_OPENSOCKETFUNCTION is not inherited
+
+ Reported-by: Daniel Woelfel
+ Fixes #7441
+ Closes #7509
+
+- KNOWN_BUGS: add more HTTP/3 problems
+
+ Closes #7351
+ Closes #7339
+ Closes #7125
+
+Marc Hoersken (27 Jul 2021)
+- CI/azure: reduce compile time with increased parallism
+
+ Azure Pipelines CI VMs have 2 CPUs, let's use them.
+
+ Closes #7489
+
+Jay Satiro (27 Jul 2021)
+- [Josh Soref brought this change]
+
+ docs: fix grammar
+
+ Fixes https://github.com/curl/curl/issues/7444
+ Fixes https://github.com/curl/curl/issues/7451
+ Fixes https://github.com/curl/curl/issues/7465
+ Closes https://github.com/curl/curl/pull/7495
+
+- mail-rcpt.d: fix grammar
+
+ Remove confusing sentence that says to specify an e-mail address for
+ mail transfer, since that's implied.
+
+ Reported-by: Josh Soref
+
+ Fixes https://github.com/curl/curl/issues/7452
+ Closes https://github.com/curl/curl/pull/7495
+
+Daniel Stenberg (27 Jul 2021)
+- c-hyper: remove the hyper_executor_poll() loop from Curl_http
+
+ 1. it's superfluous
+ 2. it didn't work identically to the Curl_hyper_stream one which could
+ cause problems like #7486
+
+ Pointed-out-by: David Cook
+ Closes #7499
+
+- curl-openssl.m4: check lib64 for the pkg-config file
+
+ OpenSSL recently started putting the libs in $prefix/lib64 on 'make
+ install', so we check that directory for pkg-config data if the 'lib'
+ check fails.
+
+ Closes #7503
+
+- CURLOPT_SSL_CTX_*.3: tidy up the example
+
+ Use the proper code style. Don't store return codes that aren't read.
+ Copy the same example into CURLOPT_SSL_CTX_FUNCTION.3 as well.
+
+ Closes #7500
+
+- example/cookie_interface: fix scan-build printf warning
+
+ Follow-up to 4b79c4fb565
+
+ Fixes #7497
+ Closes #7498
+
+- [Josh Soref brought this change]
+
+ limit-rate.d: clarify base unit
+
+ Fixes #7439
+ Closes #7494
+
+- [Carlo Marcelo Arenas Belón brought this change]
+
+ examples/cookie_interface: avoid printfing time_t directly
+
+ time_t representation is undefined and varies on bitsize and signedness,
+ and as of C11 could be even non integer.
+
+ instead of casting to unsigned long (which would truncate in systems
+ with a 32bit long after 2106) use difftime to get the elapsed time as a
+ double and print that (without decimals) instead.
+
+ alternatively a cast to curl_off_t and its corresponding print
+ formatting could have been used (at least in POSIX) but portability and
+ curl agnostic code was prioritized.
+
+ Closes #7490
+
+Marc Hoersken (25 Jul 2021)
+- tests/servers: remove obsolete pid variable
+
+ Variable is not used since pidfile handling moved to util.[ch]
+
+ Reviewed-by: Jay Satiro
+ Closes #7482
+
+- tests/servers: use our platform-aware pid for server verification
+
+ The pid used for server verification is later stored as pid2 in
+ the hash of running test servers and therefore used for shutdown.
+
+ The pid used for shutdown must be the platform-aware (Win32) pid
+ to avoid leaking test servers while running them using Cygwin/msys.
+
+ Reviewed-by: Jay Satiro
+ Closes #7481
+
+- tests/runtests.pl: cleanup copy&paste mistakes and unused code
+
+ Reviewed-by: Jay Satiro
+ Part of #7481
+
+Daniel Stenberg (25 Jul 2021)
+- RELEASE-NOTES: synced
+
+ bumped to 7.78.1 for next release
+
+- http_proxy: clear 'sending' when the outgoing request is sent
+
+ ... so that Curl_connect_getsock() will know how to wait for the socket
+ to become readable and not writable after the entire CONNECT request has
+ been issued.
+
+ Regression added in 7.77.0
+
+ Reported-by: zloi-user on github
+ Assisted-by: Jay Satiro
+ Fixes #7155
+ Closes #7484
+
+Jay Satiro (25 Jul 2021)
+- [Josh Soref brought this change]
+
+ openssl: fix grammar
+
+ Closes https://github.com/curl/curl/pull/7480
+
+- configure.ac: tweak nghttp2 library name fix again
+
+ - Change extraction to handle multiple library names returned by
+ pkg-config (eg a possible scenario with pkg-config --static).
+
+ Ref: https://github.com/curl/curl/pull/7472
+
+ Closes https://github.com/curl/curl/pull/7485
+
+Dan Fandrich (23 Jul 2021)
+- Get rid of the unused HAVE_SIG_ATOMIC_T et. al.
+
+ It was added in 2006 but I see no evidence it was ever used.
+
+Jay Satiro (23 Jul 2021)
+- docs: change max-filesize caveat again
+
+ - Add protocols field to max-filesize.d.
+
+ - Revert wording on unknown file size caveat and do not discuss specific
+ protocols in that section.
+
+ Partial revert of ecf0225. All max-filesize options now have the list of
+ protocols and it's clearer just to have that list without discussing
+ specific protocols in the caveat.
+
+ Reported-by: Josh Soref
+
+ Ref: https://github.com/curl/curl/issues/7453#issuecomment-884128762
+
+Daniel Stenberg (22 Jul 2021)
+- [Christian Weisgerber brought this change]
+
+ configure: tweak nghttp2 library name fix
+
+ commit 29c7cf79e8b44cf (shipped in 7.78.0) introduced a problem by
+ assuming that LIB_H2 does not have any leading whitespace. At least
+ OpenBSD's native pkg-config can produce such whitespace, though:
+
+ $ pkg-config --libs-only-l libnghttp2
+ -lnghttp2
+
+ As a result, the configure check for libnghttp2 will erroneously fail.
+
+ Bug: https://curl.se/mail/lib-2021-07/0050.html
+ Closes #7472
+
+- [Bastian Krause brought this change]
+
+ docs/MQTT: update state of username/password support
+
+ PR #7243 implemented username/password support for MQTT, so let's drop
+ these items from the caveats.
+
+ Signed-off-by: Bastian Krause <bst@pengutronix.de>
+
+ Closes #7474
+
+- [Oleg Pudeyev brought this change]
+
+ CURLMOPT_TIMERFUNCTION.3: remove misplaced "time"
+
+ Closes #7470
+
Version 7.78.0 (21 Jul 2021)
Daniel Stenberg (21 Jul 2021)
@@ -192,7 +3463,7 @@ Daniel Stenberg (18 Jul 2021)
Closes #7411
Closes #7412
-- [MAntoniak brought this change]
+- [Michał Antoniak brought this change]
lib: fix compiler warnings with CURL_DISABLE_NETRC
@@ -279,7 +3550,7 @@ Daniel Stenberg (18 Jul 2021)
Fixes #7415
Closes #7417
-- [MAntoniak brought this change]
+- [Michał Antoniak brought this change]
mbedtls: Remove unnecessary include
@@ -1789,19 +5060,19 @@ Daniel Stenberg (3 Jun 2021)
Add test 3017 and 3018 to verify.
Closes #7166
-- [theawless brought this change]
+- [Abhinav Singh brought this change]
cmake: add CURL_DISABLE_NTLM option
Closes #7028
-- [theawless brought this change]
+- [Abhinav Singh brought this change]
configure: add --disable-ntlm option
Closes #7028
-- [theawless brought this change]
+- [Abhinav Singh brought this change]
define: re-add CURL_DISABLE_NTLM and corresponding ifdefs
@@ -3040,7 +6311,7 @@ Daniel Stenberg (4 May 2021)
Closes #6960
-- [MAntoniak brought this change]
+- [Michał Antoniak brought this change]
gskit: fix CURL_DISABLE_PROXY build
@@ -3050,7 +6321,7 @@ Daniel Stenberg (4 May 2021)
Closes #6981
-- [MAntoniak brought this change]
+- [Michał Antoniak brought this change]
gskit: fix undefined reference to 'conn'
@@ -5027,3065 +8298,3 @@ Daniel Gustafsson (26 Feb 2021)
Closes #6665
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Signed-off-by: Jean-Philippe Menil <jpmenil@gmail.com>
-
-- gnutls: Fix nettle discovery
-
- Commit e06fa7462ac258c removed support for libgcrypt leaving only
- support for nettle which has been the default crypto library in
- GnuTLS for a long time. There were however a few conditionals on
- USE_GNUTLS_NETTLE which cause compilation errors in the metalink
- code (as it used the gcrypt fallback instead as a result). See the
- below autobuild for an example of the error:
-
- https://curl.se/dev/log.cgi?id=20210225123226-30704#prob1
-
- This removes all uses of USE_GNUTLS_NETTLE and also removes the
- gcrypt support from the metalink code while at it.
-
- Closes #6656
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
-
-- cookies: Support multiple -b parameters
-
- Previously only a single -b cookie parameter was supported with the last
- one winning. This adds support for supplying multiple -b params to have
- them serialized semicolon separated. Both cookiefiles and cookies can be
- entered multiple times.
-
- Closes #6649
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
-
-Daniel Stenberg (25 Feb 2021)
-- build: remove all traces of USE_BLOCKING_SOCKETS
-
- libcurl doesn't behave properly with the define set
-
- Closes #6655
-
-- RELEASE-NOTES: synced
-
-Daniel Gustafsson (25 Feb 2021)
-- docs: Fix typos
-
- Random typos spotted when skimming docs.
-
-- cookies: Use named parameters in header prototypes
-
- Align header with project style of using named parameters in the
- function prototypes to aid readability and self-documentation.
-
- Closes #6653
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
-
-Daniel Stenberg (24 Feb 2021)
-- urldata: make 'actions[]' use unsigned char instead of int
-
- ... as it only needs a few bits per index anyway.
-
- Reviewed-by: Daniel Gustafsson
- Closes #6648
-
-- configure: fail if --with-quiche is used and quiche isn't found
-
- Closes #6652
-
-- [Gregor Jasny brought this change]
-
- cmake: use CMAKE_INSTALL_INCLUDEDIR indirection
-
- Reviewed-by: Sergei Nikulov
- Closes #6440
-
-Viktor Szakats (23 Feb 2021)
-- mingw: enable using strcasecmp()
-
- This makes the 'Features:' list sorted case-insensitively,
- bringing output in-line with *nix builds.
-
- Reviewed-by: Jay Satiro
- Closes #6644
-
-- build: delete unused feature guards
-
- - `HAVE_STRNCASECMP`
- - `HAVE_TCGETATTR`
- - `HAVE_TCSETATTR`
-
- Reviewed-by: Jay Satiro
- Reviewed-by: Daniel Stenberg
- Closes #6645
-
-Jay Satiro (23 Feb 2021)
-- docs: add CURLOPT_CURLU to 'See also' in curl_url_ functions
-
- Closes https://github.com/curl/curl/pull/6639
-
-Daniel Stenberg (23 Feb 2021)
-- [Jacob Hoffman-Andrews brought this change]
-
- configure: make hyper opt-in, and fail if missing
-
- Previously, configure would look for hyper by default, and use it if
- found; otherwise it would not use hyper, and not error.
-
- Now, configure will not look for hyper unless --with-hyper is passed. If
- configure looks for hyper and fails, it will error.
-
- Also, add -ld -lpthread -lm to Hyper's libs. I think they are required.
-
- Closes #6598
-
-- multi: do once-per-transfer inits in before_perform in DID state
-
- ... since the state machine might go to RATELIMITING and then back to
- PERFORMING doing once-per-transfer inits in that function is wrong and
- it caused problems with receiving chunked HTTP and it set the
- PRETRANSFER time much too often...
-
- Regression from b68dc34af341805aeb7b3715 (shipped in 7.75.0)
-
- Reported-by: Amaury Denoyelle
- Fixes #6640
- Closes #6641
-
-- RELEASE-NOTES: synced
-
-- CODE_STYLE.md: fix broken link to INTERNALS
-
- ... the link would only work if browsed on GitHub, while this link now
- takes the user to the website instead and thus should work on either.
-
- Reported-by: David Demelier
-
-- curl_url_set.3: mention CURLU_PATH_AS_IS
-
- ... it has been supported since the URL API was added.
-
- Bug: https://curl.se/mail/lib-2021-02/0046.html
-
- Closes #6638
-
-Viktor Szakats (21 Feb 2021)
-- time: enable 64-bit time_t in supported mingw environments
-
- (Unless 32-bit `time_t` is selected manually via the `_USE_32BIT_TIME_T`
- mingw macro.)
-
- Previously, 64-bit `time_t` was enabled on VS2005 and newer only, and
- 32-bit `time_t` was used on all other Windows builds.
-
- Assisted-by: Jay Satiro
- Closes #6636
-
-Jay Satiro (20 Feb 2021)
-- test1188: Check for --fail HTTP status
-
- - Change the test to check for curl error on HTTP 404 Not Found.
-
- test1188 tests "--write-out with %{onerror} and %{urlnum} to stderr".
- Prior to this change it did that by specifying a non-existent host which
- would cause an error. ISPs may hijack DNS and resolve non-existent hosts
- so the test would not work if that was the case.
-
- Ref: https://en.wikipedia.org/wiki/DNS_hijacking#Manipulation_by_ISPs
- Ref: https://github.com/curl/curl/issues/6621
- Ref: https://github.com/curl/curl/pull/6623
-
- Closes https://github.com/curl/curl/pull/6637
-
-- memdebug: close debug logfile explicitly on exit
-
- - Use atexit to register a dbg cleanup function that closes the logfile.
-
- LeakSantizier (LSAN) calls _exit() instead of exit() when a leak is
- detected on exit so the logfile must be closed explicitly or data could
- be lost. Though _exit() does not call atexit handlers such as this,
- LSAN's call to _exit() comes after the atexit handlers are called.
-
- Prior to this change the logfile was not explicitly closed so it was
- possible that if LSAN detected a leak and called _exit (which does
- not flush or close files like exit) then the logfile could be missing
- data. That could then cause curl's memanalyze to report false leaks
- (eg a malloc was recorded to the logfile but the corresponding free was
- discarded from the buffer instead of written to the logfile, then
- memanalyze reports that as a leak).
-
- Ref: https://github.com/google/sanitizers/issues/1374
-
- Bug: https://github.com/curl/curl/pull/6591#issuecomment-780396541
-
- Closes https://github.com/curl/curl/pull/6620
-
-- curl_multibyte: always return a heap-allocated copy of string
-
- - Change the Windows char <-> UTF-8 conversion functions to return an
- allocated copy of the passed in string instead of the original.
-
- Prior to this change the curlx_convert_ functions would, as what I
- assume was an optimization, not make a copy of the passed in string if
- no conversion was required. No conversion is required in non-UNICODE
- Windows builds since our tchar strings are type char and remain in
- whatever the passed in encoding is, which is assumed to be UTF-8 but may
- be other encoding.
-
- In contrast the UNICODE Windows builds require conversion
- (wchar <-> char) and do return a copy. That inconsistency could lead to
- programming errors where the developer expects a copy, and does not
- realize that won't happen in all cases.
-
- Closes https://github.com/curl/curl/pull/6602
-
-Viktor Szakats (19 Feb 2021)
-- http: add new files missed from referrer commit
-
- Ref: 44872aefc2d54f297caf2b0cc887df321bc9d791
- Ref: #6591
-
-- http: add support to read and store the referrer header
-
- - add CURLINFO_REFERER libcurl option
- - add --write-out '%{referer}' command-line option
- - extend --xattr command-line option to fill user.xdg.referrer.url extended
- attribute with the referrer (if there was any)
-
- Closes #6591
-
-Daniel Stenberg (19 Feb 2021)
-- urldata: remove the _ORIG suffix from string names
-
- It doesn't provide any useful info but only makes the names longer.
-
- Closes #6624
-
-- url: fix memory leak if OOM in the HSTS handling
-
- Reported-by: Viktor Szakats
- Bug: https://github.com/curl/curl/pull/6627#issuecomment-781626205
-
- Closes #6628
-
-- gnutls: assume nettle crypto support
-
- nettle has been the default crypto library with GnuTLS since 2010. By
- dropping support for the previous libcrypto, we simplify code.
-
- Closes #6625
-
-- asyn-ares: use consistent resolve error message
-
- ... with the help of Curl_resolver_error() which now is moved from
- asyn-thead.c and is provided globally for this purpose.
-
- Follow-up to 35ca04ce1b77636
-
- Makes test 1188 work for c-ares builds
-
- Closes #6626
-
-Viktor Szakats (18 Feb 2021)
-- ci: stop building on freebsd-12-1
-
- An updated freebsd-12-2 image was added a few months ago, and this
- older one is consistently failing to go past `pkginstall`:
- ```
- Newer FreeBSD version for package py37-mlt:
- To ignore this error set IGNORE_OSVERSION=yes
- - package: 1202000
- - running kernel: 1201000
- Ignore the mismatch and continue? [Y/n]: pkg: repository FreeBSD contains packages for wrong OS version: FreeBSD:12:amd64
- ```
-
- FreeBSD thread suggests that 12.1 is EOL, and best to avoid.
-
- Ref: https://forums.freebsd.org/threads/78856/
-
- Reviewed-by: Daniel Stenberg
- Closes #6622
-
-Daniel Stenberg (18 Feb 2021)
-- test1188: change error from connect to resolve error
-
- Using the %NOLISTENPORT to trigger a connection failure is somewhat
- "risky" (since it isn't guaranteed to not be listened to) and caused
- occasional CI problems. This fix changes the infused error to be a more
- reliable one but still verifies the --write-out functionality properly -
- which is the purpose of this test.
-
- Reported-by: Jay Satiro
- Fixes #6621
- Closes #6623
-
-- url.c: use consistent error message for failed resolve
-
-- BUGS: language polish
-
-- wolfssl: don't store a NULL sessionid
-
- This caused a memory leak as the session id cache entry was still
- erroneously stored with a NULL sessionid and that would later be treated
- as not needed to get freed.
-
- Reported-by: Gisle Vanem
- Fixes #6616
- Closes #6617
-
-- parse_proxy: fix a memory leak in the OOM path
-
- Reported-by: Jay Satiro
- Reviewed-by: Jay Satiro
- Reviewed-by: Emil Engler
-
- Closes #6614
- Bug: https://github.com/curl/curl/pull/6591#issuecomment-780396541
-
-Jay Satiro (17 Feb 2021)
-- url: fix possible use-after-free in default protocol
-
- Prior to this change if the user specified a default protocol and a
- separately allocated non-absolute URL was used then it was freed
- prematurely, before it was then used to make the replacement URL.
-
- Bug: https://github.com/curl/curl/issues/6604#issuecomment-780138219
- Reported-by: arvids-kokins-bidstack@users.noreply.github.com
-
- Closes https://github.com/curl/curl/pull/6613
-
-Daniel Stenberg (16 Feb 2021)
-- multi: rename the multi transfer states
-
- While working on documenting the states it dawned on me that step one is
- to use more descriptive names on the states. This also changes prefix on
- the states to make them shorter in the source.
-
- State names NOT ending with *ing are transitional ones.
-
- Closes #6612
-
-Viktor Szakats (16 Feb 2021)
-- http: do not add a referrer header with empty value
-
- Previously an empty 'Referer:' header was added to the HTTP request when
- passing `--referer ';auto'` or `--referer ''` on the command-line. This
- patch makes `--referer` work like `--header 'Referer:'` and will only add
- the header if it has a non-zero length value.
-
- Reviewed-by: Jay Satiro
- Closes #6610
-
-Daniel Stenberg (16 Feb 2021)
-- lib: remove 'conn->data' completely
-
- The Curl_easy pointer struct entry in connectdata is now gone. Just
- before commit 215db086e0 landed on January 8, 2021 there were 919
- references to conn->data.
-
- Closes #6608
-
-- openldap: pass 'data' to the callbacks instead of 'conn'
-
-Jay Satiro (15 Feb 2021)
-- doh: Fix sharing user's resolve list with DOH handles
-
- - Share the shared object from the user's easy handle with the DOH
- handles.
-
- Prior to this change if the user had set a shared object with shared
- cached DNS (CURL_LOCK_DATA_DNS) for their easy handle then that wasn't
- used by any associated DOH handles, since they used the multi's default
- hostcache.
-
- This change means all the handles now use the same hostcache, which is
- either the shared hostcache from the user created shared object if it
- exists or if not then the multi's default hostcache.
-
- Reported-by: Manuj Bhatia
-
- Fixes https://github.com/curl/curl/issues/6589
- Closes https://github.com/curl/curl/pull/6607
-
-Daniel Stenberg (15 Feb 2021)
-- http2: remove conn->data use
-
- ... but instead use a private alternative that points to the "driving
- transfer" from the connection. We set the "user data" associated with
- the connection to be the connectdata struct, but when we drive transfers
- the code still needs to know the pointer to the transfer. We can change
- the user data to become the Curl_easy handle, but with older nghttp2
- version we cannot dynamically update that pointer properly when
- different transfers are used over the same connection.
-
- Closes #6520
-
-- openssl: remove conn->data use
-
- We still make the trace callback function get the connectdata struct
- passed to it, since the callback is anchored on the connection.
-
- Repeatedly updating the callback pointer to set 'data' with
- SSL_CTX_set_msg_callback_arg() doesn't seem to work, probably because
- there might already be messages in the queue with the old pointer.
-
- This code therefore makes sure to set the "logger" handle before using
- OpenSSL calls so that the right easy handle gets used for tracing.
-
- Closes #6522
-
-- RELEASE-NOTES: synced
-
-Jay Satiro (14 Feb 2021)
-- doh: add options to disable ssl verification
-
- - New libcurl options CURLOPT_DOH_SSL_VERIFYHOST,
- CURLOPT_DOH_SSL_VERIFYPEER and CURLOPT_DOH_SSL_VERIFYSTATUS do the
- same as their respective counterparts.
-
- - New curl tool options --doh-insecure and --doh-cert-status do the same
- as their respective counterparts.
-
- Prior to this change DOH SSL certificate verification settings for
- verifyhost and verifypeer were supposed to be inherited respectively
- from CURLOPT_SSL_VERIFYHOST and CURLOPT_SSL_VERIFYPEER, but due to a bug
- were not. As a result DOH verification remained at the default, ie
- enabled, and it was not possible to disable. This commit changes
- behavior so that the DOH verification settings are independent and not
- inherited.
-
- Ref: https://github.com/curl/curl/pull/4579#issuecomment-554723676
-
- Fixes https://github.com/curl/curl/issues/4578
- Closes https://github.com/curl/curl/pull/6597
-
-- hostip: fix crash in sync resolver builds that use DOH
-
- - Guard some Curl_async accesses with USE_CURL_ASYNC instead of
- !CURLRES_SYNCH.
-
- This is another follow-up to 8335c64 which moved the async struct from
- the connectdata struct into the Curl_easy struct. A previous follow-up
- 6cd167a fixed building for sync resolver by guarding some async struct
- accesses with !CURLRES_SYNCH. The problem is since DOH (DNS-over-HTTPS)
- is available as an asynchronous secondary resolver the async struct may
- be used even when libcurl is built for the sync resolver. That means
- that CURLRES_SYNCH and USE_CURL_ASYNC may be defined at the same time.
-
- Closes https://github.com/curl/curl/pull/6603
-
-Daniel Stenberg (13 Feb 2021)
-- KNOWN_BUGS: cannot enable LDAPS on Windows with cmake
-
- Reported-by: Jack Boos Yu
- Closes #6284
-
-- KNOWN_BUGS: Excessive HTTP/2 packets with TCP_NODELAY
-
- Reported-by: Alex Xu
- Closes #6363
-
-- http: use credentials from transfer, not connection
-
- HTTP auth "accidentally" worked before this cleanup since the code would
- always overwrite the connection credentials with the credentials from
- the most recent transfer and since HTTP auth is typically done first
- thing, this has not been an issue. It was still wrong and subject to
- possible race conditions or future breakage if the sequence of functions
- would change.
-
- The data.set.str[] strings MUST remain unmodified exactly as set by the
- user, and the credentials to use internally are instead set/updated in
- state.aptr.*
-
- Added test 675 to verify different credentials used in two requests done
- over a reused HTTP connection, which previously behaved wrongly.
-
- Fixes #6542
- Closes #6545
-
-- test433: clear some home dir env variables
-
- Follow-up to bd6b54ba1f55b5
-
- ... so that XDG_CONFIG_HOME is the only home dir variable set and thus
- used correctly in the test!
-
- Fixes #6599
- Closes #6600
-
-- RELEASE-NOTES: synced
-
- bumped the version to 7.76.0
-
-- travis: install libgsasl-dev to add that to the builds
-
- Closes #6588
-
-- urldata: don't touch data->set.httpversion at run-time
-
- Rename it to 'httpwant' and make a cloned field in the state struct as
- well for run-time updates.
-
- Also: refuse non-supported HTTP versions. Verified with test 129.
-
- Closes #6585
-
-Viktor Szakats (11 Feb 2021)
-- tests: disable .curlrc in more environments
-
- by also setting CURL_HOME and XDG_CONFIG_HOME envvars to the local
- directory.
-
- Reviewed-by: Daniel Stenberg
- Fixes #6595
- Closes #6596
-
-- docs/Makefile.inc: format to be update-friendly
-
- - one source file per line
- - convert tabs to spaces
- - do not align line-continuation backslashes
- - sort source files alphabetically
-
- Reviewed-by: Daniel Stenberg
- Closes #6593
-
-Daniel Stenberg (11 Feb 2021)
-- curl: provide libgsasl version and feature info in -V output
-
- Closes #6592
-
-- gsasl: provide CURL_VERSION_GSASL if built-in
-
- To let applications know the feature is available.
-
- Closes #6592
-
-- curl: add --fail-with-body
-
- Prevent both --fail and --fail-with-body on the same command line.
-
- Verify with test 349, 360 and 361.
-
- Closes #6449
-
-- TODO: remove HSTS
-
- Provided now since commit 7385610d0c74
-
-Jay Satiro (10 Feb 2021)
-- tests: Fix tests failing due to change in curl --help
-
- Follow-up to parent 3183217 which added add missing <mode> argument to
- --create-file-mode <mode>.
-
- Ref: https://github.com/curl/curl/issues/6590
-
-- tool_help: add missing argument for --create-file-mode
-
- Prior to this change the required argument was not shown in curl --help.
-
- before:
- --create-file-mode File mode for created files
-
- after:
- --create-file-mode <mode> File mode (octal) for created files
-
- Reported-by: ZimCodes@users.noreply.github.com
-
- Fixes https://github.com/curl/curl/issues/6590
-
-- create-file-mode.d: add missing Arg tag
-
- Prior to this change the required argument was not shown.
-
- curl.1 before: --create-file-mode
- curl.1 after: --create-file-mode <mode>
-
- Reported-by: ZimCodes@users.noreply.github.com
-
- Fixes https://github.com/curl/curl/issues/6590
-
-Viktor Szakats (10 Feb 2021)
-- gsasl: fix errors/warnings building against libgsasl
-
- - also fix an indentation
- - make Curl_auth_gsasl_token() use CURLcode (by Daniel Stenberg)
-
- Ref: https://github.com/curl/curl/pull/6372#issuecomment-776118711
- Ref: https://github.com/curl/curl/pull/6588
-
- Reviewed-by: Jay Satiro
- Assisted-by: Daniel Stenberg
- Reviewed-by: Simon Josefsson
- Closes #6587
-
-- Makefile.m32: add support for libgsasl dependency
-
- Reviewed-by: Marcel Raad
- Closes #6586
-
-Marcel Raad (10 Feb 2021)
-- ngtcp2: clarify calculation precedence
-
- As suggested by Codacy/cppcheck.
-
- Closes https://github.com/curl/curl/pull/6576
-
-- server: remove redundant condition
-
- `end` is always non-null here.
-
- Closes https://github.com/curl/curl/pull/6576
-
-- lib: remove redundant code
-
- Closes https://github.com/curl/curl/pull/6576
-
-- mqttd: remove unused variable
-
- Closes https://github.com/curl/curl/pull/6576
-
-- tool_paramhlp: reduce variable scope
-
- Closes https://github.com/curl/curl/pull/6576
-
-- tests: reduce variable scopes
-
- Closes https://github.com/curl/curl/pull/6576
-
-- lib: reduce variable scopes
-
- Closes https://github.com/curl/curl/pull/6576
-
-- ftp: fix Codacy/cppcheck warning about null pointer arithmetic
-
- Increment `bytes` only if it is non-null.
-
- Closes https://github.com/curl/curl/pull/6576
-
-Daniel Stenberg (9 Feb 2021)
-- ngtcp2: adapt to the new recv_datagram callback
-
-- quiche: fix build error: use 'int' for port number
-
- Follow-up to cb2dc1ba8
-
-- ftp: add 'list_only' to the transfer state struct
-
- and rename it from 'ftp_list_only' since it is also used for SSH and
- POP3. The state is updated internally for 'type=D' FTP URLs.
-
- Added test case 1570 to verify.
-
- Closes #6578
-
-- ftp: add 'prefer_ascii' to the transfer state struct
-
- ... and make sure the code never updates 'set.prefer_ascii' as it breaks
- handle reuse which should use the setting as the user specified it.
-
- Added test 1569 to verify: it first makes an FTP transfer with ';type=A'
- and then another without type on the same handle and the second should
- then use binary. Previously, curl failed this.
-
- Closes #6578
-
-- RELEASE-NOTES: synced
-
-- [Jacob Hoffman-Andrews brought this change]
-
- vtls: initial implementation of rustls backend
-
- This adds a new TLS backend, rustls. It uses the C-to-rustls bindings
- from https://github.com/abetterinternet/crustls.
-
- Rustls is at https://github.com/ctz/rustls/.
-
- There is still a fair bit to be done, like sending CloseNotify on
- connection shutdown, respecting CAPATH, and properly indicating features
- like "supports TLS 1.3 ciphersuites." But it works well enough to make
- requests and receive responses.
-
- Blog post for context:
- https://www.abetterinternet.org/post/memory-safe-curl/
-
- Closes #6350
-
-- [Simon Josefsson brought this change]
-
- sasl: support SCRAM-SHA-1 and SCRAM-SHA-256 via libgsasl
-
- Closes #6372
-
-Jay Satiro (9 Feb 2021)
-- lib: use int type for more port variables
-
- This is a follow-up to 764c6bd. Prior to that change port variables
- were usually type long.
-
- Closes https://github.com/curl/curl/pull/6553
-
-- tool_writeout: refactor write-out and write-out json
-
- - Deduplicate the logic used by write-out and write-out json.
-
- Rather than have separate writeLong, writeString, etc, logic for
- each of write-out and write-out json instead have respective shared
- functions that can output either format and a 'use_json' parameter to
- indicate whether it is json that is output.
-
- This will make it easier to maintain. Rather than have to go through
- two sets of logic now we only have to go through one.
-
- - Support write-out %{errormsg} and %{exitcode} in json.
-
- - Clarify in the doc that %{exitcode} is the exit code of the transfer.
-
- Prior to this change it just said "The numerical exitcode" which
- implies it's the exit code of the tool, and it's not necessarily that.
-
- Closes https://github.com/curl/curl/pull/6544
-
-- lib: drop USE_SOCKETPAIR in favor of CURL_DISABLE_SOCKETPAIR
-
- .. since the former is undocumented and they both do the same thing.
-
- Closes https://github.com/curl/curl/pull/6517
-
-- curl_multibyte: fall back to local code page stat/access on Windows
-
- If libcurl is built with Unicode support for Windows then it is assumed
- the filename string is Unicode in UTF-8 encoding and it is converted to
- UTF-16 to be passed to the wide character version of the respective
- function (eg wstat). However the filename string may actually be in the
- local encoding so, even if it successfully converted to UTF-16, if it
- could not be stat/accessed then try again using the local code page
- version of the function (eg wstat fails try stat).
-
- We already do this with fopen (ie wfopen fails try fopen), so I think it
- makes sense to extend it to stat and access functions.
-
- Closes https://github.com/curl/curl/pull/6514
-
-- [Stephan Szabo brought this change]
-
- file: Support unicode urls on windows
-
- Closes https://github.com/curl/curl/pull/6501
-
-- [Vincent Torri brought this change]
-
- cmake: fix import library name for non-MS compiler on Windows
-
- - Use _imp.lib suffix only for Microsoft's compiler (MSVC).
-
- Prior to this change library suffix _imp.lib was used for the import
- library on Windows regardless of compiler.
-
- With this change the other compilers should now use their default
- suffix which should be .dll.a.
-
- This change is motivated by the usage of pkg-config on MSYS2.
- Indeed, when 'pkg-config --libs libcurl' is used, -lcurl is
- passed to ld. The documentation of ld on Windows :
-
- https://sourceware.org/binutils/docs/ld/WIN32.html
-
- lists, in the 'direct linking to a dll' section, the pattern
- of the searched import library, and libcurl_imp.lib is not there.
-
- Closes https://github.com/curl/curl/pull/6225
-
-Daniel Stenberg (9 Feb 2021)
-- urldata: move 'followlocation' to UrlState
-
- As this is a state variable it does not belong in UserDefined which is
- used to store values set by the user.
-
- Closes #6582
-
-- [Ikko Ashimine brought this change]
-
- http_proxy: fix typo in http_proxy.c
-
- settting -> setting
-
- Closes #6583
-
-- [Fabian Keil brought this change]
-
- tests/server: Bump MAX_TAG_LEN to 200
-
- This is useful for tests containing HTML inside of <data> sections.
- For <img> tags it's not uncommon to be longer than the previous
- limit of 79 bytes.
-
- An example of a previously problem-causing tag is:
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-http://www.privoxy.org/images/privoxy.png-by-size" width="88" height="31">
- which is needed for a Privoxy test for the banners-by-size filter.
-
- Previously it caused server failures like:
- 12:29:05.786961 ====> Client connect
- 12:29:05.787116 accept_connection 3 returned 4
- 12:29:05.787194 accept_connection 3 returned 0
- 12:29:05.787285 Read 119 bytes
- 12:29:05.787345 Process 119 bytes request
- 12:29:05.787407 Got request: GET /banners-by-size/9 HTTP/1.1
- 12:29:05.787464 Requested test number 9 part 0
- 12:29:05.787686 getpart() failed with error: -2
- 12:29:05.787744 - request found to be complete (9)
- 12:29:05.787912 getpart() failed with error: -2
- 12:29:05.788048 Wrote request (119 bytes) input to log/server.input
- 12:29:05.788157 Send response test9 section <data>
- 12:29:05.788443 getpart() failed with error: -2
- 12:29:05.788498 instructed to close connection after server-reply
- 12:29:05.788550 ====> Client disconnect 0
- 12:29:05.871448 exit_signal_handler: 15
- 12:29:05.871714 signalled to die
- 12:29:05.872040 ========> IPv4 sws (port 21108 pid: 51758) exits with signal (15)
-
-- [Fabian Keil brought this change]
-
- tests/badsymbols.pl: when opening '$incdir' fails include it in the error message
-
-- [Fabian Keil brought this change]
-
- runtests.1: document -o, -P, -L, and -E
-
-- [Fabian Keil brought this change]
-
- runtests.pl: add %TESTNUMBER variable to make copying tests more convenient
-
-- [Fabian Keil brought this change]
-
- runtests.pl: add an -o option to change internal variables
-
- runtests.pl has lots of internal variables one might want to
- change in certain situations, but adding a dedicated option
- for every single one of them isn't practical.
-
- Usage:
- ./runtests.pl -o TESTDIR=$privoxy_curl_test_dir -o HOSTIP=10.0.0.1 ...
-
-- [Fabian Keil brought this change]
-
- runtests.pl: cleanups
-
- - show the summarized test result in the last line of the report
- - do not use $_ after mapping it to a named variable
- Doing that makes the code harder to follow.
- - log the restraints sorted by the number of their occurrences
- - fix language when logging restraints that only occured once
- - let runhttpserver() use $TESTDIR instead of $srcdir
- ... so it works if a non-default $TESTDIR is being used.
-
-- [Fabian Keil brought this change]
-
- runtests.pl: add an -E option to specify an exclude file
-
- It can contain additional restraints for test numbers,
- keywords and tools.
-
- The idea is to let third parties like the Privoxy project
- distribute an exclude file with their tarballs that specifies
- which curl tests are not expected to work when using Privoxy
- as a proxy, without having to fork the whole curl test suite.
-
- The syntax could be changed to be extendable and maybe
- more closely reflect the "curl test" syntax. Currently
- it's a bunch of lines like these:
-
- test:$TESTNUMBER:Reason why this test with number $TESTNUMBER should be skipped
- keyword:$KEYWORD:Reason why tests whose keywords contain the $KEYWORD should be skipped
- tool:$TOOL:Reason why tests with tools that contain $TOOL should be skipped
-
- To specify multiple $TESTNUMBERs, $KEYWORDs and $TOOLs
- on a single line, split them with commas.
-
-- [Fabian Keil brought this change]
-
- runtests.pl: add -L parameter to require additional perl libraries
-
- This is useful to change the behaviour of the script without
- having to modify the file itself, for example to use a custom
- compareparts() function that ignores header differences that
- are expected to occur when an external proxy is being used.
-
- Such differences are proxy-specific and thus the modifications
- should be maintained together with the proxy.
-
-- [Fabian Keil brought this change]
-
- runtests.pl: add a -P option to specify an external proxy
-
- ... that should be used when executing the tests.
-
- The assumption is that the proxy is an HTTP proxy.
-
- This option should be used together with -L to provide
- a customized compareparts() version that knows which
- proxy-specific header differences should be ignored.
-
- This option doesn't work for all test types yet.
-
-- [Fabian Keil brought this change]
-
- tests: fixup several tests
-
- missing CRs and modified %hostip
-
- lib556/test556: use a real HTTP version to make test reuse more convenient
-
- make sure the weekday in Date headers matches the date
-
- test61: replace stray "^M" (5e 4d) at the end of a cookie with a '^M' (0d)
-
- Gets the test working with external proxies like Privoxy again.
-
- Closes #6463
-
-- ftp: never set data->set.ftp_append outside setopt
-
- Since the set value then risks getting used like that when the easy
- handle is reused by the application.
-
- Also: renamed the struct field from 'ftp_append' to 'remote_append'
- since it is also used for SSH protocols.
-
- Closes #6579
-
-- urldata: remove the 'rtspversion' field
-
- from struct connectdata and the corresponding code in http.c that set
- it. It was never used for anything!
-
- Closes #6581
-
-- CURLOPT_QUOTE.3: clarify that libcurl doesn't parse what's sent
-
- ... so passed in commands may confuse libcurl's knowledge of state.
-
- Reported-by: Bodo Bergmann
- Fixes #6577
- Closes #6580
-
-- [Jacob Hoffman-Andrews brought this change]
-
- vtls: factor out Curl_ssl_getsock to field of Curl_ssl
-
- Closes #6558
-
-- RELEASE-PROCEDURE: remove old release dates, add new
-
-- docs/SSL-PROBLEMS: enhanced
-
- Elaborate on the intermediate cert issue, and mention that anything
- below TLS 1.2 is generally considered insecure these days.
-
- Closes #6572
-
-- THANKS: remove a Jon Rumsey dupe
-
-Daniel Gustafsson (5 Feb 2021)
-- [nimaje brought this change]
-
- docs: fix FILE example url in --metalink documentation
-
- In a url after <scheme>:// follows the possibly empty authority part
- till the next /, so that url missed a /.
-
- Closes #6573
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
- Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
-
-Daniel Stenberg (5 Feb 2021)
-- hostip: fix build with sync resolver
-
- Reported-by: David Goerger
- Follow-up from 8335c6417
- Fixes #6566
- Closes #6568
-
-- mailmap: Jon Rumsey
-
-- [Jon Rumsey brought this change]
-
- gskit: correct the gskit_send() prototype
-
- gskit_send() first paramater is a pointer to Curl_easy not connectdata
- struct.
-
- Closes #6570
- Fixes #6569
-
-- urldata: fix build without HTTP and MQTT
-
- Reported-by: Joseph Chen
- Fixes #6562
- Closes #6563
-
-- ftp: avoid SIZE when asking for a TYPE A file
-
- ... as we ignore it anyway because servers don't report the correct size
- and proftpd even blatantly returns a 550.
-
- Updates a set of tests accordingly.
-
- Reported-by: awesomenode on github
- Fixes #6564
- Closes #6565
-
-- pingpong: rename the curl_pp_transfer enum to use PP prefix
-
- Using an FTP prefix for PP provided functionality was misleading.
-
-- RELEASE-NOTES: synced
-
- ... and bump pending version to 7.75.1 (for now)
-
-Jay Satiro (4 Feb 2021)
-- build: fix --disable-http-auth
-
- Broken since 215db08 (precedes 7.75.0).
-
- Reported-by: Benbuck Nason
-
- Fixes https://github.com/curl/curl/issues/6567
-
-- build: fix --disable-dateparse
-
- Broken since 215db08 (precedes 7.75.0).
-
- Bug: https://curl.se/mail/lib-2021-02/0008.html
- Reported-by: Firefox OS
-
-Daniel Stenberg (4 Feb 2021)
-- [Jon Rumsey brought this change]
-
- OS400: update for CURLOPT_AWS_SIGV4
-
- chkstrings fails because a new string option that could require codepage
- conversion has been added.
-
- Closes #6561
- Fixes #6560
-
-- BUG-BOUNTY: removed the cooperation mention
-
-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)
-- RELEASE-NOTES: synced
-
- for 7.74.0
-
-Jay Satiro (7 Dec 2020)
-- [Jacob Hoffman-Andrews brought this change]
-
- urldata: restore comment on ssl_connect_data.use
-
- This comment was originally on the `use` field, but was separated from
- its field in 62a2534.
-
- Closes https://github.com/curl/curl/pull/6287
-
-Daniel Stenberg (7 Dec 2020)
-- VERSIONS: refreshed
-
- We always use the patch number these days: all releases are
- "major.minor.patch"
-
-- [Jakub Zakrzewski brought this change]
-
- cmake: don't use reserved target name 'test'
-
- CMake up to 3.10 always reserves this name
-
- Fixes #6257
- Closes #6258
-
-- openssl: make the OCSP verification verify the certificate id
-
- CVE-2020-8286
-
- Reported by anonymous
-
- Bug: https://curl.se/docs/CVE-2020-8286.html
-
-- ftp: make wc_statemach loop instead of recurse
-
- CVE-2020-8285
-
- Fixes #6255
- Bug: https://curl.se/docs/CVE-2020-8285.html
- Reported-by: xnynx on github
-
-- ftp: CURLOPT_FTP_SKIP_PASV_IP by default
-
- The command line tool also independently sets --ftp-skip-pasv-ip by
- default.
-
- Ten test cases updated to adapt the modified --libcurl output.
-
- Bug: https://curl.se/docs/CVE-2020-8284.html
- CVE-2020-8284
-
- Reported-by: Varnavas Papaioannou
-
-- urlapi: don't accept blank port number field without scheme
-
- ... as it makes the URL parser accept "very-long-hostname://" as a valid
- host name and we don't want that. The parser now only accepts a blank
- (no digits) after the colon if the URL starts with a scheme.
-
- Reported-by: d4d on hackerone
-
- Closes #6283
-
-- Revert "multi: implement wait using winsock events"
-
- This reverts commit d2a7d7c185f98df8f3e585e5620cbc0482e45fac.
-
- This commit also reverts the subsequent follow-ups to that commit, which
- were all done within windows #ifdefs that are removed in this
- change. Marc helped me verify this.
-
- Fixes #6146
- Closes #6281
-
-- [Klaus Crusius brought this change]
-
- ftp: retry getpeername for FTP with TCP_FASTOPEN
-
- In the case of TFO, the remote host name is not resolved at the
- connetion time.
-
- For FTP that has lead to missing hostname for the secondary connection.
- Therefore the name resolution is done at the time, when FTP requires it.
-
- Fixes #6252
- Closes #6265
- Closes #6282
-
-- [Thomas Danielsson brought this change]
-
- scripts/completion.pl: parse all opts
-
- For tab-completion it may be preferable to include all the
- available options.
-
- Closes #6280
-
-- RELEASE-NOTES: synced
-
-- openssl: use OPENSSL_init_ssl() with >= 1.1.0
-
- Reported-by: Kovalkov Dmitrii and Per Nilsson
- Fixes #6254
- Fixes #6256
- Closes #6260
-
-- SECURITY-PROCESS: disclose on hackerone
-
- Once a vulnerability has been published, the hackerone issue should be
- disclosed. For tranparency.
-
- Closes #6275
-
-Marc Hoersken (3 Dec 2020)
-- tests/util.py: fix compatibility with Python 2
-
- Backporting the Python 3 implementation of setStream
- to ClosingFileHandler as a fallback within Python 2.
-
- Reported-by: Jay Satiro
-
- Fixes #6259
- Closes #6270
-
-Daniel Gustafsson (3 Dec 2020)
-- docs: fix typos and markup in ETag manpage sections
-
- Reported-by: emanruse on github
- Fixes #6273
-
-Daniel Stenberg (2 Dec 2020)
-- quiche: close the connection
-
- Reported-by: Junho Choi
- Fixes #6213
- Closes #6217
-
-Jay Satiro (2 Dec 2020)
-- ngtcp2: Fix build error due to symbol name change
-
- - NGTCP2_CRYPTO_LEVEL_APP -> NGTCP2_CRYPTO_LEVEL_APPLICATION
-
- ngtcp2/ngtcp2@76232e9 changed the name.
-
- ngtcp2 master is required to build curl with http3 support.
-
- Closes https://github.com/curl/curl/pull/6271
-
-Daniel Stenberg (1 Dec 2020)
-- [Klaus Crusius brought this change]
-
- cmake: check for linux/tcp.h
-
- The HAVE_LINUX_TCP_H define was not set by cmake.
-
- Closes #6252