summaryrefslogtreecommitdiff
path: root/libs/libcurl/docs/CHANGES
diff options
context:
space:
mode:
authordartraiden <wowemuh@gmail.com>2021-05-26 22:25:25 +0300
committerdartraiden <wowemuh@gmail.com>2021-05-26 22:26:43 +0300
commit43f100ad4b599dbc564f9920e63afdc242f0a27c (patch)
treefc63fd04b0dbb0a3b1e59a10a1f9e2217388aeb4 /libs/libcurl/docs/CHANGES
parent7d4ed0164a32a3667fb3786fb538fc083153883a (diff)
libcurl: update to 7.77
Diffstat (limited to 'libs/libcurl/docs/CHANGES')
-rw-r--r--libs/libcurl/docs/CHANGES3232
1 files changed, 1692 insertions, 1540 deletions
diff --git a/libs/libcurl/docs/CHANGES b/libs/libcurl/docs/CHANGES
index 62dce2ee97..e7a462b50e 100644
--- a/libs/libcurl/docs/CHANGES
+++ b/libs/libcurl/docs/CHANGES
@@ -6,6 +6,1698 @@
Changelog
+Version 7.77.0 (26 May 2021)
+
+Daniel Stenberg (26 May 2021)
+- RELEASE-NOTES: synced
+
+- THANKS: added contributors from 7.77.0 cycle
+
+- copyright: update copyright year ranges to 2021
+
+- [Radek Zajic brought this change]
+
+ hostip: fix broken macOS/CMake/GCC builds
+
+ Follow-up to 31f631a142d855f06
+
+ Fixes #7128
+ Closes #7129
+
+- TODO: netrc caching and sharing
+
+ URL: https://curl.se/mail/archive-2021-05/0018.html
+
+- [Orgad Shaneh brought this change]
+
+ setopt: streamline ssl option code
+
+ Make it use the same style as the code next to it
+
+ Closes #7123
+
+- [Radek Zajic brought this change]
+
+ lib/hostip6.c: make NAT64 address synthesis on macOS work
+
+ Closes #7121
+
+- [ejanchivdorj brought this change]
+
+ sectransp: fix EXC_BAD_ACCESS caused by uninitialized buffer
+
+ When the SecCertificateCopyCommonName function fails, it leaves
+ common_name in a invalid state so CFStringCompare uses the invalid
+ result, causing EXC_BAD_ACCESS.
+
+ The fix is to check the return value of the function before using the
+ name.
+
+ Closes #7126
+
+- [Paweł Wegner brought this change]
+
+ CMake: add CURL_ENABLE_EXPORT_TARGET option
+
+ install(EXPORT ...) causes trouble when embedding curl dependencies
+ which don't provide install(EXPORT ...) targets (e.g libressl and
+ nghttp2) with cmake's add_subdirectory.
+
+ Reviewed-by: Jakub Zakrzewski
+ Closes #7060
+
+- [Alessandro Ghedini brought this change]
+
+ quiche: update for network path aware API
+
+ Latest version of quiche requires the application to pass the peer
+ address of received packets, and it provides the address for outgoing
+ packets back.
+
+ Closes #7120
+
+- [Jacob Hoffman-Andrews brought this change]
+
+ rustls: switch read_tls and write_tls to callbacks
+
+ And update to 0.6.0, including a rename from session to connection for
+ many fields.
+
+ Closes #7071
+
+- [Koichi Shiraishi brought this change]
+
+ sectransp: fix 7f4a9a9b2a49 commit about missing comma
+
+ Follow-up to 7f4a9a9b2a495
+
+ Closes #7119
+
+- [Harry Sintonen brought this change]
+
+ openssl: associate/detach the transfer from connection
+
+ CVE-2021-22901
+
+ Bug: https://curl.se/docs/CVE-2021-22901.html
+
+- [Harry Sintonen brought this change]
+
+ telnet: check sscanf() for correct number of matches
+
+ CVE-2021-22898
+
+ Bug: https://curl.se/docs/CVE-2021-22898.html
+
+- schannel: don't use static to store selected ciphers
+
+ CVE-2021-22897
+
+ Bug: https://curl.se/docs/CVE-2021-22897.html
+
+- docs/tests: remove freenode references
+
+- RELEASE-NOTES: synced
+
+- [Sergey Markelov brought this change]
+
+ NSS: make colons, commas and spaces valid separators in cipher list
+
+ Fixes #7110
+ Closes #7115
+
+- curl: include libmetalink version in --version output
+
+ Closes #7112
+
+Jay Satiro (21 May 2021)
+- [Matias N. Goldberg brought this change]
+
+ cmake: Use multithreaded compilation on VS 2008+
+
+ Multithreaded compilation has been supported since at least VS 2005 and
+ been robustly stable since at least VS 2008
+
+ Closes https://github.com/curl/curl/pull/7109
+
+Daniel Stenberg (21 May 2021)
+- [Matias N. Goldberg brought this change]
+
+ cmake: fix two invokes result in different curl_config.h
+
+ Fixes #7100
+ Closes #7101
+
+ Reviewed-by: Jakub Zakrzewski
+ Signed-off-by: Matias N. Goldberg <dark_sylinc@yahoo.com.ar>
+
+- [Peng-Yu Chen brought this change]
+
+ cmake: detect CURL_SA_FAMILY_T
+
+ Fixes #7049
+ Closes #7065
+
+- [Lucas Clemente Vella brought this change]
+
+ CURLOPT_IPRESOLVE: preventing wrong IP version from being used
+
+ In some situations, it was possible that a transfer was setup to
+ use an specific IP version, but due do DNS caching or connection
+ reuse, it ended up using a different IP version from requested.
+
+ This commit changes the effect of CURLOPT_IPRESOLVE from simply
+ restricting address resolution to preventing the wrong connection
+ type being used, when choosing a connection from the pool, and
+ to restricting what addresses could be used when establishing
+ a new connection.
+
+ It is important that all addresses versions are resolved, even if
+ not used in that transfer in particular, because the result is
+ cached, and could be useful for a different transfer with a
+ different CURLOPT_IPRESOLVE setting.
+
+ Closes #6853
+
+- [Oliver Urbann brought this change]
+
+ AmigaOS: add functions definitions for SHA256
+
+ AmiSSL replaces many functions with macros. Curl requires pointer
+ to some of these functions. Thus, we have to encapsulate these macros:
+ SHA256_Init, SHA256_Update, SHA256_Final, X509_INFO_free.
+
+ Bug: https://github.com/jens-maus/amissl/issues/15
+ Co-authored-by: Daniel Stenberg <daniel@haxx.se>
+
+ Closes #7099
+
+- test2100: make it run with and require IPv6
+
+ Closes #7083
+
+- tests/getpart: generate output URL encoded for better diffs
+
+ Closes #7083
+
+- [Ryan Beck-Buysse brought this change]
+
+ docs/TheArtOfHttpScripting: fix markdown links
+
+ extra parens cause the links to be incorrectly formatted
+ and inconsistent with the rest of the document.
+
+ Signed-off-by: Ryan Beck-Buysse <rbuysse@gmail.com>
+ Closes #7097
+
+- RELEASE-NOTES: synced
+
+- [Emil Engler brought this change]
+
+ docs: replace dots with dashes in markdown enums
+
+ We use dashes instead of dots nearly everywhere except for those few
+ cases. This commit addresses this issues and brings more coherency into
+ it.
+
+ Closes #7093
+
+- [Emil Engler brought this change]
+
+ docs: improve INTERNALS.md regarding getsock cb
+
+ This adds the I/O prefix to indicate that those "actions" are kind-of
+ related to those found in select(2) or poll(2) (reading/writing).
+
+ It also adds a note where the prototypes of those functions can be found
+ in the source code.
+
+ Closes #7092
+
+- [Emil Engler brought this change]
+
+ docs: document attach in INTERNALS.md
+
+ The new field in the Curl_handler struct still lacks documentation. This
+ adds it it from the information extracted from lib/urldata.h:797
+
+ Closes #7091
+
+- [Marc Aldorasi brought this change]
+
+ config: remove now-unused macros
+
+ Closes #7094
+
+- [Marc Aldorasi brought this change]
+
+ hostip.h: remove declaration of unimplemented function
+
+ Closes #7094
+
+- h3: add 'attach' callback to protocol handlers
+
+ Follow-up to 0c55fbab45be
+
+ Reviewed-by: Emil Engler
+ Closes #7090
+
+- wolfssl: remove SSLv3 support leftovers
+
+ Closes #7088
+
+- curl-wolfssl.m4: without custom include path, assume /usr/include
+
+ ... so that we can point out the root of the OpenSSL emulation headers.
+ Previously this used the '$includedir' variable which is wrong since
+ that defaults to the dir where the current configure invoke will install
+ the built libcurl headers: /usr/local by default.
+
+ Fixes #7085
+ Reported-by: Joel Jakobsson
+ Closes #7087
+
+- [Joel Depooter brought this change]
+
+ data_pending: check only SECONDARY socket for FTP(S) transfers
+
+ Check the FIRST for all other protocols.
+
+ This fixes a timeout in an ftps download. The server sends a TLS
+ close_notify message in the same packet as the file data. The
+ close_notify seems to not be handled in the schannel_recv function, so
+ libcurl is not aware that the server has closed the connection. Thus
+ libcurl ends up waiting for action on the socket until a timeout is
+ reached. With the secondary socket check added to the data_pending
+ function, the close_notify is properly handled, and the ftps transfer
+ terminates as expected.
+
+ Fixes #7068
+ Closes #7069
+
+- github: inhibit deprecated declarations for clang on macOS
+
+ ... as they otherwise cause ldap build errors in the CI.
+
+ Fixes #7081
+ Closes #7082
+
+- conn: add 'attach' to protocol handler, make libssh2 use it
+
+ The libssh2 backend has SSH session associated with the connection but
+ the callback context is the easy handle, so when a connection gets
+ attached to a transfer, the protocol handler now allows for a custom
+ function to get used to set things up correctly.
+
+ Reported-by: Michael O'Farrell
+ Fixes #6898
+ Closes #7078
+
+- http2: make sure pause is done on HTTP
+
+ Since the function is called for any protocol, we can't assume that the
+ HTTP struct is there without first making sure it is HTTP.
+
+ Reported-by: Denis Goleshchikhin
+ Fixes #7079
+ Closes #7080
+
+- docs: cookies from HTTP headers need domain set
+
+ ... or the cookies won't get sent. Push users to using the "Netscape"
+ format instead, which curl uses when saving a cookie "jar".
+
+ Reported-by: Martin Dorey
+ Reviewed-by: Daniel Gustafsson
+ Fixes #6723
+ Closes #7077
+
+- RELEASE-NOTES: synced
+
+- github: add a workflow with libssh2 on macOS using cmake
+
+ Closes #7047
+
+- sws: allow HTTP requests up to 2MB in size
+
+ To allow tests with slightly larger payloads. Like #7071 ...
+
+ Closes #7075
+
+Marc Hoersken (16 May 2021)
+- CI/azure: increase verbosity and fix outdated task names
+
+ Closes #7063
+
+- CI/cirrus: add shared and static Windows release builds
+
+ Azure Pipelines is currently being used for debug builds,
+ let's also run some non-debug (release) Windows builds and
+ make use of previously underutilized Cirrus CI for that.
+
+ Reviewed-by: Marcel Raad
+
+ Closes #6991
+
+Daniel Stenberg (16 May 2021)
+- CURLOPT_CAPATH.3: defaults to a path, not NULL
+
+ Reported-by: Andrew Barnert
+
+ Closes #7062
+
+- [Jacob Hoffman-Andrews brought this change]
+
+ c-hyper: handle body on HYPER_TASK_EMPTY
+
+ Some of the time, we get a HYPER_TASK_EMPTY response before the status
+ line, headers, and body have been read. Previously, that would cause us
+ to poll again, leading to a 1 second timeout.
+
+ The HYPER_TASK_EMPTY docs say:
+
+ The value of this task is null (does not imply an error).
+
+ So, if we receive a HYPER_TASK_EMPTY, continue on with processing the
+ response.
+
+ Reported-by: Kevin Burke
+ Fixes #7064
+ Closes #7070
+
+- [Ikko Ashimine brought this change]
+
+ tool_getparam: fix comment typo in tool_getparam.c
+
+ enfore -> enforce
+
+ Closes #7074
+
+- mem-include-scan.pl: require a non-word letter before memory funcs
+
+ ... so that ldap_memfree() for example doesn't match the scan for free.
+
+ Closes #7061
+
+- version: free the openldap info correctly
+
+ ... to avoid memory leaks.
+
+ Follow-up to: bf0feae7768d9
+ Closes #7061
+
+- dupset: remove totally off comment
+
+ Closes #7067
+
+- configure: if asked for, fail if ldap is not found
+
+ Reported-by: Jakub Zakrzewski
+ Fixes #7053
+ Closes #7055
+
+- version: add OpenLDAP version in the output
+
+ Assisted-by: Howard Chu
+ Closes #7054
+
+Jay Satiro (13 May 2021)
+- [Joel Depooter brought this change]
+
+ schannel: Ensure the security context request flags are always set
+
+ As of commit 54e7475, these flags would only be set when using a new
+ credential handle. When re-using an existing credential handle, the
+ flags would not be set.
+
+ Closes https://github.com/curl/curl/pull/7051
+
+Dan Fandrich (12 May 2021)
+- tests: Fix some tag matching issues in a number of tests
+
+Daniel Stenberg (12 May 2021)
+- sasl: use 'unsigned short' to store mechanism
+
+ ... saves a few bytes of struct size in memory and it only uses
+ 10 bits anyway.
+
+ Closes #7045
+
+- hostip: remove the debug code for LocalHost
+
+ The Curl_resolv() had special code (when built in debug mode) for when
+ resolving the host name "LocalHost" (using that exact casing). It would
+ then get the host name from the --interface option instead.
+
+ This development-only feature was not used by anything (anymore) and we
+ have the --resolve feature if we want to play similar tricks properly
+ going forward.
+
+ Closes #7044
+
+- progress: reset limit_size variables at transfer start
+
+ Otherwise the old value would linger from a previous use and would mess
+ up the network speed cap logic.
+
+ Reported-by: Ymir1711 on github
+
+ Fixes #7042
+ Closes #7043
+
+- RELEASE-NOTES: synced
+
+- [Daniel Gustafsson brought this change]
+
+ cookies: use CURLcode for cookie_output reporting
+
+ Writing the cookie file has multiple error conditions, and was using an
+ int with magic numbers to report the different error (which in turn were
+ disregarded anyways). This moves reporting to use a CURLcode value.
+
+ Lightly-touched-by: Daniel Stenberg
+
+ Closes #7037
+ Closes #6749
+
+- [Daniel Gustafsson brought this change]
+
+ cookies: make use of string duplication function
+
+ strstore() is defined as a strdup which ensures to free the target
+ pointer before duping the source char * into it. Make use of it in
+ two more cases where it can simplify the code.
+
+- [Daniel Gustafsson brought this change]
+
+ cookies: refactor comments
+
+ Comments in the cookie code were a bit all over the place in terms of
+ style and wording. This takes a stab at cleaning them up by keeping to
+ a single style and overall shape. Some comments are moved a little and
+ some removed alltogether due to being redundant. No functional changes
+ have been made,
+
+- [Peng-Yu Chen brought this change]
+
+ http2: skip immediate parsing of payload following protocol switch
+
+ This is considered not harmful as a following http2_recv shall be
+ called very soon.
+
+ This is considered helpful in the specific situation where some
+ servers (e.g. nghttpx v1.43.0) may fulfill stream 1 immediately
+ following the return of HTTP status 101, other than waiting for
+ the client-side connection preface to arrive.
+
+ Fixes #7036
+ Closes #7040
+
+- [Peng-Yu Chen brought this change]
+
+ http2: use nghttp2_session_upgrade2 instead of nghttp2_session_upgrade
+
+ Following the upstream deprecation of nghttp2_session_upgrade.
+
+ Also provides further checks for requests with the HEAD method.
+
+ Closes #7041
+
+- progress/trspeed: use a local convenient pointer to beautify code
+
+ The function becomes easier to read and understand with less repetition.
+
+- trspeed: use long double for transfer speed calculation
+
+- progress: move transfer speed calc into function
+
+ This silences two scan-build-11 warnings: "The result of the '/'
+ expression is undefined"
+
+ Bug: https://curl.se/mail/lib-2021-05/0022.html
+ Closes #7035
+
+- [Cameron Cawley brought this change]
+
+ openssl: remove unneeded cast for CertOpenSystemStore()
+
+ Closes #7025
+
+- travis: disable the libssh build
+
+ It can't run on focal and causes warnings on bionic. Since the focal
+ failure started rather suddenly a while ago, we can suspect it might be
+ temporary.
+
+ Added "bring back the build" to the TODO document.
+
+ Fixes #7011
+ Closes #7012
+
+- [Peng-Yu Chen brought this change]
+
+ http: use calculated offsets inst of integer literals for header parsing
+
+ Assumed to be a minor coding style improvement with no behavior change.
+
+ A modern compiler is expected to have the calculation optimized during
+ compilation. It may be deemed okay even if that's not the case, since
+ the added overhead is considered very low.
+
+ Closes #7032
+
+- [Peng-Yu Chen brought this change]
+
+ GIT-INFO: suggest using autoreconf instead of buildconf
+
+ Follow-up to 85868537d
+
+ Closes #7033
+
+- http: deal with partial CONNECT sends
+
+ Also added 'CURL_SMALLSENDS' to make Curl_write() send short packets,
+ which helped verifying this even more.
+
+ Add test 363 to verify.
+
+ Reported-by: ustcqidi on github
+ Fixes #6950
+ Closes #7024
+
+- HTTP3: make the ngtcp2 build use the quictls fork
+
+ ... as ngtcp2 itself documents the build this way.
+
+ Closes #7031
+
+- http: limit the initial send amount to used upload buffer size
+
+ Previously this logic would cap the send to CURL_MAX_WRITE_SIZE bytes,
+ but for the situations where a larger upload buffer has been set, this
+ function can benefit from sending more bytes. With default size used,
+ this does the same as before.
+
+ Also changed the storage of the size to an 'unsigned int' as it is not
+ allowed to be set larger than 2M.
+
+ Also added cautions to the man pages about changing buffer sizes in
+ run-time.
+
+ Closes #7022
+
+- RELEASE-NOTES: synced
+
+- ngtcp2: fix the cb_acked_stream_data_offset proto
+
+ The 'datalen' value should be 64 bit, not size_t!
+
+ Reported-by: Dmitry Karpov
+ Bug: https://curl.se/mail/lib-2021-05/0019.html
+ Closes #7027
+
+- progress: when possible, calculate transfer speeds with microseconds
+
+ ... this improves precision, especially for transfers in the few or even
+ sub millisecond range.
+
+ Reported-by: J. Bromley
+ Fixes #7017
+ Closes #7020
+
+- http: reset the header buffer when sending the request
+
+ A reused transfer handle could otherwise reuse the previous leftover
+ buffer and havoc would ensue.
+
+ Reported-by: sergio-nsk on github
+ Fixes #7018
+ Closes #7021
+
+- curl_mprintf.3: add description
+
+ These functions have existed in the API since the dawn of time. It is
+ about time we describe how they work, even if we discourage users from
+ using them.
+
+ Closes #7010
+
+- [Timothy Gu brought this change]
+
+ URL-SYNTAX: update IDNA section for WHATWG spec changes
+
+ WHATWG URL has dictated the use of Nontransitional Processing (IDNA
+ 2008) for several years now. Chrome (and derivatives) still use
+ Transitional Processing, but Firefox and Safari have both switched.
+
+ Also document the fact that winidn functions differently from libidn2
+ here.
+
+ Closes #7026
+
+- [Calvin Buckley brought this change]
+
+ INSTALL: add IBM i specific quirks
+
+ Fixes #6830
+ Closes #7013
+
+- libcurl.3: mention the URL API
+
+ To make it easier to find. Also a minor polish of libcurl-url.3
+
+ Closes #7009
+
+- GnuTLS: don't allow TLS 1.3 for versions that don't support it
+
+ Follow-up to 781864bedbc5
+
+ ... as they don't understand it and will return error at us!
+
+ Closes #7014
+
+Kamil Dudka (6 May 2021)
+- tool_getparam: handle failure of curlx_convert_tchar_to_UTF8()
+
+ Reported by GCC analyzer:
+
+ Error: GCC_ANALYZER_WARNING (CWE-476):
+ src/tool_getparam.c: scope_hint: In function 'parse_args'
+ src/tool_getparam.c:2318:38: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL 'orig_opt'
+ lib/curlx.h:56: included_from: Included from here.
+ src/tool_getparam.c:28: included_from: Included from here.
+ lib/curl_multibyte.h:70:51: note: in definition of macro 'curlx_convert_tchar_to_UTF8'
+ src/tool_getparam.c:2316:16: note: in expansion of macro 'curlx_convert_tchar_to_UTF8'
+
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Daniel Stenberg
+ Closes #7023
+
+Daniel Stenberg (6 May 2021)
+- scripts/delta: also show total number of days
+
+Marc Hoersken (5 May 2021)
+- sockfilt: fix invalid increment of handles index variable nfd
+
+ Only increment the array index if we actually stored a handle.
+
+ Follow up to e917492048f4b85a0fd58a033d10072fc7666c3b
+ Closes #6992
+
+- sockfilt: avoid getting stuck waiting for writable socket
+
+ Reset FD_WRITE event using the same approach as in multi.c
+
+ Follow up to b36442b24305f3cda7c13cc64b46838995a4985b
+ Closes #6992
+
+Jay Satiro (5 May 2021)
+- test678: Fix for Windows multibyte builds
+
+ Follow-up to 77fc385 from yesterday.
+
+ Bug: https://github.com/curl/curl/pull/6662#issuecomment-832966557
+ Reported-by: Marc Hörsken
+
+- [Dmitry Kostjuchenko brought this change]
+
+ build: fix compilation for Windows UWP platform
+
+ - Include afunix.h which is necessary for sockaddr_un when
+ USE_UNIX_SOCKETS is defined on Windows.
+
+ Closes https://github.com/curl/curl/pull/7006
+
+Daniel Stenberg (5 May 2021)
+- gnutls: make setting only the MAX TLS allowed version work
+
+ Previously, settting only the max allowed TLS version, leaving the
+ minimum one at default, didn't actually set it and left it to default
+ (TLS 1.3) too!
+
+ As a bonus, this change also removes the dead code handling of SSLv3
+ since that version can't be set anymore (since eff614fb0242cb).
+
+ Reported-by: Daniel Carpenter
+ Fixes #6998
+ Closes #7000
+
+- openldap: replace ldap_ prefix on private functions
+
+ Since openldap itself uses that prefix and with OpenĹDAP 2.5.4 (at
+ least) there's a symbol collision because of that.
+
+ The private functions now use the 'oldap_' prefix where it previously
+ used 'ldap_'.
+
+ Reported-by: 3eka on github
+ Fixes #7004
+ Closes #7005
+
+Jay Satiro (5 May 2021)
+- http2: fix potentially uninitialized variable
+
+ introduced several days ago in 3193170. caught by visual studio linker.
+
+- [Gilles Vollant brought this change]
+
+ SSL: support in-memory CA certs for some backends
+
+ - New options CURLOPT_CAINFO_BLOB and CURLOPT_PROXY_CAINFO_BLOB to
+ specify in-memory PEM certificates for OpenSSL, Schannel (Windows)
+ and Secure Transport (Apple) SSL backends.
+
+ Prior to this change PEM certificates could only be imported from a file
+ and not from memory.
+
+ Co-authored-by: moparisthebest@users.noreply.github.com
+
+ Ref: https://github.com/curl/curl/pull/4679
+ Ref: https://github.com/curl/curl/pull/5677
+ Ref: https://github.com/curl/curl/pull/6109
+
+ Closes https://github.com/curl/curl/pull/6662
+
+Daniel Stenberg (4 May 2021)
+- [David Cook brought this change]
+
+ tests: ignore case of chunked hex numbers in tests
+
+ When hyper is used, it emits uppercase hexadecimal numbers for chunked
+ encoding lengths. Without hyper, lowercase hexadecimal numbers are used.
+ This change adds preprocessor statements to tests where this is an
+ issue, and adapts the fixtures to match.
+
+ Closes #6987
+
+- cmake: check for getppid and utimes
+
+ ... as they're checked for in the configure script and are used by
+ source code.
+
+ Removed checks for perror, setvbuf and strlcat since those defines are
+ not checked for in source code.
+
+ Bonus: removed HAVE_STRLCPY from a few config-*.h files since that
+ symbol is not used in source code.
+
+ Closes #6997
+
+- libtest: remove lib530.c
+
+ Follow up from e50a877df when test 530 was removed. Since then this
+ source file has not been used/needed.
+
+ Closes #6999
+
+- FILEFORMAT: mention sectransp as a feature
+
+ Been supported since at least 40259ca65
+
+ Closes #7001
+
+- RELEASE-NOTES: synced
+
+- libssh2: ignore timeout during disconnect
+
+ ... to avoid memory leaks!
+
+ libssh2 is tricky as we have to deal with the non-blockiness even in
+ close and shutdown cases. In the cases when we shutdown after a timeout
+ already expired, it is crucial that curl doen't let the timeout abort
+ the shutdown process as that then leaks memory!
+
+ Reported-by: Benjamin Riefenstahl
+ Fixes #6990
+
+- KNOWN_BUGS: add two HTTP/2 bugs
+
+- KNOWN_BUGS: add three HTTP/3 issues
+
+ ... and moved the HTTP/2 issues to its own section
+
+ Closes #6606
+ Closes #6510
+ Closes #6494
+
+- [ejanchivdorj brought this change]
+
+ CURLcode: add CURLE_SSL_CLIENTCERT
+
+ When a TLS server requests a client certificate during handshake and
+ none can be provided, libcurl now returns this new error code
+ CURLE_SSL_CLIENTCERT
+
+ Only supported by Secure Transport and OpenSSL for TLS 1.3 so far.
+
+ Closes #6721
+
+- [Tobias Gabriel brought this change]
+
+ .github/FUNDING: add link to GitHub sponsors
+
+ Closes #6985
+
+- [Harry Sintonen brought this change]
+
+ krb5/name_to_level: replace checkprefix with curl_strequal
+
+ Closes #6993
+
+- [Harry Sintonen brought this change]
+
+ Curl_input_digest: require space after Digest
+
+ Closes #6993
+
+- [Harry Sintonen brought this change]
+
+ Curl_http_header: check for colon when matching Persistent-Auth
+
+ Closes #6993
+
+- [Harry Sintonen brought this change]
+
+ Curl_http_input_auth: require valid separator after negotiation type
+
+ Closes #6993
+
+- http: fix the check for 'Authorization' with Bearer
+
+ The code would wrongly check for it using an additional colon.
+
+ Reported-by: Blake Burkhart
+ Closes #6988
+
+- [Kamil Dudka brought this change]
+
+ http2: fix a resource leak in push_promise()
+
+ ... detected by Coverity:
+
+ Error: RESOURCE_LEAK (CWE-772):
+ lib/http2.c:532: alloc_fn: Storage is returned from allocation function "duphandle".
+ lib/http2.c:532: var_assign: Assigning: "newhandle" = storage returned from "duphandle(data)".
+ lib/http2.c:552: noescape: Resource "newhandle" is not freed or pointed-to in "set_transfer_url".
+ lib/http2.c:555: leaked_storage: Variable "newhandle" going out of scope leaks the storage it points to.
+
+ Closes #6986
+
+- [Kamil Dudka brought this change]
+
+ http2: fix resource leaks in set_transfer_url()
+
+ ... detected by Coverity:
+
+ Error: RESOURCE_LEAK (CWE-772):
+ lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.]
+ lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()".
+ lib/http2.c:486: noescape: Resource "u" is not freed or pointed-to in "curl_url_set". [Note: The source code implementation of the function has been overridden by a builtin model.]
+ lib/http2.c:488: leaked_storage: Variable "u" going out of scope leaks the storage it points to.
+
+ Error: RESOURCE_LEAK (CWE-772):
+ lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.]
+ lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()".
+ lib/http2.c:493: noescape: Resource "u" is not freed or pointed-to in "curl_url_set". [Note: The source code implementation of the function has been overridden by a builtin model.]
+ lib/http2.c:495: leaked_storage: Variable "u" going out of scope leaks the storage it points to.
+
+ Error: RESOURCE_LEAK (CWE-772):
+ lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.]
+ lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()".
+ lib/http2.c:500: noescape: Resource "u" is not freed or pointed-to in "curl_url_set". [Note: The source code implementation of the function has been overridden by a builtin model.]
+ lib/http2.c:502: leaked_storage: Variable "u" going out of scope leaks the storage it points to.
+
+ Error: RESOURCE_LEAK (CWE-772):
+ lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.]
+ lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()".
+ lib/http2.c:505: noescape: Resource "u" is not freed or pointed-to in "curl_url_get". [Note: The source code implementation of the function has been overridden by a builtin model.]
+ lib/http2.c:507: leaked_storage: Variable "u" going out of scope leaks the storage it points to.
+
+ Closes #6986
+
+- [Jacob Hoffman-Andrews brought this change]
+
+ rustls: use ALPN
+
+ Update required rustls to 0.5.0
+
+ Closes #6960
+
+- [MAntoniak brought this change]
+
+ gskit: fix CURL_DISABLE_PROXY build
+
+ Removed localfd and remotefd from ssl_backend_data (ued only with proxy
+ connection). Function pipe_ssloverssl return always 0, when proxy is not
+ used.
+
+ Closes #6981
+
+- [MAntoniak brought this change]
+
+ gskit: fix undefined reference to 'conn'
+
+ Closes #6980
+
+- [Jacob Hoffman-Andrews brought this change]
+
+ tls: add USE_HTTP2 define
+
+ This abstracts across the two HTTP/2 backends: nghttp2 and Hyper.
+
+ Add our own define for the "h2" ALPN protocol, so TLS backends can use
+ it without depending on a specific HTTP backend.
+
+ Closes #6959
+
+- [Jacob Hoffman-Andrews brought this change]
+
+ lib: fix 0-length Curl_client_write calls
+
+ Closes #6954
+
+- [Jacob Hoffman-Andrews brought this change]
+
+ lib: remove strlen call from Curl_client_write
+
+ At all call sites with an explicit 0 len, pass an appropriate nonzero
+ len.
+
+ Closes #6954
+
+- [Ayushman Singh Chauhan brought this change]
+
+ docs: camelcase it like GitHub everywhere
+
+ Closes #6979
+
+Jay Satiro (27 Apr 2021)
+- [Lucas Servén Marín brought this change]
+
+ docs: fix typo in fail-with-body doc
+
+ This commit fixes a small typo in the documentation for the
+ --fail-with-body flag.
+
+ Closes https://github.com/curl/curl/pull/6977
+
+- lib: fix some misuse of curlx_convert_UTF8_to_tchar
+
+ curlx_convert_UTF8_to_tchar must be freed by curlx_unicodefree, but
+ prior to this change some uses mistakenly called free.
+
+ I've reviewed all other uses of curlx_convert_UTF8_to_tchar and
+ curlx_convert_tchar_to_UTF8.
+
+ Bug: https://github.com/curl/curl/pull/6602#issuecomment-825236763
+ Reported-by: sergio-nsk@users.noreply.github.com
+
+ Closes https://github.com/curl/curl/pull/6938
+
+Daniel Stenberg (27 Apr 2021)
+- ntlm: precaution against super huge type2 offsets
+
+ ... which otherwise caused an integer overflow and circumvented the if()
+ conditional size check.
+
+ Detected by OSS-Fuzz
+ Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33720
+ Assisted-by: Max Dymond
+ Closes #6975
+
+- c-hyper: fix unused variable ‘wrote’
+
+- libcurl-security.3: be careful of setuid
+
+ Reported-by: Harry Sintonen
+ Closes #6970
+
+- [Kevin Burke brought this change]
+
+ c-hyper: don't write to set.writeheader if null
+
+ Previously if a caller set CURLOPT_WRITEFUNCTION but did not set a
+ CURLOPT_HEADERDATA buffer, Hyper would still attempt to write headers to
+ the data->set.writeheader header buffer, even though it is null. This
+ led to NPE segfaults attempting to use libcurl+Hyper with Git, for
+ example.
+
+ Instead, process the client write for the status line using the same
+ logic we use to process the client write for the later HTTP headers,
+ which contains the appropriate guard logic. As a side benefit,
+ data->set.writeheader is now only read in one file instead of two.
+
+ Fixes #6619
+ Fixes abetterinternet/crustls#49
+ Fixes hyperium/hyper#2438
+ Closes #6971
+
+- wolfssl: handle SSL_write() returns 0 for error
+
+ Reported-by: Timo Lange
+
+ Closes #6967
+
+- easy: ignore sigpipe in curl_easy_send
+
+ Closes #6965
+
+- sigpipe: ignore SIGPIPE when using wolfSSL as well
+
+ Closes #6966
+
+- libcurl-security.3: don't try to filter IPv4 hosts based on the URL
+
+ Closes #6942
+
+- [Harry Sintonen brought this change]
+
+ nss_set_blocking: avoid static for sock_opt
+
+ Reviewed-by: Kamil Dudka
+ Closes #6945
+
+- RELEASE-NOTES: synced
+
+- [Yusuke Nakamura brought this change]
+
+ docs/HTTP3.md: fix nghttp2's HTTP/3 server port
+
+ Port 8443 does not work now.
+ Correct origin is in the quicwg's wiki.
+ https://github.com/quicwg/base-drafts/wiki/Implementations#ngtcp2
+
+ Closes #6964
+
+- krb5: don't use 'static' to store PBSZ size response
+
+ ... because it makes the knowledge and usage cross-transfer in funny and
+ unexpected ways.
+
+ Reported-by: Harry Sintonen
+ Closes #6963
+
+- [Kevin Burke brought this change]
+
+ m4: add security frameworks on Mac when compiling rustls
+
+ Previously compiling rustls on Mac would only complete if you also
+ compiled the SecureTransport TLS backend, which curl would prefer to
+ the Rust backend.
+
+ Appending these flags to LDFLAGS makes it possible to compile the
+ Rustls backend on Mac without the SecureTransport backend, which means
+ this patch will make it possible for Mac users to use the Rustls
+ backend for TLS.
+
+ Reviewed-by: Jacob Hoffman-Andrews
+
+ Fixes #6955
+ Cloes #6956
+
+- krb5: remove the unused 'overhead' function
+
+ Closes #6947
+
+- [Johann150 brought this change]
+
+ curl_url_set.3: add memory management information
+
+ wording taken from man page for CURLOPT_URL.3
+
+ As far as I can see, the URL part is either malloc'ed before due to
+ encoding or it is strdup'ed.
+
+ Closes #6953
+
+- [Jacob Hoffman-Andrews brought this change]
+
+ c-hpyer: fix handling of zero-byte chunk from hyper
+
+ Closes #6951
+
+- CURLOPT_POSTFIELDS.3: clarify how it gets the size of the data
+
+ Ref: https://curl.se/mail/lib-2021-04/0085.html
+ Closes #6943
+
+- [Ralph Langendam brought this change]
+
+ cmake: make libcurl output filename configurable
+
+ Reviewed-by: Jakub Zakrzewski
+ Closes #6933
+
+- [Patrick Monnerat brought this change]
+
+ vtls: reset ssl use flag upon negotiation failure
+
+ Fixes the segfault in ldaps disconnect.
+
+ Reported-by: Illarion Taev
+ Fixes #6934
+ Closes #6937
+
+- configure: fix typo in TLS error message
+
+ Reported-by: Pontus Lundkvist
+
+- README: link to the commercial support option
+
+Jay Satiro (22 Apr 2021)
+- [Martin Halle brought this change]
+
+ version: add gsasl_version to curl_version_info_data
+
+ - Add gsasl_version string and bump to CURLVERSION_TENTH.
+
+ Ref: https://curl.se/mail/lib-2021-04/0003.html
+
+ Closes https://github.com/curl/curl/pull/6843
+
+- [Morten Minde Neergaard brought this change]
+
+ schannel: Support strong crypto option
+
+ - Support enabling strong crypto via optional user cipher list when
+ USE_STRONG_CRYPTO or SCH_USE_STRONG_CRYPTO is in the list.
+
+ MSDN says SCH_USE_STRONG_CRYPTO "Instructs Schannel to disable known
+ weak cryptographic algorithms, cipher suites, and SSL/TLS protocol
+ versions that may be otherwise enabled for better interoperability."
+
+ Ref: https://curl.se/mail/lib-2021-02/0066.html
+ Ref: https://curl.se/docs/manpage.html#--ciphers
+ Ref: https://curl.se/libcurl/c/CURLOPT_SSL_CIPHER_LIST.html
+ Ref: https://docs.microsoft.com/en-us/windows/win32/api/schannel/ns-schannel-schannel_cred
+
+ Closes https://github.com/curl/curl/pull/6734
+
+Daniel Stenberg (22 Apr 2021)
+- RELEASE-NOTES: synced
+
+- ci: adapt to configure requiring an explicit TLS choice
+
+- configure: split out each TLS library detector into its own function
+
+ ... and put those functions in separate m4 files per TLS library.
+
+- configure: make the TLS library choice(s) explicit
+
+ configure no longer tries to find a TLS library by default, but all
+ libraries are now equal: the user needs to explicitly ask what TLS
+ library or libraries to use.
+
+ If no TLS library is selected, configure will error out unless
+ --without-ssl is explicitly used to request a built without TLS (as that
+ is very rare these days).
+
+ Removes: --with-winssl, --with-darwinssl and all --without-* options for
+ TLS libraries.
+
+ Closes #6897
+
+- tests/disable-scan.pl: also scan all m4 files
+
+ Fixes test 1165 when functions are moved from configure.ac to files in
+ m4/
+
+Jay Satiro (22 Apr 2021)
+- schannel: Disable auto credentials; add an option to enable it
+
+ - Disable auto credentials by default. This is a breaking change
+ for clients that are using it, wittingly or not.
+
+ - New libcurl ssl option value CURLSSLOPT_AUTO_CLIENT_CERT tells libcurl
+ to automatically locate and use a client certificate for
+ authentication, when requested by the server.
+
+ - New curl tool options --ssl-auto-client-cert and
+ --proxy-ssl-auto-client-cert map to CURLSSLOPT_AUTO_CLIENT_CERT.
+
+ This option is only supported for Schannel (the native Windows SSL
+ library). Prior to this change Schannel would, with no notification to
+ the client, attempt to locate a client certificate and send it to the
+ server, when requested by the server. Since the server can request any
+ certificate that supports client authentication in the OS certificate
+ store it could be a privacy violation and unexpected.
+
+ Fixes https://github.com/curl/curl/issues/2262
+ Reported-by: Jeroen Ooms
+ Assisted-by: Wes Hinsley
+ Assisted-by: Rich FitzJohn
+
+ Ref: https://curl.se/mail/lib-2021-02/0066.html
+ Reported-by: Morten Minde Neergaard
+
+ Closes https://github.com/curl/curl/pull/6673
+
+Daniel Stenberg (22 Apr 2021)
+- [Michał Antoniak brought this change]
+
+ vtls: deduplicate some DISABLE_PROXY ifdefs
+
+ continue from #5735
+
+ - using SSL_HOST_NAME, SSL_HOST_DISPNAME, SSL_PINNED_PUB_KEY for other
+ tls backend
+
+ - create SSL_HOST_PORT
+
+ Closes #6660
+
+Jay Satiro (22 Apr 2021)
+- OS400: fix typo
+
+ CURLVERSION_HEIGHTH -> CURLVERSION_EIGHTH
+
+Daniel Stenberg (22 Apr 2021)
+- checksrc: complain on == NULL or != 0 checks in conditions
+
+ ... to make them all consistenly use if(!var) and if(var)
+
+ Also added a few missing warnings to the documentation.
+
+ Closes #6912
+
+- tidy-up: make conditional checks more consistent
+
+ ... remove '== NULL' and '!= 0'
+
+ Closes #6912
+
+- [Patrick Monnerat brought this change]
+
+ vauth: factor base64 conversions out of authentication procedures
+
+ Input challenges and returned messages are now in binary.
+ Conversions from/to base64 are performed by callers (currently curl_sasl.c
+ and http_ntlm.c).
+
+ Closes #6654
+
+- [Patrick Monnerat brought this change]
+
+ bufref: buffer reference support
+
+ A struct bufref holds a buffer pointer, a data size and a destructor.
+ When freed or its contents are changed, the previous buffer is implicitly
+ released by the associated destructor. The data size, although not used
+ internally, allows binary data support.
+
+ A unit test checks its handling methods: test 1661
+
+ Closes #6654
+
+- [Patrick Monnerat brought this change]
+
+ os400: additional support for options metadata
+
+ New functions curl_easy_option_by_name_ccsid() and
+ curl_easy_option_get_name_ccsid() allows accessing metadata in alternate
+ character encoding.
+
+ This commit also updates curl_version_info_ccsid() to handle info version 9
+ and adds recent definitions to the ILE/RPG include file.
+
+ Documentation updated accordingly.
+
+ Reviewed-by: Jon Rumsey
+ Closes #6574
+
+- [Patrick Monnerat brought this change]
+
+ test server: take care of siginterrupt() deprecation
+
+ Closes #6529
+
+Marc Hoersken (21 Apr 2021)
+- lib1564.c: enable last wakeup test part on Windows
+
+ Suggested-by: Gergely Nagy
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+
+ Closes #6245
+
+- multi: fix slow write/upload performance on Windows
+
+ Reset FD_WRITE by sending zero bytes which is permissible
+ and will be treated by implementations as successful send.
+
+ Without this we won't be notified in case a socket is still
+ writable if we already received such a notification and did
+ not send any data afterwards on the socket. This would lead
+ to waiting forever on a writable socket being writable again.
+
+ Assisted-by: Tommy Odom
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+ Tested-by: tmkk on github
+
+ Bug: #6146
+ Closes #6245
+
+- multi: reduce Win32 API calls to improve performance
+
+ 1. Consolidate pre-checks into a single Curl_poll call:
+
+ This is an attempt to restructure the code in Curl_multi_wait
+ in such a way that less syscalls are made by removing individual
+ calls to Curl_socket_check via SOCKET_READABLE/SOCKET_WRITABLE.
+
+ 2. Avoid resetting the WinSock event multiple times:
+
+ We finally call WSAResetEvent anyway, so specifying it as
+ an optional parameter to WSAEnumNetworkEvents is redundant.
+
+ 3. Wakeup directly in case no sockets are being monitoring:
+
+ Fix the WinSock based implementation to skip extra waiting by
+ not sleeping in case no sockets are to be waited on and just
+ the WinSock event is being monitored for wakeup functionality.
+
+ Assisted-by: Tommy Odom
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+
+ Bug: #6146
+ Closes #6245
+
+- Revert "Revert 'multi: implement wait using winsock events'"
+
+ This reverts commit 2260e0ebe6d45529495231b3e37a0c58fb92a6a2,
+ also restoring previous follow up changes which were reverted.
+
+ Authored-by: rcombs on github
+ Authored-by: Marc Hörsken
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+
+ Restores #5634
+ Reverts #6281
+ Part of #6245
+
+Daniel Stenberg (21 Apr 2021)
+- Revert "cmake: make libcurl library output name configurable"
+
+ This reverts commit 1cba36d2166c396f987eea587cf92671b27acb92.
+
+ CMake provides properties that can be set on a target to rename the
+ output artifact without changing the name of a target.
+
+ Ref: #6899
+
+- [Michael Kolechkin brought this change]
+
+ sectransp: allow cipher name to be specified
+
+ Add parser for CURLOPT_SSL_CIPHER_LIST option for Secure Transport (ST)
+ back-end. Similar to NSS and GSKit back-ends, new code parses string
+ value and configures ST library to use those ciphers for communication.
+ Create cipher spec data structure and initialize the array of specs with
+ cipher number, name, alias, and 'weak' flag.
+
+ Mark triple-DES ciphers as 'weak', and exclude them from the default
+ ciphers list.
+
+ Closes #6464
+
+- [Michael Kolechkin brought this change]
+
+ NSS: add ciphers to map
+
+ Add cipher names to the `cipherlist` map, based on the list of ciphers
+ implemented by the NSS in the source code file
+ https://github.com/nss-dev/nss/blob/master/lib/ssl/sslenum.c
+
+ Closes #6670
+
+- http2: remove DEBUG_HTTP2
+
+ Accidentally committed in 605e84235
+
+- [Ralph Langendam brought this change]
+
+ cmake: make libcurl library output name configurable
+
+ Closes #6899
+
+- sws: #ifdef S_IFSOCK use
+
+ SCO OpenServer 5.0.7 does not define S_IFSOCK.
+
+ Reported-by: Kevin R. Bulgrien
+ Bug: https://curl.se/mail/lib-2021-04/0074.html
+ Closes #6926
+
+- curl_setup: provide the shutdown flags wider
+
+ By using #ifdef on the symbol names to work on anything that don't
+ provide them. SCO OpenServer 5.0.7, sys/socket.h does not define either
+ SHUT_RDWR, SHUT_RD, and SHUT_WR.
+
+ Reported-by: Kevin R. Bulgrien
+ Bug: https://curl.se/mail/lib-2021-04/0073.html
+ Closes #6925
+
+- connect: use CURL_SA_FAMILY_T for portability
+
+ Reported-by: Kevin R. Bulgrien
+ Bug: https://curl.se/mail/lib-2021-04/0071.html
+
+ Closes #6918
+
+- urlapi: make sure no +/- signs are accepted in IPv4 numericals
+
+ Follow-up to 56a037cc0ad1b2. Extends test 1560 to verify.
+
+ Reported-by: Tuomas Siipola
+ Fixes #6916
+ Closes #6917
+
+- ConnectionExists: respect requests for h1 connections better
+
+ ... for situations when multiplexing isn't enabled on the h2 connection
+ and h1 is explicitly requested for the transfer.
+
+ Assisted-by: Gergely Nagy
+
+- multi: don't close connection HTTP_1_1_REQUIRED
+
+ The ConnectionExists() function will note that the new transfer wants
+ less then h2 and that it can't multiplex it and therefor opt to open a
+ new connection instead.
+
+- http2: move the stream error field to the per-transfer storage
+
+ Storing a stream error in the per-connection struct was an error that lead to
+ race conditions as subsequent stream handling could overwrite the error code
+ before it was used for the stream with the actual problem.
+
+ Closes #6910
+
+- http2: call the handle-closed function correctly on closed stream
+
+ This was this one condition where the stream could be closed due to an
+ error and the function would still wrongly just return 0 for it.
+
+ Reported-by: Gergely Nagy
+ Fixes #6862
+ Closes #6910
+
+- test1660: check the created HSTS file as text mode
+
+ Closes #6922
+
+- RELEASE-NOTES: synced
+
+- test 493: require https in curl to run
+
+ Closes #6927
+
+Jay Satiro (20 Apr 2021)
+- tool_operate: don't discard failed parallel transfer result
+
+ - Save a parallel transfer's result code only when it fails and the
+ transfer is not being retried.
+
+ Prior to this change the result code was always set which meant that a
+ failed result could be erroneously discarded if a different transfer
+ later had a successful result (CURLE_OK).
+
+ Before:
+
+ > curl --fail -Z https://httpbin.org/status/404 https://httpbin.org/delay/10
+ > echo %ERRORLEVEL%
+ 0
+
+ After:
+
+ > curl --fail -Z https://httpbin.org/status/404 https://httpbin.org/delay/10
+ > echo %ERRORLEVEL%
+ 22
+
+ Closes #xxxx
+
+- [Georeth Zhou brought this change]
+
+ openssl: fix build error with OpenSSL < 1.0.2
+
+ Closes https://github.com/curl/curl/pull/6920
+
+Viktor Szakats (19 Apr 2021)
+- README.md: delete Codacy UTM parameters & follow permanent redirect [ci skip]
+
+ UTM parameters leak referrer and various marketing/tracking information
+ even if these would normally be stripped by website or client policy.
+ This link also works fine without them. Also took the opportunity to
+ update the URL to the one pointed to by the previous one via permanent
+ redirect.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #6919
+
+Daniel Stenberg (19 Apr 2021)
+- urlapi: "normalize" numerical IPv4 host names
+
+ When the host name in a URL is given as an IPv4 numerical address, the
+ address can be specified with dotted numericals in four different ways:
+ a32, a.b24, a.b.c16 or a.b.c.d and each part can be specified in
+ decimal, octal (0-prefixed) or hexadecimal (0x-prefixed).
+
+ Instead of passing on the name as-is and leaving the handling to the
+ underlying name functions, which made them not work with c-ares but work
+ with getaddrinfo, this change now makes the curl URL API itself detect
+ and "normalize" host names specified as IPv4 numericals.
+
+ The WHATWG URL Spec says this is an okay way to specify a host name in a
+ URL. RFC 3896 does not allow them, but curl didn't prevent them before
+ and it seems other RFC 3896-using tools have not either. Host names used
+ like this are widely supported by other tools as well due to the
+ handling being done by getaddrinfo and friends.
+
+ I decided to add the functionality into the URL API itself so that all
+ users of these functions get the benefits, when for example wanting to
+ compare two URLs. Also, it makes curl built to use c-ares now support
+ them as well and make curl builds more consistent.
+
+ The normalization makes HTTPS and virtual hosted HTTP work fine even
+ when curl gets the address specified using one of the "obscure" formats.
+
+ Test 1560 is extended to verify.
+
+ Fixes #6863
+ Closes #6871
+
+- libssh: fix "empty expression statement has no effect" warnings
+
+ ... by fixing macros to do-while constructs and moving out the calls to
+ "break" outside of the actual macro. It also fixes the problem where the
+ macro was used witin a loop and the break didn't do right.
+
+ Reported-by: Emil Engler
+ Fixes #6847
+ Closes #6909
+
+- hsts: enable by default
+
+ No longer considered experimental.
+
+ Closes #6700
+
+- vtls: refuse setting any SSL version
+
+ ... previously they were supported if a TLS library would (unexpectedly)
+ still support them, but from this change they will be refused already in
+ curl_easy_setopt(). SSLv2 and SSLv3 have been known to be insecure for
+ many years now.
+
+ Closes #6773
+
+- curl: ignore options asking for SSLv2 or SSLv3
+
+ Instead output a warning about it and continue with the defaults.
+
+ These SSL versions are typically not supported by the TLS libraries since a
+ long time back already since they are inherently insecure and broken. Asking
+ for them to be used will just cause an error to be returned slightly later.
+
+ In the unlikely event that a user's TLS library actually still supports these
+ protocol versions, this change might make the request a little less insecure.
+
+ Closes #6772
+
+- test972: verify the json output with jsonlint
+
+ Make sure one of the azure jobs has jsonlint installed so that the test
+ runs there.
+
+ Ref: #6905
+
+- [Jay Satiro brought this change]
+
+ tool_writeout: fix the HTTP_CODE json output
+
+ Update test 970 accordingly.
+
+ Reported-by: Michal Rus
+ Fixes #6905
+ Closes #6906
+
+- openldap: protect SSL-specific code with proper #ifdef
+
+ Closes #6901
+
+- libssh2: fix Value stored to 'sshp' is never read
+
+ Pointed out by scan-build
+
+ Closes #6900
+
+- [Victor Vieux brought this change]
+
+ tool_getparam: replace (in-place) '%20' by '+' according to RFC1866
+
+ Signed-off-by: Victor Vieux <victorvieux@gmail.com>
+
+ Closes #6895
+
+- configure: provide --with-openssl, deprecate --with-ssl
+
+ Makes the option more explicit.
+
+ Closes #6887
+
+- RELEASE-NOTES: synced
+
+ and bumped curlver to 7.77.0
+
+- [Javier Blazquez brought this change]
+
+ rustls: only return CURLE_AGAIN when TLS session is fully drained
+
+ The code in cr_recv was returning prematurely as soon as the socket
+ reported no more data to read. However, this could be leaving some
+ unread plaintext data in the rustls session from a previous call,
+ causing causing the transfer to hang if the socket never receives
+ further data.
+
+ We need to ensure that the session is fully drained of plaintext data
+ before returning CURLE_AGAIN to the caller.
+
+ Reviewed-by: Jacob Hoffman-Andrews
+ Closes #6894
+
+- cookie: CURLOPT_COOKIEFILE set to NULL switches off cookies
+
+ Add test 676 to verify that setting CURLOPT_COOKIEFILE to NULL again clears
+ the cookiejar from memory.
+
+ Reported-by: Stefan Karpinski
+ Fixes #6889
+ Closes #6891
+
Version 7.76.1 (14 Apr 2021)
Daniel Stenberg (14 Apr 2021)
@@ -6136,1543 +7828,3 @@ Daniel Stenberg (16 Sep 2020)
- dynbuf: make sure Curl_dyn_tail() zero terminates
Closes #5959
-
-- tests: add test1912 to the dist
-
- Follow-up to 70984ce1be4cab6c
-
-- docs/LICENSE-MIXING: remove
-
- This document is not maintained and I feel that it doesn't provide much
- value to users anymore (if it ever did).
-
- Closes #5955
-
-- [Laramie Leavitt brought this change]
-
- http: consolidate nghttp2_session_mem_recv() call paths
-
- Previously there were several locations that called
- nghttp2_session_mem_recv and handled responses slightly differently.
- Those have been converted to call the existing
- h2_process_pending_input() function.
-
- Moved the end-of-session check to h2_process_pending_input() since the
- only place the end-of-session state can change is after nghttp2
- processes additional input frames.
-
- This will likely fix the fuzzing error. While I don't have a root cause
- the out-of-bounds read seems like a use after free, so moving the
- nghttp2_session_check_request_allowed() call to a location with a
- guaranteed nghttp2 session seems reasonable.
-
- Also updated a few nghttp2 callsites to include error messages and added
- a few additional error checks.
-
- Closes #5648
-
-- HISTORY: mention alt-svc added in 2019
-
- ... and make 1996 the first year subtitle
-
-- base64: also build for pop3 and imap
-
- Follow-up to the fix in 20417a13fb8f83
-
- Reported-by: Michael Olbrich
- Fixes #5937
- Closes #5948
-
-- base64: enable in build with SMTP
-
- The oauth2 support is used with SMTP and it uses base64 functions.
-
- Reported-by: Michael Olbrich
- Fixes #5937
- Closes #5938
-
-- curl_mime_headers.3: fix the example's use of curl_slist_append
-
- Reported-by: sofaboss on github
- Fixes #5942
- Closes #5943
-
-- lib583: fix enum mixup
-
- grrr the previous follow-up to 17fcdf6a31 was wrong
-
-- libtest: fix build errors
-
- Follow-up from 17fcdf6a310d4c8076
-
-- lib: fix -Wassign-enum warnings
-
- configure --enable-debug now enables -Wassign-enum with clang,
- identifying several enum "abuses" also fixed.
-
- Reported-by: Gisle Vanem
- Bug: https://github.com/curl/curl/commit/879007f8118771f4896334731aaca5850a154675#commitcomment-42087553
-
- Closes #5929
-
-- RELEASE-NOTES: synced
-
-- [Diven Qi brought this change]
-
- url: use blank credentials when using proxy w/o username and password
-
- Fixes proxy regression brought in commit ad829b21ae (7.71.0)
-
- Fixed #5911
- Closes #5914
-
-- travis: add a build using libressl (from git master)
-
- The v3.2.1 tag (latest release atm) results in a broken build.
-
- Closes #5932
-
-- configure: let --enable-debug set -Wenum-conversion with gcc >= 10
-
- Unfortunately, this option is not detecting the same issues as clang's
- -Wassign-enum flag, but should still be useful to detect future
- mistakes.
-
- Closes #5930
-
-- openssl: consider ALERT_CERTIFICATE_EXPIRED a failed verification
-
- If the error reason from the lib is
- SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED, libcurl will return
- CURLE_PEER_FAILED_VERIFICATION and not CURLE_SSL_CONNECT_ERROR.
-
- This unifies the libcurl return code and makes libressl run test 313
- (CRL testing) fine.
-
- Closes #5934
-
-- FAQ: refreshed some very old language
-
-- cmake: make HTTP_ONLY also disable MQTT
-
- ... and alphasort the order of disabling protocols to make it easier to
- browse.
-
- Closes #5931
-
-- libtest: remove lib1541 leftovers
-
- Caused automake errors.
-
- Follow-up to 8ca54a03ea08a
-
-- tests/libtests: remove test 1900 and 2033
-
- We already remove the test files, now remove the libtest codes as well.
-
- Follow-up to e50a877df74
-
-Marc Hoersken (7 Sep 2020)
-- CI/azure: add test number to title for display in analytics
-
- To ease identification of tests the test number is added to
- the test case title in order to have it on the Azure DevOps
- Analytics pages and reports which currently do not show it.
-
- Bump test case revision to make Azure DevOps update titles.
-
- Closes #5927
-
-Daniel Stenberg (6 Sep 2020)
-- altsvc: clone setting in curl_easy_duphandle
-
- The cache content is not duplicated, like other caches, but the setting
- and specified file name are.
-
- Test 1908 is extended to verify this somewhat. Since the duplicated
- handle gets the same file name, the test unfortunately overwrites the
- same file twice (with different contents) which makes it hard to check
- automatically.
-
- Closes #5923
-
-- test1541: remove since it is a known bug
-
- A shared connection cache is not thread-safe is a known issue. Stop
- testing this until we believe this issue is addressed. Reduces
- occasional test failures we don't care about.
-
- The test code in lib1541.c is left in git to allow us to restore it when
- we get to fix this.
-
- Closes #5922
-
-- tests: remove pipelining tests
-
- Remove the tests 530, 584, 1900, 1901, 1902, 1903 and 2033. They were
- previously disabled.
-
- The Pipelining code was removed from curl in commit 2f44e94efb3df8e,
- April 2019.
-
- Closes #5921
-
-- curl: retry delays in parallel mode no longer sleeps blocking
-
- The previous sleep for retries would block all other concurrent
- transfers. Starting now, the retry will instead be properly marked to
- not get restarted until after the delay time but other transfers can
- still continue in the mean time.
-
- Closes #5917
-
-- curl:parallel_transfers: make sure retry readds the transfer
-
- Reported-by: htasta on github
- Fixes #5905
- Closes #5917
-
-- build: drop support for building with Watcom
-
- These files are not maintained, they seem to have no users, Watcom
- compilers look like not having users nor releases anymore.
-
- Closes #5918
-
-- winbuild/rundebug.cmd: remove
-
- Seems to have been added by mistake? Not included in dists.
-
- Closes #5919
-
-- curl: in retry output don't call all problems "transient"
-
- ... because when --retry-all-errors is used, the error isn't necessarily
- transient at all.
-
- Closes #5916
-
-- easygetopt: pass a valid enum to avoid compiler warning
-
- "integer constant not in range of enumerated type 'CURLoption'"
-
- Reported-by: Gisle Vanem
- Bug: https://github.com/curl/curl/commit/6ebe63fac23f38df911edc348e8ccc72280f9434#commitcomment-42042843
-
- Closes #5915
-
-- [Emil Engler brought this change]
-
- tests: Add tests for new --help
-
- This commit is a part of "--help me if you can"
-
- Closes #5680
-
-- [Emil Engler brought this change]
-
- tool: update --help with categories
-
- This commit is a part of "--help me if you can"
-
- Closes #5680
-
-- [Emil Engler brought this change]
-
- docs: add categories to all cmdline opts
-
- Adapted gen.pl with 'listcats'
-
- This commit is a part of "--help me if you can"
-
- Closes #5680
-
-- RELEASE-NOTES: synced
-
-- [ihsinme brought this change]
-
- connect.c: remove superfluous 'else' in Curl_getconnectinfo
-
- Closes #5912
-
-- [Samuel Marks brought this change]
-
- CMake: remove explicit `CMAKE_ANSI_CFLAGS`
-
- This variable was removed from cmake in commit
- https://gitlab.kitware.com/cmake/cmake/commit/5a834b0bb0bc288. A later
- CMake commit removes the variable from the tests, claiming that it was
- removed in CMake 2.6
-
- Reviewed-By: Peter Wu
- Closes #5439
-
-- [cbe brought this change]
-
- libssh2: pass on the error from ssh_force_knownhost_key_type
-
- Closes #5909
-
-- scripts/delta: add diffstat summary
-
- ... and make output more table-like
-
-- [Martin Bašti brought this change]
-
- http_proxy: do not crash with HTTPS_PROXY and NO_PROXY set
-
- ... in case NO_PROXY takes an effect
-
- Without this patch, the following command crashes:
-
- $ GIT_CURL_VERBOSE=1 NO_PROXY=github.com HTTPS_PROXY=https://example.com \
- git clone https://github.com/curl/curl.git
-
- Minimal libcurl-based reproducer:
-
- #include <curl/curl.h>
-
- int main() {
- CURL *curl = curl_easy_init();
- if(curl) {
- CURLcode ret;
- curl_easy_setopt(curl, CURLOPT_URL, "https://github.com/");
- curl_easy_setopt(curl, CURLOPT_PROXY, "example.com");
- /* set the proxy type */
- curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTPS);
- curl_easy_setopt(curl, CURLOPT_NOPROXY, "github.com");
- curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
- ret = curl_easy_perform(curl);
- curl_easy_cleanup(curl);
- return ret;
- }
- return -1;
- }
-
- Assisted-by: Kamil Dudka
- Bug: https://bugzilla.redhat.com/1873327
- Closes #5902
-
-- travis: add a CI job with openssl3 (from git master)
-
- Closes #5908
-
-- openssl: avoid error conditions when importing native CA
-
- The code section that is OpenSSL 3+ specific now uses the same logic as
- is used in the version < 3 section. It caused a compiler error without
- it.
-
- Closes #5907
-
-- setopt: avoid curl_ on local variable
-
- Closes #5906
-
-- mqtt.c: avoid curl_ prefix on local variable
-
- Closes #5906
-
-- wildcard: strip "curl_" prefix from private symbols
-
- Closes #5906
-
-- vtls: make it 'struct Curl_ssl_session'
-
- Use uppercase C for internal symbols.
-
- Closes #5906
-
-- curl_threads: make it 'struct Curl_actual_call'
-
- Internal names should not be prefixed "curl_"
-
- Closes #5906
-
-- schannel: make it 'struct Curl_schannel*'
-
- As internal global names should use captical C.
-
- Closes #5906
-
-- hash: make it 'struct Curl_hash'
-
- As internal global names should use captical C.
-
- Closes #5906
-
-- llist: make it "struct Curl_llist"
-
- As internal global names should use captical C.
-
- Closes #5906
-
-Marc Hoersken (2 Sep 2020)
-- telnet.c: depend on static requirement of WinSock version 2
-
- Drop dynamic loading of ws2_32.dll and instead rely on the
- imported version which is now required to be at least 2.2.
-
- Reviewed-by: Marcel Raad
- Reviewed-by: Jay Satiro
- Reviewed-by: Daniel Stenberg
- Reviewed-by: Viktor Szakats
-
- Closes #5854
-
-- win32: drop support for WinSock version 1, require version 2
-
- IPv6, telnet and now also the multi API require WinSock
- version 2 which is available starting with Windows 95.
-
- Therefore we think it is time to drop support for version 1.
-
- Reviewed-by: Marcel Raad
- Reviewed-by: Jay Satiro
- Reviewed-by: Daniel Stenberg
- Reviewed-by: Viktor Szakats
-
- Follow up to #5634
- Closes #5854
-
-- select: align poll emulation to return all relevant events
-
- The poll emulation via select already consumes POLLRDNORM,
- POLLWRNORM and POLLRDBAND as input events. Therefore it
- should also return them as output events if signaled.
-
- Also fix indentation in input event handling block.
-
- Assisted-by: Jay Satiro
- Reviewed-by: Daniel Stenberg
-
- Replaces #5852
- Closes #5883
-
-- CI/azure: MQTT is now enabled by default
-
- Reviewed-by: Daniel Stenberg
-
- Follow up to #5858
- Closes #5903
-
-Daniel Stenberg (2 Sep 2020)
-- copyright.pl: ignore buildconf
-
-- test971: show test mismatches "inline"
-
-- lib/Makefile.am: bump VERSIONINFO due to new functions
-
- ... we're generally bad at this, but we are adding new functions for
- this release.
-
- Closes #5899
-
-- optiontable: use DEBUGBUILD
-
- Follow-up to commit 6e18568ba38 (#5877)
-
-- cmdline-opts/gen.pl: generate nicer "See Also" in curl.1
-
- If there are more than two items in the list, use commas for all but the
- last separator which is set to 'and'. Reads better.
-
- Closes #5898
-
-- curl.1: add see also no-progress-meter on two spots
-
- Ref: #5894
-
- Closes #5897
-
-- RELEASE-NOTES: synced
-
-- mqtt: enable by default
-
- No longer considered experimental.
-
- Closes #5858
-
-- [Michael Baentsch brought this change]
-
- tls: add CURLOPT_SSL_EC_CURVES and --curves
-
- Closes #5892
-
-- url: remove funny embedded comments in Curl_disonnect calls
-
-- [Chris Paulson-Ellis brought this change]
-
- conn: check for connection being dead before reuse
-
- Prevents incorrect reuse of an HTTP connection that has been prematurely
- shutdown() by the server.
-
- Partial revert of 755083d00deb16
-
- Fixes #5884
- Closes #5893
-
-Marc Hoersken (29 Aug 2020)
-- buildconf: exec autoreconf to avoid additional process
-
- Also make buildconf exit with the return code of autoreconf.
-
- Reviewed-by: Daniel Stenberg
-
- Follow up to #5853
- Closes #5890
-
-- CI/azure: no longer ignore results of test 1013
-
- Follow up to #5771
- Closes #5889
-
-- docs: add description about CI platforms to CONTRIBUTE.md
-
- Reviewed-by: Daniel Stenberg
- Reviewed-by: Marcel Raad
- Reviewed-by: Jay Satiro
-
- Closes #5882
-
-Daniel Stenberg (29 Aug 2020)
-- tests/getpart: use MIME::Base64 instead of home-cooked
-
- Since we already use the base64 package since a while back, we can just
- as well switch to that here too.
-
- It also happens to use the exact same function name, which otherwise
- causes a run-time warning.
-
- Reported-by: Marc Hörsken
- Fixes #5885
- Closes #5887
-
-Marcel Raad (29 Aug 2020)
-- ntlm: fix condition for curl_ntlm_core usage
-
- `USE_WINDOWS_SSPI` without `USE_WIN32_CRYPTO` but with any other DES
- backend is fine, but was excluded before.
-
- This also fixes test 1013 as the condition for SMB support in
- configure.ac didn't match the condition in the source code. Now it
- does.
-
- Fixes https://github.com/curl/curl/issues/1262
- Closes https://github.com/curl/curl/pull/5771
-
-- AppVeyor: switch 64-bit Schannel Debug CMake builds to Unicode
-
- The Schannel builds are the most useful to verify as they make the most
- use of the Windows API. Classic MinGW doesn't support Unicode at all,
- only MinGW-w64 and MSVC do.
-
- Closes https://github.com/curl/curl/pull/5843
-
-- CMake: add option to enable Unicode on Windows
-
- As already existing for winbuild.
-
- Closes https://github.com/curl/curl/pull/5843
-
-Marc Hoersken (29 Aug 2020)
-- select: simplify return code handling for poll and select
-
- poll and select already return -1 on error according to POSIX,
- so there is no need to perform a <0 to -1 conversion in code.
-
- Also we can just use one check with <= 0 on the return code.
-
- Assisted-by: Daniel Stenberg
- Reviewed-by: Jay Satiro
-
- Replaces #5852
- Closes #5880
-
-Daniel Stenberg (28 Aug 2020)
-- RELEASE-NOTES: synced
-
-- [Jeroen Ooms brought this change]
-
- tests: add test1912 with typechecks
-
- Validates that gcc-typecheck macros match the new option type API.
-
- Closes #5873
-
-- easyoptions: provide debug function when DEBUGBUILD
-
- ... not CURLDEBUG as they're not always set in conjunction.
-
- Follow-up to 6ebe63fac23f38df
-
- Fixes #5877
- Closes #5878
-
-Marc Hoersken (28 Aug 2020)
-- sockfilt: handle FD_CLOSE winsock event on write socket
-
- Learn from the way Cygwin handles and maps the WinSock events
- to simulate correct and complete poll and select behaviour
- according to Richard W. Stevens Network Programming book.
-
- Follow up to #5867
- Closes #5879
-
-- multi: handle connection state winsock events
-
- Learn from the way Cygwin handles and maps the WinSock events
- to simulate correct and complete poll and select behaviour
- according to Richard W. Stevens Network Programming book.
-
- Reviewed-by: Jay Satiro
- Reviewed-by: Marcel Raad
-
- Follow up to #5634
- Closes #5867
-
-Daniel Stenberg (28 Aug 2020)
-- Curl_pgrsTime - return new time to avoid timeout integer overflow
-
- Setting a timeout to INT_MAX could cause an immediate error to get
- returned as timeout because of an overflow when different values of
- 'now' were used.
-
- This is primarily fixed by having Curl_pgrsTime() return the "now" when
- TIMER_STARTSINGLE is set so that the parent function will continue using
- that time.
-
- Reported-by: Ionuț-Francisc Oancea
- Fixes #5583
- Closes #5847
-
-- TLS: fix SRP detection by using the proper #ifdefs
-
- USE_TLS_SRP will be true if *any* selected TLS backend can use SRP
-
- HAVE_OPENSSL_SRP is defined when OpenSSL can use it
-
- HAVE_GNUTLS_SRP is defined when GnuTLS can use it
-
- Clarify in the curl_verison_info docs that CURL_VERSION_TLSAUTH_SRP is
- set if at least one of the supported backends offers SRP.
-
- Reported-by: Stefan Strogin
- Fixes #5865
- Closes #5870
-
-- [Dan Kenigsberg brought this change]
-
- docs: SSLCERTS: fix English syntax
-
- Signed-off-by: Dan Kenigsberg <danken@redhat.com>
-
- Closes #5876
-
-- [Alessandro Ghedini brought this change]
-
- docs: non-existing macros in man pages
-
- As reported by man(1) when invoked as:
-
- man --warnings -E UTF-8 -l -Tutf8 -Z <file> >/dev/null
-
- Closes #5846
-
-- [Alessandro Ghedini brought this change]
-
- curl.1: fix typo invokved -> invoked
-
- Closes #5846
-
-- buildconf: invoke 'autoreconf -fi' instead
-
- The custom script isn't necessary anymore - but remains for simplicity
- and just invokes autoreconf.
-
- Closes #5853
-
-- [Emil Engler brought this change]
-
- lib: make Curl_gethostname accept a const pointer
-
- The address of that variable never gets changed, only the data in it so
- why not make it a "char * const"?
-
- Closes #5866
-
-- docs/libcurl: update "Added in" version for curl_easy_option*
-
- Follow-up to 6ebe63fac23f38
-
-- scripts: improve the "get latest curl release tag" logic
-
- ... by insiting on it matching "^curl-".
-
-- configure: added --disable-get-easy-options
-
- To allow disabling of the curl_easy_option APIs in a build.
-
- Closes #5365
-
-- options: API for meta-data about easy options
-
- const struct curl_easyoption *curl_easy_option_by_name(const char *name);
-
- const struct curl_easyoption *curl_easy_option_by_id (CURLoption id);
-
- const struct curl_easyoption *
- curl_easy_option_next(const struct curl_easyoption *prev);
-
- The purpose is to provide detailed enough information to allow for
- example libcurl bindings to get option information at run-time about
- what easy options that exist and what arguments they expect.
-
- Assisted-by: Jeroen Ooms
- Closes #5365
-
-- [Eric Curtin brought this change]
-
- HTTP/3: update to OpenSSL_1_1_1g-quic-draft-29
-
- Closes #5871
-
-- RELEASE-NOTES: synced
-
-Jay Satiro (26 Aug 2020)
-- openssl: Fix wincrypt symbols conflict with BoringSSL
-
- OpenSSL undefines the conflicting symbols but BoringSSL does not so we
- must do it ourselves.
-
- Reported-by: Samuel Tranchet
- Assisted-by: Javier Blazquez
-
- Ref: https://bugs.chromium.org/p/boringssl/issues/detail?id=371
- Ref: https://github.com/openssl/openssl/blob/OpenSSL_1_1_1g/include/openssl/ossl_typ.h#L66-L73
-
- Fixes https://github.com/curl/curl/issues/5669
- Closes https://github.com/curl/curl/pull/5857
-
-Daniel Stenberg (26 Aug 2020)
-- socketpair: allow CURL_DISABLE_SOCKETPAIR
-
- ... to completely disable the use of socketpair
-
- Closes #5850
-
-- curl_get_line: build only if cookies or alt-svc are enabled
-
- Closes #5851
-
-- [fullincome brought this change]
-
- schannel: fix memory leak when using get_cert_location
-
- The get_cert_location function allocates memory only on success.
- Previously get_cert_location was able to allocate memory and return
- error. It wasn't obvious and in this case the memory wasn't
- released.
-
- Fixes #5855
- Closes #5860
-
-- [Emil Engler brought this change]
-
- git: ignore libtests in 3XXX area
-
- Currently the file tests/libtest/lib3010 is not getting
- ignored by git. This fixes it by adding the 3XXX area to
- the according .gitignore file.
-
- Closes #5859
-
-- [Emil Engler brought this change]
-
- doh: add error message for DOH_DNS_NAME_TOO_LONG
-
- When this error code was introduced in b6a53fff6c1d07e8a9, it was
- forgotten to be added in the errors array and doh_strerror function.
-
- Closes #5863
-
-- ngtcp2: adapt to the new pkt_info arguments
-
- Guidance-by: Tatsuhiro Tsujikawa
-
- Closes #5864
-
-- winbuild/README.md: make <options> visible
-
- Follow-up to be753add31c2d8c
-
-- winbuild: convert the instruction text to README.md
-
- Closes #5861
-
-- lib1560: verify "redirect" to double-slash leading URL
-
- Closes #5849
-
-Marc Hoersken (25 Aug 2020)
-- multi: expand pre-check for socket readiness
-
- Check readiness of all sockets before waiting on them
- to avoid locking in case the one-time event FD_WRITE
- was already consumed by a previous wait operation.
-
- More information about WinSock network events:
- https://docs.microsoft.com/en-us/windows/win32/api/
- winsock2/nf-winsock2-wsaeventselect#return-value
-
- Closes #5634
-
-- [rcombs brought this change]
-
- multi: implement wait using winsock events
-
- This avoids using a pair of TCP ports to provide wakeup functionality
- for every multi instance on Windows, where socketpair() is emulated
- using a TCP socket on loopback which could in turn lead to socket
- resource exhaustion.
-
- A previous version of this patch failed to account for how in WinSock,
- FD_WRITE is set only once when writing becomes possible and not again
- until after a send has failed due to the buffer filling. This contrasts
- to how FD_READ and FD_OOB continue to be set until the conditions they
- refer to no longer apply. This meant that if a user wrote some data to
- a socket, but not enough data to completely fill its send buffer, then
- waited on that socket to become writable, we'd erroneously stall until
- their configured timeout rather than returning immediately.
-
- This version of the patch addresses that issue by checking each socket
- we're waiting on to become writable with select() before the wait, and
- zeroing the timeout if it's already writable.
-
- Assisted-by: Marc Hörsken
- Reviewed-by: Marcel Raad
- Reviewed-by: Daniel Stenberg
- Tested-by: Gergely Nagy
- Tested-by: Rasmus Melchior Jacobsen
- Tested-by: Tomas Berger
-
- Replaces #5397
- Reverts #5632
- Closes #5634
-
-- select: reduce duplication of Curl_poll in Curl_socket_check
-
- Change Curl_socket_check to use select-fallback in Curl_poll
- instead of implementing it in Curl_socket_check and Curl_poll.
-
- Reviewed-by: Daniel Stenberg
- Reviewed-by: Jay Satiro
-
- Replaces #5262 and #5492
- Closes #5707
-
-- select: fix poll-based check not detecting connect failure
-
- This commit changes Curl_socket_check to use POLLPRI to
- check for connect failure on the write socket, because
- POLLPRI maps to fds_err. This is in line with select(2).
-
- The select-based socket check correctly checks for connect
- failures by adding the write socket also to fds_err.
-
- The poll-based implementation (which internally can itself
- fallback to select again) did not previously check for
- connect failure by using POLLPRI with the write socket.
-
- See the follow up commit to this for more information.
-
- This commit makes sure connect failures can be detected
- and handled if HAVE_POLL_FINE is defined, eg. on msys2-devel.
-
- Reviewed-by: Daniel Stenberg
- Reviewed-by: Jay Satiro
-
- Replaces #5509
- Prepares #5707
-
-- select.h: make socket validation macros test for INVALID_SOCKET
-
- With Winsock the valid range is [0..INVALID_SOCKET-1] according to
- https://docs.microsoft.com/en-us/windows/win32/winsock/socket-data-type-2
-
- Reviewed-by: Jay Satiro
- Reviewed-by: Marcel Raad
- Reviewed-by: Daniel Stenberg
-
- Closes #5760
-
-Daniel Stenberg (24 Aug 2020)
-- docs: --output-dir is added in 7.73.0, nothing else
-
- Follow-up to 5620d2cc78c0
-
-- curl: add --output-dir
-
- Works with --create-dirs and with -J
-
- Add test 3008, 3009, 3011, 3012 and 3013 to verify.
-
- Closes #5637
-
-- configure: fix pkg-config detecting wolfssl
-
- When amending the include path with "/wolfssl", this now properly strips
- off all whitespace from the path variable! Previously this would lead to
- pkg-config builds creating bad command lines.
-
- Closes #5848
-
-- [Michael Musset brought this change]
-
- sftp: add the option CURLKHSTAT_FINE_REPLACE
-
- Replace the old fingerprint of the host with a new.
-
- Closes #5685
-
-- RELEASE-NOTES: synced
-
- The next release is now to become 7.73.0
-
-- checksrc: verify do-while and spaces between the braces
-
- Updated mprintf.c to comply
-
- Closes #5845
-
-- curl: support XDG_CONFIG_HOME to find .curlrc
-
- Added test433 to verify. Updated documentation.
-
- Reviewed-by: Jay Satiro
- Suggested-by: Eli Schwartz
- Fixes #5829
- Closes #5837
-
-- etag: save and use the full received contents
-
- ... which makes it support weak tags and non-standard etags too!
-
- Added test case 347 to verify blank incoming ETag:
-
- Fixes #5610
- Closes #5833
-
-- setopt: if the buffer exists, refuse the new BUFFERSIZE
-
- The buffer only exists during transfer and then we shouldn't change the
- size (the setopt is not documented to work then).
-
- Reported-by: Harry Sintonen
- Closes #5842
-
-- [COFFEETALES brought this change]
-
- sftp: add new quote commands 'atime' and 'mtime'
-
- Closes #5810
-
-- CURLE_PROXY: new error code
-
- Failures clearly returned from a (SOCKS) proxy now causes this return
- code. Previously the situation was not very clear as what would be
- returned and when.
-
- In addition: when this error code is returned, an application can use
- CURLINFO_PROXY_ERROR to query libcurl for the detailed error, which then
- returns a value from the new 'CURLproxycode' enum.
-
- Closes #5770
-
-- runtests: make cleardir() erase dot files too
-
- Because test cases might use dot files.
-
- Closes #5838
-
-- KNOWN_BUGS: 'no_proxy' string-matches IPv6 numerical addreses
-
- Also: the current behavior is now documented in the curl.1 and
- CURLOPT_NOPROXY.3 man pages.
-
- Reported-by: Andrew Barnes
- Closes #5745
- Closes #5841
-
-Viktor Szakats (22 Aug 2020)
-- Makefile.m32: add ability to override zstd libs [ci skip]
-
- Similarly to brotli, where this was already possible.
- E.g. it allows to link zstd statically to libcurl.dll.
-
- Ref: https://github.com/curl/curl-for-win/issues/12
- Ref: https://github.com/curl/curl-for-win/commit/d9b266afd2e5d3f5604483010ef62340b5918c89
-
- Closes https://github.com/curl/curl/pull/5840
-
-Daniel Stenberg (21 Aug 2020)
-- runtests: avoid 'fail to start' repeated messages in attempt loops
-
- Closes #5834
-
-- runtests: clear pid variables when failing to start a server
-
- ... as otherwise the parent doesn't detect the failure and believe it
- actually worked to start.
-
- Reported-by: Christian Weisgerber
- Bug: https://curl.haxx.se/mail/lib-2020-08/0018.html
- Closes #5834
-
-- TODO: Virtual external sockets
-
- Closes #5835
-
-- [Don J Olmstead brought this change]
-
- dist: add missing CMake Find modules to the distribution
-
- Closes #5836
-
-- RELEASE-NOTES: synced
-
- ... and version bumped to 7.72.1
-
-- tls: provide the CApath verbose log on its own line
-
- ... not newline separated from the previous line. This makes it output
- asterisk prefixed properly like other verbose putput!
-
- Reported-by: jmdavitt on github
- Fixes #5826
- Closes #5827
-
-Version 7.72.0 (19 Aug 2020)
-
-Daniel Stenberg (19 Aug 2020)
-- RELEASE-NOTES: synced
-
- The curl 7.72.0 release
-
-- THANKS: add names from curl 7.72.0 release
-
-Jay Satiro (18 Aug 2020)
-- KNOWN_BUGS: Schannel TLS 1.2 handshake bug in old Windows versions
-
- Reported-by: plujon@users.noreply.github.com
-
- Closes https://github.com/curl/curl/issues/5488
-
-Daniel Stenberg (17 Aug 2020)
-- Curl_easy: remember last connection by id, not by pointer
-
- CVE-2020-8231
-
- Bug: https://curl.haxx.se/docs/CVE-2020-8231.html
-
- Reported-by: Marc Aldorasi
- Closes #5824
-
-- examples/rtsp.c: correct the copyright year
-
-- RELEASE-PROCEDURE.md: add more future release dates
-
-- [H3RSKO brought this change]
-
- docs: change "web site" to "website"
-
- According to wikipedia:
-
- While "web site" was the original spelling, this variant has become
- rarely used, and "website" has become the standard spelling
-
- Closes #5822
-
-- [Bevan Weiss brought this change]
-
- CMake: don't complain about missing nroff
-
- The curl_nroff_check() was always being called, and complaining if
- *NROFF wasn't found, even when not making the manual.
-
- Only check for nroff (and complain) if actually making the manual
-
- Closes #5817
-
-- [Brian Inglis brought this change]
-
- libtest/Makefile.am: add -no-undefined for libstubgss for Cygwin
-
- copy the LDFLAGS approach for adding same option with `libhostname` in
- `libtest/Makefile.am`:
-
- - init `libstubgss_la_LDFLAGS_EXTRA` variable,
- - add option to variable inside conditional,
- - use variable in `libstubgss_la_LDFLAGS`
-
- Fixes #5819
- Closes #5820
-
-- docs: clarify MAX_SEND/RECV_SPEED functionality
-
- ... in particular what happens if the maximum speed limit is set to a
- value that's smaller than the transfer buffer size in use.
-
- Reported-by: Tomas Berger
- Fixes #5788
- Closes #5813
-
-- test1140: compare stdout
-
- To make problems more immediately obvious when tests fail.
-
- Closes #5814
-
-- asyn-ares: correct some bad comments
-
- Closes #5812
-
-- [Emil Engler brought this change]
-
- docs: Add video link to docs/CONTRIBUTE.md
-
- Closes #5811
-
-- curl-config: ignore REQUIRE_LIB_DEPS in --libs output
-
- Fixes a curl-config issue on cygwin by making sure REQUIRE_LIB_DEPS is
- not considered for the --libs output.
-
- Reported-by: ramsay-jones on github
- Assisted-by: Brian Inglis and Ken Brown
- Fixes #5793
- Closes #5808
-
-- copyright: update/correct the year range on a few files
-
-- scripts/copyright.pl: ignore .muse files
-
-- [Emil Engler brought this change]
-
- multi: Remove 10-year old out-commented code
-
- The code hasn't been touched since 2010-08-18
-
- Closes #5805
-
-- KNOWN_BUGS: A shared connection cache is not thread-safe
-
- Closes #4915
- Closes #5802
-
-- CONTRIBUTE: extend git commit message description
-
- In particular how the first line works.
-
- Closes #5803
-
-- RELEASE-NOTES: synced
-
-- [Stefan Yohansson brought this change]
-
- transfer: move retrycount from connect struct to easy handle
-
- This flag was applied to the connection struct that is released on
- retry. These changes move the retry counter into Curl_easy struct that
- lives across retries and retains the new connection.
-
- Reported-by: Cherish98 on github
- Fixes #5794
- Closes #5800
-
-- libssh2: s/ssherr/sftperr/
-
- The debug output used ssherr instead of sftperr which not only outputs
- the wrong error code but also casues a warning on Windows.
-
- Follow-up to 7370b4e39f1
-
- Reported-by: Gisle Vanem
- Bug: https://github.com/curl/curl/commit/7370b4e39f1390e701f5b68d910c619151daf72b#r41334700
- Closes #5799
-
-- ftp: don't do ssl_shutdown instead of ssl_close
-
- The shutdown function is for downgrading a connection from TLS to plain,
- and this is not requested here.
-
- Have ssl_close reset the TLS connection state.
-
- This partially reverts commit f002c850d98d
-
- Reported-by: Rasmus Melchior Jacobsen
- Reported-by: Denis Goleshchikhin
- Fixes #5797
-
-Marc Hoersken (9 Aug 2020)
-- CI/azure: fix test outcome values and use latest API version
-
- This makes sure that tests ignored or skipped are not shown
- just in the category "Other", but with their correct state.
-
- Closes #5796
-
-- CI/azure: show runtime stats to investigate slowness
-
- Also avoid naming conflict of TFLAGS env and tflags variables.
-
- Closes #5776
-
-Daniel Stenberg (8 Aug 2020)
-- TLS naming: fix more Winssl and Darwinssl leftovers
-
- The CMake option is now called CMAKE_USE_SCHANNEL
-
- The winbuild flag is USE_SCHANNEL
-
- The CI jobs and build scripts only use the new names and the new name
- options
-
- Tests now require 'Schannel' (when necessary)
-
- Closes #5795
-
-- smtp_parse_address: handle blank input string properly
-
- Closes #5792
-
-- runtests: run the DICT server on a random port number
-
- Removed support for -b (base port number)
-
- Closes #5783
-
-- RELEASE-NOTES: synced
-
-- runtests: move the TELNET server to a dynamic port
-
- Rename the port variable to TELNETPORT to better match the existing
- pattern.
-
- Closes #5785
-
-- ngtcp2: adapt to error code rename
-
- Closes #5786
-
-- runtests: move the smbserver to use a dynamic port number
-
- Closes #5782
-
-- runtests: run the http2 tests on a random port number
-
- Closes #5779
-
-- gtls: survive not being able to get name/issuer
-
- Closes #5778
-
-- runtests: move the gnutls-serv tests to a dynamic port
-
- Affects test 320, 321, 322 and 324.
-
- Closes #5778
-
-- runtests: support dynamicly base64 encoded sections in tests
-
- This allows us to make test cases to use base64 at run-time and still
- use and verify information determined at run-time, such as the IMAP test
- server's port number in test 842.
-
- This change makes 12 tests run again that basically never ran since we
- moved to dynamic port numbers.
-
- ftpserver.pl is adjusted to load test instructions and test number from
- the preprocessed test file.
-
- FILEFORMAT.md now documents the new base64 encoding syntax.
-
- Reported-by: Marcel Raad
- Fixes #5761
- Closes #5775
-
-- curl.1: add a few missing valid exit codes
-
- 93 - 96 can be returned as well.
-
- Closes #5777
-
-- TODO: Use multiple parallel transfers for a single download
-
- Closes #5774
-
-- TODO: Set the modification date on an uploaded file
-
- Closes #5768
-
-- [Thomas M. DuBuisson brought this change]
-
- CI: Add muse CI config
-
- Closes #5772
-
-- [Thomas M. DuBuisson brought this change]
-
- travis/script.sh: fix use of `-n' with unquoted envvar
-
- Shellcheck tells us "-n doesn't work with unquoted arguments. quote or
- use [[ ]]."
-
- And testing shows:
-
- ```
- docker run --rm -it ubuntu bash
- root@fe85ce156856:/# [ -n $DOES_NOT_EXIST ] && echo "I ran"
- I ran
- root@fe85ce156856:/# [ -n "$DOES_NOT_EXIST" ] && echo "I ran"
- root@fe85ce156856:/#
- ```
-
- Closes #5773
-
-- h2: repair trailer handling
-
- The previous h2 trailer fix in 54a2b63 was wrong and caused a
- regression: it cannot deal with trailers immediately when read since
- they may be read off the connection by the wrong 'data' owner.
-
- This change reverts the logic back to gathering all trailers into a
- single buffer, like before 54a2b63.
-
- Reported-by: Tadej Vengust
- Fixes #5663
- Closes #5769
-
-Viktor Szakats (3 Aug 2020)
-- windows: disable Unix Sockets for old mingw
-
- Classic mingw and 10y+ old versions of mingw-w64 don't ship with
- Windows headers having the typedef necessary for Unix Sockets
- support, so try detecting these environments to disable this
- feature.
-
- Ref: https://sourceforge.net/p/mingw-w64/mingw-w64/ci/cf6afc57179a5910621215f8f4037d406892072c/
-
- Reviewed-by: Daniel Stenberg
-
- Fixes #5674
- Closes #5758
-
-Marcel Raad (3 Aug 2020)
-- test1908: treat file as text
-
- Fixes the line endings on Windows.
-
- Closes https://github.com/curl/curl/pull/5767
-
-- TrackMemory tests: ignore realloc and free in getenv.c
-
- These are only called for WIN32.
-
- Closes https://github.com/curl/curl/pull/5767
-
-Daniel Stenberg (3 Aug 2020)
-- tests/FILEFORMAT.md: mention %HTTP2PORT
-
-- RELEASE-NOTES: synced
-
-- tlsv1.3.d. only for TLS-using connections
-
- ... and rephrase that "not all" TLS backends support it.
-
- Closes #5764
-
-- tls-max.d: this option is only for TLS-using connections
-
- Ref: #5763
- Closes #5764
-
-Marcel Raad (2 Aug 2020)
-- [Cameron Cawley brought this change]
-
- tool_doswin: Simplify Windows version detection
-
- Closes https://github.com/curl/curl/pull/5754
-
-- [Cameron Cawley brought this change]
-
- win32: Add Curl_verify_windows_version() to curlx
-
- Closes https://github.com/curl/curl/pull/5754
-
-- runtests.pl: treat LibreSSL and BoringSSL as OpenSSL
-
- This makes the tests that require the OpenSSL feature also run for
- those two compatible libraries.
-
- Closes https://github.com/curl/curl/pull/5762
-
-Daniel Stenberg (1 Aug 2020)
-- multi: Condition 'extrawait' is always true
-
- Reported by Codacy.
-
- Reviewed-by: Marcel Raad
- Closes #5759
-
-Marcel Raad (1 Aug 2020)
-- openssl: fix build with LibreSSL < 2.9.1
-
- `SSL_CTX_add0_chain_cert` and `SSL_CTX_clear_chain_certs` were
- introduced in LibreSSL 2.9.1 [0].
-
- [0] https://github.com/libressl-portable/openbsd/commit/0db809ee178457c8170abfae3931d7bd13abf3ef
-
- Closes https://github.com/curl/curl/pull/5757
-
-Daniel Stenberg (1 Aug 2020)
-- [Marc Aldorasi brought this change]
-
- multi_remove_handle: close unused connect-only connections
-
- Previously any connect-only connections in a multi handle would be kept
- alive until the multi handle was closed. Since these connections cannot
- be re-used, they can be marked for closure when the associated easy
- handle is removed from the multi handle.
-
- Closes #5749
-
-- checksrc: invoke script with -D to find .checksrc proper
-
- Without the -D command line option, checksrc.pl won't know which
- directory to load the ".checksrc" file from when building out of the
- source tree.
-
- Reported-by: Marcel Raad
- Fixes #5715
- Closes #5755
-
-- [Carlo Marcelo Arenas Belón brought this change]
-
- buildconf: retire ares buildconf invocation
-
- no longer needed after 4259d2df7dd95637a4b1e3fb174fe5e5aef81069
-
-- [Carlo Marcelo Arenas Belón brought this change]
-
- buildconf: excempt defunct reference to ACLOCAL_FLAGS
-
- retired with 09f278121e815028adb24d228d8092fc6cb022aa but kept around as
- the name is generic enough that it might be in use and relied upon from
- the environment.
-
-- [Carlo Marcelo Arenas Belón brought this change]
-
- buildconf: avoid array concatenation in die()
-
- reported as error SC2145[1] by shellcheck, but not expected to cause
- any behavioural differences otherwise.
-
- [1] https://github.com/koalaman/shellcheck/wiki/SC2145
-
- Closes #5701
-
-- travis: add ppc64le and s390x builds
-
- Closes #5752
-
-Marc Hoersken (31 Jul 2020)
-- connect: remove redundant message about connect failure
-
- Reviewed-by: Daniel Stenberg
-
- Closes #5708
-
-- tests/sshserver.pl: fix compatibility with OpenSSH for Windows
-
- Follow up to #5721
-
-- CI/azure: install libssh2 for use with msys2-based builds
-
- This enables building and running the SFTP tests.
- Unfortunately OpenSSH for Windows does not support SCP (yet).
-
- Reviewed-by: Daniel Stenberg
-
- Closes #5721
-
-- CI/azure: increase Windows job timeout once again
-
- Avoid aborted jobs due to performance issues on Azure DevOps.
-
- Reviewed-by: Daniel Stenberg
- Reviewed-by: Jay Satiro
-
- Closes #5738
-
-Jay Satiro (30 Jul 2020)
-- TODO: Schannel: 'Add option to allow abrupt server closure'
-
- We should offer an option to allow abrupt server closures (server closes
- SSL transfer without sending a known termination point such as length of
- transfer or close_notify alert). Abrupt server closures are usually
- because of misconfigured or very old servers.
-
- Closes https://github.com/curl/curl/issues/4427
-
-- url: fix CURLU and location following
-
- Prior to this change if the user set a URL handle (CURLOPT_CURLU) it was
- incorrectly used for the location follow, resulting in infinite requests
- to the original location.
-
- Reported-by: sspiri@users.noreply.github.com
-
- Fixes https://github.com/curl/curl/issues/5709
- Closes https://github.com/curl/curl/pull/5713
-
-Daniel Stenberg (30 Jul 2020)
-- RELEASE-NOTES: synced
-
-- [divinity76 brought this change]
-
- docs: add date of 7.20 to CURLM_CALL_MULTI_PERFORM mentions
-
- it helps make it obvious that most developers don't have to care about
- the CURLM_CALL_MULTI_PERFORM value (last release using it is nearly 11
- years old, November 4 2009)
-
- Closes #5744
-
-Jay Satiro (29 Jul 2020)
-- tool_cb_wrt: fix outfile mode flags for Windows
-
- - Use S_IREAD and S_IWRITE mode permission flags to create the file
- on Windows instead of S_IRUSR, S_IWUSR, etc.
-
- Windows only accepts a combination of S_IREAD and S_IWRITE. It does not
- acknowledge other combinations, for which it may generate an assertion.
-
- This is a follow-up to 81b4e99 from yesterday, which improved the
- existing file check with -J.
-
- Ref: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/open-wopen#remarks
- Ref: https://github.com/curl/curl/pull/5731
-
- Closes https://github.com/curl/curl/pull/5742
-
-Daniel Stenberg (28 Jul 2020)
-- checksrc: ban gmtime/localtime
-
- They're not thread-safe so they should not be used in libcurl code.
-
- Explictly enabled when deemed necessary and in examples and tests
-
- Reviewed-by: Nicolas Sterchele
- Closes #5732