summaryrefslogtreecommitdiff
path: root/libs/libcurl/docs
diff options
context:
space:
mode:
Diffstat (limited to 'libs/libcurl/docs')
-rw-r--r--libs/libcurl/docs/CHANGES9364
-rw-r--r--libs/libcurl/docs/THANKS85
2 files changed, 5469 insertions, 3980 deletions
diff --git a/libs/libcurl/docs/CHANGES b/libs/libcurl/docs/CHANGES
index 1653a55c98..d48ababb4f 100644
--- a/libs/libcurl/docs/CHANGES
+++ b/libs/libcurl/docs/CHANGES
@@ -6,6 +6,5379 @@
Changelog
+Version 7.86.0 (26 Oct 2022)
+
+Daniel Stenberg (26 Oct 2022)
+- RELEASE: synced
+
+ The 7.86.0 release
+
+- THANKS: added from the 7.86.0 release
+
+Viktor Szakats (25 Oct 2022)
+- noproxy: include netinet/in.h for htonl()
+
+ Solve the Amiga build warning by including `netinet/in.h`.
+
+ `krb5.c` and `socketpair.c` are using `htonl()` too. This header is
+ already included in those sources.
+
+ Regression from 1e9a538e05c0107c54ef81d9de7cd0b27cd13309
+
+ Reviewed-by: Daniel Stenberg
+ Closes #9787
+
+Marc Hoersken (24 Oct 2022)
+- CI: fix AppVeyor status failing for starting jobs
+
+Daniel Stenberg (24 Oct 2022)
+- test445: verifies the protocols-over-http-proxy flaw and fix
+
+- http_proxy: restore the protocol pointer on error
+
+ Reported-by: Trail of Bits
+
+ Closes #9790
+
+- multi: remove duplicate include of connect.h
+
+ Reported-by: Martin Strunz
+ Fixes #9794
+ Closes #9795
+
+Daniel Gustafsson (24 Oct 2022)
+- idn: fix typo in test description
+
+ s/enabked/enabled/i
+
+Daniel Stenberg (24 Oct 2022)
+- url: use IDN decoded names for HSTS checks
+
+ Reported-by: Hiroki Kurosawa
+
+ Closes #9791
+
+- unit1614: fix disabled-proxy build
+
+ Follow-up to 1e9a538e05c01
+
+ Closes #9792
+
+Daniel Gustafsson (24 Oct 2022)
+- cookies: optimize control character check
+
+ When checking for invalid octets the strcspn() call will return the
+ position of the first found invalid char or the first NULL byte.
+ This means that we can check the indicated position in the search-
+ string saving a strlen() call.
+
+ Closes: #9736
+ Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
+
+Daniel Stenberg (24 Oct 2022)
+- netrc: replace fgets with Curl_get_line
+
+ Make the parser only accept complete lines and avoid problems with
+ overly long lines.
+
+ Reported-by: Hiroki Kurosawa
+
+ Closes #9789
+
+- RELEASE-NOTES: add "Planned upcoming removals include"
+
+ URL: https://curl.se/mail/archive-2022-10/0001.html
+
+ Suggested-by: Dan Fandrich
+
+Viktor Szakats (23 Oct 2022)
+- ci: bump to gcc-11 for macos
+
+ Ref: https://github.blog/changelog/2022-10-03-github-actions-jobs-running-on-macos-latest-are-now-running-on-macos-12/
+ Ref: https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md
+
+ Reviewed-by: Max Dymond
+ Closes #9785
+
+- Makefile.m32: reintroduce CROSSPREFIX and -W -Wall [ci skip]
+
+ - Reintroduce `CROSSPREFIX`:
+
+ If set, we add it to the `CC` and `AR` values, and to the _default_
+ value of `RC`, which is `windres`. This allows to control each of
+ these individidually, while also allowing to simplify configuration
+ via `CROSSPREFIX`.
+
+ This variable worked differently earlier. Hopefully this new solution
+ hits a better compromise in usefulness/complexity/flexibility.
+
+ Follow-up to: aa970c4c08775afcd0c2853be89b0a6f02582d50
+
+ - Enable warnings again:
+
+ This time with an option to override it via `CFLAGS`. Warnings are
+ also enabled by default in CMake, `makefile.dj` and `makefile.amiga`
+ builds (not in autotools though).
+
+ Follow-up to 10fbd8b4e3f83b967fd9ad9a41ab484c0e7e7ca3
+
+ Closes #9784
+
+- noproxy: silence unused variable warnings with no ipv6
+
+ Follow-up to 36474f1050c7f4117e3c8de6cc9217cfebfc717d
+
+ Reviewed-by: Daniel Stenberg
+ Closes #9782
+
+Daniel Stenberg (22 Oct 2022)
+- test644: verify --xattr (with redirect)
+
+- tool_xattr: save the original URL, not the final redirected one
+
+ Adjusted test 1621 accordingly.
+
+ Reported-by: Viktor Szakats
+ Fixes #9766
+ Closes #9768
+
+- docs: make sure libcurl opts examples pass in long arguments
+
+ Reported-by: Sergey
+ Fixes #9779
+ Closes #9780
+
+Marc Hoersken (21 Oct 2022)
+- CI: fix AppVeyor job links only working for most recent build
+
+ Ref: https://github.com/curl/curl/pull/9768#issuecomment-1286675916
+ Reported-by: Daniel Stenberg
+
+ Follow up to #9769
+
+Viktor Szakats (21 Oct 2022)
+- noproxy: fix builds without AF_INET6
+
+ Regression from 1e9a538e05c0107c54ef81d9de7cd0b27cd13309
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9778
+
+Daniel Stenberg (21 Oct 2022)
+- noproxy: support proxies specified using cidr notation
+
+ For both IPv4 and IPv6 addresses. Now also checks IPv6 addresses "correctly"
+ and not with string comparisons.
+
+ Split out the noproxy checks and functionality into noproxy.c
+
+ Added unit test 1614 to verify checking functions.
+
+ Reported-by: Mathieu Carbonneaux
+
+ Fixes #9773
+ Fixes #5745
+ Closes #9775
+
+- urlapi: remove two variable assigns
+
+ To please scan-build:
+
+ urlapi.c:1163:9: warning: Value stored to 'qlen' is never read
+ qlen = Curl_dyn_len(&enc);
+ ^ ~~~~~~~~~~~~~~~~~~
+ urlapi.c:1164:9: warning: Value stored to 'query' is never read
+ query = u->query = Curl_dyn_ptr(&enc);
+ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Follow-up to 7d6cf06f571d57
+
+ Closes #9777
+
+- [Jeremy Maitin-Shepard brought this change]
+
+ cmake: improve usability of CMake build as a sub-project
+
+ - Renames `uninstall` -> `curl_uninstall`
+ - Ensures all export rules are guarded by CURL_ENABLE_EXPORT_TARGET
+
+ Closes #9638
+
+- [Don J Olmstead brought this change]
+
+ easy_lock: check for HAVE_STDATOMIC_H as well
+
+ The check for `HAVE_STDATOMIC_H` looks to see if the `stdatomic.h`
+ header is present.
+
+ Closes #9755
+
+- RELEASE-NOTES: synced
+
+- [Brad Harder brought this change]
+
+ CURLMOPT_PIPELINING.3: dedup manpage xref
+
+ Closes #9776
+
+Marc Hoersken (20 Oct 2022)
+- CI: report AppVeyor build status for each job
+
+ Also give each job on AppVeyor CI a human-readable name.
+
+ This aims to make job and therefore build failures more visible.
+
+ Reviewed-by: Marcel Raad
+ Closes #9769
+
+Viktor Szakats (20 Oct 2022)
+- amiga: set SIZEOF_CURL_OFF_T=8 by default [ci skip]
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9771
+
+- connect: fix builds without AF_INET6
+
+ Regression from 2b309560c1e5d6ed5c0e542e6fdffa968b0521c9
+
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Jay Satiro
+
+ Closes #9770
+
+Daniel Stenberg (20 Oct 2022)
+- test1105: adjust <data> to work with a hyper build
+
+ Closes #9767
+
+- urlapi: fix parsing URL without slash with CURLU_URLENCODE
+
+ When CURLU_URLENCODE is set, the parser would mistreat the path
+ component if the URL was specified without a slash like in
+ http://local.test:80?-123
+
+ Extended test 1560 to reproduce and verify the fix.
+
+ Reported-by: Trail of Bits
+
+ Closes #9763
+
+Marc Hoersken (19 Oct 2022)
+- tests: avoid CreateThread if _beginthreadex is available
+
+ CreateThread is not threadsafe if mixed with CRT calls.
+ _beginthreadex on the other hand can be mixed with CRT.
+
+ Reviewed-by: Marcel Raad
+ Closes #9705
+
+Jay Satiro (19 Oct 2022)
+- [Joel Depooter brought this change]
+
+ schannel: Don't reset recv/send function pointers on renegotiation
+
+ These function pointers will have been set when the initial TLS
+ handshake was completed. If they are unchanged, there is no need to set
+ them again. If they have been changed, as is the case with HTTP/2, we
+ don't want to override that change. That would result in the
+ http22_recv/send functions being completely bypassed.
+
+ Prior to this change a connection that uses Schannel with HTTP/2 would
+ fail on renegotiation with error "Received HTTP/0.9 when not allowed".
+
+ Fixes https://github.com/curl/curl/issues/9451
+ Closes https://github.com/curl/curl/pull/9756
+
+Viktor Szakats (18 Oct 2022)
+- hostip: guard PF_INET6 use
+
+ Some platforms (e.g. Amiga OS) do not have `PF_INET6`. Adjust the code
+ for these.
+
+ ```
+ hostip.c: In function 'fetch_addr':
+ hostip.c:308:12: error: 'PF_INET6' undeclared (first use in this function)
+ pf = PF_INET6;
+ ^~~~~~~~
+ ```
+
+ Regression from 1902e8fc511078fb5e26fc2b907b4cce77e1240d
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9760
+
+- amiga: do not hardcode openssl/zlib into the os config [ci skip]
+
+ Enable them in `lib/makefile.amiga` and `src/makefile.amiga` instead.
+
+ This allows builds without openssl and/or zlib. E.g. with the
+ <https://github.com/bebbo/amiga-gcc> cross-compiler.
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9762
+
+- amigaos: add missing curl header [ci skip]
+
+ Without it, `CURLcode` and `CURLE_*` are undefined. `lib/hostip.h` and
+ conditional local code need them.
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9761
+
+Daniel Stenberg (18 Oct 2022)
+- cmdline/docs: add a required 'multi' keyword for each option
+
+ The keyword specifies how option works when specified multiple times:
+
+ - single: the last provided value replaces the earlier ones
+ - append: it supports being provided multiple times
+ - boolean: on/off values
+ - mutex: flag-like option that disable anoter flag
+
+ The 'gen.pl' script then outputs the proper and unified language for
+ each option's multi-use behavior in the generated man page.
+
+ The multi: header is requires in each .d file and will cause build error
+ if missing or set to an unknown value.
+
+ Closes #9759
+
+- CURLOPT_AUTOREFERER.3: highlight the privacy leak risk
+
+ Closes #9757
+
+- mprintf: reject two kinds of precision for the same argument
+
+ An input like "%.*1$.9999d" would first use the precision taken as an
+ argument *and* then the precision specified in the string, which is
+ confusing and wrong. pass1 will now instead return error on this double
+ use.
+
+ Adjusted unit test 1398 to verify
+
+ Reported-by: Peter Goodman
+
+ Closes #9754
+
+- ftp: remove redundant if
+
+ Reported-by: Trail of Bits
+
+ Closes #9753
+
+- tool_operate: more transfer cleanup after parallel transfer fail
+
+ In some circumstances when doing parallel transfers, the
+ single_transfer_cleanup() would not be called and then 'inglob' could
+ leak.
+
+ Test 496 verifies
+
+ Reported-by: Trail of Bits
+ Closes #9749
+
+- mqtt: spell out CONNECT in comments
+
+ Instead of calling it 'CONN' in several comments, use the full and
+ correct protocol packet name.
+
+ Suggested by Trail of Bits
+
+ Closes #9751
+
+- CURLOPT_POSTFIELDS.3: refer to CURLOPT_MIMEPOST
+
+ Not the deprecated CURLOPT_HTTPPOST option.
+
+ Also added two see-alsos.
+
+ Reported-by: Trail of Bits
+ Closes #9752
+
+- RELEASE-NOTES: synced
+
+Jay Satiro (17 Oct 2022)
+- ngtcp2: Fix build errors due to changes in ngtcp2 library
+
+ ngtcp2/ngtcp2@b0d86f60 changed:
+
+ - ngtcp2_conn_get_max_udp_payload_size =>
+ ngtcp2_conn_get_max_tx_udp_payload_size
+
+ - ngtcp2_conn_get_path_max_udp_payload_size =>
+ ngtcp2_conn_get_path_max_tx_udp_payload_size
+
+ ngtcp2/ngtcp2@ec59b873 changed:
+
+ - 'early_data_rejected' member added to ng_callbacks.
+
+ Assisted-by: Daniel Stenberg
+ Reported-by: jurisuk@users.noreply.github.com
+
+ Fixes https://github.com/curl/curl/issues/9747
+ Closes https://github.com/curl/curl/pull/9748
+
+Daniel Stenberg (16 Oct 2022)
+- curl_path: return error if given a NULL homedir
+
+ Closes #9740
+
+- libssh: if sftp_init fails, don't get the sftp error code
+
+ This flow extracted the wrong code (sftp code instead of ssh code), and
+ the code is sometimes (erroneously) returned as zero anyway, so skip
+ getting it and set a generic error.
+
+ Reported-by: David McLaughlin
+ Fixes #9737
+ Closes #9740
+
+- mqtt: return error for too long topic
+
+ Closes #9744
+
+- [Rickard Hallerbäck brought this change]
+
+ tool_paramhlp: make the max argument a 'double'
+
+ To fix compiler warnings "Implicit conversion from 'long' to 'double'
+ may lose precision"
+
+ Closes #9700
+
+Marc Hoersken (15 Oct 2022)
+- [Philip Heiduck brought this change]
+
+ cirrus-ci: add more macOS builds with m1 based on x86_64 builds
+
+ Also refactor macOS builds to use task matrix.
+
+ Assisted-by: Marc Hörsken
+ Closes #9565
+
+Viktor Szakats (14 Oct 2022)
+- cmake: set HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID on Windows
+
+ `lib/config-win32.h` enables this configuration option unconditionally.
+ Make it apply to CMake builds as well.
+
+ While here, delete a broken check for
+ `HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID` from `CMakeLists.txt`. This came with
+ the initial commit [1], but did not include the actual verification code
+ inside `CMake/CurlTests.c`, so it always failed. A later commit [2]
+ added a second test, for non-Windows platforms.
+
+ Enabling this flag causes test 1056 to fail with CMake builds, as they
+ do with autotools builds. Let's apply the same solution and ignore the
+ results here as well.
+
+ [1] 4c5307b45655ba75ab066564afdc0c111a8b9291
+ [2] aec7c5a87c8482b6ddffa352d7d220698652262e
+
+ Reviewed-by: Daniel Stenberg
+ Assisted-by: Marcel Raad
+
+ Closes #9726
+
+- cmake: set HAVE_GETADDRINFO_THREADSAFE on Windows
+
+ autotools enables this configuration option unconditionally for Windows
+ [^1]. Do the same in CMake.
+
+ The above will make this work for all reasonably recent environments.
+ The logic present in `lib/config-win32.h` [^2] has the following
+ exceptions which we did not cover in this CMake update:
+
+ - Builds targeting Windows 2000 and earlier
+ - MS Visual C++ 5.0 (1997) and earlier
+
+ Also make sure to disable this feature when `HAVE_GETADDRINFO` isn't
+ set, to avoid a broken build. We might want to handle that in the C
+ sources in a future commit.
+
+ [^1]: https://github.com/curl/curl/blob/68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6/m4/curl-functions.m4#L2067-L2070
+
+ [^2]: https://github.com/curl/curl/blob/68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6/lib/config-win32.h#L511-L528
+
+ Closes #9727
+
+- cmake: sync HAVE_SIGNAL detection with autotools
+
+ `HAVE_SIGNAL` means the availability of the `signal()` function in
+ autotools, while in CMake it meant the availability of that function
+ _and_ the symbol `SIGALRM`.
+
+ The latter is not available on Windows, but the function is, which means
+ on Windows, autotools did define `HAVE_SIGNAL`, but CMake did not,
+ introducing a slight difference into the binaries.
+
+ This patch syncs CMake behaviour with autotools to look for the function
+ only.
+
+ The logic came with the initial commit adding CMake support to curl, so
+ the commit history doesn't reveal the reason behind it. In any case,
+ it's best to check the existence of `SIGALRM` directly in the source
+ before use. For now, curl builds fine with `HAVE_SIGNAL` enabled and
+ `SIGALRM` missing.
+
+ Follow-up to 68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6
+
+ Closes #9725
+
+- cmake: delete duplicate HAVE_GETADDRINFO test
+
+ A custom `HAVE_GETADDRINFO` check came with the initial CMake commit
+ [1]. A later commit [2] added a standard check for it as well. The
+ standard check run before the custom one, so CMake ignored the latter.
+
+ The custom check was also non-portable, so this patch deletes it in
+ favor of the standard check.
+
+ [1] 4c5307b45655ba75ab066564afdc0c111a8b9291
+ [2] aec7c5a87c8482b6ddffa352d7d220698652262e
+
+ Closes #9731
+
+Daniel Stenberg (14 Oct 2022)
+- tool_formparse: unroll the NULL_CHECK and CONST_FREE macros
+
+ To make the code read more obvious
+
+ Assisted-by: Jay Satiro
+
+ Closes #9710
+
+- [Christopher Sauer brought this change]
+
+ docs/INSTALL: update Android Instructions for newer NDKs
+
+ Closes #9732
+
+- markdown-uppercase: ignore quoted sections
+
+ Sections within the markdown ~~~ or ``` are now ignored.
+
+ Closes #9733
+
+- RELEASE-NOTES: synced
+
+- test8: update as cookies no longer can have "embedded" TABs in content
+
+- test1105: extend to verify TAB in name/content discarding cookies
+
+- cookie: reject cookie names or content with TAB characters
+
+ TABs in name and content seem allowed by RFC 6265: "the algorithm strips
+ leading and trailing whitespace from the cookie name and value (but
+ maintains internal whitespace)"
+
+ Cookies with TABs in the names are rejected by Firefox and Chrome.
+
+ TABs in content are stripped out by Firefox, while Chrome discards the
+ whole cookie.
+
+ TABs in cookies also cause issues in saved netscape cookie files.
+
+ Reported-by: Trail of Bits
+
+ URL: https://curl.se/mail/lib-2022-10/0032.html
+ URL: https://github.com/httpwg/http-extensions/issues/2262
+
+ Closes #9659
+
+- curl/add_parallel_transfers: better error handling
+
+ 1 - consider the transfer handled at once when in the function, to avoid
+ the same list entry to get added more than once in rare error
+ situations
+
+ 2 - set the ERRORBUFFER for the handle first after it has been added
+ successfully
+
+ Reported-by: Trail of Bits
+
+ Closes #9729
+
+- netrc: remove the two 'changed' arguments
+
+ As no user of these functions used the returned content.
+
+- test495: verify URL encoded user name + netrc-optional
+
+ Reproduced issue #9709
+
+- netrc: use the URL-decoded user
+
+ When the user name is provided in the URL it is URL encoded there, but
+ when used for authentication the encoded version should be used.
+
+ Regression introduced after 7.83.0
+
+ Reported-by: Jonas Haag
+ Fixes #9709
+ Closes #9715
+
+- [Shaun Mirani brought this change]
+
+ url: allow non-HTTPS HSTS-matching for debug builds
+
+ Closes #9728
+
+- test1275: remove the check of stderr
+
+ To avoid the mysterious test failures on Windows, instead rely on the
+ error code returned on failure.
+
+ Fixes #9716
+ Closes #9723
+
+Viktor Szakats (13 Oct 2022)
+- lib: set more flags in config-win32.h
+
+ The goal is to add any flag that affect the created binary, to get in
+ sync with the ones built with CMake and autotools.
+
+ I took these flags from curl-for-win [0], where they've been tested with
+ mingw-w64 and proven to work well.
+
+ This patch brings them to curl as follows:
+
+ - Enable unconditionally those force-enabled via
+ `CMake/WindowsCache.cmake`:
+
+ - `HAVE_SETJMP_H`
+ - `HAVE_STRING_H`
+ - `HAVE_SIGNAL` (CMake equivalent is `HAVE_SIGNAL_FUNC`)
+
+ - Expand existing guards with mingw-w64:
+
+ - `HAVE_STDBOOL_H`
+ - `HAVE_BOOL_T`
+
+ - Enable Win32 API functions for Windows Vista and later:
+
+ - `HAVE_INET_NTOP`
+ - `HAVE_INET_PTON`
+
+ - Set sizes, if not already set:
+
+ - `SIZEOF_OFF_T = 8`
+ - `_FILE_OFFSET_BITS = 64` when `USE_WIN32_LARGE_FILES` is set,
+ and using mingw-w64.
+
+ - Add the remaining for mingw-w64 only. Feel free to expand as desired:
+
+ - `HAVE_LIBGEN_H`
+ - `HAVE_FTRUNCATE`
+ - `HAVE_BASENAME`
+ - `HAVE_STRTOK_R`
+
+ Future TODO:
+
+ - `HAVE_SIGNAL` has a different meaning in CMake. It's enabled when both
+ the `signal()` function and the `SIGALRM` macro are found. In
+ autotools and this header, it means the function only. For the
+ function alone, CMake uses `HAVE_SIGNAL_FUNC`.
+
+ [0] https://github.com/curl/curl-for-win/blob/c9b9a5f273c94c73d2b565ee892c4dff0ca97a8c/curl-m32.sh#L53-L58
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9712
+
+Daniel Stenberg (13 Oct 2022)
+- tests: add tests/markdown-uppercase.pl to dist tarball
+
+ Follow-up to aafb06c5928183d
+
+ Closes #9722
+
+- tool_paramhelp: asserts verify maximum sizes for string loading
+
+ The two defines MAX_FILE2MEMORY and MAX_FILE2STRING define the largest
+ strings accepted when loading files into memory, but as the size is
+ later used as input to functions that take the size as 'int' as
+ argument, the sizes must not be larger than INT_MAX.
+
+ These two new assert()s make the code error out if someone would bump
+ the sizes without this consideration.
+
+ Reported-by Trail of Bits
+
+ Closes #9719
+
+- http: try parsing Retry-After: as a number first
+
+ Since the date parser allows YYYYMMDD as a date format (due to it being
+ a bit too generic for parsing this particular header), a large integer
+ number could wrongly match that pattern and cause the parser to generate
+ a wrong value.
+
+ No date format accepted for this header starts with a decimal number, so
+ by reversing the check and trying a number first we can deduct that if
+ that works, it was not a date.
+
+ Reported-by Trail of Bits
+
+ Closes #9718
+
+- [Patrick Monnerat brought this change]
+
+ doc: fix deprecation versions inconsistencies
+
+ Ref: https://curl.se/mail/lib-2022-10/0026.html
+
+ Closes #9711
+
+- http_aws_sigv4: fix strlen() check
+
+ The check was off-by-one leading to buffer overflow.
+
+ Follow-up to 29c4aa00a16872
+
+ Detected by OSS-Fuzz
+
+ Closes #9714
+
+- curl/main_checkfds: check the fcntl return code better
+
+ fcntl() can (in theory) return a non-zero number for success, so a
+ better test for error is checking for -1 explicitly.
+
+ Follow-up to 41e1b30ea1b77e9ff
+
+ Mentioned-by: Dominik Klemba
+
+ Closes #9708
+
+Viktor Szakats (12 Oct 2022)
+- tidy-up: delete unused HAVE_STRUCT_POLLFD
+
+ It was only defined in `lib/config-win32.h`, when building for Vista.
+
+ It was only used in `select.h`, in a condition that also included a
+ check for `POLLIN` which is a superior choice for this detection and
+ which was already used by cmake and autotools builds.
+
+ Delete both instances of this macro.
+
+ Closes #9707
+
+Daniel Stenberg (12 Oct 2022)
+- test1275: verify upercase after period in markdown
+
+ Script based on the #9474 pull-request logic, but implemented in perl.
+
+ Updated docs/URL-SYNTAX.md accordingly.
+
+ Suggested-by: Dan Fandrich
+
+ Closes #9697
+
+- [12932 brought this change]
+
+ misc: nitpick grammar in comments/docs
+
+ because the 'u' in URL is actually a consonant *sound* it is only
+ correct to write "a URL"
+
+ sorry this is a bit nitpicky :P
+
+ https://english.stackexchange.com/questions/152/when-should-i-use-a-vs-an
+ https://www.techtarget.com/whatis/feature/Which-is-correct-a-URL-or-an-URL
+
+ Closes #9699
+
+Viktor Szakats (11 Oct 2022)
+- Makefile.m32: drop CROSSPREFIX and our CC/AR defaults [ci skip]
+
+ This patch aimed to fix a regression [0], where `CC` initialization
+ moved beyond its first use. But, on closer inspection it turned out that
+ the `CC` initialization does not work as expected due to GNU Make
+ filling it with `cc` by default. So unless implicit values were
+ explicitly disabled via a GNU Make option, the default value of
+ `$CROSSPREFIX` + `gcc` was never used. At the same time the implicit
+ value `cc` maps to `gcc` in (most/all?) MinGW envs.
+
+ `AR` has the same issue, with a default value of `ar`.
+
+ We could reintroduce a separate variable to fix this without ill
+ effects, but for simplicity and flexibility, it seems better to drop
+ support for `CROSSPREFIX`, along with our own `CC`/`AR` init logic, and
+ require the caller to initialize `CC`, `AR` and `RC` to the full
+ (prefixed if necessary) names of these tools, as desired.
+
+ We keep `RC ?= windres` because `RC` is empty by default.
+
+ Also fix grammar in a comment.
+
+ [0] 10fbd8b4e3f83b967fd9ad9a41ab484c0e7e7ca3
+
+ Closes #9698
+
+- smb: replace CURL_WIN32 with WIN32
+
+ PR #9255 aimed to fix a Cygwin/MSYS issue (#8220). It used the
+ `CURL_WIN32` macro, but that one is not defined here, while compiling
+ curl itself. This patch changes this to `WIN32`, assuming this was the
+ original intent.
+
+ Regression from 1c52e8a3795ccdf8ec9c308f4f8f19cf10ea1f1a
+
+ Reviewed-by: Marcel Raad
+
+ Closes #9701
+
+Daniel Stenberg (11 Oct 2022)
+- [Matthias Gatto brought this change]
+
+ aws_sigv4: fix header computation
+
+ Handle canonical headers and signed headers creation as explained here:
+ https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
+
+ The algo tells that signed and canonical must contain at last host and
+ x-amz-date.
+
+ So we check whatever thoses are present in the curl http headers list.
+ If they are, we use the one enter by curl user, otherwise we generate
+ them. then we to lower, and remove space from each http headers plus
+ host and x-amz-date, then sort them all by alphabetical order.
+
+ This patch also fix a bug with host header, which was ignoring the port.
+
+ Closes #7966
+
+Jay Satiro (11 Oct 2022)
+- [Aftab Alam brought this change]
+
+ README.md: link the curl logo to the website
+
+ - Link the curl:// image to https://curl.se/
+
+ Closes https://github.com/curl/curl/pull/9675
+
+- [Dustin Howett brought this change]
+
+ schannel: when importing PFX, disable key persistence
+
+ By default, the PFXImportCertStore API persists the key in the user's
+ key store (as though the certificate was being imported for permanent,
+ ongoing use.)
+
+ The documentation specifies that keys that are not to be persisted
+ should be imported with the flag PKCS12_NO_PERSIST_KEY.
+ NOTE: this flag is only supported on versions of Windows newer than XP
+ and Server 2003.
+
+ --
+
+ This is take 2 of the original fix. It extends the lifetime of the
+ client certificate store to that of the credential handle. The original
+ fix which landed in 70d010d and was later reverted in aec8d30 failed to
+ work properly because it did not do that.
+
+ Minor changes were made to the schannel credential context to support
+ closing the client certificate store handle at the end of an SSL session.
+
+ --
+
+ Reported-by: ShadowZzj@users.noreply.github.com
+
+ Fixes https://github.com/curl/curl/issues/9300
+ Supersedes https://github.com/curl/curl/pull/9363
+ Closes https://github.com/curl/curl/pull/9460
+
+Viktor Szakats (11 Oct 2022)
+- Makefile.m32: support more options [ci skip]
+
+ - Add support for these options:
+ `-wolfssl`, `-wolfssh`, `-mbedtls`, `-libssh`, `-psl`
+
+ Caveats:
+ - `-wolfssh` requires `-wolfssl`.
+ - `-wolfssl` cannot be used with OpenSSL backends in parallel.
+ - `-libssh` has build issues with BoringSSL and LibreSSL, and also
+ what looks like a world-writable-config vulnerability on Windows.
+ Consider it experimental.
+ - `-psl` requires `-idn2` and extra libs passed via
+ `LIBS=-liconv -lunistring`.
+
+ - Detect BoringSSL/wolfSSL and set ngtcp2 crypto lib accordingly.
+ - Generalize MultiSSL detection.
+ - Use else-if syntax. Requires GNU Make 3.81 (2006-04-01).
+ - Document more customization options.
+
+ This brings over some configuration logic from `curl-for-win`.
+
+ Closes #9680
+
+- cmake: enable more detection on Windows
+
+ Enable `HAVE_UNISTD_H`, `HAVE_STRTOK_R` and `HAVE_STRCASECMP` detection
+ on Windows, instead of having predefined values.
+
+ With these features detected correctly, CMake Windows builds get closer
+ to the autotools and `config-win32.h` ones.
+
+ This also fixes detecting `HAVE_FTRUNCATE` correctly, which required
+ `unistd.h`.
+
+ Fixing `ftruncate()` in turn causes a build warning/error with legacy
+ MinGW/MSYS1 due to an offset type size mismatch. This env misses to
+ detect `HAVE_FILE_OFFSET_BITS`, which may be a reason. This patch
+ force-disables `HAVE_FTRUNCATE` for this platform.
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9687
+
+- autotools: allow unix sockets on Windows
+
+ Fixes: https://github.com/curl/curl-for-win/blob/73a070d96fd906fdee929e2f1f00a9149fb39239/curl-autotools.sh#L44-L47
+
+ On Windows this feature is present, but not the header used in the
+ detection logic. It also requires an elaborate enabler logic
+ (as seen in `lib/curl_setup.h`). Let's always allow it and let the
+ lib code deal with the details.
+
+ Closes #9688
+
+- cmake: add missing inet_ntop check
+
+ This adds the missing half of the check, next to the other half
+ already present in `lib/curl_config.h.cmake`.
+
+ Force disable `HAVE_INET_NTOP` for old MSVC where it caused compiler
+ warnings.
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9689
+
+Daniel Stenberg (11 Oct 2022)
+- RELEASE-NOTES: synced
+
+- [bsergean on github brought this change]
+
+ asyn-ares: set hint flags when calling ares_getaddrinfo
+
+ The hint flag is ARES_AI_NUMERICSERV, and it will save a call to
+ getservbyname or getservbyname_r to set it.
+
+ Closes #9694
+
+- header.d: add category smtp and imap
+
+ They were previously (erroneously) added manually to tool_listhelp.c
+ which would make them get removed again when the file is updated next
+ time, unless added correctly here in header.d
+
+ Follow-up to 2437fac01
+
+ Closes #9690
+
+- curl/get_url_file_name: use libcurl URL parser
+
+ To avoid URL tricks, use the URL parser for this.
+
+ This update changes curl's behavior slightly in that it will ignore the
+ possible query part from the URL and only use the file name from the
+ actual path from the URL. I consider it a bugfix.
+
+ "curl -O localhost/name?giveme-giveme" will now save the output in the
+ local file named 'name'
+
+ Updated test 1210 to verify
+
+ Assisted-by: Jay Satiro
+
+ Closes #9684
+
+- [Martin Ågren brought this change]
+
+ docs: fix grammar around needing pass phrase
+
+ "You never needed a pass phrase" reads like it's about to be followed by
+ something like "until version so-and-so", but that is not what is
+ intended. Change to "You never need a pass phrase". There are two
+ instances of this text, so make sure to update both.
+
+- [Xiang Xiao brought this change]
+
+ cmake: add the check of HAVE_SOCKETPAIR
+
+ which is used by Curl_socketpair
+
+ Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
+
+ Closes #9686
+
+- curl/add_file_name_to_url: use the libcurl URL parser
+
+ instead of the custom error-prone parser, to extract and update the path
+ of the given URL
+
+ Closes #9683
+
+- single_transfer: use the libcurl URL parser when appending query parts
+
+ Instead of doing "manual" error-prone parsing in another place.
+
+ Used when --data contents is added to the URL query when -G is provided.
+
+ Closes #9681
+
+- ws: fix buffer pointer use in the callback loop
+
+ Closes #9678
+
+- [Petr Štetiar brought this change]
+
+ curl-wolfssl.m4: error out if wolfSSL is not usable
+
+ When I explicitly declare, that I would like to have curl built with
+ wolfSSL support using `--with-wolfssl` configure option, then I would
+ expect, that either I endup with curl having that support, for example
+ in form of https support or it wouldn't be available at all.
+
+ Downstream projects like for example OpenWrt build curl wolfSSL variant
+ with `--with-wolfssl` already, but in certain corner cases it does fail:
+
+ configure:25299: checking for wolfSSL_Init in -lwolfssl
+ configure:25321: x86_64-openwrt-linux-musl-gcc -o conftest [snip]
+ In file included from target-x86_64_musl/usr/include/wolfssl/wolfcrypt/dsa.h:33,
+ from target-x86_64_musl/usr/include/wolfssl/wolfcrypt/asn_public.h:35,
+ from target-x86_64_musl/usr/include/wolfssl/ssl.h:35,
+ from conftest.c:47:
+ target-x86_64_musl/usr/include/wolfssl/wolfcrypt/integer.h:37:14: fatal error: wolfssl/wolfcrypt/sp_int.h: No such file or directory
+ #include <wolfssl/wolfcrypt/sp_int.h>
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ compilation terminated.
+
+ and in the end thus produces curl without https support:
+
+ curl: (1) Protocol "https" not supported or disabled in libcurl
+
+ So fix it, by making the working wolfSSL mandatory and error out in
+ configure step when that's not the case:
+
+ checking for wolfSSL_Init in -lwolfssl... no
+ configure: error: --with-wolfssl but wolfSSL was not found or doesn't work
+
+ References: https://github.com/openwrt/packages/issues/19005
+ References: https://github.com/openwrt/packages/issues/19547
+ Signed-off-by: Petr Štetiar <ynezz@true.cz>
+
+ Closes #9682
+
+- tool_getparam: pass in the snprintf("%.*s") string length as 'int'
+
+ Reported by Coverity CID 1515928
+
+ Closes #9679
+
+- [Paul Seligman brought this change]
+
+ ws: minor fixes for web sockets without the CONNECT_ONLY flag
+
+ - Fixed an issue where is_in_callback was getting cleared when using web
+ sockets with debug logging enabled
+ - Ensure the handle is is_in_callback when calling out to fwrite_func
+ - Change the write vs. send_data decision to whether or not the handle
+ is in CONNECT_ONLY mode.
+ - Account for buflen not including the header length in curl_ws_send
+
+ Closes #9665
+
+Marc Hoersken (8 Oct 2022)
+- CI/cirrus: merge existing macOS jobs into a job matrix
+
+ Ref: #9627
+ Reviewed-by: Philip H.
+
+ Closes #9672
+
+Daniel Stenberg (8 Oct 2022)
+- strcase: add and use Curl_timestrcmp
+
+ This is a strcmp() alternative function for comparing "secrets",
+ designed to take the same time no matter the content to not leak
+ match/non-match info to observers based on how fast it is.
+
+ The time this function takes is only a function of the shortest input
+ string.
+
+ Reported-by: Trail of Bits
+
+ Closes #9658
+
+- tool_getparam: split out data_urlencode() into its own function
+
+ Closes #9673
+
+- connect: fix Curl_updateconninfo for TRNSPRT_UNIX
+
+ Reported-by: Vasiliy Ulyanov
+ Fixes #9664
+ Closes #9670
+
+- ws: fix Coverity complaints
+
+ Coverity pointed out several flaws where variables remained
+ uninitialized after forks.
+
+ Follow-up to e3f335148adc6742728f
+
+ Closes #9666
+
+Marc Hoersken (7 Oct 2022)
+- CI/GHA: merge msh3 and openssl3 builds into linux workflow
+
+ Continue work on merging all Linux workflows into one file.
+
+ Follow up to #9501
+ Closes #9646
+
+Daniel Stenberg (7 Oct 2022)
+- curl_ws_send.3: call the argument 'fragsize'
+
+ Since WebSocket works with "fragments" not "frames"
+
+ Closes #9668
+
+- easy: avoid Intel error #2312: pointer cast involving 64-bit pointed-to type
+
+ Follow-up to e3f335148adc6742728ff8
+
+ Closes #9669
+
+- tool_main: exit at once if out of file descriptors
+
+ If the main_checkfds function cannot create new file descriptors in an
+ attempt to detect of stdin, stdout or stderr are closed.
+
+ Also changed the check to use fcntl() to check if the descriptors are
+ open, which avoids superfluously calling pipe() if they all already are.
+
+ Follow-up to facfa19cdd4d0094
+
+ Reported-by: Trail of Bits
+
+ Closes #9663
+
+- websockets: remodeled API to support 63 bit frame sizes
+
+ curl_ws_recv() now receives data to fill up the provided buffer, but can
+ return a partial fragment. The function now also get a pointer to a
+ curl_ws_frame struct with metadata that also mentions the offset and
+ total size of the fragment (of which you might be receiving a smaller
+ piece). This way, large incoming fragments will be "streamed" to the
+ application. When the curl_ws_frame struct field 'bytesleft' is 0, the
+ final fragment piece has been delivered.
+
+ curl_ws_recv() was also adjusted to work with a buffer size smaller than
+ the fragment size. (Possibly needless to say as the fragment size can
+ now be 63 bit large).
+
+ curl_ws_send() now supports sending a piece of a fragment, in a
+ streaming manner, in addition to sending the entire fragment in a single
+ call if it is small enough. To send a huge fragment, curl_ws_send() can
+ be used to send it in many small calls by first telling libcurl about
+ the total expected fragment size, and then send the payload in N number
+ of separate invokes and libcurl will stream those over the wire.
+
+ The struct curl_ws_meta() returns is now called 'curl_ws_frame' and it
+ has been extended with two new fields: *offset* and *bytesleft*. To help
+ describe the passed on data chunk when a fragment is delivered in many
+ smaller pieces.
+
+ The documentation has been updated accordingly.
+
+ Closes #9636
+
+- [Patrick Monnerat brought this change]
+
+ docs/examples: avoid deprecated options in examples where possible
+
+ Example programs targeting a deprecated feature/option are commented with
+ a warning about it.
+ Other examples are adapted to not use deprecated options.
+
+ Closes #9661
+
+Viktor Szakats (6 Oct 2022)
+- cmake: fix enabling websocket support
+
+ Follow-up from 664249d095275ec532f55dd1752d80c8c1093a77
+
+ Closes #9660
+
+- tidy-up: delete parallel/unused feature flags
+
+ Detecting headers and lib separately makes sense when headers come in
+ variations or with extra ones, but this wasn't the case here. These were
+ duplicate/parallel macros that we had to keep in sync with each other
+ for a working build. This patch leaves a single macro for each of these
+ dependencies:
+
+ - Rely on `HAVE_LIBZ`, delete parallel `HAVE_ZLIB_H`.
+
+ Also delete CMake logic making sure these two were in sync, along with
+ a toggle to turn off that logic, called `CURL_SPECIAL_LIBZ`.
+
+ Also delete stray `HAVE_ZLIB` defines.
+
+ There is also a `USE_ZLIB` variant in `lib/config-dos.h`. This patch
+ retains it for compatibility and deprecates it.
+
+ - Rely on `USE_LIBSSH2`, delete parallel `HAVE_LIBSSH2_H`.
+
+ Also delete `LIBSSH2_WIN32`, `LIBSSH2_LIBRARY` from
+ `winbuild/MakefileBuild.vc`, these have a role when building libssh2
+ itself. And `CURL_USE_LIBSSH`, which had no use at all.
+
+ Also delete stray `HAVE_LIBSSH2` defines.
+
+ - Rely on `USE_LIBSSH`, delete parallel `HAVE_LIBSSH_LIBSSH_H`.
+
+ Also delete `LIBSSH_WIN32`, `LIBSSH_LIBRARY` and `HAVE_LIBSSH` from
+ `winbuild/MakefileBuild.vc`, these were the result of copy-pasting the
+ libssh2 line, and were not having any use.
+
+ - Delete unused `HAVE_LIBPSL_H` and `HAVE_LIBPSL`.
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9652
+
+Daniel Stenberg (6 Oct 2022)
+- netrc: compare user name case sensitively
+
+ User name comparisions in netrc need to match the case.
+
+ Closes #9657
+
+- CURLOPT_COOKIEFILE: insist on "" for enable-without-file
+
+ The former way that also suggested using a non-existing file to just
+ enable the cookie engine could lead to developers maybe a bit carelessly
+ guessing a file name that will not exist, and then in a future due to
+ circumstances, such a file could be made to exist and then accidentally
+ libcurl would read cookies not actually meant to.
+
+ Reported-by: Trail of bits
+
+ Closes #9654
+
+- tests/Makefile: remove run time stats from ci-test
+
+ The ci-test is the normal makefile target invoked in CI jobs. This has
+ been using the -r option to runtests.pl since a long time, but I find
+ that it mostly just adds many lines to the test output report without
+ anyone caring much about those stats.
+
+ Remove it.
+
+ Closes #9656
+
+- [Patrick Monnerat brought this change]
+
+ tool: reorganize function c_escape around a dynbuf
+
+ This is a bit shorter and a lot safer.
+
+ Substrings of unescaped characters are added by a single call to reduce
+ overhead.
+
+ Extend test 1465 to handle more kind of escapes.
+
+ Closes #9653
+
+Jay Satiro (5 Oct 2022)
+- CURLOPT_HTTPPOST.3: bolden the deprecation notice
+
+ Ref: https://github.com/curl/curl/pull/9621
+
+ Closes https://github.com/curl/curl/pull/9637
+
+Daniel Stenberg (5 Oct 2022)
+- [John Bampton brought this change]
+
+ misc: fix spelling in docs and comments
+
+ also: remove outdated sentence
+
+ Closes #9644
+
+- [Patrick Monnerat brought this change]
+
+ tool: avoid generating ambiguous escaped characters in --libcurl
+
+ C string hexadecimal-escaped characters may have more than 2 digits.
+ This results in a wrong C compiler interpretation of a 2-digit escaped
+ character when followed by an hex digit character.
+
+ The solution retained here is to represent such characters as 3-digit
+ octal escapes.
+
+ Adjust and extend test 1465 for this case.
+
+ Closes #9643
+
+- configure: the ngtcp2 option should default to 'no'
+
+ While still experimental.
+
+ Bug: https://curl.se/mail/lib-2022-10/0007.html
+ Reported-by: Daniel Hallberg
+
+ Closes #9650
+
+- CURLOPT_MIMEPOST.3: add an (inline) example
+
+ Reported-by: Jay Satiro
+ Bug: https://github.com/curl/curl/pull/9637#issuecomment-1268070723
+
+ Closes #9649
+
+Viktor Szakats (5 Oct 2022)
+- Makefile.m32: exclude libs & libpaths for shared mode exes [ci skip]
+
+ Exclude linker flags specifying depedency libs and libpaths, when
+ building against `libcurl.dll`. In such case these options are not
+ necessary (but may cause errors if not/wrongly configured.)
+
+ Also move and reword a comment on `CPPFLAGS` to not apply to
+ `UNICODE` options. These are necessary for all build targets.
+
+ Closes #9651
+
+Jay Satiro (5 Oct 2022)
+- runtests: fix uninitialized value on ignored tests
+
+ - Don't show TESTFAIL message (ie tests failed which aren't ignored) if
+ only ignored tests failed.
+
+ Before:
+ IGNORED: failed tests: 571 612 1056
+ TESTDONE: 1214 tests out of 1217 reported OK: 99%
+ Use of uninitialized value $failed in concatenation (.) or string at
+ ./runtests.pl line 6290.
+ TESTFAIL: These test cases failed:
+
+ After:
+ IGNORED: failed tests: 571 612 1056
+ TESTDONE: 1214 tests out of 1217 reported OK: 99%
+
+ Closes https://github.com/curl/curl/pull/9648
+
+- cirrus: use make LDFLAGS=-all-static instead of curl_LDFLAGS
+
+ - Correct the use of -all-static for static Windows CI builds.
+
+ curl_LDFLAGS was removed from the makefile when metalink support was
+ removed. LDFLAGS=-all-static is passed to make only, because it is not a
+ valid option for configure compilation tests.
+
+ Closes https://github.com/curl/curl/pull/9633
+
+Viktor Szakats (4 Oct 2022)
+- Makefile.m32: fix regression with tool_hugehelp [ci skip]
+
+ In a recent commit I mistakenly deleted this logic, after seeing a
+ reference to a filename ending with `.cvs` and thinking it must have
+ been long gone. Turns out this is an existing file. Restore the rule
+ and the necessary `COPY` definitions with it.
+
+ The restored logic is required for a successful build on a bare source
+ tree (as opposed to a source release tarball).
+
+ Also shorten an existing condition similar to the one added in this
+ patch.
+
+ Regression since 07a0047882dd3f1fbf73486c5dd9c15370877ad6
+
+ Closes #9645
+
+- Makefile.m32: deduplicate build rules [ci skip]
+
+ After this patch, we reduce the three copies of most `Makefile.m32`
+ logic to one. This now resides in `lib/Makefile.m32`. It makes future
+ updates easier, the code shorter, with a small amount of added
+ complexity.
+
+ `Makefile.m32` reduction:
+
+ | | bytes | LOC total | blank | comment | code |
+ |-------------------|-------:|----------:|-------:|---------:|------:|
+ | 7.85.0 | 34772 | 1337 | 79 | 192 | 1066 |
+ | before this patch | 17601 | 625 | 62 | 106 | 457 |
+ | after this patch | 11680 | 392 | 52 | 104 | 236 |
+
+ Details:
+
+ - Change rules to create objects for the `v*` subdirs in the `lib` dir.
+ This allows to use a shared compile rule and assumes that filenames
+ are not (and will not be) colliding across these directories.
+ `Makefile.m32` now also stores a list of these subdirs. They are
+ changing rarely though.
+
+ - Sync as much as possible between the three `Makefile.m32` scripts'
+ rules and their source/target sections.
+
+ - After this patch `CPPFLAGS` are all applied to the `src` sources once
+ again. This matches the behaviour of cmake/autotools. Only zlib ones
+ are actually required there.
+
+ - Use `.rc` names from `Makefile.inc` instead of keeping a duplicate.
+
+ - Change examples to link `libcurl.dll` by default. This makes building
+ trivial, even as a cross-build:
+ `CC=x86_64-w64-mingw32-gcc make -f Makefile.m32`
+ To run them, you need to move/copy or add-to-path `libcurl.dll`.
+ You can select static mode via `CFG=-static`.
+
+ - List more of the `Makefile.m32` config variables.
+
+ - Drop `.rc` support from examples. It made it fragile without much
+ benefit.
+
+ - Include a necessary system lib for the `externalsocket.c` example.
+
+ - Exclude unnecessary systems libs when building in `-dyn` mode.
+
+ Closes #9642
+
+Daniel Stenberg (4 Oct 2022)
+- RELEASE-NOTES: synced
+
+- CURLOPT_COOKIELIST.3: fix formatting mistake
+
+ Also, updated manpage-syntax.pl to make it detect this error in test
+ 1173.
+
+ Reported-by: ProceduralMan on github
+ Fixes #9639
+ Closes #9640
+
+- [Jay Satiro brought this change]
+
+ connect: change verbose IPv6 address:port to [address]:port
+
+ - Use brackets for the IPv6 address shown in verbose message when the
+ format is address:port so that it is less confusing.
+
+ Before: Trying 2606:4700:4700::1111:443...
+ After: Trying [2606:4700:4700::1111]:443...
+
+ Bug: https://curl.se/mail/archive-2022-02/0041.html
+ Reported-by: David Hu
+
+ Closes #9635
+
+Viktor Szakats (3 Oct 2022)
+- Makefile.m32: major rework [ci skip]
+
+ This patch overhauls `Makefile.m32` scripts, fixing a list of quirks,
+ making its behaviour and customization envvars align better with other
+ build systems, aiming for less code, that is easier to read, use and
+ maintain.
+
+ Details:
+ - Rename customization envvars:
+ `CURL_CC` -> `CC`
+ `CURL_RC` -> `RC`
+ `CURL_AR` -> `AR`
+ `CURL_LDFLAG_EXTRAS_DLL` -> `CURL_LDFLAGS_LIB`
+ `CURL_LDFLAG_EXTRAS_EXE` -> `CURL_LDFLAGS_BIN`
+ - Drop `CURL_STRIP` and `CURL_RANLIB`. These tools are no longer used.
+ - Accept `CFLAGS`, `CPPFLAGS`, `RCFLAGS`, `LDFLAGS` and `LIBS` envvars.
+ - Drop `CURL_CFLAG_EXTRAS`, `CURL_LDFLAG_EXTRAS`, `CURL_RCFLAG_EXTRAS` in
+ favor of the above.
+ - Do not automatically enable `zlib` with `libssh2`. `zlib` is optional
+ with `libssh2`.
+ - Omit unnecessary `CPPFLAGS` options when building `curl.exe` and
+ examples.
+ - Drop support for deprecated `-winssl` `CFG` option. Use `-schannel`
+ instead.
+ - Avoid late evaluation where not necessary (`=` -> `:=`).
+ - Drop support for `CURL_DLL_A_SUFFIX` to override the implib suffix.
+ Instead, use the standard naming scheme by default: `libcurl.dll.a`.
+ The toolchain recognizes the name, and selects it automatically when
+ asking for a `-shared` vs. `-static` build.
+ - Stop applying `strip` to `libcurl.a`. Follow-up from
+ 16a58e9f93c7e89e1f87720199388bcfcfa148a4. There was no debug info to
+ strip since then.
+ - Stop setting `-O3`, `-W`, `-Wall` options. You can add these to
+ `CFLAGS` as desired.
+ - Always enable `-DCURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG` with OpenSSL,
+ to avoid that vulnerability on Windows.
+ - Add `-lbrotlicommon` to `LIBS` when using `brotli`.
+ - Do not enable `-nghttp3` without `-ngtcp2`.
+ - `-ssh2` and `-rtmp` options no longer try to auto-select a TLS-backend.
+ You need to set the backend explicitly. This scales better and avoids
+ issues with certain combinations (e.g. `libssh2` + `wolfssl` with no
+ `schannel`).
+ - Default to OpenSSL TLS-backend with `ngtcp2`. Possible to override via
+ `NGTCP2_LIBS`.
+ - Old, alternate method of enabling components (e.g. `SSH2=1`) no longer
+ supported.
+ - Delete `SPNEGO` references. They were no-ops.
+ - Drop support for Win9x environments.
+ - Allow setting `OPENSSL_LIBS` independently from `OPENSSL_LIBPATH`.
+ - Support autotools/CMake `libssh2` builds by default.
+ - Respect `CURL_DLL_SUFFIX` in `-dyn` mode when building `curl.exe` and
+ examples.
+ - Assume standard directory layout with `LIBCARES_PATH`. (Instead of the
+ long gone embedded one.)
+ - Stop static linking with c-ares by default. Add
+ `CPPFLAGS=-DCARES_STATICLIB` to enable it.
+ - Reorganize internal layout to avoid redundancy and emit clean diffs
+ between src/lib and example make files.
+ - Delete unused variables.
+ - Code cleanups/rework.
+ - Comment and indentation fixes.
+
+ Closes #9632
+
+- scripts/release-notes.pl: strip ci skip tag [ci skip]
+
+ Ref: https://github.com/curl/curl/commit/e604a82cae922bf86403a94f5803ac5e4303ae97#commitcomment-85637701
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9634
+
+- Makefile.m32: delete legacy component bits [ci skip]
+
+ - Drop auto-detection of OpenSSL 1.0.2 and earlier. Now always defaulting
+ to OpenSSL 1.1.0 and later, LibreSSL and BoringSSL.
+
+ - Drop `Invalid path to OpenSSL package` detection. OpenSSL has been
+ using a standard file layout since 1.1.0, so this seems unnecessary
+ now.
+
+ - Drop special logic to enable Novell LDAP SDK support.
+
+ - Drop special logic to enable OpenLDAP LDAP SDK support. This seems
+ to be distinct from native OpenLDAP, with support implemented inside
+ `lib/ldap.c` (vs. `lib/openldap.c`) back when the latter did not exist
+ yet in curl.
+
+ - Add `-lwldap32` only if there is no other LDAP library (either native
+ OpenLDAP, or SDKs above) present.
+
+ - Update `doc/INSTALL.md` accordingly.
+
+ After this patch, it's necessary to make configration changes when using
+ OpenSSL 1.0.2 or earlier, or the two LDAP SDKs.
+
+ OpenSSL 1.0.2 and earlier:
+ ```
+ export OPENSSL_INCLUDE = <path-to-openssl>/outinc
+ export OPENSSL_LIBPATH = <path-to-openssl>/out
+ export OPENSSL_LIBS = -lssl32 -leay32 -lgdi32
+ ```
+
+ Novell LDAP SDK, previously enabled via `USE_LDAP_NOVELL=1`:
+ ```
+ export CURL_CFLAG_EXTRAS = -I<path-to-sdk>/inc -DCURL_HAS_NOVELL_LDAPSDK
+ export CURL_LDFLAG_EXTRAS = -L<path-to-sdk>/lib/mscvc -lldapsdk -lldapssl -lldapx
+ ```
+
+ OpenLDAP LDAP SDK, previously enabled via `USE_LDAP_OPENLDAP=1`:
+ ```
+ export CURL_CFLAG_EXTRAS = -I<path-to-sdk>/include -DCURL_HAS_OPENLDAP_LDAPSDK
+ export CURL_LDFLAG_EXTRAS = -L<path-to-sdk>/lib -lldap -llber
+ ```
+
+ I haven't tested these scenarios, and in general we recommend using
+ a recent OpenSSL release. Also, WinLDAP (the Windows default) and
+ OpenLDAP (via `-DUSE_OPENLDAP`) are the LDAP options actively worked on
+ in curl.
+
+ Closes #9631
+
+Daniel Stenberg (2 Oct 2022)
+- vauth/ntlm.h: make line shorter than 80 columns
+
+ Follow-up from 265fbd937
+
+Viktor Szakats (1 Oct 2022)
+- docs: update sourceforge project links [ci skip]
+
+ SourceForge projects can now choose between two hostnames, with .io and
+ .net ending. Both support HTTPS by default now. Opening the other variant
+ will perm-redirected to the one chosen by the project.
+
+ The .io -> .net redirection is done insecurely.
+
+ Let's update the URLs to point to the current canonical endpoints to
+ avoid any redirects.
+
+ Closes #9630
+
+Daniel Stenberg (1 Oct 2022)
+- curl_url_set.3: document CURLU_APPENDQUERY proper
+
+ Listed among the other supported flags.
+
+ Reported-by: Robby Simpson
+ Fixes #9628
+ Closes #9629
+
+Viktor Szakats (1 Oct 2022)
+- Makefile.m32: cleanups and fixes [ci skip]
+
+ - Add `-lcrypt32` once, and add it always for simplicity.
+ - Delete broken link and reference to the pre-Vista WinIDN add-on.
+ MS no longer distribute it.
+ - Delete related `WINIDN_PATH` option. IDN is a system lib since Vista.
+ - Sync `LIBCARES_PATH` default with the rest of dependencies.
+ - Delete version numbers from dependency path defaults.
+ - `libgsasl` package is now called `gsasl`.
+ - Delete `libexpat` and `libxml2` references. No longer used by curl.
+ - Delete `Edit the path below...` comments. We recommend to predefine
+ those envvars instead.
+ - `libcares.a` is not an internal dependency anymore. Stop using it as
+ such.
+ - `windres` `--include-dir` -> `-I`, `-F` -> `--target=` for readability.
+ - Delete `STRIP`, `CURL_STRIP`, `AR` references from `src/Makefile.m32`.
+ They were never used.
+ - Stop to `clean` some objects twice in `src/Makefile.m32`.
+ - Delete cvs-specific leftovers.
+ - Finish resource support in examples make file.
+ - Delete `-I<root>/lib` from examples make file.
+ - Fix copyright start year in examples make file.
+ - Delete duplicate `ftpuploadresume` input in examples make file.
+ - Sync OpenSSL lib order, `SYNC` support, `PROOT` use, dependency path
+ defaults, variables names and other internal bits between the three
+ make files.
+ - `lib/Makefile.m32` accepted custom options via `DLL_LIBS` envvar. This
+ was lib-specific and possibly accidental. Use `CURL_LDFLAG_EXTRAS_DLL`
+ envvar for the same effect.
+ - Fix linking `curl.exe` and examples to wrong static libs with
+ auto-detected OpenSSL 1.0.2 or earlier.
+ - Add `-lgdi32` for OpenSSL 1.0.2 and earlier only.
+ - Add link to Novell LDAP SDK and use a relative default path. Latest
+ version is from 2016, linked to an outdated OpenSSL 1.0.1.
+ - Whitespace and comment cleanups.
+
+ TODO in a next commit:
+
+ Delete built-in detection/logic for OpenSSL 1.0.2 and earlier, the Novell
+ LDAP SDK and the other LDAP SDK (which is _not_ OpenLDAP). Write up the
+ necessary custom envvars to configure them.
+
+ Closes #9616
+
+Daniel Stenberg (30 Sep 2022)
+- RELEASE-NOTES: synced
+
+- [Matt Holt brought this change]
+
+ HTTP3.md: update Caddy example
+
+ Closes #9623
+
+- easy: fix the altsvc init for curl_easy_duphandle
+
+ It was using the old #ifdef which nothing sets anymore
+
+ Closes #9624
+
+- GHA: build tests in a separate step from the running of them
+
+ ... to make the output smaller for when you want to look at test
+ failures.
+
+ Removed the examples build from msh3
+
+ Closes #9619
+
+Viktor Szakats (29 Sep 2022)
+- ldap: delete stray CURL_HAS_MOZILLA_LDAP reference
+
+ Added in 68b215157fdf69612edebdb220b3804822277822, while adding openldap
+ support. This is also the single mention of this constant in the source
+ tree and also in that commit. Based on these, it seems like an accident.
+
+ Delete this reference.
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9625
+
+- docs: spelling nits
+
+ - MingW -> MinGW (Minimalist GNU for Windows)
+ - f.e. -> e.g.
+ - some whitespace and punctuation.
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9622
+
+Daniel Stenberg (29 Sep 2022)
+- [Philip Heiduck brought this change]
+
+ cirrus-ci: add macOS build with m1
+
+ Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
+
+ Closes #9565
+
+- [Patrick Monnerat brought this change]
+
+ lib: sanitize conditional exclusion around MIME
+
+ The introduction of CURL_DISABLE_MIME came with some additional bugs:
+ - Disabled MIME is compiled-in anyway if SMTP and/or IMAP is enabled.
+ - CURLOPT_MIMEPOST, CURLOPT_MIME_OPTIONS and CURLOPT_HTTPHEADER are
+ conditioned on HTTP, although also needed for SMTP and IMAP MIME mail
+ uploads.
+
+ In addition, the CURLOPT_HTTPHEADER and --header documentation does not
+ mention their use for MIME mail.
+
+ This commit fixes the problems above.
+
+ Closes #9610
+
+- [Thiago Suchorski brought this change]
+
+ docs: minor grammar fixes
+
+ Closes #9609
+
+- CURLSHOPT_UNLOCKFUNC.3: the callback as no 'access' argument
+
+ Probably a copy and paste error from the lock function man page.
+
+ Reported-by: Robby Simpson
+ Fixes #9612
+ Closes #9613
+
+- CURLOPT_ACCEPT_ENCODING.3: remove "four" as they are five
+
+ ... instead just list the supported encodings.
+
+ Reported-by: ProceduralMan on github
+ Fixes #9614
+ Closes #9615
+
+Dan Fandrich (28 Sep 2022)
+- tests: Remove a duplicated keyword
+
+- docs: document more server names for test files
+
+Daniel Stenberg (28 Sep 2022)
+- altsvc: reject bad port numbers
+
+ The existing code tried but did not properly reject alternative services
+ using negative or too large port numbers.
+
+ With this fix, the logic now also flushes the old entries immediately
+ before adding a new one, making a following header with an illegal entry
+ not flush the already stored entry.
+
+ Report from the ongoing source code audit by Trail of Bits.
+
+ Adjusted test 356 to verify.
+
+ Closes #9607
+
+- functypes: provide the recv and send arg and return types
+
+ This header is for providing the argument types for recv() and send()
+ when built to not use a dedicated config-[platfor].h file.
+
+ Remove the slow brute-force checks from configure and cmake.
+
+ This change also removes the use of the types for select, as they were
+ not used in code.
+
+ Closes #9592
+
+- urlapi: reject more bad characters from the host name field
+
+ Extended test 1560 to verify
+
+ Report from the ongoing source code audit by Trail of Bits.
+
+ Closes #9608
+
+- configure: deprecate builds with small curl_off_t
+
+ If curl_off_t turns out to be smaller than 8 bytes,
+ --with-n64-deprecated needs to be used to allow the build to
+ continue. This is to highlight the fact that support for such builds is
+ going away next year.
+
+ Also mentioned in DEPRECATED.md
+
+ Closes #9605
+
+- [Patrick Monnerat brought this change]
+
+ http, vauth: always provide Curl_allow_auth_to_host() functionality
+
+ This function is currently located in the lib/http.c module and is
+ therefore disabled by the CURL_DISABLE_HTTP conditional token.
+
+ As it may be called by TLS backends, disabling HTTP results in an
+ undefined reference error at link time.
+
+ Move this function to vauth/vauth.c to always provide it and rename it
+ as Curl_auth_allowed_to_host() to respect the vauth module naming
+ convention.
+
+ Closes #9600
+
+- ngtcp2: fix C89 compliance nit
+
+- openssl: make certinfo available for QUIC
+
+ Curl_ossl_certchain() is now an exported function in lib/vtls/openssl.c that
+ can also be used from quiche.c and ngtcp2.c to get the cert chain for QUIC
+ connections as well.
+
+ The *certchain function was moved to the top of the file for this reason.
+
+ Reported-by: Eloy Degen
+ Fixes #9584
+ Closes #9597
+
+- RELEASE-NOTES: synced
+
+- DEPRECATE.md: Support for systems without 64 bit data types
+
+ Closes #9604
+
+- [Patrick Monnerat brought this change]
+
+ tests: skip mime/form tests when mime is not built-in
+
+ Closes #9596
+
+- url: rename function due to name-clash in Watt-32
+
+ Follow-up to 2481dbe5f4f58 and applies the change the way it was
+ intended.
+
+Viktor Szakats (26 Sep 2022)
+- windows: adjust name of two internal public functions
+
+ According to `docs/INTERNALS.md`, internal function names spanning source
+ files start with uppercase `Curl_`. Bring these two functions in
+ alignment with this.
+
+ This also stops exporting them from `libcurl.dll` in autotools builds.
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9598
+
+Daniel Stenberg (26 Sep 2022)
+- [Gisle Vanem brought this change]
+
+ url: rename function due to name-clash in Watt-32
+
+ Since the commit 764c958c52edb427f39, there was a new function called
+ resolve_ip(). This clashes with an internal function in Watt-32.
+
+ Closes #9585
+
+Jay Satiro (26 Sep 2022)
+- schannel: ban server ALPN change during recv renegotiation
+
+ By the time schannel_recv is renegotiating the connection, libcurl has
+ already decided on a protocol and it is too late for the server to
+ select a protocol via ALPN except for the originally selected protocol.
+
+ Ref: https://github.com/curl/curl/issues/9451
+
+ Closes https://github.com/curl/curl/pull/9463
+
+Daniel Stenberg (26 Sep 2022)
+- url: a zero-length userinfo part in the URL is still a (blank) user
+
+ Adjusted test 1560 to verify
+
+ Reported-by: Jay Satiro
+
+ Fixes #9088
+ Closes #9590
+
+Viktor Szakats (25 Sep 2022)
+- autotools: allow --enable-symbol-hiding with windows
+
+ This local autotools logic was put in place in
+ 9e24b9c7afbcb81120af4cf3f6cdee49a06d8224 (in 2012) which disabled it for
+ Windows unconditionally. Testing reveals that it actually works with
+ tested toolchains (mingw-w64 and CI ones), so let's allow this build
+ feature on that platform. Bringing this in sync with CMake, which already
+ supported this.
+
+ Reviewed-by: Jay Satiro
+
+ Closes #9586
+
+- autotools: reduce brute-force when detecting recv/send arg list
+
+ autotools uses brute-force to detect `recv`/`send`/`select` argument
+ lists, by interating through _all_ argument type combinations on each
+ `./configure` run. This logic exists since
+ 01fa02d0b545e1433dced2430561f8c0c72b74a9 (from 2006) and was a bit later
+ extended with Windows support.
+
+ This results in a worst-case number of compile + link cycles as below:
+ - `recv`: 96
+ - `send`: 192
+ - `select`: 60
+ Total: 348 (the number of curl C source files is 195, for comparison)
+
+ Notice that e.g. curl-for-win autotools builds require two `./configure`
+ invocations, doubling these numbers.
+
+ `recv` on Windows was especially unlucky because `SOCKET` (the correct
+ choice there) was listed _last_ in one of the outer trial loops. This
+ resulted in lengthy waits while autotools was trying all invalid
+ combinations first, wasting cycles, disk writes and slowing down
+ iteration.
+
+ This patch reduces the amount of idle work by reordering the tests in
+ a way to succeed first on a well-known platform such as Windows, and
+ also on non-Windows by testing for POSIX prototypes first, on the
+ assumption that these are the most likely candidates these days. (We do
+ not touch `select`, where the order was already optimal for these
+ platforms.)
+
+ For non-Windows, this means to try a return value of `ssize_t` first,
+ then `int`, reordering the buffer argument type to try `void *` first,
+ then `byte *`, and prefer the `const` flavor with `send`. If we are
+ here, also stop testing for `SOCKET` type in non-Windows builds.
+
+ After the patch, detection on Windows is instantaneous. It should also be
+ faster on popular platforms such as Linux and BSD-based ones.
+
+ If there are known-good variations for other platforms, they can also be
+ fast-tracked like above, given a way to check for that platform inside
+ the autotools logic.
+
+ Reviewed-by: Daniel Stenberg
+
+ Closes #9591
+
+Daniel Stenberg (23 Sep 2022)
+- TODO: Provide the error body from a CONNECT response
+
+ Spellchecked-by: Jay Satiro
+
+ Closes #9513
+ Closes #9581
+
+Viktor Szakats (23 Sep 2022)
+- windows: autotools .rc warnings fixup
+
+ Move `LT_LANG([Windows Resource])` after `XC_LIBTOOL`, fixing:
+
+ - Warnings when running `autoreconf -fi`.
+
+ - Warning when compiling .rc files:
+ libtool: compile: unable to infer tagged configuration
+ libtool: error: specify a tag with '--tag'
+
+ Follow up to 6de7322c03d5b4d91576a7d9fc893e03cc9d1057
+ Ref: https://github.com/curl/curl/pull/9521#issuecomment-1256291156
+
+ Suggested-by: Patrick Monnerat
+ Closes #9582
+
+Daniel Stenberg (23 Sep 2022)
+- [Randall S. Becker brought this change]
+
+ curl_setup: disable use of FLOSS for 64-bit NonStop builds
+
+ Older 32-bit builds currently need FLOSS. This dependency may be removed
+ in future OS releases.
+
+ Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
+
+ Closes #9575
+
+- [Patrick Monnerat brought this change]
+
+ tool: remove dead code
+
+ Add a debug assertion to verify protocols included/excluded in a set
+ are always tokenized.
+
+ Follow-up to commit 677266c.
+
+ Closes #9576
+
+- [Patrick Monnerat brought this change]
+
+ lib: prepare the incoming of additional protocols
+
+ Move the curl_prot_t to its own conditional block. Introduce symbol
+ PROTO_TYPE_SMALL to control it.
+
+ Fix a cast in a curl_prot_t assignment.
+ Remove an outdated comment.
+
+ Follow-up to cd5ca80.
+
+ Closes #9534
+
+- msh3: change the static_assert to make the code C89
+
+- bearssl: make it proper C89 compliant
+
+- curl-compilers.m4: for gcc + want warnings, set gnu89 standard
+
+ To better verify that the code is C89
+
+ Closes #9542
+
+- [Patrick Monnerat brought this change]
+
+ lib517: fix C89 constant signedness
+
+ In C89, positive integer literals that overflow an int but not an
+ unsigned int may be understood as a negative int.
+
+ lib517.c:129:3: warning: this decimal constant is unsigned only in ISO C90
+ {"Sun, 06 Nov 2044 08:49:37 GMT", 2362034977 },
+ ^
+
+ Closes #9572
+
+- mprintf: use snprintf if available
+
+ This is the single place in libcurl code where it uses the "native"
+ s(n)printf() function. Used for writing floats. The use has been
+ reviewed and vetted and uses a HUGE target buffer, but switching to
+ snprintf() still makes this safer and removes build-time warnings.
+
+ Reported-by: Philip Heiduck
+
+ Fixes #9569
+ Closes #9570
+
+- docs: tag curl options better in man pages
+
+ As it makes them links in the HTML versions.
+
+ Verified by the extended test 1176
+
+- symbols-in-versions: CURLOPT_ENCODING is deprecated since 7.21.6
+
+- manpage-syntax.pl: all libcurl option symbols should be \fI-tagged
+
+ ... as that makes them links to their corresponding man page.
+
+ This script is used for test 1173.
+
+ Closes #9574
+
+- RELEASE-NOTES: synced
+
+- [Patrick Monnerat brought this change]
+
+ tool: remove protocol count limitation
+
+ Replace bit mask protocol sets by null-terminated arrays of protocol
+ tokens. These are the addresses of the protocol names returned by
+ curl_version_info().
+
+ Protocol names are sorted case-insensitively before output to satisfy CI
+ tests matches consistency.
+
+ The protocol list returned by curl_version_info() is augmented with all
+ RTMP protocol variants.
+
+ Test 1401 adjusted for new alpha ordered output.
+
+ Closes #9546
+
+- test972: verify the output without using external tool
+
+ It seems too restrictive to assume and use an external tool to verify
+ the JSON. This now verifies the outut byte per byte. We could consider
+ building a local "JSON verifyer" in a future.
+
+ Remove 'jsonlint' from the CI job.
+
+ Reported-by: Marcel Raad
+ Fixes #9563
+ Closes #9564
+
+- hostip: lazily wait to figure out if IPv6 works until needed
+
+ The check may take many milliseconds, so now it is performed once the
+ value is first needed. Also, this change makes sure that the value is
+ not used if the resolve is set to be IPv4-only.
+
+ Closes #9553
+
+- curl.h: fix mention of wrong error code in comment
+
+ The same error and comment were also used and is now corrected in
+ CURLOPT_SSH_KEYFUNCTION.3
+
+- symbol-scan.pl: scan and verify .3 man pages
+
+ This script now also finds all .3 man pages in docs/include and
+ docs/include/opts, extracts all uses of CURL* symbols and verifies that all
+ symbols mentioned in docs are defined in public headers.
+
+ A "global symbol" is one of those matching a known prefix and the script makes
+ an attempt to check all/most of them. Just using *all* symbols that match
+ CURL* proved matching a little too many other references as well and turned
+ difficult turning into something useful.
+
+ Closes #9544
+
+- symbols-in-versions: add missing LIBCURL* symbols
+
+- symbol-scan.pl: also check for LIBCURL* symbols
+
+ Closes #9544
+
+- docs/libcurl/symbols-in-versions: add several missing symbols
+
+- test1119: scan all public headers
+
+ Previously this test only scanned a subset of the headers, which made us
+ accidentally miss symbols that were provided in the others. Now, the script
+ iterates over all headers present in include/curl.
+
+ Closes #9544
+
+- [Patrick Monnerat brought this change]
+
+ examples/chkspeed: improve portability
+
+ The example program chkspeed uses strncasecmp() which is not portable
+ across systems. Replace calls to this function by tests on characters.
+
+ Closes #9562
+
+- easy: fix the #include order
+
+ The mentioned "last 3 includes" order should be respected. easy_lock.h should
+ be included before those three.
+
+ Reported-by: Yuriy Chernyshov
+ Fixes #9560
+ Closes #9561
+
+- docs: spellfixes
+
+ Pointed by the new CI job
+
+- GHA: spellcheck
+
+ This spellchecker checks markdown files. For this reason this job
+ converts all man pages in the repository to markdown with pandoc before
+ the check runs.
+
+ The perl script 'cleanspell' filters out details from the man page in
+ the process, to avoid the spellchecker trying to spellcheck things it
+ can't. Like curl specific symbols and the SYNOPSIS and EXAMPLE sections
+ of libcurl man pages.
+
+ The spell checker does not check words in sections that are within pre,
+ strong and em tags.
+
+ 'spellcheck.words' is a custom word list with additional accepted words.
+
+ Closes #9523
+
+- connect: fix the wrong error message on connect failures
+
+ The "Failed to connect to" message after a connection failure would
+ include the strerror message based on the presumed previous socket
+ error, but in times it seems that error number is not set when reaching
+ this code and therefore it would include the wrong error message.
+
+ The strerror message is now removed from here and the curl_easy_strerror
+ error is used instead.
+
+ Reported-by: Edoardo Lolletti
+ Fixes #9549
+ Closes #9554
+
+- httpput-postfields.c: shorten string for C89 compliance
+
+ httpput-postfields.c:41:3: error: string length ‘522’ is greater than the length ‘509’ ISO C90 compilers are required to support [-Woverlength-strings]
+ 41 | "this chapter.";
+ | ^~~~~~~~~~~~~~~
+
+ Closes #9555
+
+- ws: fix a C89 compliance nit
+
+ Closes #9541
+
+- [Patrick Monnerat brought this change]
+
+ unit test 1655: make it C89-compliant
+
+ Initializations performed in unit test 1655 use automatic variables in
+ aggregates and thus can only be computed at run-time. Using gcc in C89
+ dialect mode produces warning messages like:
+
+ unit1655.c:96:7: warning: initializer element is not computable at load time [-Wpedantic]
+ 96 | { toolong, DOH_DNS_NAME_TOO_LONG }, /* expect early failure */
+ | ^~~~~~~
+
+ Fix the problem by converting these automatic pointer variables to
+ static arrays.
+
+ Closes #9551
+
+- [Tobias Schaefer brought this change]
+
+ curl_strequal.3: fix typo
+
+ Closes #9548
+
+- [Dmitry Karpov brought this change]
+
+ resolve: make forced IPv4 resolve only use A queries
+
+ This protects IPv4-only transfers from undesired bad IPv6-related side
+ effects and make IPv4 transfers in dual-stack libcurl behave the same
+ way as in IPv4 single-stack libcurl.
+
+ Closes #9540
+
+- RELEASE-NOTES: synced
+
+- winbuild/MakefileBuild.vc: handle spaces in libssh(2) include paths
+
+ Patched-by: Mark Itzcovitz
+ Bug: https://curl.se/mail/lib-2022-09/0038.html
+
+ Closes #9536
+
+- TODO: Reduce CA certificate bundle reparsing
+
+ By adding some sort of cache.
+
+ Reported-by: Michael Drake
+ Closes #9379
+ Closes #9538
+
+Marc Hoersken (19 Sep 2022)
+- CI/GHA: cancel outdated CI runs on new PR changes
+
+ Avoid letting outdated CI runs continue if a PR receives
+ new changes. Outside a PR we let them continue running
+ by tying the concurrency to the commit hash instead.
+
+ Also only let one CodeQL or Hacktoberfest job run at a time.
+
+ Other CI platforms we use have this build in, but GitHub
+ unfortunately neither by default nor with a simple option.
+
+ This saves CI resources and therefore a little energy.
+
+ Approved-by: Daniel Stenberg
+ Approved-by: Max Dymond
+ Closes #9533
+
+Daniel Stenberg (19 Sep 2022)
+- docs: fix proselint complaints
+
+- GHA: run proselint on markdown files
+
+ Co-authored-by: Marc Hörsken
+
+ Closes #9520
+
+- lib: the number four in a sequence is the "fourth"
+
+ Spelling is hard
+
+ Closes #9535
+
+- [John Bampton brought this change]
+
+ misc: fix spelling in two source files
+
+ Closes #9529
+
+Viktor Szakats (18 Sep 2022)
+- windows: add .rc support to autotools builds
+
+ After this update autotools builds will compile and link `.rc` resources
+ to Windows executables. Bringing this feature on par with CMake and
+ Makefile.m32 builds. And also making it unnecessary to improvise these
+ steps manually, while monkey patching build files, e.g. [0].
+
+ You can customize the resource compiler via the `RC` envvar, and its
+ options via `RCFLAGS`.
+
+ This harmless warning may appear throughout the build, even though the
+ autotools manual documents [1] `RC` as a valid tag, and it fails when
+ omitting one:
+ `libtool: error: ignoring unknown tag RC`
+
+ [0] https://github.com/curl/curl-for-win/blob/535f19060d4b708f72e75dd849409ce50baa1b84/curl-autotools.sh#L376-L382
+ [1] https://www.gnu.org/software/libtool/manual/html_node/Tags.html
+
+ Closes #9521
+
+Marc Hoersken (18 Sep 2022)
+- CI/linkcheck: only run if a Markdown file is changed
+
+ This saves CI resources and therefore a little energy.
+
+ Reviewed-by: Max Dymond
+ Closes #9531
+
+- README.md: add GHA status badges for Linux and macOS builds
+
+ This makes sense now that Linux builds are being consolidated.
+
+ Approved-by: Daniel Stenberg
+ Closes #9530
+
+ [skip ci]
+
+Daniel Stenberg (17 Sep 2022)
+- misc: null-terminate
+
+ Make use of this term consistently.
+
+ Closes #9527
+
+Marc Hoersken (17 Sep 2022)
+- CI/GHA: merge intel CC and more TLS libs into linux workflow
+
+ Continue work on merging all Linux workflows into one file.
+
+ Reviewed-by: Max Dymond
+ Follow up to #9501
+ Closes #9514
+
+Daniel Stenberg (17 Sep 2022)
+- [Patrick Monnerat brought this change]
+
+ lib1597: make it C89-compliant again
+
+ Automatic variable addresses cannot be used in an initialisation
+ aggregate.
+
+ Follow-up to 9d51329
+
+ Reported-by: Daniel Stenberg
+ Fixes: #9524
+ Closes #9525
+
+- tool_libinfo: silence "different 'const' qualifiers" in qsort()
+
+ MSVC 15.0.30729.1 warned about it
+
+ Follow-up to dd2a024323dcc
+
+ Closes #9522
+
+- [Patrick Monnerat brought this change]
+
+ docs: tell about disabled protocols in CURLOPT_*PROTOCOLS_STR.
+
+ Disabled protocols are now handled as if they were unknown.
+ Also update the possible protocol list.
+
+- [Patrick Monnerat brought this change]
+
+ cli tool: do not use disabled protocols
+
+ As they are now rejected by the library, take care of not passing
+ disabled protocol names to CURLOPT_PROTOCOLS_STR and
+ CURLOPT_REDIR_PROTOCOLS_STR.
+
+ Rather than using the CURLPROTO_* constants, dynamically assign protocol
+ numbers based on the order they are listed by curl_version_info().
+
+ New type proto_set_t implements prototype bit masks: it should therefore
+ be large enough to accomodate all library-enabled protocols. If not,
+ protocol numbers beyond the bit count of proto_set_t are recognized but
+ "inaccessible": when used, a warning is displayed and the value is
+ ignored. Should proto_set_t overflows, enabled protocols are reordered to
+ force those having a public CURLPROTO_* representation to be accessible.
+
+ Code has been added to subordinate RTMP?* protocols to the presence of
+ RTMP in the enabled protocol list, being returned by curl_version_info()
+ or not.
+
+- [Patrick Monnerat brought this change]
+
+ setopt: use the handler table for protocol name to number conversions
+
+ This also returns error CURLE_UNSUPPORTED_PROTOCOL rather than
+ CURLE_BAD_FUNCTION_ARGUMENT when a listed protocol name is not found.
+
+ A new schemelen parameter is added to Curl_builtin_scheme() to support
+ this extended use.
+
+ Note that disabled protocols are not recognized anymore.
+
+ Tests adapted accordingly.
+
+ Closes #9472
+
+- altsvc: use 'h3' for h3
+
+ Since the official and real version has been out for a while now and servers
+ are deployed out there using it, there is no point in sticking to h3-29.
+
+ Reported-by: ウさん
+ Fixes #9515
+ Closes #9516
+
+Jay Satiro (16 Sep 2022)
+- [chemodax brought this change]
+
+ winbuild: Use NMake batch-rules for compilation
+
+ - Invoke cl compiler once for each group of .c files.
+
+ This is significantly improves compilation time. For example in my
+ environment: 40 s --> 20 s.
+
+ Prior to this change cl was invoked per .c file.
+
+ Closes https://github.com/curl/curl/pull/9512
+
+Daniel Stenberg (16 Sep 2022)
+- ws: the infof() flags should be %zu
+
+ Follow-up to e5e9e0c5e49ae0
+
+ Closes #9518
+
+- curl: warn for --ssl use, considered insecure
+
+ Closes #9519
+
+- [Sergey Bronnikov brought this change]
+
+ curl_escape.3: fix typo
+
+ lengthf -> length
+
+ Closes #9517
+
+- mailmap: merge Philip Heiduck's two addresses into one
+
+- test1948: verify PUT + POST reusing the same handle
+
+ Reproduced #9507, verifies the fix
+
+- setopt: when POST is set, reset the 'upload' field
+
+ Reported-by: RobBotic1 on github
+ Fixes #9507
+ Closes #9511
+
+Marc Hoersken (15 Sep 2022)
+- github: initial CODEOWNERS setup for CI configuration
+
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Max Dymond
+
+ Closes #9505
+
+ [skip ci]
+
+- [Philip Heiduck brought this change]
+
+ CI: optimize some more dependencies install
+
+ Signed-off-by: Philip Heiduck <pheiduck@Philips-MBP.lan>
+
+ Closes #9500
+
+- CI/GHA: merge event-based and NSS into new linux workflow
+
+ Continue work on merging all Linux workflows into one file.
+
+ Follow up to #9501
+ Closes #9506
+
+Daniel Stenberg (15 Sep 2022)
+- include/curl/websockets.h: add extern "C" for C++
+
+ Reported-by: n0name321 on github
+ Fixes #9509
+ Closes #9510
+
+- lib1560: extended to verify detect/reject of unknown schemes
+
+ ... when no guessing is allowed.
+
+- urlapi: detect scheme better when not guessing
+
+ When the parser is not allowed to guess scheme, it should consider the
+ word ending at the first colon to be the scheme, independently of number
+ of slashes.
+
+ The parser now checks that the scheme is known before it counts slashes,
+ to improve the error messge for URLs with unknown schemes and maybe no
+ slashes.
+
+ When following redirects, no scheme guessing is allowed and therefore
+ this change effectively prevents redirects to unknown schemes such as
+ "data".
+
+ Fixes #9503
+
+- strerror: improve two URL API error messages
+
+Marc Hoersken (14 Sep 2022)
+- CI/GHA: merge bearssl and hyper into initial linux workflow
+
+ Begin work on merging all Linux workflows into one file.
+
+ Closes #9501
+
+Daniel Stenberg (14 Sep 2022)
+- RELEASE-NOTES: synced
+
+- cmake: define BUILDING_LIBCURL in lib/CMakeLists, not config.h
+
+ Since the config file might also get included by the tool code at times.
+ This syncs with how other builds do it.
+
+ Closes #9498
+
+- tool_hugehelp: make hugehelp a blank macro when disabled
+
+ Closes #9485
+
+- getparameter: return PARAM_MANUAL_REQUESTED for -M even when disabled
+
+ ... to improve the output in this situation. Now it doesn't say "option
+ unknown" anymore.
+
+ Closes #9485
+
+- setopt: fix compiler warning
+
+ Follow-up to cd5ca80f00d2
+
+ closes #9502
+
+- [Philip Heiduck brought this change]
+
+ CI: skip make, do make install at once for dependencies
+
+ Signed-off-by: Philip Heiduck <pheiduck@Philips-MBP.lan>
+
+ Closes #9477
+
+- formdata: typecast the va_arg return value
+
+ To avoid "enumerated type mixed with another type" warnings
+
+ Follow-up from 0f52dd5fd5aa3592691a
+
+ Closes #9499
+
+- RELEASE-PROCEDURE.md: mention patch releases
+
+ - When to make them and how to argue for them
+ - Refreshed the release date list
+
+ Closes #9495
+
+- urldata: use a curl_prot_t type for storing protocol bits
+
+ This internal-use-only storage type can be bumped to a curl_off_t once
+ we need to use bit 32 as the previous 'unsigned int' can no longer hold
+ them all then.
+
+ The websocket protocols take bit 30 and 31 so they are the last ones
+ that fit within 32 bits - but cannot properly be exported through APIs
+ since those use *signed* 32 bit types (long) in places.
+
+ Closes #9481
+
+- [zhanghu on xiaomi brought this change]
+
+ formdata: fix warning: 'CURLformoption' is promoted to 'int'
+
+ curl/lib/formdata.c: In function 'FormAdd':
+ curl/lib/formdata.c:249:31: warning: 'CURLformoption' is promoted to 'int' when passed through '...'
+ 249 | option = va_arg(params, CURLformoption);
+ | ^
+ curl/lib/formdata.c:249:31: note: (so you should pass 'int' not 'CURLformoption' to 'va_arg')
+ curl/lib/formdata.c:249:31: note: if this code is reached, the program will abort
+
+ Closes #9484
+
+- CURLOPT_CONNECT_ONLY.3: for ws(s) as well
+
+ and correct the version number for when that support comes. Even if it
+ is still experimental for WebSocket.
+
+ Closes #9487
+
+- tool_operate: avoid a few #ifdefs for disabled-libcurl builds
+
+ By providing empty macros in the header file instead, the code gets
+ easier to read and yet is disabled on demand.
+
+ Closes #9486
+
+- [a1346054 on github brought this change]
+
+ scripts: use `grep -E` instead of `egrep`
+
+ egrep is deprecated
+
+ Closes #9491
+
+- [Hayden Roche brought this change]
+
+ wolfSSL: fix session management bug.
+
+ Prior to this commit, non-persistent pointers were being used to store
+ sessions. When a WOLFSSL object was then freed, that freed the session
+ it owned, and thus invalidated the pointer held in curl's cache. This
+ commit makes it so we get a persistent (deep copied) session pointer
+ that we then add to the cache. Accordingly, wolfssl_session_free, which
+ was previously a no-op, now needs to actually call SSL_SESSION_free.
+
+ This bug was discovered by a wolfSSL customer.
+
+ Closes #9492
+
+- docs: use "WebSocket" in singular
+
+ This is how the RFC calls the protocol. Also rename the file in docs/ to
+ WEBSOCKET.md in uppercase to match how we have done it for many other
+ protocol docs in similar fashion.
+
+ Add the WebSocket docs to the tarball.
+
+ Closes #9496
+
+Marcel Raad (12 Sep 2022)
+- ws: fix build without `USE_WEBSOCKETS`
+
+ The curl.h include is required unconditionally.
+
+- ws: add missing curl.h include
+
+ A conflict between commits 664249d0952 and e5839f4ee70 broke the build.
+
+Daniel Stenberg (12 Sep 2022)
+- ws: fix an infof() call to use %uz for size_t output
+
+ Detected by Coverity, CID 1514665.
+
+ Closes #9480
+
+Marcel Raad (12 Sep 2022)
+- curl_setup: include only system.h instead of curl.h
+
+ As done before commit 9506d01ee50.
+
+ Ref: https://github.com/curl/curl/pull/9375#discussion_r957010158
+ Closes https://github.com/curl/curl/pull/9453
+
+- lib: add missing limits.h includes
+
+ Closes https://github.com/curl/curl/pull/9453
+
+- lib and tests: add missing curl.h includes
+
+ Closes https://github.com/curl/curl/pull/9453
+
+- curl_setup: include curl.h after platform setup headers
+
+ The platform setup headers might set definitions required for the
+ includes in curl.h.
+
+ Ref: https://github.com/curl/curl/pull/9375#discussion_r956998269
+ Closes https://github.com/curl/curl/pull/9453
+
+Daniel Stenberg (12 Sep 2022)
+- [Benjamin Loison brought this change]
+
+ docs: correct missing uppercase in Markdown files
+
+ To detect these typos I used:
+
+ ```
+ clear && grep -rn '\. [a-z]' . | uniq | grep -v '\. lib' | grep -v '[0-9]\. [a-z]' | grep -v '\.\. [a-z]' | grep -v '\. curl' | grep -v 'e.g. [a-z]' | grep -v 'eg. [a-z]' | grep -v '\etc. [a-z]' | grep -v 'i.e\. [a-z]' | grep --color=always '\. [a-z]' | grep '\.md'
+ ```
+
+ Closes #9474
+
+- tool_setopt: use better English in --libcurl source comments
+
+ Like this:
+
+ XYZ was set to an object pointer
+ ABC was set to a function pointer
+
+ Closes #9475
+
+- setopt: make protocol2num use a curl_off_t for the protocol bit
+
+ ... since WSS does not fit within 32 bit.
+
+ Bug: https://github.com/curl/curl/pull/9467#issuecomment-1243014887
+ Closes #9476
+
+- RELEASE-NOTES: synced
+
+- configure: polish the grep -E message a bit further
+
+ Suggested-by: Emanuele Torre
+ Closes #9473
+
+- GHA: add a gcc-11 -O3 build using OpenSSL
+
+ Since -O3 might trigger other warnings
+
+ Closes #9454
+
+- [Patrick Monnerat brought this change]
+
+ content_encoding: use writer struct subclasses for different encodings
+
+ The variable-sized encoding-specific storage of a struct contenc_writer
+ currently relies on void * alignment that may be insufficient with
+ regards to the specific storage fields, although having not caused any
+ problems yet.
+
+ In addition, gcc 11.3 issues a warning on access to fields of partially
+ allocated structures that can occur when the specific storage size is 0:
+
+ content_encoding.c: In function ‘Curl_build_unencoding_stack’:
+ content_encoding.c:980:21: warning: array subscript ‘struct contenc_writer[0]’ is partly outside array bounds of ‘unsigned char[16]’ [-Warray-bounds]
+ 980 | writer->handler = handler;
+ | ~~~~~~~~~~~~~~~~^~~~~~~~~
+ In file included from content_encoding.c:49:
+ memdebug.h:115:29: note: referencing an object of size 16 allocated by ‘curl_dbg_calloc’
+ 115 | #define calloc(nbelem,size) curl_dbg_calloc(nbelem, size, __LINE__, __FILE__)
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ content_encoding.c:977:60: note: in expansion of macro ‘calloc’
+ 977 | struct contenc_writer *writer = (struct contenc_writer *)calloc(1, sz);
+
+ To solve both these problems, the current commit replaces the
+ contenc_writer/params structure pairs by "subclasses" of struct
+ contenc_writer. These are structures that contain a contenc_writer at
+ offset 0. Proper field alignment is therefore handled by the compiler and
+ full structure allocation is performed, silencing the warnings.
+
+ Closes #9455
+
+- configure: correct the wording when checking grep -E
+
+ The check first checks that grep -E works, and only as a fallback tries
+ to find and use egrep. egrep is deprecated.
+
+ This change only corrects the output wording, not the checks themselves.
+
+ Closes #9471
+
+Viktor Szakats (10 Sep 2022)
+- websockets: sync prototypes in docs with implementation [ci skip]
+
+ Docs for the new send/recv functions synced with the committed versions
+ of these.
+
+ Closes #9470
+
+Daniel Stenberg (10 Sep 2022)
+- setopt: make protocols2num() work with websockets
+
+ So that CURLOPT_PROTOCOLS_STR and CURLOPT_REDIR_PROTOCOLS_STR can
+ specify those as well.
+
+ Reported-by: Patrick Monnerat
+ Bug: https://curl.se/mail/lib-2022-09/0016.html
+ Closes #9467
+
+- curl/websockets.h: remove leftover bad typedef
+
+ Just a leftover trace of a development thing that did not stay like
+ that.
+
+ Reported-by: Marc Hörsken
+ Fixes #9465
+ Cloes #9466
+
+Marcel Raad (10 Sep 2022)
+- [Orgad Shaneh brought this change]
+
+ fix Cygwin/MSYS compilation
+
+ _getpid is Windows API. On Cygwin variants it should remain getpid.
+
+ Fixes #8220
+ Closes #9255
+
+Marc Hoersken (10 Sep 2022)
+- GHA: prepare workflow merge by aligning structure again
+
+ Closes #9413
+
+Daniel Stenberg (9 Sep 2022)
+- docs: the websockets symbols are added in 7.86.0
+
+ Nothing else
+
+ Closes #9459
+
+- tests/libtest/Makefile.inc: fixup merge conflict mistake
+
+- EXPERIMENTAL.md: add WebSockets
+
+- appveyor: enable websockets
+
+- cirrus: enable websockets in the windows builds
+
+- GHA: add websockets to macos, openssl3 and hyper builds
+
+- tests: add websockets tests
+
+ - add websockets support to sws
+ - 2300: first very basic websockets test
+ - 2301: first libcurl test for ws (not working yet)
+ - 2302: use the ws callback
+ - 2303: test refused upgrade
+
+- curl_ws_meta: initial implementation
+
+- curl_ws_meta.3: added docs
+
+- ws: initial websockets support
+
+ Closes #8995
+
+- version: add ws + wss
+
+- libtest/lib1560: test basic websocket URL parsing
+
+- configure: add --enable-websockets
+
+- docs/WebSockets.md: docs
+
+- test415: verify Content-Length parser with control code + negative value
+
+- strtoofft: after space, there cannot be a control code
+
+ With the change from ISSPACE() to ISBLANK() this function no longer
+ deals with (ignores) control codes the same way, which could lead to
+ this function returning unexpected values like in the case of
+ "Content-Length: \r-12354".
+
+ Follow-up to 6f9fb7ec2d7cb389a0da5
+
+ Detected by OSS-fuzz
+ Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=51140
+ Assisted-by: Max Dymond
+ Closes #9458
+
+- headers: reset the requests counter at transfer start
+
+ If not, reusing an easy handle to do a subsequent transfer would
+ continue the counter from the previous invoke, which then would make use
+ of the header API difficult/impossible as the request counter
+ mismatched.
+
+ Add libtest 1947 to verify.
+
+ Reported-by: Andrew Lambert
+ Fixes #9424
+ Closes #9447
+
+Jay Satiro (8 Sep 2022)
+- header: define public API functions as extern c
+
+ Prior to this change linker errors would occur if curl_easy_header or
+ curl_easy_nextheader was called from a C++ unit.
+
+ Bug: https://github.com/curl/curl/issues/9424#issuecomment-1238818007
+ Reported-by: Andrew Lambert
+
+ Closes https://github.com/curl/curl/pull/9446
+
+Daniel Stenberg (8 Sep 2022)
+- http2: make nghttp2 less picky about field whitespace
+
+ In nghttp2 1.49.0 it returns error on leading and trailing whitespace in
+ header fields according to language in the recently shipped RFC 9113.
+
+ nghttp2 1.50.0 introduces an option to switch off this strict check and
+ this change enables this option by default which should make curl behave
+ more similar to how it did with nghttp2 1.48.0 and earlier.
+
+ We might want to consider making this an option in the future.
+
+ Closes #9448
+
+- RELEASE-NOTES: synced
+
+ And bump to 7.86.0 for the pending next release
+
+- [Michael Heimpold brought this change]
+
+ ftp: ignore a 550 response to MDTM
+
+ The 550 is overused as a return code for multiple error case, e.g.
+ file not found and/or insufficient permissions to access the file.
+
+ So we cannot fail hard in this case.
+
+ Adjust test 511 since we now fail later.
+ Add new test 3027 which check that when MDTM failed, but the file could
+ actually be retrieved, that in this case no filetime is provided.
+
+ Reported-by: Michael Heimpold
+ Fixes #9357
+ Closes #9387
+
+- urlapi: leaner with fewer allocs
+
+ Slightly faster with more robust code. Uses fewer and smaller mallocs.
+
+ - remove two fields from the URL handle struct
+ - reduce copies and allocs
+ - use dynbuf buffers more instead of custom malloc + copies
+ - uses dynbuf to build the host name in reduces serial alloc+free within
+ the same function.
+ - move dedotdotify into urlapi.c and make it static, not strdup the input
+ and optimize it by checking for . and / before using strncmp
+ - remove a few strlen() calls
+ - add Curl_dyn_setlen() that can "trim" an existing dynbuf
+
+ Closes #9408
+
+Jay Satiro (7 Sep 2022)
+- setup-win32: no longer define UNICODE/_UNICODE implicitly
+
+ - If UNICODE or _UNICODE is defined but the other isn't then error
+ instead of implicitly defining it.
+
+ As Marcel pointed out it is too late at this point to make such a define
+ because Windows headers may already be included, so likely it never
+ worked. We never noticed because build systems that can make Windows
+ Unicode builds always define both. If one is defined but not the other
+ then something went wrong during the build configuration.
+
+ Bug: https://github.com/curl/curl/pull/9375#discussion_r956545272
+ Reported-by: Marcel Raad
+
+ Closes https://github.com/curl/curl/pull/9384
+
+Dan Fandrich (6 Sep 2022)
+- tests: fix tag syntax errors in test files
+
+Marc Hoersken (6 Sep 2022)
+- lib: add required Win32 setup definitions in setup-win32.h
+
+ Assisted-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+
+ Follow up to #9312
+ Closes #9375
+
+Daniel Stenberg (6 Sep 2022)
+- pingpong: extend the response reading error with errno
+
+ To help diagnosing the cause of the problem.
+
+ See #9380
+ Closes #9443
+
+- curl-compilers.m4: use -O2 as default optimize for clang
+
+ Not -Os
+
+ Closes #9444
+
+- tool_operate: fix msnprintfing the error message
+
+ Follow-up to 7be53774c41c59b47075fba
+
+ Coverity CID 1513717 pointed out that we cannot use sizeof() on the
+ error buffer anymore.
+
+ Closes #9440
+
+- [Emanuele Torre brought this change]
+
+ curl_ctype: add space around <= operator in ISSPACE macro
+
+ Follow-up to f65f750
+
+ Closes #9441
+
+- CURLOPT_PROXY_SSLCERT_BLOB.3: this is for HTTPS proxies
+
+ The 'protocols' listed were previously wrong.
+
+ Reported-by: ProceduralMan on github
+ Fixes #9434
+ Closes #9435
+
+- curl_ctype: convert to macros-only
+
+ This no longer provide functions, only macros. Runs faster and produces
+ smaller output.
+
+ The biggest precaution this change brings:
+
+ DO NOT use post/pre-increments when passing arguments to the macros.
+
+ Closes #9429
+
+- misc: ISSPACE() => ISBLANK()
+
+ Instances of ISSPACE() use that should rather use ISBLANK(). I think
+ somewhat carelessly used because it sounds as if it checks for space or
+ whitespace, but also includes %0a to %0d.
+
+ For parsing purposes, we should only accept what we must and not be
+ overly liberal. It leads to surprises and surprises lead to bad things.
+
+ Closes #9432
+
+- ctype: remove all use of <ctype.h>, use our own versions
+
+ Except in the test servers.
+
+ Closes #9433
+
+Marc Hoersken (5 Sep 2022)
+- cmake: skip superfluous hex2dec conversion using math expr
+
+ CMake seems to be able to compare two hex values just fine.
+ Also make sure CURL_TARGET_WINDOWS_VERSION is respected.
+
+ Assisted-by: Marcel Raad
+ Reviewed-by: Viktor Szakats
+ Reported-by: Keitagit-kun on github
+
+ Follow up to #9312
+ Fixes #9406
+ Closes #9411
+
+Daniel Stenberg (5 Sep 2022)
+- curl_easy_pause.3: unpausing is as fast as possible
+
+ Reported-by: ssdbest on github
+ Fixes #9410
+ Closes #9430
+
+- CURLOPT_DNS_INTERFACE.3: mention it works for almost all protocols
+
+ Except file.
+
+ Reported-by: ProceduralMan on github
+ Fixes #9427
+ Closes #9428
+
+- NPN: remove support for and use of
+
+ Next Protocol Negotiation is a TLS extension that was created and used
+ for agreeing to use the SPDY protocol (the precursor to HTTP/2) for
+ HTTPS. In the early days of HTTP/2, before the spec was finalized and
+ shipped, the protocol could be enabled using this extension with some
+ servers.
+
+ curl supports the NPN extension with some TLS backends since then, with
+ a command line option `--npn` and in libcurl with
+ `CURLOPT_SSL_ENABLE_NPN`.
+
+ HTTP/2 proper is made to use the ALPN (Application-Layer Protocol
+ Negotiation) extension and the NPN extension has no purposes
+ anymore. The HTTP/2 spec was published in May 2015.
+
+ Today, use of NPN in the wild should be extremely rare and most likely
+ totally extinct. Chrome removed NPN support in Chrome 51, shipped in
+ June 2016. Removed in Firefox 53, April 2017.
+
+ Closes #9307
+
+- RELEASE-NOTES: synced
+
+ and bump the tentative next release version to 7.85.1
+
+- [Samuel Henrique brought this change]
+
+ configure: fail if '--without-ssl' + explicit parameter for an ssl lib
+
+ A side effect of a previous change to configure (576e507c78bdd2ec88)
+ exposed a non-critical issue that can happen if configure is called with
+ both '--without-ssl' and some parameter setting the use of a ssl library
+ (e.g. --with-gnutls). The configure script would end up assuming this is
+ a MultiSSL build, due to the way the case statement is written.
+
+ I have changed the order of the variables in the string concatenation
+ for the case statement and also tweaked the options so that
+ --without-ssl never turns the build into a MultiSSL one and also clearly
+ stating that there are conflicting parameters if the user sets it like
+ described above.
+
+ Closes #9414
+
+- tests/certs/scripts: insert standard curl source headers
+
+ ... including the SPDX-License-Identifier.
+
+ These omissions were not detected by the RUEUSE CI job nor the copyright.pl
+ scanners because we have a general wildcard in .reuse/dep5 for
+ "tests/certs/*".
+
+ Reported-by: Samuel Henrique
+ Fixes #9417
+ Closes #9420
+
+- [Samuel Henrique brought this change]
+
+ docs: remove mentions of deprecated '--without-openssl' config parameter
+
+ Closes #9415
+
+- [Samuel Henrique brought this change]
+
+ manpages: Fix spelling of "allows to" -> "allows one to"
+
+ References:
+ https://salsa.debian.org/lintian/lintian/-/blob/master/tags/t/typo-in-manual-page.tag
+ https://english.stackexchange.com/questions/60271/grammatical-complements-for-allow/60285#60285
+
+ Closes #9419
+
+- [Samuel Henrique brought this change]
+
+ CURLOPT_WILDCARDMATCH.3: Fix backslash escaping under single quotes
+
+ Lintian (on Debian) has been complaining about this for a while but
+ I didn't bother initially as the groff parser that we use is not
+ affected by this.
+
+ But I have now noticed that the online manpage is affected by it:
+ https://curl.se/libcurl/c/CURLOPT_WILDCARDMATCH.html
+
+ (I'm using double quotes for quoting-only down below)
+
+ The section that should be parsed as "'\'" ends up being parsed as
+ "'´".
+
+ This is due to roffit not parsing "'\\'" correctly, which is fine
+ as the "correct" way of writing "'\'" is "'\e'" instead.
+
+ Note that this fix is not enough to fix the online manpage at
+ curl's website, as roffit seems to parse it wrongly either way.
+
+ My intent is to at least fix the manpage so that roffit can
+ be changed to parse "'\e'" correctly (although I suggest making
+ roffit parse both ways correctly, since that's what groff does).
+
+ More details at:
+ https://bugs.debian.org/966803
+ https://salsa.debian.org/lintian/lintian/-/blob/930b18e4b28b7540253f458ef42a884cca7965c3/tags/a/acute-accent-in-manual-page.tag
+
+ Closes #9418
+
+- tool_operate: reduce errorbuffer allocs
+
+ - parallel transfers: only alloc and keep errorbuffers in memory for
+ actual "live" transfers and not for the ones in the pending queue
+
+ - serial transfers: reuse the same fixed buffer for all transfers, not
+ allocated at all.
+
+ Closes #9394
+
+Viktor Szakats (31 Aug 2022)
+- misc: spelling fixes
+
+ Found using codespell 2.2.1.
+
+ Also delete the redundant protocol designator from an archive.org URL.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #9403
+
+Daniel Stenberg (31 Aug 2022)
+- tool_progress: remove 'Qd' from the parallel progress bar
+
+ The "queued" value is no longer showing anything useful to the user. It
+ is an internal number of transfers waiting at that moment.
+
+ Closes #9389
+
+- tool_operate: prevent over-queuing in parallel mode
+
+ When doing a huge amount of parallel transfers, we must not add them to
+ the per_transfer list frivolously since they all use memory after all.
+ This was previous done without really considering millions or billions
+ of transfers. Massive parallelism would use a lot of memory for no good
+ purpose.
+
+ The queue is now limited to twice the paralleism number.
+
+ This makes the 'Qd' value in the parallel progress meter mostly useless
+ for users, but works for now for us as a debug display.
+
+ Reported-by: justchen1369 on github
+ Fixes #8933
+ Closes #9389
+
+Viktor Szakats (31 Aug 2022)
+- cmake: fix original MinGW builds
+
+ 1. Re-enable `HAVE_GETADDRINFO` detection on Windows
+
+ Commit d08ee3c83d6bd416aef62ff844c98e47c4682429 (in 2013) added logic
+ that automatically assumed `getaddrinfo()` to be present for builds
+ with IPv6 enabled. As it turns out, certain toolchains (e.g. original
+ MinGW) by default target older Windows versions, and thus do not
+ support `getaddrinfo()` out of the box. The issue was masked for
+ a while by CMake builds forcing a newer Windows version, but that
+ logic got deleted in commit 8ba22ffb2030ed91312fc8634e29516cdf0a9761.
+ Since then, some CI builds started failing due to IPv6 enabled,
+ `HAVE_GETADDRINFO` set, but `getaddrinfo()` in fact missing.
+
+ It also turns out that IPv6 works without `getaddrinfo()` since commit
+ 67a08dca27a6a07b36c7f97252e284ca957ff1a5 (from 2019, via #4662). So,
+ to resolve all this, we can now revert the initial commit, thus
+ restoring `getaddrinfo()` detection and support IPv6 regardless of its
+ outcome.
+
+ Reported-by: Daniel Stenberg
+
+ 2. Omit `bcrypt` with original MinGW
+
+ Original (aka legacy/old) MinGW versions do not support `bcrypt`
+ (introduced with Vista). We already have logic to handle that in
+ `lib/rand.c` and autotools builds, where we do not call the
+ unsupported API and do not link `bcrypt`, respectively, when using
+ original MinGW.
+
+ This patch ports that logic to CMake, fixing the link error:
+ `c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot find -lbcrypt`
+
+ Ref: https://ci.appveyor.com/project/curlorg/curl/builds/44624888/job/40vle84cn4vle7s0#L508
+ Regression since 76172511e7adcf720f4c77bd91f49278300ec97e
+
+ Fixes #9214
+ Fixes #9393
+ Fixes #9395
+ Closes #9396
+
+Version 7.85.0 (31 Aug 2022)
+
+Daniel Stenberg (31 Aug 2022)
+- RELEASE-NOTES: synced
+
+ curl 7.85.0 release
+
+- THANKS: add contributors from the 7.85.0 release
+
+- getparam: correctly clean args
+
+ Follow-up to bf7e887b2442783ab52
+
+ The previous fix for #9128 was incomplete and caused #9397.
+
+ Fixes #9397
+ Closes #9399
+
+- zuul: remove the clang-tidy job
+
+ Turns out we don't see the warnings, but the warnings right now are
+ plain ridiculous and unhelpful so we can just as well just kill this
+ job.
+
+ Closes #9390
+
+- cmake: set feature PSL if present
+
+ ... make test 1014 pass when libpsl is used.
+
+ Closes #9391
+
+- lib530: simplify realloc failure exit path
+
+ To make code analyzers happier
+
+ Closes #9392
+
+- [Orgad Shaneh brought this change]
+
+ tests: add tests for netrc login/password combinations
+
+ Covers the following PRs:
+
+ - #9066
+ - #9247
+ - #9248
+
+ Closes #9256
+
+- [Orgad Shaneh brought this change]
+
+ url: really use the user provided in the url when netrc entry exists
+
+ If the user is specified as part of the URL, and the same user exists
+ in .netrc, Authorization header was not sent at all.
+
+ The user and password fields were assigned in conn->user and password
+ but the user was not assigned to data->state.aptr, which is the field
+ that is used in output_auth_headers and friends.
+
+ Fix by assigning the user also to aptr.
+
+ Amends commit d1237ac906ae7e3cd7a22c3a2d3a135a97edfbf5.
+
+ Fixes #9243
+
+- [Orgad Shaneh brought this change]
+
+ netrc: Use the password from lines without login
+
+ If netrc entry has password with empty login, use it for any username.
+
+ Example:
+ .netrc:
+ machine example.com password 123456
+
+ curl -vn http://user@example.com/
+
+ Fix it by initializing state_our_login to TRUE, and reset it only when
+ finding an entry with the same host and different login.
+
+ Closes #9248
+
+- [Jay Satiro brought this change]
+
+ url: treat missing usernames in netrc as empty
+
+ - If, after parsing netrc, there is a password with no username then
+ set a blank username.
+
+ This used to be the case prior to 7d600ad (precedes 7.82). Note
+ parseurlandfillconn already does the same thing for URLs.
+
+ Reported-by: Raivis <standsed@users.noreply.github.com>
+ Testing-by: Domen Kožar
+
+ Fixes https://github.com/curl/curl/issues/8653
+ Closes #9334
+ Closes #9066
+
+- test8: verify that "ctrl-byte cookies" are ignored
+
+- cookie: reject cookies with "control bytes"
+
+ Rejects 0x01 - 0x1f (except 0x09) plus 0x7f
+
+ Reported-by: Axel Chong
+
+ Bug: https://curl.se/docs/CVE-2022-35252.html
+
+ CVE-2022-35252
+
+ Closes #9381
+
+- libssh: ignore deprecation warnings
+
+ libssh 0.10.0 marks all SCP functions as "deprecated" which causes
+ compiler warnings and errors in our CI jobs and elsewhere. Ignore
+ deprecation warnings if 0.10.0 or later is found in the build.
+
+ If they actually remove the functions at a later point, then someone can
+ deal with that pain and functionality break then.
+
+ Fixes #9382
+ Closes #9383
+
+- Revert "schannel: when importing PFX, disable key persistence"
+
+ This reverts commit 70d010d285315e5f1cad6bdb4953e167b069b692.
+
+ Due to further reports in #9300 that indicate this commit might
+ introduce problems.
+
+- multi: use larger dns hash table for multi interface
+
+ Have curl_multi_init() use a much larger DNS hash table than used for
+ the easy interface to scale and perform better when used with _many_
+ host names.
+
+ curl_share_init() sets an in-between size.
+
+ Inspired-by: Ivan Tsybulin
+ See #9340
+ Closes #9376
+
+Marc Hoersken (28 Aug 2022)
+- CI/runtests.pl: add param for dedicated curl to talk to APIs
+
+ This should make it possible to also report test failures
+ if our freshly build curl binary is not fully functional.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #9360
+
+Daniel Stenberg (27 Aug 2022)
+- [Jacob Tolar brought this change]
+
+ openssl: add cert path in error message
+
+ Closes #9349
+
+- [Jacob Tolar brought this change]
+
+ cert.d: clarify that escape character works for file paths
+
+ Closes #9349
+
+- gha: move over ngtcp2-gnutls CI job from zuul
+
+ Closes #9331
+
+Marc Hoersken (26 Aug 2022)
+- cmake: add detection of threadsafe feature
+
+ Avoids failing test 1014 by replicating configure checks
+ for HAVE_ATOMIC and _WIN32_WINNT with custom CMake tests.
+
+ Reviewed-by: Marcel Raad
+
+ Follow up to #8680
+ Closes #9312
+
+Daniel Stenberg (26 Aug 2022)
+- RELEASE-NOTES: synced
+
+Marc Hoersken (26 Aug 2022)
+- CI/azure: align torture shallowness with GHA
+
+ There 25 is used with FTP tests skipped, and 20 for FTP tests.
+ This should make torture tests stay within the 60min timeout.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #9371
+
+- multi_wait: fix and improve Curl_poll error handling on Windows
+
+ First check for errors and return CURLM_UNRECOVERABLE_POLL
+ before moving forward and waiting on socket readiness events.
+
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+
+ Reported-by: Daniel Stenberg
+ Ref: #9361
+
+ Follow up to #8961
+ Closes #9372
+
+- multi_wait: fix skipping to populate revents for extra_fds
+
+ On Windows revents was not populated for extra_fds if
+ multi_wait had to wait due to the Curl_poll pre-check
+ not signalling any readiness. This commit fixes that.
+
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Jay Satiro
+
+ Closes #9361
+
+- CI/appveyor: disable TLS in msys2-native autotools builds
+
+ Schannel cannot be used from msys2-native Linux-emulated builds.
+
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Daniel Stenberg
+
+ Follow up to #9367
+ Closes #9370
+
+Jay Satiro (25 Aug 2022)
+- tests: fix http2 tests to use CRLF headers
+
+ Prior to this change some tests that rely on nghttpx proxy did not use
+ CRLF headers everywhere. A recent change in nghttp2, which updated its
+ version of llhttp (HTTP parser), requires curl's HTTP/1.1 test server to
+ use CRLF headers.
+
+ Ref: https://github.com/nghttp2/nghttp2/commit/9d389e8
+
+ Fixes https://github.com/curl/curl/issues/9364
+ Closes https://github.com/curl/curl/pull/9365
+
+Daniel Stenberg (25 Aug 2022)
+- [rcombs brought this change]
+
+ multi: use a pipe instead of a socketpair on apple platforms
+
+ Sockets may be shut down by the kernel when the app is moved to the
+ background, but pipes are not.
+
+ Removed from KNOWN_BUGS
+
+ Fixes #6132
+ Closes #9368
+
+- [Somnath Kundu brought this change]
+
+ libssh2: provide symlink name in SFTP dir listing
+
+ When reading the symbolic link name for a file, we need to add the file
+ name to base path name.
+
+ Closes #9369
+
+- configure: if asked to use TLS, fail if no TLS lib was detected
+
+ Previously the configure script would just warn about this fact and
+ continue with TLS disabled build which is not always helpful. TLS should
+ be explicitly disabled if that is what the user wants.
+
+ Closes #9367
+
+- [Dustin Howett brought this change]
+
+ schannel: when importing PFX, disable key persistence
+
+ By default, the PFXImportCertStore API persists the key in the user's
+ key store (as though the certificate was being imported for permanent,
+ ongoing use.)
+
+ The documentation specifies that keys that are not to be persisted
+ should be imported with the flag `PKCS12_NO_PERSIST_KEY`.
+ NOTE: this flag is only supported on versions of Windows newer than XP
+ and Server 2003.
+
+ Fixes #9300
+ Closes #9363
+
+- unit1303: four tests should have TRUE for 'connecting'
+
+ To match the comments.
+
+ Reported-by: Wu Zheng
+
+ See #9355
+ Closes #9356
+
+- CURLOPT_BUFFERSIZE.3: add upload buffersize to see also
+
+ Closes #9354
+
+- [Fabian Fischer brought this change]
+
+ HTTP3.md: add missing autoreconf command for building with wolfssl
+
+ Closes #9353
+
+- RELEASE-NOTES: synced
+
+- multi: have curl_multi_remove_handle close CONNECT_ONLY transfer
+
+ Ẃhen it has been used in the multi interface, it is otherwise left in
+ the connection cache, can't be reused and nothing will close them since
+ the easy handle loses the association with the multi handle and thus the
+ connection cache - until the multi handle is closed or it gets pruned
+ because the cache is full.
+
+ Reported-by: Dominik Thalhammer
+ Fixes #9335
+ Closes #9342
+
+- docs/cmdline-opts: remove \& escapes from all .d files
+
+ gen.pl escapes them itself now
+
+- docs/cmdline-opts/gen.pl: encode leading single and double quotes
+
+ As "(aq" and "(dq" to prevent them from implying a meaning in the nroff
+ output. This removes the need for using \& escapes in the .d files'
+ description parts.
+
+ Closes #9352
+
+Marc Hoersken (23 Aug 2022)
+- tests/server/sockfilt.c: avoid race condition without a mutex
+
+ Avoid loosing any triggered handles by first aborting and joining
+ the waiting threads before evaluating the individual signal state.
+
+ This removes the race condition and therefore need for a mutex.
+
+ Closes #9023
+
+Daniel Stenberg (22 Aug 2022)
+- [Emil Engler brought this change]
+
+ url: output the maximum when rejecting a url
+
+ This commit changes the failf message to output the maximum length, when
+ curl refuses to process a URL because it is too long.
+
+ See: #9317
+ Closes: #9327
+
+- [Chris Paulson-Ellis brought this change]
+
+ configure: fix broken m4 syntax in TLS options
+
+ Commit b589696f added lines to some shell within AC_ARG_WITH macros, but
+ inadvertently failed to move the final closing ).
+
+ Quote the script section using braces.
+
+ So, if these problems have been around for a while, how did I find them?
+ Only because I did a configure including these options:
+
+ $ ./configure --with-openssl --without-rustls
+ SSL: enabled (OpenSSL)
+
+ Closes #9344
+
+- tests/data/CMakeLists: remove making the 'show' makefile target
+
+ It is not used by runtests since 3c0f462
+
+ Closes #9333
+
+- tests/data/Makefile: remove 'filecheck' target
+
+ No practical use anymore since 3c0f4622cdfd6
+
+ Closes #9332
+
+- libssh2: make atime/mtime date overflow return error
+
+ Closes #9328
+
+- libssh: make atime/mtime date overflow return error
+
+ Closes #9328
+
+- examples/curlx.c: remove
+
+ This example is a bit convoluted to use as an example, combined with the
+ special license for it makes it unsuitable.
+
+ Closes #9330
+
+- [Tobias Nygren brought this change]
+
+ curl.h: include <sys/select.h> on SunOS
+
+ It is needed for fd_set to be visible to downstream consumers that use
+ <curl/multi.h>. Header is known to exist at least as far back as Solaris
+ 2.6.
+
+ Closes #9329
+
+- DEPRECATE.md: push the NSS deprecation date forward one year to 2023
+
+ URL: https://curl.se/mail/lib-2022-08/0016.html
+
+- libssh2: setting atime or mtime >32bit on 4-bytes-long systems
+
+ Since the libssh2 API uses 'long' to store the timestamp, it cannot
+ transfer >32bit times on Windows and 32bit architecture builds.
+
+ Avoid nasty surprises by instead not setting such time.
+
+ Spotted by Coverity
+
+ Closes #9325
+
+- libssh: setting atime or mtime > 32bit is now just skipped
+
+ The libssh API used caps the time to an unsigned 32bit variable. Avoid
+ nasty surprises by instead not setting such time.
+
+ Spotted by Coverity.
+
+ Closes #9324
+
+Jay Satiro (16 Aug 2022)
+- KNOWN_BUGS: Windows Unicode builds use homedir in current locale
+
+ Bug: https://github.com/curl/curl/pull/7252
+ Reported-by: dEajL3kA@users.noreply.github.com
+
+ Ref: https://github.com/curl/curl/pull/7281
+
+ Closes https://github.com/curl/curl/pull/9305
+
+Daniel Stenberg (16 Aug 2022)
+- test399: switch it to use a config file instead
+
+ ... as using a 65535 bytes host name in a URL does not fit on the
+ command line on some systems - like Windows.
+
+ Reported-by: Marcel Raad
+ Fixes #9321
+ Closes #9322
+
+- RELEASE-NOTES: synced
+
+- asyn-ares: make a single alloc out of hostname + async data
+
+ This saves one alloc per name resolve and simplifies the exit path.
+
+ Closes #9310
+
+- Curl_close: call Curl_resolver_cancel to avoid memory-leak
+
+ There might be a pending (c-ares) resolve that isn't free'd up yet.
+
+ Closes #9310
+
+- asyn-thread: fix socket leak on OOM
+
+ Closes #9310
+
+- GHA: mv CI torture test from Zuul
+
+ Closes #9310
+
+- ngtcp2-wolfssl.yml: add GHA to build ngtcp2 + wolfSSL
+
+ Closes #9318
+
+- test399: verify check of too long host name
+
+- url: reject URLs with hostnames longer than 65535 bytes
+
+ It *probably* causes other problems too since DNS can't resolve such
+ long names, but the SNI field in TLS is limited to 16 bits length.
+
+ Closes #9317
+
+- curl_multi_perform.3: minor language fix
+
+ Closes #9316
+
+- ngtcp2: fix picky compiler warnings with wolfSSL for QUIC
+
+ Follow-up to 8a13be227eede2
+
+ Closes #9315
+
+- ngtcp2: remove leftover variable
+
+ Mistake leftover from my edit before push.
+
+ Follow-up from 8a13be227eede2601c2b3b
+ Reported-by: Viktor Szakats
+ Bug: https://github.com/curl/curl/pull/9290#issuecomment-1214569167
+
+Viktor Szakats (15 Aug 2022)
+- Makefile.m32: allow -nghttp3/-ngtcp2 without -ssl [ci skip]
+
+ Before this patch `-nghttp3`/`-ngtcp2` had an effect only when `-ssl`
+ was also enabled. `-ssl` meaning OpenSSL (and its forks). After
+ 8a13be227eede2601c2b3b1c63e08b3dc9b35dd5 nghttp3/ngtcp2 can also be
+ used together with wolfSSL. This patch adds the ability to enable
+ `-nghttp3`/`-ngtcp2` independently from `-ssl` (OpenSSL), allowing to
+ use it with wolfSSL or other, future TLS backends.
+
+ Before this patch, it was fine to enable `-nghttp3`/`-ngtcp2`
+ unconditionally. After this patch, this is no longer the case, and now
+ it's the user's responsibility to enable `-nghttp3`/`-ngtcp2` only
+ together with a compatible TLS backend.
+
+ When using a TLS backend other than OpenSSL, the TLS-specific ngtcp2
+ library must be configured manually, e.g.:
+ `export CURL_LDFLAG_EXTRAS=-lngtcp2_crypto_wolfssl`
+
+ (or via `NGTCP2_LIBS`)
+
+ Closes #9314
+
+Daniel Stenberg (15 Aug 2022)
+- [Stefan Eissing brought this change]
+
+ quic: add support via wolfSSL
+
+ - based on ngtcp2 PR https://github.com/ngtcp2/ngtcp2/pull/505
+ - configure adapted to build against ngtcp2 wolfssl crypto lib
+ - quic code added for creation of WOLFSSL* instances
+
+ Closes #9290
+
+Marcel Raad (14 Aug 2022)
+- [David Carlier brought this change]
+
+ memdebug: add annotation attributes
+
+ memory debug tracking annotates whether the returned pointer does not
+ `alias`, hints where the size required is, for Windows to be better
+ debugged via Visual Studio.
+
+ Closes https://github.com/curl/curl/pull/9306
+
+Daniel Stenberg (14 Aug 2022)
+- GHA: move libressl CI from zuul to GitHub
+
+ Closes #9309
+
+- KNOWN_BUGS: FTPS directory listing hangs on Windows with Schannel
+
+ Closes #9161
+
+- KNOWN_BUGS: CURLOPT_CERTINFO results in CURLE_OUT_OF_MEMORY with Schannel
+
+ Closes #8741
+
+- KNOWN_BUGS: libssh blocking and infinite loop problem
+
+ Closes #8632
+
+- RELEASE-NOTES: synced
+
+- msh3: fix the QUIC disconnect function
+
+ And free request related memory better in 'done'. Fixes a memory-leak.
+
+ Reported-by: Gisle Vanem
+ Fixes #8915
+ Closes #9304
+
+- connect: close the happy eyeballs loser connection when using QUIC
+
+ Reviewed-by: Nick Banks
+
+ Closes #9303
+
+- [Emil Engler brought this change]
+
+ refactor: split resolve_server() into functions
+
+ This commit splits the branch-heavy resolve_server() function into
+ various sub-functions, in order to reduce the amount of nested
+ if/else-statements.
+
+ Beside this, it also removes many else-sequences, by returning in the
+ previous if-statement.
+
+ Closes #9283
+
+- schannel: re-indent to use curl style better
+
+ Only white space changes
+
+ Closes #9301
+
+- [Emanuele Torre brought this change]
+
+ docs/cmdline-opts: fix example and categories for --form-escape
+
+ The example was missing a "--form" argument
+ I also replaced "--form" with "-F" to shorten the line a bit since it
+ was already very long.
+
+ And I also moved --form-escape from the "post" category to the "upload"
+ category (this is what I originally wanted to fix, before also noticing
+ the mistake in the example).
+
+ Closes #9298
+
+- [Nick Banks brought this change]
+
+ HTTP3.md: update to msh3 v0.4.0
+
+ Closes #9297
+
+- hostip: resolve *.localhost to 127.0.0.1/::1
+
+ Following the footsteps of other clients like Firefox/Chrome. RFC 6761
+ says clients SHOULD do this.
+
+ Add test 389 to verify.
+
+ Reported-by: TheKnarf on github
+ Fixes #9192
+ Closes #9296
+
+Jay Satiro (11 Aug 2022)
+- KNOWN_BUGS: long paths are not fully supported on Windows
+
+ Bug: https://github.com/curl/curl/issues/8361
+ Reported-by: Gisle Vanem
+
+ Closes https://github.com/curl/curl/pull/9288
+
+Daniel Stenberg (11 Aug 2022)
+- config: remove the check for and use of SIZEOF_SHORT
+
+ shorts are 2 bytes on all platforms curl runs and have ever run on.
+
+ Closes #9291
+
+- configure: introduce CURL_SIZEOF
+
+ This is a rewrite of the previously used GPLv3+exception licensed
+ file. With this change, there is no more reference to GPL so we can
+ remove that from LICENSES/.
+
+ Ref: #9220
+ Closes #9291
+
+- [Sean McArthur brought this change]
+
+ hyper: customize test1274 to how hyper unfolds headers
+
+ Closes #9217
+
+- [Orgad Shaneh brought this change]
+
+ curl-config: quote directories with potential space
+
+ On Windows (at least with CMake), the default prefix is
+ C:/Program Files (x86)/CURL.
+
+ Closes #9253
+
+- [Oliver Roberts brought this change]
+
+ amigaos: fix threaded resolver on AmigaOS 4.x
+
+ Replace ip4 resolution function on AmigaOS 4.x, as it requires runtime
+ feature detection and extra code to make it thread safe.
+
+ Closes #9265
+
+- [Emil Engler brought this change]
+
+ imap: use ISALNUM() for alphanumeric checks
+
+ This commit replaces a self-made character check for alphanumeric
+ characters within imap_is_bchar() with the ISALNUM() macro, as it is
+ reduces the size of the code and makes the performance better, due to
+ ASCII arithmetic.
+
+ Closes #9289
+
+- RELEASE-NOTES: synced
+
+- [Cering on github brought this change]
+
+ connect: add quic connection information
+
+ Fixes #9286
+ Closes #9287
+
+- [Philip Heiduck brought this change]
+
+ cirrus/freebsd-ci: bootstrap the pip installer
+
+ Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
+
+ Closes #9213
+
+- urldata: move smaller fields down in connectdata struct
+
+ By (almost) sorting the struct fields in connectdata in a decending size
+ order, having the single char ones last, we reduce the number of holes
+ in the struct and thus the amount of storage needed.
+
+ Closes #9280
+
+- ldap: adapt to conn->port now being an 'int'
+
+ Remove typecasts. Fix printf() formats.
+
+ Follow-up from 764c6bd3bf.
+ Pointed out by Coverity CID 1507858.
+
+ Closes #9281
+
+- KNOWN_BUGS: Negotiate authentication against Hadoop HDFS
+
+ Closes #8264
+
+- [Oliver Roberts brought this change]
+
+ file: add handling of native AmigaOS paths
+
+ On AmigaOS 4.x, handle native absolute paths, whilst blocking relative
+ paths. Also allow unix style paths if feature enabled at link time.
+
+ Inspiration-from: Michael Trebilcock
+
+ Closes #9259
+
+- KNOWN_BUGS: cmake build is not thread-safe
+
+ The cmake build does not check for and verify presence of a working
+ Atomic type, which then makes curl_global_init() to not build
+ thread-safe on non-Windows platforms.
+
+ Closes https://github.com/curl/curl/issues/8973
+ Closes https://github.com/curl/curl/pull/8982
+
+- [Oliver Roberts brought this change]
+
+ configure: fixup bsdsocket detection code for AmigaOS 4.x
+
+ The code that detects bsdsocket.library for AmigaOS did not work
+ for AmigaOS 4.x. This has been fixed and also cleaned up a little
+ to reduce duplication. Wasn't technically necessary before, but is
+ required when building with AmiSSL instead of OpenSSL.
+
+ Closes #9268
+
+- [Oliver Roberts brought this change]
+
+ tool: reintroduce set file comment code for AmigaOS
+
+ Amiga specific code which put the URL in the file comment was perhaps
+ accidentally removed in b88940850002a3f1c25bc6488b95ad30eb80d696 having
+ originally been added in 5c215bdbdfde8b2350cdcbac82aae0c914da5314.
+ Reworked to fit the code changes and added it back in.
+
+ Reported-by: Michael Trebilcock
+ Originally-added-by: Chris Young
+
+ Closes #9258
+
+- urldata: make 'negnpn' use less storage
+
+ The connectdata struct field 'negnpn' never holds a value larger than
+ 30, so an unsigned char saves 3 bytes struct space.
+
+ Closes #9279
+
+- urldata: make three *_proto struct fields smaller
+
+ Use 'unsigned char' for storage instead of the enum, for three GSSAPI
+ related fields in the connectdata struct.
+
+ Closes #9278
+
+- connect: set socktype/protocol correctly
+
+ So that an address used from the DNS cache that was previously used for
+ QUIC can be reused for TCP and vice versa.
+
+ To make this possible, set conn->transport to "unix" for unix domain
+ connections ... and store the transport struct field in an unsigned char
+ to use less space.
+
+ Reported-by: ウさん
+ Fixes #9274
+ Closes #9276
+
+- [Oliver Roberts brought this change]
+
+ amissl: allow AmiSSL to be used with AmigaOS 4.x builds
+
+ Enable AmiSSL to be used instead of static OpenSSL link libraries.
+ for AmigaOS 4.x, as it already is in the AmigaOS 3.x build.
+
+ Closes #9269
+
+- [opensignature on github brought this change]
+
+ openssl: add details to "unable to set client certificate" error
+
+ from: "curl: (58) unable to set client certificate"
+
+ to: curl: (58) unable to set client certificate [error:0A00018F:SSL
+ routines::ee key too small]
+
+ Closes #9228
+
+- [Oliver Roberts brought this change]
+
+ amissl: make AmiSSL v5 a minimum requirement
+
+ AmiSSL v5 is the latest version, featuring a port of OpenSSL 3.0.
+ Support for previous OpenSSL 1.1.x versions has been dropped, so
+ makes sense to enforce v5 as the minimum requirement. This also
+ allows all the AmiSSL stub workarounds to be removed as they are
+ now provided in a link library in the AmiSSL SDK.
+
+ Closes #9267
+
+- [Oliver Roberts brought this change]
+
+ configure: -pthread not available on AmigaOS 4.x
+
+ The most recent GCC builds for AmigaOS 4.x do not allow -pthread and
+ exit with an error. Instead, need to explictly specify -lpthread.
+
+ Closes #9266
+
+- digest: pass over leading spaces in qop values
+
+ When parsing the "qop=" parameter of the digest authentication, and the
+ value is provided within quotes, the list of values can have leading
+ white space which the parser previously did not handle correctly.
+
+ Add test case 388 to verify.
+
+ Reported-by: vlubart on github
+ Fixes #9264
+ Closes #9270
+
+- [Evgeny Grin (Karlson2k) brought this change]
+
+ digest: reject broken header with session protocol but without qop
+
+ Closes #9077
+
+- CURLINFO_SPEED_UPLOAD/DOWNLOAD.3: fix examples
+
+ Reported-by: jvvprasad78 on github
+ Assisted-by: Jay Satiro
+ Fixes #9239
+ Closes #9241
+
+- [Fabian Keil brought this change]
+
+ test44[2-4]: add '--resolve' to the keywords
+
+ ... so the tests can be automatically skipped when
+ using an external proxy like Privoxy.
+
+ Closes #9250
+
+- RELEASE-NOTES: synced
+
+- CURLOPT_CONNECT_ONLY.3: clarify multi API use
+
+ Reported-by: Maxim Ivanov
+ Fixes #9244
+ Closes #9262
+
+- [Andrew Lambert brought this change]
+
+ curl_easy_header: Add CURLH_PSEUDO to sanity check
+
+ Fixes #9235
+ Closes #9236
+
+- [Emil Engler brought this change]
+
+ docs: add dns category to --resolve
+
+ This commit adds the dns category to the --resolve command line option,
+ because it can be interpreted as both: a low-level connection option and
+ an option related to the resolving of a hostname.
+
+ It is also not common for dns options to belong to the connection
+ category and vice versa. --ipv4 and --ipv6 are both good examples.
+
+ Closes #9229
+
+Jay Satiro (2 Aug 2022)
+- [Wyatt O'Day brought this change]
+
+ schannel: Add TLS 1.3 support
+
+ - Support TLS 1.3 as the default max TLS version for Windows Server 2022
+ and Windows 11.
+
+ - Support specifying TLS 1.3 ciphers via existing option
+ CURLOPT_TLS13_CIPHERS (tool: --tls13-ciphers).
+
+ Closes https://github.com/curl/curl/pull/8419
+
+Daniel Stenberg (2 Aug 2022)
+- [Emil Engler brought this change]
+
+ cmdline-opts/gen.pl: improve performance
+
+ On some systems, the gen.pl script takes nearly two minutes for the
+ generation of the main-page, which is a completely unacceptable time.
+
+ The slow performance has two causes:
+ 1. Use of a regex locale operator
+ 2. Useless invokations of loops
+
+ The commit addresses the first issue by replacing the "\W" wiht
+ [^a-zA-Z0-9_], which is, according to regex101.com, functionally
+ equivalent to the previous operation, except that it is obviously
+ limited to ASCII only, which is fine, as the curl project is
+ English-only anyway.
+
+ The second issue is being addressed by only running the loop if the line
+ contains a "--" in it. The loop may be completeley removed in the
+ future.
+
+ Co-authored-by: Emanuele Torre <torreemanuele6@gmail.com>
+
+ See #8299
+ Fixes #9230
+ Closes #9232
+
+- docs/cmdline: mark fail and fail-with-body as mutually exclusive
+
+ Reported-by: Andreas Sommer
+ Fixes #9221
+ Closes #9222
+
+- [Nao Yonashiro brought this change]
+
+ quiche: fix build failure
+
+ Reviewed-by: Alessandro Ghedini
+ Closes #9223
+
+Viktor Szakats (2 Aug 2022)
+- configure.ac: drop references to deleted functions
+
+ follow-up from 4d73854462f30948acab12984b611e9e33ee41e6
+
+ Reported-by: Oliver Roberts
+ Fixes #9238
+ Closes #9240
+
+Daniel Stenberg (28 Jul 2022)
+- [Sean McArthur brought this change]
+
+ hyper: enable obs-folded multiline headers
+
+ Closes #9216
+
+- connect: revert the use of IP*_RECVERR
+
+ The options were added in #6341 and d13179d, but cause problems: Lots of
+ POLLIN event occurs but recvfrom read nothing.
+
+ Reported-by: Tatsuhiro Tsujikawa
+ Fixes #9209
+ Closes #9215
+
+- [Marco Kamner brought this change]
+
+ docs: remove him/her/he/she from documentation
+
+ Closes #9208
+
+- RELEASE-NOTES: synced
+
+- tool_getparam: make --doh-url "" switch it off
+
+ A possible future addition could be to parse the URL first too to verify
+ that it is valid before trying to use it.
+
+ Assisted-by: Jay Satiro
+ Closes #9207
+
+- mailmap: add rzrymiak on github
+
+Jay Satiro (26 Jul 2022)
+- ngtcp2: Fix build error due to change in nghttp3 prototypes
+
+ ngtcp2/nghttp3@4a066b2 changed nghttp3_conn_block_stream and
+ nghttp3_conn_shutdown_stream_write return from int to void.
+
+ Reported-by: jurisuk@users.noreply.github.com
+
+ Fixes https://github.com/curl/curl/issues/9204
+ Closes https://github.com/curl/curl/pull/9200
+
+Daniel Stenberg (26 Jul 2022)
+- [rzrymiak on github brought this change]
+
+ BUGS.md: improve language
+
+ Closes #9205
+
+- [Philip Heiduck brought this change]
+
+ cirrus.yml: replace py38-pip with py39-pip
+
+ Reported-by: Jay Satiro
+ Fixes #9201
+ Closes #9202
+
+- tool_getparam: fix cleanarg() for unicode builds
+
+ Use the correct type, and make cleanarg an empty macro if the cleaning
+ ability is absent.
+
+ Fixes #9195
+ Closes #9196
+
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+
+Marc Hoersken (25 Jul 2022)
+- test3026: add support for Windows using native Win32 threads
+
+ Reviewed-by: Viktor Szakats
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
+
+ Follow up to 7ade9c50b35d95d47a43880c3097bebab7a7e690
+ Closes #9012
+
+Jay Satiro (25 Jul 2022)
+- [Evgeny Grin (Karlson2k) brought this change]
+
+ digest: fix memory leak, fix not quoted 'opaque'
+
+ Fix leak regression introduced by 3a6fe0c.
+
+ Closes https://github.com/curl/curl/pull/9199
+
+Daniel Stenberg (23 Jul 2022)
+- tests: several enumerated type cleanups
+
+ To please icc
+
+ Closes #9179
+
+- tool_paramhlp: fix "enumerated type mixed with another type"
+
+ Warning by icc
+
+ Closes #9179
+
+- tool_writeout: fix enumerated type mixed with another type
+
+ Closes #9179
+
+- tool_cfgable: make 'synthetic_error' a plain bool
+
+ The specific reason was not used.
+
+ Closes #9179
+
+- tool_paramhlp: make check_protocol return ParameterError
+
+ "enumerated type mixed with another type"
+
+ Closes #9179
+
+- tool_formparse: fix variable may be used before its value is set
+
+ Warning by icc
+
+ Closes #9179
+
+- sendf: skip storing HTTP headers if HTTP disabled
+
+ Closes #9179
+
+- url: enumerated type mixed with another type
+
+ Follow-up to 1c58e7ae99ce2030213f28b
+
+ Closes #9179
+
+- urldata: change second proxytype field to unsigned char to match
+
+ To avoid "enumerated type mixed with another type"
+
+ Closes #9179
+
+- http: typecast the httpreq assignment to avoid icc compiler warning
+
+ error #188: enumerated type mixed with another type
+
+ Closes #9179
+
+- urldata: make state.httpreq an unsigned char
+
+ To match set.method used for the same purpose.
+
+ Closes #9179
+
+- splay: avoid using -1 in unsigned variable
+
+ To fix icc compiler warning integer conversion resulted in a change of sign
+
+ Closes #9179
+
+- sendf: store the header type in an usigned char to avoid icc warnings
+
+ Closes #9179
+
+- multi: fix the return code from Curl_pgrsDone()
+
+ It does not return a CURLcode. Detected by the icc compiler warning
+ "enumerated type mixed with another type"
+
+ Closes #9179
+
+- sendf: make Curl_debug a void function
+
+ As virtually no called checked the return code, and those that did
+ wrongly treated it as a CURLcode. Detected by the icc compiler warning:
+ enumerated type mixed with another type
+
+ Closes #9179
+
+- http_chunks: remove an assign + typecast
+
+ As it caused icc to complain: "pointer cast involving 64-bit pointed-to
+ type"
+
+ Closes #9179
+
+- vtls: make Curl_ssl_backend() return the enum type curl_sslbackend
+
+ To fix the icc warning enumerated type mixed with another type
+
+ Closes #9179
+
+- curl-compilers.m4: make icc use -diag* options and disable two warnings
+
+ -wd and -we are deprecated and are now -diag-disable and -diag-error
+
+ Disable warning 1024 and 2259
+
+ Closes #9179
+
+- [Matthew Thompson brought this change]
+
+ GHA: add two Intel compiler CI jobs
+
+ Closes #9179
+
+- [Daniel Katz brought this change]
+
+ curl-functions.m4: check whether atomics can link rather than just compile
+
+ Some build toolchains support C11 atomics (i.e., _Atomic types), but
+ will not link the associated atomics runtime unless a flag is passed. In
+ such an environment, linking an application with libcurl.a can fail due
+ to undefined symbols for atomic load/store functions.
+
+ I encountered this behavior when upgrading curl to 7.84.0 and attempting
+ to build with Solaris Studio 12.6. Solaris provides the flag
+ -xatomic=[gcc | studio], allowing users to link to one of two atomics
+ runtime implementations. However, if the user does not provide this
+ flag, then neither runtime is linked. This led to builds failing in CI.
+
+ Closes #9190
+
+- [Rosen Penev brought this change]
+
+ curl-wolfssl.m4: add options header when building test code
+
+ Needed for certain configurations of wolfSSL. Otherwise, missing header
+ error may occur.
+
+ Tested with OpenWrt.
+
+ Closes #9187
+
+- ftp: use a correct expire ID for timer expiry
+
+ This was an accurate error pointed out by the icc warning: enumerated
+ type mixed with another type
+
+ Ref: #9179
+ Closes #9184
+
+- sendf: fix paused header writes since after the header API
+
+ Regression since d1e4a67
+
+ Reported-by: Sergey Ogryzkov
+ Fixes #9180
+ Closes #9182
+
+- mprintf: fix *dyn_vprintf() when out-of-memory
+
+ Follow-up to 0e48ac1f99a. Torture-testing 1455 would lead to a memory
+ leak otherwise.
+
+ Closes #9185
+
+- curl-confopts: remove leftover AC_REQUIREs
+
+ configure.ac:3488: warning: CURL_CHECK_FUNC_IOCTL is m4_require'd but not m4_defun'd
+ configure.ac:3488: warning: CURL_CHECK_FUNC_SETSOCKOPT is m4_require'd but not m4_defun'd
+
+ follow-up from 4d73854462f30
+
+ Closes #9183
+
+- file: fix icc enumerated type mixed with another type warning
+
+ Ref: #9179
+ Closes #9181
+
+Viktor Szakats (19 Jul 2022)
+- tidy-up: delete unused build configuration macros
+
+ Most of them feature guards:
+
+ - `CURL_INCLUDES_SYS_UIO` [1]
+ - `HAVE_ALLOCA_H` [2]
+ - `HAVE_CRYPTO_CLEANUP_ALL_EX_DATA` (unused since de71e68000c8624ea13f90b136f8734dd0fb1bdc)
+ - `HAVE_DLFCN_H`
+ - `HAVE_DLOPEN`
+ - `HAVE_DOPRNT`
+ - `HAVE_FCNTL`
+ - `HAVE_GETHOSTBYNAME` [3]
+ - `HAVE_GETOPT_H`
+ - `HAVE_GETPASS`
+ - `HAVE_GETPROTOBYNAME`
+ - `HAVE_GETSERVBYNAME`
+ - `HAVE_IDN_FREE*`
+ - `HAVE_INET_ADDR`
+ - `HAVE_IOCTL`
+ - `HAVE_KRB4`
+ - `HAVE_KRB_GET_OUR_IP_FOR_REALM`
+ - `HAVE_KRB_H`
+ - `HAVE_LDAPSSL_H`
+ - `HAVE_LDAP_INIT_FD`
+ - `HAVE_LIBDL`
+ - `HAVE_LIBNSL`
+ - `HAVE_LIBRESOLV*`
+ - `HAVE_LIBUCB`
+ - `HAVE_LL`
+ - `HAVE_LOCALTIME_R`
+ - `HAVE_MALLOC_H`
+ - `HAVE_MEMCPY`
+ - `HAVE_MEMORY_H`
+ - `HAVE_NETINET_IF_ETHER_H`
+ - `HAVE_NI_WITHSCOPEID`
+ - `HAVE_OPENSSL_CRYPTO_H`
+ - `HAVE_OPENSSL_ERR_H`
+ - `HAVE_OPENSSL_PEM_H`
+ - `HAVE_OPENSSL_PKCS12_H`
+ - `HAVE_OPENSSL_RAND_H`
+ - `HAVE_OPENSSL_RSA_H`
+ - `HAVE_OPENSSL_SSL_H`
+ - `HAVE_OPENSSL_X509_H`
+ - `HAVE_PEM_H`
+ - `HAVE_POLL`
+ - `HAVE_RAND_SCREEN`
+ - `HAVE_RAND_STATUS`
+ - `HAVE_RECVFROM`
+ - `HAVE_SETSOCKOPT`
+ - `HAVE_SETVBUF`
+ - `HAVE_SIZEOF_LONG_DOUBLE`
+ - `HAVE_SOCKIO_H`
+ - `HAVE_SOCK_OPTS`
+ - `HAVE_STDIO_H`
+ - `HAVE_STRCASESTR`
+ - `HAVE_STRFTIME`
+ - `HAVE_STRLCAT`
+ - `HAVE_STRNCMPI`
+ - `HAVE_STRNICMP`
+ - `HAVE_STRSTR`
+ - `HAVE_STRUCT_IN6_ADDR`
+ - `HAVE_TLD_H`
+ - `HAVE_TLD_STRERROR`
+ - `HAVE_UNAME`
+ - `HAVE_USLEEP`
+ - `HAVE_WINBER_H`
+ - `HAVE_WRITEV`
+ - `HAVE_X509_H`
+ - `LT_OBJDIR`
+ - `NEED_BASENAME_PROTO`
+ - `NOT_NEED_LIBNSL`
+ - `OPENSSL_NO_KRB5`
+ - `RECVFROM_TYPE*`
+ - `SIZEOF_LONG_DOUBLE`
+ - `STRERROR_R_TYPE_ARG3`
+ - `USE_YASSLEMUL`
+ - `_USRDLL` (from CMake) [4]
+
+ [1] Related parts in `m4/curl-functions.m4` and `configure.ac` might
+ also be deleted.
+
+ [2] Related comment can possibly be deleted in
+ `packages/vms/generate_config_vms_h_curl.com`.
+
+ [3] There are more instances of this in autotools, but I did not dare to
+ touch those. Looked like it's used to detect socket support.
+
+ [4] This is necessary for MFC (Microsoft Foundation Class) DLLs to
+ force linking MFC components statically to the DLL. `libcurl.dll`
+ does not use MFC, so we can delete this define.
+ Ref: https://docs.microsoft.com/cpp/build/regular-dlls-statically-linked-to-mfc
+
+ Script that can help finding unused settings like above:
+ ```shell
+
+ autoheader configure.ac # generate lib/curl_config.h.in
+
+ {
+ grep -o -E 'set\([A-Z][A-Z0-9_]{3,}' CMake/Platforms/WindowsCache.cmake | sed -E 's|set\(||g'
+ grep -o -E -h '#define +[A-Z][A-Z0-9_]{3,}' lib/config-*.h | sed -E 's|#define +||g'
+ grep -o -E '#cmakedefine +[A-Z][A-Z0-9_]{3,}' lib/curl_config.h.cmake | sed -E 's|#cmakedefine +||g'
+ grep -o -E '#undef +[A-Z][A-Z0-9_]{3,}' lib/curl_config.h.in | sed -E 's|#undef +||g'
+ } | sort -u | grep -v -F 'HEADER_CURL_' | while read -r def; do
+ c="$(git grep -w -F "${def}" | grep -v -E -c '(/libcurl\.tmpl|^lib/config-|^lib/curl_config\.h\.cmake|^CMakeLists\.txt|^CMake/Platforms/WindowsCache\.cmake|^packages/vms/config_h\.com|^m4/curl-functions\.m4|^acinclude\.m4|^configure\.ac)')"
+ if [ "${c}" = '0' ]; then
+ echo "${def}"
+ fi
+ done
+ ```
+
+ Reviewed-by: Daniel Stenberg
+ Closes #9044
+
+Daniel Stenberg (19 Jul 2022)
+- RELEASE-NOTES: synced
+
+- cookie: treat a blank domain in Set-Cookie: as non-existing
+
+ This matches what RFC 6265 section 5.2.3 says.
+
+ Extended test 31 to verify.
+
+ Fixes #9164
+ Reported-by: Gwen Shapira
+ Closes #9177
+
+- [Patrick Monnerat brought this change]
+
+ base64: base64url encoding has no padding
+
+ See RFC4648 section 5 and RFC7540 section 3.2.1.
+
+ Suppress generation of '=' padding of base64url encoding. This is
+ accomplished by considering the string beginning at offset 64 in the
+ character table as the padding: this is "=" for base64, "" for base64url.
+
+ Also use strchr() to replace character search loops where possible.
+
+ Suppress erroneous comments about empty encoding results.
+
+ Adjust unit test 1302 to unpadded base64url encoding and add tests for
+ empty results.
+
+ Closes #9139
+
+- easyoptions: fix icc warning
+
+ easyoptions.c(360): error #188: enumerated type mixed with another type
+
+ Ref: #9156
+ Reported-by: Matthew Thompson
+ Closes #9176
+
+- [lwthiker brought this change]
+
+ h2h3: fix overriding the 'TE: Trailers' header
+
+ A 'TE: Trailers' header is explicitly replaced by 'te: trailers'
+ (lowercase) in Curl_pseudo_headers() when building the list of HTTP/2 or
+ HTTP/3 headers. However, this is then replaced again by the original
+ value due to a bug, resulting in the uppercased version being sent. Some
+ HTTP/2 servers reject the whole HTTP/2 stream when this is the case.
+
+ Closes #9170
+
+- lib3026: reduce the number of threads to 100
+
+ Down from 1000, to make it run and work in more systems.
+
+ Fixes #9172
+ Reported-by: Érico Nogueira Rolim
+ Closes #9173
+
+- doh: move doh related struct definitions to doh.h
+
+ and make 'dnstype' in 'struct dnsprobe' use the DNStype to fix the icc compiler warning:
+
+ doh.c(924): error #188: enumerated type mixed with another type
+
+ Reported-by: Matthew Thompson
+ Ref #9156
+ Closes #9174
+
+Viktor Szakats (17 Jul 2022)
+- Makefile.m32: stop trying to build libcares.a [ci skip]
+
+ Before this patch, `lib/Makefile.m32` had a rule to build `libcares.a` in
+ `-cares`-enabled builds, via c-ares's own `Makefile.m32`. Committed in
+ 2007 [1]. The commit message doesn't specifically address this particular
+ change. This logic comes from the times when c-ares was part of the curl
+ source tree, hence the special treatment.
+
+ This feature creates problems when building c-ares first, using CMake
+ and pointing `LIBCARES_PATH` to its install prefix, where `Makefile.m32`
+ is missing in such case. A sub-build for c-ares is undesired also when
+ c-ares had already been build via its own `Makefile.m32`.
+
+ To avoid the sub-build, this patch deletes its Makefile rule. After this
+ patch `libcares.a` needs to be manually built before using it in
+ `Makefile.m32`. Aligning it with the rest of dependencies.
+
+ [1] 46c92c0b806da041d7a5c6fb64dbcdc474d99b31
+
+ Reviewed-by: Daniel Stenberg
+ Closes #9169
+
+Daniel Stenberg (17 Jul 2022)
+- curl: writeout: fix repeated header outputs
+
+ The function stored a terminating zero into the buffer for convenience,
+ but when on repeated calls that would cause problems. Starting now, the
+ passed in buffer is not modified.
+
+ Reported-by: highmtworks on github
+ Fixes #9150
+ Closes #9152
+
+- curl_multi_timeout.3: clarify usage
+
+ Fixes #9155
+ Closes #9157
+ Reported-by: jvvprasad78 on github
+
+- mprintf: make dprintf_formatf never return negative
+
+ This function no longer returns a negative value if the formatting
+ string is bad since the return value would sometimes be propagated as a
+ return code from the mprintf* functions and they are documented to
+ return the length of the output. Which cannot be negative.
+
+ Fixes #9149
+ Closes #9151
+ Reported-by: yiyuaner on github
+
+Viktor Szakats (17 Jul 2022)
+- trace: 0x7F character is non-printable
+
+ `0x7F` is `DEL`, a non-printable symbol, so print it as
+ `UNPRINTABLE_CHAR`.
+
+ Reported-by: MasterInQuestion on github
+ Fixes #9162
+ Closes #9166
+
+- doh: use https protocol by default
+
+ The only allowed protocol is https, so it makes sense to use that
+ by default if not passed explicitly by the user.
+
+ Reported-by: MasterInQuestion on github
+ Reviewed-by: Jay Satiro
+ Fixes #9163
+ Closes #9165
+
+- openssl: fix BoringSSL symbol conflicts with LDAP and Schannel
+
+ Same issue as here [1], but this time when building curl with BoringSSL
+ for Windows with LDAP(S) or Schannel support enabled.
+
+ Apply the same fix [2] for these source files as well.
+
+ This can also be fixed by moving `#include "urldata.h"` _before_
+ including `winldap.h` and `schnlsp.h` respectively. This seems like
+ a cleaner fix, though I'm not sure why it works and if it has any
+ downside.
+
+ [1] https://github.com/curl/curl/issues/5669
+ [2] https://github.com/curl/curl/commit/fbe07c6829ba8c5793c84c2856526e19e9029ab9
+
+ Co-authored-by: Jay Satiro
+ Closes #9110
+
+Daniel Stenberg (13 Jul 2022)
+- asyn-thread: make getaddrinfo_complete return CURLcode
+
+ ... as the only caller that cares about what it returns assumes that
+ anyway. This caused icc to warn:
+
+ asyn-thread.c(505): error #188: enumerated type mixed with another type
+ result = getaddrinfo_complete(data);
+
+ Repoorted-by: Matthew Thompson
+ Bug: https://github.com/curl/curl/issues/9081#issuecomment-1182143076
+ Closes #9146
+
+- easy_lock: fix build with icc
+
+ The Intel compiler tries to look like GCC *and* clang *and* it lies in
+ its __has_builtin() function (returns true when it should return false),
+ so override it.
+
+ Reported-by: Matthew Thompson
+ Fixes #9081
+ Closes #9144
+
+- configure: fix --disable-headers-api
+
+ Reported-by: Michał Antoniak
+ Fixes #9134
+ Closes #9143
+
+- test3026: require 'threadsafe'
+
+ Reported-by: Sukanya Hanumanthu
+ Fixes #9141
+ Closes #9142
+
+- [Even Rouault brought this change]
+
+ CMake: link curl to its dependencies with PRIVATE
+
+ The current PUBLIC visibility causes issues for downstream users.
+ Cf https://github.com/OSGeo/PROJ/pull/3172#issuecomment-1157942986
+
+ Reviewed-by: Jakub Zakrzewski
+ Closes #9125
+
+- [Even Rouault brought this change]
+
+ CMake: remove APPEND in export(TARGETS)
+
+ When running cmake several times, new content was appended to already
+ existing generated files, which is not appropriate
+
+ Reviewed-by: Jakub Zakrzewski
+ Closes #9124
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: implement cb_h3_stop_sending and cb_h3_reset_stream callbacks
+
+ Closes #9135
+
+- RELEASE-NOTES: synced
+
+Viktor Szakats (11 Jul 2022)
+- build: improve OS string in CMake and `config-win32.h`
+
+ This patch makes CMake fill the "OS string" with the value of
+ `CMAKE_C_COMPILER_TARGET`, if passed. This typically contains a triplet,
+ the same we can pass to `./configure` via `--host=`.
+
+ For non-CMake, non-autotools, Windows builds, this patch adds the ability
+ to override the default `OS` value in `lib/config-win32.h`.
+
+ With these its possible to get the same OS string across the three build
+ systems.
+
+ This patch supersedes the earlier, partial, CMake-only solution:
+ 435f395f3f8c11eebfcc243ca55ebcc11a19b8b8, thus retiring the
+ `CURL_OS_SUFFIX` CMake option.
+
+ Reviewed-by: Jay Satiro
+ Closes #9117
+
+- Makefile.m32: add `CURL_RC` and `CURL_STRIP` variables [ci skip]
+
+ They allow to override the hardcoded values for the `windres` and `strip`
+ tools, complementing the existing set of `CURL_{CC,AR,RANLIB}` variables.
+
+ `CURL_RC` comes handy when using LLVM tools with `CROSSPREFIX=llvm-` and
+ `CURL_CC=clang` set on current latest debian:unstable or earlier, where
+ `llvm-windres` is missing, and a `CURL_RC=<triplet>-windres` fixes it.
+ Hopefully this will be fixed in the llvm package. FWIW `llvm-windres`
+ does exist in Homebrew llvm, MSYS2 llvm and llvm-mingw.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #9132
+
+Daniel Stenberg (10 Jul 2022)
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: fix stall or busy loop on STOP_SENDING with upload data
+
+ Fixes #9122
+ Closes #9123
+
+- [Xiaoke Wang brought this change]
+
+ tool_operate: better cleanup of easy handle in exit path
+
+ Closes #9114
+
+- [Xiaoke Wang brought this change]
+
+ getinfo: return better error on NULL as first argument
+
+ Closes #9114
+
+- tool_getparam: repair cleanarg
+
+ Regression since 9e5669f.
+
+ Make sure the "cleaning" of command line arguments is done on the
+ original argv[] pointers. As a bonus, it also exits better on out of
+ memory error.
+
+ Reported-by: Litter White
+ Fixes #9128
+ Closes #9130
+
+Jay Satiro (10 Jul 2022)
+- docs: explain curl_easy_escape/unescape curl handle is ignored
+
+ 26101421 (precedes 7.82.0) removed character conversion support used by
+ very old legacy operating systems and since then the curl handle passed
+ to curl_easy_escape/unescape is always ignored.
+
+ Bug: https://github.com/curl/curl/discussions/9115
+ Reported-by: Ted Lyngmo
+
+ Closes https://github.com/curl/curl/pull/9121
+
+Viktor Szakats (8 Jul 2022)
+- openssl: add `CURL_BORINGSSL_VERSION` to identify BoringSSL
+
+ BoringSSL doesn't keep a version number, and doesn't self-identify itself
+ via any other revision number via its own headers. We can identify
+ BoringSSL revisions by their commit hash. This hash is typically known by
+ the builder. This patch adds a way to pass this hash to libcurl, so that
+ it can display in the curl version string:
+
+ For example:
+
+ `CFLAGS=-DCURL_BORINGSSL_VERSION="c239ffd0"`
+
+ ```
+ curl 7.84.0 (x86_64-w64-mingw32) libcurl/7.84.0 BoringSSL/c239ffd0 (Schannel) zlib/1.2.12 [...]
+ Release-Date: 2022-06-27
+ Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 [...]
+ Features: alt-svc AsynchDNS brotli gsasl HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos [...]
+ ```
+
+ The setting is optional, and if not passed, BoringSSL will appear without
+ a version number, like before this patch.
+
+ Closes #9113
+
+Jay Satiro (8 Jul 2022)
+- escape: remove outdated comment
+
+ Bug: https://github.com/curl/curl/discussions/9115
+ Reported-by: Ted Lyngmo
+
+- [Tatsuhiro Tsujikawa brought this change]
+
+ ngtcp2: Fix missing initialization of nghttp3_nv.flags
+
+ Closes https://github.com/curl/curl/pull/9118
+
+Daniel Stenberg (6 Jul 2022)
+- [Brad Forschinger brought this change]
+
+ netrc.d: remove spurious quote
+
+ Closes #9111
+
+Viktor Szakats (6 Jul 2022)
+- Makefile.m32: add `NGTCP2_LIBS` option [ci skip]
+
+ Makefile.m32's ngtcp2 has its two libs hardwired for OpenSSL.
+ Add `NGTCP2_LIBS` envvar to override them with a custom list,
+ making it possible to use BoringSSL, or any other backend.
+
+ Closes #9109
+
+Jay Satiro (6 Jul 2022)
+- [Evgeny Grin (Karlson2k) brought this change]
+
+ digest: fix missing increment of 'nc' value for auth-int
+
+ - Increment nc regardless of qop type.
+
+ Prior to this change nc was only incremented for qop type auth even
+ though libcurl sends nc with any qop.
+
+ Closes https://github.com/curl/curl/pull/9090
+
+Daniel Stenberg (5 Jul 2022)
+- RELEASE-NOTES: synced
+
+ Bumped to 7.85.0
+
+- urldata: reduce size of four ftp related members
+
+ ftp_filemethod, ftpsslauth and ftp_ccc are now uchars
+
+ accepttimeout is now unsigned int - almost 50 days ought to be enough
+ for this value.
+
+ Closes #9106
+
+- urldata: reduce three type-members from int to uchar
+
+ - timecondition
+ - proxytype
+ - method
+
+ ... previously used their enum type in the struct, which made them
+ unnecesarily large.
+
+ Closes #9105
+
+- CURLOPT_SERVER_RESPONSE_TIMEOUT: the new name
+
+ Starting now, CURLOPT_FTP_RESPONSE_TIMEOUT is the alias instead of the
+ other way around.
+
+ Since 7.20.0, CURLOPT_SERVER_RESPONSE_TIMEOUT has existed as an alias
+ but since the option is for more protocols than FTP the more "correct"
+ version of the option is the "server" one so now we switch.
+
+ Closes #9104
+
+- urldata: make 'ftp_create_missing_dirs' a uchar
+
+ It only ever holds the values 0-2.
+
+ Closes #9103
+
+- [Don J Olmstead brought this change]
+
+ cmake: support ngtcp2 boringssl backend
+
+ Update the ngtcp2 find module to detect the boringssl backend. Determine
+ if the underlying OpenSSL implementation is BoringSSL and if so use that
+ as the ngtcp2 backend.
+
+ Reviewed-by: Jakub Zakrzewski
+ Closes #9065
+
+- urldata: change 4 timeouts to unsigned int from long
+
+ They're not used for that long times anyway, 32 bit milliseconds is long
+ enough.
+
+ Closes #9101
+
+- urldata: make 'use_netrc' a uchar
+
+ Closes #9102
+
+- urldata: make 'buffer_size' an unsigned int
+
+ It is already capped at READBUFFER_MAX which fits easily in 32 bits.
+
+ Closes #9098
+
+- urldata: remove the unused 'rtspversion' struct member
+
+ Closes #9100
+
+- urldata: make 'use_port' an usigned short
+
+ ... instead of a long. It is already enforced to not attempt to set any
+ value outside of 16 bits unsigned.
+
+ Closes #9099
+
+- urldata: store dns cache timeout in an int
+
+ 68 years ought to be enough for most.
+
+ Closes #9097
+
+- curl: proto2num: make sure obuf is inited
+
+ Detected by Coverity. CID 1507052.
+
+ Closes #9096
+
+- cookie: use %zu to infof() for size_t values
+
+ Detected by Coverity. CID 1507051
+ Closes #9095
+
+Viktor Szakats (4 Jul 2022)
+- makefile.m32: add support for custom ARCH [ci skip]
+
+ When building curl for target platform other than x64 and x86, it is now
+ possible to pass `ARCH=custom`, that will omit all hardcoded logic for
+ setting up CFLAGS/LDFLAGS/RCFLAGS for these platforms, and let these be
+ customized via `CURL_CFLAG_EXTRAS`, `CURL_LDFLAG_EXTRAS`, and a newly
+ added one for the resource compiler: `CURL_RCFLAG_EXTRAS`.
+
+ This makes it possible to use `makefile.m32` to build for ARM64 for
+ example.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #9092
+
+- cmake: do not force Windows target versions
+
+ The goal of this patch is to avoid CMake forcing specific Windows
+ versions and rely on toolchain defaults or manual selection instead.
+ This gives back control to the user. This also brings CMake closer to
+ how autotools and `Makefile.m32` behaves in this regard.
+
+ - CMake had a setting `ENABLE_INET_PTON` defaulting to `ON`, which did
+ nothing else than fixing the Windows build target to Vista. This also
+ happened when the toolchain did not have Vista support (e.g. original
+ MinGW), breaking such builds.
+
+ In other environments it did not make a user-facing difference,
+ because libcurl has its own pton() implementation, so it works well
+ with or without Vista's inet_pton().
+
+ This patch drops this setting. inet_pton() is now used whenever
+ building for Vista or newer, either when requested manually or by
+ default with modern toolchains (e.g. mingw-w64). Older envs will fall
+ back to curl's pton().
+
+ Ref: https://github.com/curl/curl/pull/9027#issuecomment-1164157604
+ Ref: https://github.com/curl/curl/pull/8997#issuecomment-1164344155
+
+ - When the user did no select a Windows target version manually, stop
+ explicitly targeting Windows XP, and instead use the toolchain default.
+
+ This may pose an issue with old toolchains defaulting to pre-XP
+ targets. In such case you must manually target Windows XP via:
+ `-DCURL_TARGET_WINDOWS_VERSION=0x0501`
+ or
+ `-DCMAKE_C_FLAGS=-D_WIN32_WINNT=0x0501`
+
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+ Closes #9046
+
+- windows: improve random source
+
+ - Use the Windows API to seed the fallback random generator.
+
+ This ensures to always have a random seed, even when libcurl is built
+ with a vtls backend lacking a random generator API, such as rustls
+ (experimental), GSKit and certain mbedTLS builds, or, when libcurl is
+ built without a TLS backend. We reuse the Windows-specific random
+ function from the Schannel backend.
+
+ - Implement support for `BCryptGenRandom()` [1] on Windows, as a
+ replacement for the deprecated `CryptGenRandom()` [2] function.
+
+ It is used as the secure random generator for Schannel, and also to
+ provide entropy for libcurl's fallback random generator. The new
+ function is supported on Vista and newer via its `bcrypt.dll`. It is
+ used automatically when building for supported versions. It also works
+ in UWP apps (the old function did not).
+
+ - Clear entropy buffer before calling the Windows random generator.
+
+ This avoids using arbitrary application memory as entropy (with
+ `CryptGenRandom()`) and makes sure to return in a predictable state
+ when an API call fails.
+
+ [1] https://docs.microsoft.com/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom
+ [2] https://docs.microsoft.com/windows/win32/api/wincrypt/nf-wincrypt-cryptgenrandom
+
+ Closes #9027
+
+Daniel Stenberg (4 Jul 2022)
+- setopt: add CURLOPT_PROTOCOLS_STR and CURLOPT_REDIR_PROTOCOLS_STR
+
+ ... as replacements for deprecated CURLOPT_PROTOCOLS and
+ CURLOPT_REDIR_PROTOCOLS as these new ones do not risk running into the
+ 32 bit limit the old ones are facing.
+
+ CURLINFO_PROTCOOL is now deprecated.
+
+ The curl tool is updated to use the new options.
+
+ Added test 1597 to verify the libcurl protocol parser.
+
+ Closes #8992
+
+- digest: simplify a switch() to a simple if
+
+- digest: provide a special bit for "sess" algos
+
+ Also shortened the names and moved them to the .c file since they are
+ private for this source file only. Also made them #defines instead of
+ enum.
+
+ Closes #9079
+
+Jay Satiro (4 Jul 2022)
+- [Thomas Weißschuh brought this change]
+
+ select: do not return fatal error on EINTR from poll()
+
+ The same was done for select() in 5912da25 but poll() was missed.
+
+ Bug: https://bugs.archlinux.org/task/75201
+ Reported-by: Alexandre Bury (gyscos at archlinux)
+
+ Ref: https://github.com/curl/curl/issues/8921
+ Ref: https://github.com/curl/curl/pull/8961
+ Ref: https://github.com/curl/curl/commit/5912da25#r77584294
+
+ Closes https://github.com/curl/curl/pull/9091
+
+- [Kai Pastor brought this change]
+
+ cmake: fix build for mingw cross compile
+
+ - Change normaliz lib name to all lowercase.
+
+ This is from a standing patch in vcpkg:
+ Mingw has libnormaliz.a. For case-sensitive file systems (e.g. cross
+ builds from Linux), the spelling must match exactly.
+
+ Closes https://github.com/curl/curl/pull/9084
+
+- easy_lock: fix build for mingw
+
+ - Define SRWLOCK symbols missing in some mingw environments.
+
+ Closes https://github.com/curl/curl/pull/8997
+
+Daniel Stenberg (2 Jul 2022)
+- tool_progress: avoid division by zero in parallel progress meter
+
+ Reported-by: Brian Carpenter
+ Fixes #9082
+ Closes #9083
+
+- http_aws_sigv4.c: remove two unusued includes
+
+ Closes #9080
+
+- .mailmap: additional edit
+
+ Follow-up to 861e2a8aca6c7 so that Evgeny appears with the same in git
+ logs even when using old email.
+
+- RELEASE-NOTES: synced
+
+ bumped to 7.84.1
+
+- [Evgeny Grin (Karlson2k) brought this change]
+
+ .mailmap: updated
+
+- [Evgeny Grin (Karlson2k) brought this change]
+
+ THANKS: merged two entries for Evgeny Grin
+
+ Also updated THANKS-filter file
+
+ Closes #9076
+
+- [Jilayne Lovejoy brought this change]
+
+ lib/curl_path.c: add ISC to license expression
+
+ THe text of the ISC license is in this file, so the SPDX license
+ expression should be updated
+
+ Closes #9073
+
+- [Sean McArthur brought this change]
+
+ hyper: use wakers for curl pause/resume
+
+ Closes #9070
+
+Viktor Szakats (30 Jun 2022)
+- Makefile.m32: do not set the libcurl.rc debug flag [ci skip]
+
+ Delete `-DDEBUGBUILD=0` windres option. This was likely meant to
+ disable VS_FF_DEBUG in FILEFLAGS, but any assigned value enabled
+ it instead. Delete this unnecessary option and thus sync up with
+ how CMake compiles libcurl.rc by default.
+
+ Reviewed-by: Jay Satiro
+ Closes #9069
+
+Daniel Stenberg (29 Jun 2022)
+- curl.h: CURLE_CONV_FAILED is obsoleted
+
+ The last use was removed in 7.82.0. Updated some docs too to reflect the
+ current error code situation.
+
+ Closes #9067
+
+- curl: output warning when a cookie is dropped due to size
+
+ Dropped from the request, that is.
+
+ Closes #9064
+
+- curl_mime_data.3: polish the wording
+
+ Closes #9063
+
+- configure: check for the stdatomic.h header in configure
+
+ ... and only set HAVE_ATOMIC if that header exists since we use
+ typedefes set in it.
+
+ Reported-by: Ryan Schmidt
+ Fixes #9059
+ Closes #9060
+
+- easy_lock: fix the #ifdef conditional for ia32_pause
+
+ To work better with new and old clang compilers.
+
+ Reported-by: Ryan Schmidt
+ Assisted-by: Joshua Root
+
+ Fixes #9058
+ Closes #9062
+
+- easy_lock: switch to using atomic_int instead of bool
+
+ To work with more compilers without requiring separate libs to
+ link. Like with gcc-12 for RISC-V on Linux.
+
+ Reported-by: Adam Sampson
+ Fixes #9055
+ Closes #9061
+
+- [vvb2060 brought this change]
+
+ ngtcp2: fix incompatible function pointer types
+
+ Closes #9056
+
+- [vvb2060 brought this change]
+
+ easy_lock.h: use __asm__ instead of asm to fix build
+
+ Closes #9056
+
+- [Samuel Henrique brought this change]
+
+ libcurl-security.3: fix typo on macro "SH_"
+
+ During the packaging of the latest curl release for Debian, Lintian
+ warned me about a typo which causes the section name "Secrets in memory"
+ to not be rendered in the manpage due to "SH_" not being recognized as a
+ header.
+
+ Closes #9057
+
+- easy_lock.h: include sched.h if available to fix build
+
+ Patched-by: Harry Sintonen
+
+ Closes #9054
+
Version 7.84.0 (27 Jun 2022)
Daniel Stenberg (27 Jun 2022)
@@ -265,7 +5638,7 @@ Daniel Stenberg (20 Jun 2022)
Closes #9028
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
CI: bump FreeBSD 13.0 to 13.1
@@ -748,7 +6121,7 @@ Daniel Stenberg (7 Jun 2022)
Closes #8910
-- [Evgeny Grin brought this change]
+- [Evgeny Grin (Karlson2k) brought this change]
digest: tolerate missing "realm"
@@ -757,7 +6130,7 @@ Daniel Stenberg (7 Jun 2022)
Closes #8912
-- [Evgeny Grin brought this change]
+- [Evgeny Grin (Karlson2k) brought this change]
digest: added detection of more syntax error in server headers
@@ -766,7 +6139,7 @@ Daniel Stenberg (7 Jun 2022)
Closes #8912
-- [Evgeny Grin brought this change]
+- [Evgeny Grin (Karlson2k) brought this change]
digest: unquote realm and nonce before processing
@@ -1924,7 +7297,7 @@ Daniel Gustafsson (5 May 2022)
Daniel Stenberg (5 May 2022)
- docs/THANKS: remove name duplicate
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
.mailmap: update
@@ -2014,7 +7387,7 @@ Daniel Gustafsson (2 May 2022)
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Daniel Stenberg (2 May 2022)
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
misc: use "autoreconf -fi" instead buildconf
@@ -2022,7 +7395,7 @@ Daniel Stenberg (2 May 2022)
Closes #8777
Daniel Gustafsson (2 May 2022)
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
cirrus: Use pip for Python packages on FreeBSD
@@ -2032,7 +7405,7 @@ Daniel Gustafsson (2 May 2022)
Closes: #8783
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
cirrus: Update to FreeBSD 12.3
@@ -2314,7 +7687,7 @@ Daniel Stenberg (27 Apr 2022)
Bug: https://hackerone.com/reports/1548535
Closes #8742
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
mlc: curl.zuul.vexxhost.dev is reachable again
@@ -3024,7 +8397,7 @@ Marc Hoersken (23 Mar 2022)
Closes #8594
Daniel Stenberg (22 Mar 2022)
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
firefox-db2pem.sh: make the shell script safer
@@ -3072,7 +8445,7 @@ Daniel Stenberg (22 Mar 2022)
Closes #8623
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
ci/event-based.yml: improve impacket install
@@ -3195,7 +8568,7 @@ Daniel Stenberg (22 Mar 2022)
- scripts/copyright.pl: ignore the new mlc_config.json file
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
mlc_config.json: add file to ignore known troublesome URLs
@@ -3205,7 +8578,7 @@ Daniel Stenberg (22 Mar 2022)
Closes #8597
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
winbuild/README.md: fixup dead link
@@ -3273,7 +8646,7 @@ Daniel Stenberg (17 Mar 2022)
Closes #8601
-- [Philip H brought this change]
+- [Philip Heiduck brought this change]
CI: Do not use buildconf. Instead, just use: autoreconf -fi
@@ -3490,3966 +8863,3 @@ Daniel Stenberg (9 Mar 2022)
connect: make Curl_getconnectinfo work with conn cache from share handle
Closes #8524
-
-- [lwthiker brought this change]
-
- openssl: enable CURLOPT_SSL_EC_CURVES with BoringSSL
-
- The CURLOPT_SSL_EC_CURVES option (used by the '--curves' flag) in
- libcurl was ignored when compiling with BoringSSL because
- HAVE_SSL_CTX_SET_EC_CURVES was explicitly disabled if BoringSSL was
- detected. However, this feature is supported in BoringSSL since
- 5fd1807d. This commit enables it, and also reduces the required minimal
- OpenSSL version to 1.0.2 as per OpenSSL's official documentation.
-
- Fixes #8553
- Closes #8556
-
-- [Samuel Henrique brought this change]
-
- json.d: fix typo (overriden -> overridden)
-
- Closes #8557
-
-- wolfssl: fix compiler error without IPv6
-
- Reported-by: Joseph Chen
- Fixes #8550
- Closes #8552
-
-- RELEASE-NOTES: synced
-
- and bump pending version to 7.82.1
-
-- [Paul Howarth brought this change]
-
- runtests: make 'oldlibssh' be before 0.9.4
-
- The 'oldlibssh' feature indicates that the error code returned by libssh
- for a broken known_hosts file should be 67 rather than 60 (test1459).
- This feature was added as part of #8444 with 'oldlibssh' mapping to
- libssh versions prior to 0.9.6, and then refined as part of #8511 to map
- to versions prior to 0.9.5.
-
- In Red Hat Enterprise Linux 8.5 there is a patched version of libssh
- version 0.9.4 (https://git.centos.org/rpms/libssh/blob/c8/f/SOURCES) in
- which test1459 fails because it returns the "new" value rather than the
- "old" one. It's plausible that one of the patches is responsible for
- this rather than the underlying code but I don't think so.
-
- This change therefore drops the 'oldlibssh' version check to map to
- libssh versions older than 0.9.4, which fixes builds on RHEL-8.
-
- Closes #8548
-
-- ipv4/6.d: clarify that they are about using IP addresses
-
- ... they may still *resolve* other families, but not use those
- addresses.
-
- Ref: #8530
- Closes #8543
-
-- [r-a-sattarov brought this change]
-
- curl/system.h: update ifdef condition for MCST-LCC compiler
-
- in mcst-lcc compiler => 1.25 added a new macro definition to determine
- compiler
-
- Closes #8546
-
-Marc Hoersken (6 Mar 2022)
-- CI: install Python package impacket to run SMB test 1451
-
- Install Python package impacket in relevant CI workflows.
-
- Follow up to #7935
- Supersedes #7940
- Closes #8544
-
-Daniel Stenberg (5 Mar 2022)
-- [Michał Antoniak brought this change]
-
- connect: use TCP_KEEPALIVE only if TCP_KEEPIDLE is not defined
-
- Closes #8539
-
-- docs/HYPER.md: updated to reflect current hyper build needs
-
-- GHA: build hyper with nightly rustc
-
- Closes #8545
-
-Version 7.82.0 (5 Mar 2022)
-
-Daniel Stenberg (5 Mar 2022)
-- RELEASE-NOTES: synced
-
- The 7.82.0 release
-
-- THANKS: updates from the 7.82.0 release notes
-
-- misc: update copyright year ranges
-
-Jay Satiro (5 Mar 2022)
-- unit1610: init SSL library before calling SHA256 functions
-
- The SSL library must be initialized (via global initialization) because
- libcurl's SHA256 functions may call SHA256 functions in the SSL library.
-
- Reported-by: Gisle Vanem
-
- Fixes https://github.com/curl/curl/issues/8538
- Closes https://github.com/curl/curl/pull/8540
-
-- examples/curlx: support building with OpenSSL 1.1.0+
-
- - Access members of X509_STORE_CTX in OpenSSL 1.1.0+ by using API
- functions.
-
- The X509_STORE_CTX struct has been opaque since OpenSSL 1.1.0.
-
- Ref: https://curl.se/mail/lib-2022-03/0004.html
-
- Closes https://github.com/curl/curl/pull/8529
-
-- h2h3: fix typo
-
- Bug: https://github.com/curl/curl/issues/8381#issuecomment-1055440241
- Reported-by: Michael Kaufmann
-
-- [Farzin brought this change]
-
- CURLOPT_XFERINFOFUNCTION.3: fix example struct assignment
-
- Closes https://github.com/curl/curl/pull/8519
-
-Daniel Stenberg (26 Feb 2022)
-- azure-pipelines: add a build on Windows with libssh
-
- Closes #8511
-
-- runtests: make 'oldlibssh' be before 0.9.5
-
- Closes #8511
-
-- libssh: fix include files and defines use for Windows builds
-
- Reported-by: 梦终无痕
- Bug: https://curl.se/mail/lib-2022-02/0131.html
- Closes #8511
-
-- RELEASE-NOTES: synced
-
-- [illusory-dream brought this change]
-
- winbuild: add parameter WITH_SSH
-
- For building with libssh
- Closes #8514
-
-- configure: change output for cross-compiled alt-svc support
-
- It said 'no', while it actually is 'yes'
-
- Closes #8512
-
-- gha: add a macOS CI job with libssh
-
- Closes #8513
-
-- TODO: remove "Bring back libssh tests on Travis"
-
- The job was added to Circle CI in d8ddd0e7536
-
-- TODO: remove "better persistency for HTTP/1.0"
-
- Let's not bother.
-
-- TODO: remove "Option to ignore private IP"
-
- ... as curl ignores the IP entirely by default these days.
-
-- TODO: remove "hardcode the "localhost" addresses"
-
- This is implmented since 1a0ebf6632f88
-
-- TODO: 1.24 was a dupe of 1.1
-
-- TODO: remove "Typesafe curl_easy_setopt()"
-
- I don't consider this a serious TODO item
-
-- KNOWN_BUGS: remove "Uploading HTTP/3 files gets interrupted"
-
- This works now
-
-- KNOWN_BUGS: remove "HTTP/3 multipart POST with quiche fails"
-
- It works now
-
-- quiche: remove two leftover debug infof() outputs
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: Reset dynbuf when it is fully drained
-
- Reported-by: vl409 on github
- Fixes #7351
- Closes #8504
-
-- [Stewart Gebbie brought this change]
-
- hostip: avoid unused parameter error in Curl_resolv_check
-
- When built without DNS-over-HTTP and without asynchronous resolvers,
- neither the dns nor the data parameters are used.
-
- That is Curl_resolv_check appears to call
- Curl_resolver_is_resolved(data, dns). But,
- with CURL_DISABLE_DOH without CURLRES_ASYNCH, the call is actually
- elided via a macro definition.
-
- This fix resolves the resultant: "unused parameter 'data'" error.
-
- Closes #8505
-
-- http2: move two infof calls to debug-h2-only
-
- and remove a superflous one
-
- Ref: https://github.com/curl/curl/discussions/8498
- Closes #8502
-
-- [Jean-Philippe Menil brought this change]
-
- quiche: fix upload for bigger content-length
-
- Signed-off-by: Jean-Philippe Menil <jpmenil@gmail.com>
- Closes #8421
-
-Jay Satiro (23 Feb 2022)
-- [Farzin brought this change]
-
- CURLOPT_PROGRESSFUNCTION.3: fix example struct assignment
-
- Closes https://github.com/curl/curl/pull/8500
-
-Daniel Stenberg (22 Feb 2022)
-- [Rob Boeckermann brought this change]
-
- OS400/README: clarify compilation steps
-
- Closes #8494
-
-- [Rob Boeckermann brought this change]
-
- OS400: fix typos in rpg include file
-
- This resolves issues compiling rpg code that includes the curl header
- file.
-
- Closes #8494
-
-- [Michał Antoniak brought this change]
-
- vtls: fix socket check conditions
-
- fix condition to check the second socket during associate and
- disassociate connection
-
- Closes #8493
-
-- libssh2: don't typecast socket to int for libssh2_session_handshake
-
- Since libssh2_socket_t uses SOCKET on windows which can be larger than
- int.
-
- Closes #8492
-
-- RELEASE-NOTES: fix typo and make one desc shorter
-
-- RELEASE-NOTES: synced
-
-- CURLOPT_XFERINFOFUNCTION.3: fix typo in example
-
- Reported-by: coralw on github
- Fixes #8487
- Closes #8488
-
-- README: disable linkchecks for the sponsor links
-
- Closes #8489
-
-Jay Satiro (21 Feb 2022)
-- openssl: check if sessionid flag is enabled before retrieving session
-
- Ideally, Curl_ssl_getsessionid should not be called unless sessionid
- caching is enabled. There is a debug assertion in the function to help
- ensure that. Therefore, the pattern in all vtls is basically:
-
- if(primary.sessionid) {lock(); Curl_ssl_getsessionid(...); unlock();}
-
- There was one instance in openssl.c where sessionid was not checked
- beforehand and this change fixes that.
-
- Prior to this change an assertion would occur in openssl debug builds
- during connection stage if session caching was disabled.
-
- Reported-by: Jim Beveridge
-
- Fixes https://github.com/curl/curl/issues/8472
- Closes https://github.com/curl/curl/pull/8484
-
-- multi: allow user callbacks to call curl_multi_assign
-
- Several years ago a change was made to block user callbacks from calling
- back into the API when not supported (recursive calls). One of the calls
- blocked was curl_multi_assign. Recently the blocking was extended to the
- multi interface API, however curl_multi_assign may need to be called
- from within those user callbacks (eg CURLMOPT_SOCKETFUNCTION).
-
- I can't think of any callback where it would be unsafe to call
- curl_multi_assign so I removed the restriction entirely.
-
- Reported-by: Michael Wallner
-
- Ref: https://github.com/curl/curl/commit/b46cfbc
- Ref: https://github.com/curl/curl/commit/340bb19
-
- Fixes https://github.com/curl/curl/issues/8480
- Closes https://github.com/curl/curl/pull/8483
-
-Daniel Stenberg (21 Feb 2022)
-- [Michał Antoniak brought this change]
-
- ssl: reduce allocated space for ssl backend when FTP is disabled
-
- Add assert() for the backend pointer in many places
-
- Closes #8471
-
-- [Michał Antoniak brought this change]
-
- checkprefix: remove strlen calls
-
- Closes #8481
-
-Jay Satiro (20 Feb 2022)
-- [1337vt brought this change]
-
- curl.h: fix typo
-
- Closes https://github.com/curl/curl/pull/8482
-
-- [Jan Venekamp brought this change]
-
- sectransp: mark a 3DES cipher as weak
-
- - Change TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA strength to weak.
-
- All other 3DES ciphers are already marked as weak.
-
- Closes https://github.com/curl/curl/pull/8479
-
-- [Jan Venekamp brought this change]
-
- bearssl: fix EXC_BAD_ACCESS on incomplete CA cert
-
- - Do not create trust anchor object for a CA certificate until after it
- is processed.
-
- Prior to this change the object was created at state BR_PEM_BEGIN_OBJ
- (certificate processing begin state). An incomplete certificate (for
- example missing a newline at the end) never reaches BR_PEM_END_OBJ
- (certificate processing end state) and therefore the trust anchor data
- was not set in those objects, which caused EXC_BAD_ACCESS.
-
- Ref: https://github.com/curl/curl/pull/8106
-
- Closes https://github.com/curl/curl/pull/8476
-
-- [Jan Venekamp brought this change]
-
- bearssl: fix connect error on expired cert and no verify
-
- - When peer verification is disabled use the x509_decode engine instead
- of the x509_minimal engine to parse and extract the public key from
- the first cert of the chain.
-
- Prior to this change in such a case no key was extracted and that caused
- CURLE_SSL_CONNECT_ERROR. The x509_minimal engine will stop parsing if
- any validity check fails but the x509_decode won't.
-
- Ref: https://github.com/curl/curl/pull/8106
-
- Closes https://github.com/curl/curl/pull/8475
-
-- [Jan Venekamp brought this change]
-
- bearssl: fix session resumption (session id)
-
- Prior to this change br_ssl_client_reset was mistakenly called with
- resume_session param set to 0, which disabled session resumption.
-
- Ref: https://github.com/curl/curl/pull/8106
-
- Closes https://github.com/curl/curl/pull/8474
-
-Daniel Stenberg (18 Feb 2022)
-- [Michał Antoniak brought this change]
-
- openssl: fix build for version < 1.1.0
-
- Closes #8470
-
-- [Joel Depooter brought this change]
-
- schannel: move the algIds array out of schannel.h
-
- This array is only used by the SCHANNEL_CRED struct in the
- schannel_acquire_credential_handle function. It can therefore be kept as
- a local variable. This is a minor update to
- bbb71507b7bab52002f9b1e0880bed6a32834511.
-
- This change also updates the NUM_CIPHERS value to accurately count the
- number of ciphers options listed in schannel.c, which is 47 instead of
- 45. It is unlikely that anyone tries to set all 47 values, but if they
- had tried, the last two would not have been set.
-
- Closes #8469
-
-- [Alejandro R. Sedeño brought this change]
-
- configure.ac: use user-specified gssapi dir when using pkg-config
-
- Using the system pkg-config path in the face of a user-specified
- library path is asking to link the wrong library.
-
- Reported-by: Michael Kaufmann
- Fixes #8289
- Closes #8456
-
-- [Kevin Adler brought this change]
-
- os400: Add link to QADRT devkit to README.OS400
-
- Closes #8455
-
-- [Kevin Adler brought this change]
-
- os400: Add function wrapper for system command
-
- The wrapper will exit if the system command failed instead of blindly
- continuing on.
-
- In addition, only copy docs which exist, since now the copy failure will
- cause the build to stop.
-
- Closes #8455
-
-- [Kevin Adler brought this change]
-
- os400: Default build to target current release
-
- V6R1M0 is not available as a target release since IBM i 7.2. To keep
- from having to keep this up to date in git, default to the current
- release. Users can configure this to whatever release they want to
- actually build for.
-
- Closes #8455
-
-- docs/INTERNALS.md: clean up, refer to the book
-
- The explanatory parts are now in the everything curl book (which can
- also use images etc). This document now refers to that resource and only
- leaves listings of supported versions of libs, tools and operating
- systems. See https://everything.curl.dev/internals
-
- Closes #8467
-
-Marcel Raad (17 Feb 2022)
-- des: fix compile break for OpenSSL without DES
-
- When `USE_OPENSSL` was defined but OpenSSL had no DES support and a
- different crypto library was used for that, `Curl_des_set_odd_parity`
- was called but not defined. This could for example happen on Windows
- and macOS when using OpenSSL v3 with deprecated features disabled.
-
- Use the same condition for the function definition as used at the
- caller side, but leaving out the OpenSSL part to avoid including
- OpenSSL headers.
-
- Closes https://github.com/curl/curl/pull/8459
-
-Daniel Stenberg (17 Feb 2022)
-- RELEASE-NOTES: synced
-
-- docs/DEPRECATE: remove NPN support in August 2022
-
- Closes #8458
-
-- ftp: provide error message for control bytes in path
-
- Closes #8460
-
-- http: fix "unused parameter ‘conn’" warning
-
- Follow-up from 7d600ad1c395
-
- Spotted on appveyor
-
- Closes #8465
-
-Jay Satiro (17 Feb 2022)
-- [Alejandro R. Sedeño brought this change]
-
- sha256: Fix minimum OpenSSL version
-
- - Change the minimum OpenSSL version for using their SHA256
- implementation from 0.9.7 to 0.9.8.
-
- EVP_sha256() does not appear in the OpenSSL source before 0.9.7h, and
- does not get built by default until 0.9.8, so trying to use it for all
- 0.9.7 is wrong, and before 0.9.8 is unreliable.
-
- Closes https://github.com/curl/curl/pull/8464
-
-Daniel Stenberg (16 Feb 2022)
-- KNOWN_BUGS: remove "slow connect to localhost on Windows"
-
- localhost is not resolved anymore since 1a0ebf6632f88
-
-- KNOWN_BUGS: remove "HTTP/3 download is 5x times slower than HTTP/2"
-
- It's not actually a bug. More like room for improvement.
-
-- KNOWN_BUGS: remove "HTTP/3 download with quiche halts after a while"
-
- Follow-up to 96f85a0fef694
-
-- KNOWN_BUGS: remove "pulseUI vpn" as a problem
-
- We haven't heard about this for a long time and rumours have it they
- might have fixed it.
-
-- urldata: remove conn->bits.user_passwd
-
- The authentication status should be told by the transfer and not the
- connection.
-
- Reported-by: John H. Ayad
- Fixes #8449
- Closes #8451
-
-- [Kevin Adler brought this change]
-
- gskit: Convert to using Curl_poll
-
- As mentioned in 32766cb, gskit was the last user of Curl_select which is
- now gone. Convert to using Curl_poll to allow build to work on IBM i.
-
- Closes #8454
-
-- [Kevin Adler brought this change]
-
- gskit: Fix initialization of Curl_ssl_gskit struct
-
- In c30bf22, Curl_ssl_getsock was factored out in to a member of
- struct Curl_ssl but the gskit initialization was not updated to reflect
- this new member.
-
- Closes #8454
-
-- [Kevin Adler brought this change]
-
- gskit: Fix errors from Curl_strerror refactor
-
- 2f0bb864c1 replaced sterror with Curl_strerror, but the strerror buffer
- shadows the set_buffer "buffer" parameter. To keep consistency with the
- other functions that use Curl_strerror, rename the parameter.
-
- In addition, strerror.h is needed for the definition of STRERROR_LEN.
-
- Closes #8454
-
-Marcel Raad (15 Feb 2022)
-- ntlm: remove unused feature defines
-
- They're not used anymore and always supported.
-
- Closes https://github.com/curl/curl/pull/8453
-
-Daniel Stenberg (15 Feb 2022)
-- [Kantanat Wannapaka brought this change]
-
- README.md: fix link and layout
-
- replace <a></a> tags and <img></img> tags
-
- Closes #8448
-
-- KNOWN_BUGS: fix typo "libpsl"
-
-Jay Satiro (14 Feb 2022)
-- h2h3: fix compiler warning due to function prototype mismatch
-
- - Add missing const qualifier in Curl_pseudo_headers declaration.
-
-Daniel Stenberg (14 Feb 2022)
-- [Stefan Eissing brought this change]
-
- urlapi: handle "redirects" smarter
-
- - avoid one malloc when setting a new url via curl_url_set()
- and CURLUPART_URL.
- - extract common pattern into a new static function.
-
- Closes #8450
-
-- cijobs: pick up circleci configure lines better
-
-- circleci: add a job using wolfSSH
-
- Build only, no tests.
-
- Closes #8445
-
-- scripts/ciconfig.pl: show used options not available
-
-- circleci: add a job using libssh
-
- Closes #8444
-
-- runtests: set 'oldlibssh' for libssh versions before 0.9.6
-
- ... and make test 1459 check for the different return code then.
-
- Closes #8444
-
-Jay Satiro (13 Feb 2022)
-- Makefile.am: Generate VS 2022 projects
-
- Follow-up to f13d4d0 which added VS 2022 project support.
-
- Ref: https://github.com/curl/curl/pull/8438
-
-- [Daniel Stenberg brought this change]
-
- projects: remove support for MSVC before VC10 (Visual Studio 2010)
-
- - Remove Visual Studio project files for VC6, VC7, VC7.1, VC8 and VC9.
-
- Those versions are too old to be maintained any longer.
-
- Closes https://github.com/curl/curl/pull/8442
-
-- [Stav Nir brought this change]
-
- projects: add support for Visual Studio 17 (2022)
-
- Closes https://github.com/curl/curl/pull/8438
-
-Daniel Stenberg (13 Feb 2022)
-- RELEASE-NOTES: synced
-
-- connect: follow-up fix the copyright year
-
-- [Michał Antoniak brought this change]
-
- misc: remove unused data when IPv6 is not supported
-
- Closes #8430
-
-- scripts/ciconfig: show CI job config info
-
- Closes #8446
-
-- quiche: handle stream reset
-
- A stream reset now causes a CURLE_PARTIAL_FILE error. I'm not convinced
- this is the right action nor the right error code.
-
- Reported-by: Lucas Pardue
- Fixes #8437
- Closes #8440
-
-- mime: use a define instead of the magic number 24
-
- MIME_BOUNDARY_DASHES is now the number of leading dashes in the
- generated boundary string.
-
- Closes #8441
-
-- [Henrik Holst brought this change]
-
- hostcheck: reduce strlen calls on chained certificates
-
- Closes #8428
-
-- [Patrick Monnerat brought this change]
-
- mime: some more strlen() call removals.
-
- Closes #8423
-
-- scripts/cijobs.pl: detect zuul cmake jobs better
-
-- url: exclude zonefrom_url when no ipv6 is available
-
- Closes #8439
-
-- if2ip: make Curl_ipv6_scope a blank macro when IPv6-disabled
-
- Closes #8439
-
-- [Henrik Holst brought this change]
-
- mprintf: remove strlen calls on empty strings in dprintf_formatf
-
- Turns out that in dprintf_formatf we did a strlen on empty strings, a
- bit strange is how common this actually is, 24 alone when doing a simple
- GET from https://curl.se
-
- Closes #8427
-
-- wolfssl: return CURLE_AGAIN for the SSL_ERROR_NONE case
-
- Closes #8431
-
-- wolfssl: when SSL_read() returns zero, check the error
-
- Returning zero indicates end of connection, so if there's no data read
- but the connection is alive, it needs to return -1 with CURLE_AGAIN.
-
- Closes #8431
-
-- quiche: after leaving h3_recving state, poll again
-
- This could otherwise easily leave libcurl "hanging" after the entire
- transfer is done but without noticing the end-of-transfer signal.
-
- Assisted-by: Lucas Pardue
- Closes #8436
-
-- quiche: when *recv_body() returns data, drain it before polling again
-
- Assisted-by: Lucas Pardue
-
- Closes #8429
-
-- [gaoxingwang on github brought this change]
-
- configure: fix '--enable-code-coverage' typo
-
- Fixes #8425
- Closes #8426
-
-- lib/h2h3: #ifdef on ENABLE_QUIC, not the wrong define
-
- Otherwise the build fails when H3 is enabled but the build doesn't
- include nghttp2.
-
- Closes #8424
-
-- hostcheck: pass in pattern length too, to avoid a strlen call
-
- Removes one strlen() call per SAN name in a cert-check.
-
- Closes #8418
-
-- [Henrik Holst brought this change]
-
- misc: remove strlen for Curl_checkheaders + Curl_checkProxyheaders
-
- Closes #8409
-
-- configure: requires --with-nss-deprecated to build with NSS
-
- Add deprecation plans to docs/DEPRECATE.md
-
- Closes #8395
-
-- mqtt: free 'sendleftovers' in disconnect
-
- Fix a memory-leak
-
- Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43646
- Closes #8415
-
-- [Patrick Monnerat brought this change]
-
- openldap: pass string length arguments to client_write()
-
- This uses the new STRCONST() macro and saves 2 strlen() calls on short
- string constants per LDIF output line.
-
- Closes #8404
-
-- [Henrik Holst brought this change]
-
- misc: reduce strlen() calls with Curl_dyn_add()
-
- Use STRCONST() to switch from Curl_dyn_add() to Curl_dyn_addn() for
- string literals.
-
- Closes #8398
-
-- http2: fix the array copy to nghttp2_nv
-
- Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=44517
- Follow-up to 9f985a11e794
- Closes #8414
-
-- RELEASE-NOTES: synced
-
-- scripts/cijobs.pl: output data about all currect CI jobs
-
- This script parses the config files for all the CI services currently in
- use and output the information in a uniform way. The idea is that the
- output from this script should be possible to massage into informational
- tables or graphs to help us visualize what they are all testing and NOT
- testing.
-
- Closes #8408
-
-- maketgz: return error if 'make dist' fails
-
- To better detect this problem in CI jobs
-
- Reported-by: Marcel Raad
- Bug: https://curl.se/mail/lib-2022-02/0070.html
- Closes #8402
-
-- h2h3: pass correct argument types to infof()
-
- Detected by Coverity. CID 1497993
-
- Closes #8401
-
-- lib/Makefile: remove config-tpf.h from the dist
-
- Follow-up from da15443dddea2bfb. Missed before because the 'distcheck'
- CI job was not working as intended.
-
- Reported-by: Marcel Raad
- Bug: https://curl.se/mail/lib-2022-02/0070.html
- Closes #8403
-
-- configure: remove support for "embedded ares"
-
- In March 2010 (commit 4259d2df7dd) we removed the embedded 'ares'
- directory from the curl source tree but we have since supported
- especially detecting and using that build directory. The time has come
- to remove that kludge and ask users to specify the c-ares dir correctly
- with --enable-ares.
-
- Closes #8397
-
-- [Sebastian Sterk brought this change]
-
- github/workflows/mbedtls: fix indent & remove unnecessary line breaks
-
- Closes #8399
-
-- CI: move the NSS job from zuul to GHA
-
- Closes #8396
-
-- tests/unit/Makefile.am: add NSS_LIBS to build with NSS fine
-
- Closes #8396
-
-Marcel Raad (7 Feb 2022)
-- curl-openssl: fix SRP check for OpenSSL 3.0
-
- When OpenSSL 3.0 is built with `--api=3.0` and `no-deprecated`, the SRP
- functions exist in the library, but are disabled for user code. Check
- if they are actually usable instead of only if they exist. Also, check
- for the functions actually required for TLS-SRP.
-
- TLS-SRP support is still enabled if OpenSSL is configured with just
- `--api=3.0` or with `--api=1.1.1 no-deprecated`.
-
- Closes https://github.com/curl/curl/pull/8394
-
-Daniel Stenberg (7 Feb 2022)
-- [Henrik Holst brought this change]
-
- http: make Curl_compareheader() take string length arguments too
-
- Also add STRCONST, a macro that returns a string literal and it's length
- for functions that take "string,len"
-
- Removes unnecesary calls to strlen().
-
- Closes #8391
-
-- vquic/vquic.h: removed the unused H3 psuedo defines
-
-- ngtcp2: use Curl_pseudo_headers
-
-- quiche: use Curl_pseudo_headers
-
-- http2: use Curl_pseudo_headers
-
-- h2h3: added Curl_pseudo_headers()
-
- For use with both http2 and http3 requests.
-
-- ngtcp2/quiche: make :scheme possible to set
-
-- http2: allow CURLOPT_HTTPHEADER change ":scheme"
-
- The only h2 psuedo header that wasn't previously possible to change by a
- user. This change also makes it impossible to send a HTTP/1 header that
- starts with a colon, which I don't think anyone does anyway.
-
- The other pseudo headers are possible to change indirectly by doing the
- rightly crafted request.
-
- Reported-by: siddharthchhabrap on github
- Fixes #8381
- Closes #8393
-
-- h2/h3: provide and refer to pseudo headers as defines
-
- ... and do sizeof() on the defines to use constants better.
-
- Closes #8389
-
-- [Michał Antoniak brought this change]
-
- smb: passing a socket for writing and reading data instead of FIRSTSOCKET
-
- Closes #8383
-
-- x509asn1: toggle off functions not needed for diff tls backends
-
- ... and clean the header file from private defines/structs (move to C
- file) and unused function prototypes.
-
- Closes #8386
-
-- lib: move hostcheck and x509sn1 sources to vtls/
-
- ... since they are used strictly by TLS code.
-
- Closes #8386
-
-Marcel Raad (4 Feb 2022)
-- version_win32: fix warning for `CURL_WINDOWS_APP`
-
- The build version is not supported by the UWP code.
-
- Closes https://github.com/curl/curl/pull/8385
-
-Daniel Stenberg (4 Feb 2022)
-- tests/disable-scan.pl: properly detect multiple symbols per line
-
- Test 1165 would fail on some systems because it didn't detect
- CURL_DISABLE_* symbols that were used to the right of another one on the
- same line! The script would only detect and extract the first one.
-
- Reported-by: Marcel Raad
- Fixes #8384
- Closes #8388
-
-Jay Satiro (4 Feb 2022)
-- config.d: Clarify _curlrc filename is still valid on Windows
-
- Recent changes added support for filename .curlrc on Windows, and
- when it's not found curl falls back on the original Windows filename
- _curlrc. _curlrc was removed from the doc, however it is still valid.
-
- Closes https://github.com/curl/curl/pull/8382
-
-Daniel Stenberg (4 Feb 2022)
-- lib: remove support for CURL_DOES_CONVERSIONS
-
- TPF was the only user and support for that was dropped.
-
- Closes #8378
-
-- TPF: drop support
-
- There has been no TPF related changes done since September 2010 (commit
- 7e1a45e224e57) and since this is a platform that is relatively different
- than many others (== needs attention), I draw the conclusion that this
- build is broken since a long time.
-
- Closes #8378
-
-- scripts/delta: check the file delta for current branch
-
- ... also polish the output style a little bit
-
-Jay Satiro (3 Feb 2022)
-- [Fabian Keil brought this change]
-
- runtests.pl: tolerate test directories without Makefile.inc
-
- Silences the following warnings when using a Makefile.inc-free
- TESTDIR using the "-o" argument:
-
- readline() on closed filehandle D at ./runtests.pl line 592.
- Use of uninitialized value $disttests in pattern match (m//) at
- ./runtests.pl line 3602.
-
- Closes https://github.com/curl/curl/pull/8379
-
-Daniel Stenberg (3 Feb 2022)
-- [Henrik Holst brought this change]
-
- setopt: do bounds-check before strdup
-
- Curl_setstropt() allocated memory for the string before checking if the
- string was within bounds. The bounds check should be done first.
-
- Closes #8377
-
-- [Michał Antoniak brought this change]
-
- mbedtls: enable use of mbedtls without filesystem functions support
-
- Closes #8376
-
-- [Bernhard Walle brought this change]
-
- configure: support specification of a nghttp2 library path
-
- This enables using --with-nghttp2=<dir> on systems without pkg-config.
-
- Closes #8375
-
-- scripts/release-notes.pl: remove leftover debug output
-
-- RELEASE-NOTES: synced
-
-- scripts/release-notes.pl: fix number extraction for full URLs
-
-- [Leah Neukirchen brought this change]
-
- scripts/completion.pl: improve zsh completion
-
- - Detect all spellings of <file>, <file name> etc as well as <path>.
- - Only complete directories for <dir>.
- - Complete URLs for <URL>.
- - Complete --request and --ftp-method.
-
- Closes #8363
-
-- [Davide Cassioli brought this change]
-
- configure: use correct CFLAGS for threaded resolver with xlC on AIX
-
- Fixes #8276
- Closes #8374
-
-- mailmap: Henrik Holst
-
-Jay Satiro (2 Feb 2022)
-- build: fix ngtcp2 crypto library detection
-
- - Change library link check for ngtcp2_crypto_{gnutls,openssl} to
- to use function ngtcp2_crypto_recv_client_initial_cb instead of
- ngtcp2_crypto_ctx_initial.
-
- The latter function is no longer external since two days ago in
- ngtcp2/ngtcp2@533451f. curl HTTP/3 CI builds have been failing since
- then because they would not link to the ngtcp2 crypto library.
-
- Ref: https://github.com/ngtcp2/ngtcp2/pull/356
-
- Closes https://github.com/curl/curl/pull/8372
-
-- [Henrik Holst brought this change]
-
- urlapi: remove an unnecessary call to strlen
-
- - Use strcpy instead of strlen+memcpy to copy the url path.
-
- Ref: https://curl.se/mail/lib-2022-02/0006.html
-
- Closes https://github.com/curl/curl/pull/8370
-
-Daniel Stenberg (1 Feb 2022)
-- scripts/copyright.pl: fix for handling removed files better
-
-- vxworks: drop support
-
- No changes or fixes in vxworks related code since 2009 leads me to
- believe that this doesn't work anymore.
-
- Closes #8362
-
-- [Henrik Holst brought this change]
-
- base64: remove an unnecessary call to strlen
-
- Closes #8369
-
-- tool_getparam: initial --json support
-
- Adds these test cases:
-
- 383 - simple single command line option
- 384 - reading it from stdin
- 385 - getting two --json options on command line
- 386 - --next works after --json
-
- Closes #8314
-
-- [Bjarni Ingi Gislason brought this change]
-
- curl_getdate.3: remove pointless .PP line
-
- mandoc: WARNING: skipping paragraph macro: PP empty
-
- Reported-by: Samuel Henrique
- Closes #8365
-
-- [Sebastian Sterk brought this change]
-
- multi: grammar fix in comment
-
- After 'must', the verb is used without 'to'. Correct: "must" or "have
- to"
-
- Closes #8368
-
-- openldap: fix compiler warning when built without SSL support
-
- openldap.c:841:52: error: unused parameter ‘data’ [-Werror=unused-parameter]
-
- Closes #8367
-
-- [Samuel Henrique brought this change]
-
- CURLSHOPT_LOCKFUNC.3: fix typo "relased" -> "released"
-
- Found when packaging 7.81.0 for Debian.
-
- Closes #8364
-
-- netware: remove support
-
- There are no current users and no Netware related changes done in the
- code for over 13 years is a clear sign this is abandoned.
-
- Closes #8358
-
-- CI: move two jobs from Zuul to Circle CI
-
- - openssl-no-verbose
- - openssl-no-proxy
-
- Closes #8359
-
-- cirlceci: also run a c-ares job on arm with debug enabled
-
- Closes #8357
-
-- ci: move the OpenSSL + c-ares job from Zuul to Circle CI
-
- Closes #8357
-
-- mailmap: Jan-Piet Mens
-
-- [luminixinc on github brought this change]
-
- multi: remember connection_id before returning connection to pool
-
- Fix a bug that does not require a new CVE as discussed on hackerone.com.
- Previously `connection_id` was accessed after returning connection to
- the shared pool.
-
- Bug: https://hackerone.com/reports/1463013
- Closes #8355
-
-Jay Satiro (31 Jan 2022)
-- write-out.d: Fix num_headers formatting
-
-- [Jan-Piet Mens brought this change]
-
- docs: capitalize the name 'Netscape'
-
- Closes https://github.com/curl/curl/pull/8354
-
-Daniel Stenberg (30 Jan 2022)
-- RELEASE-NOTES: synced
-
-- [Antoine Pietri brought this change]
-
- docs: grammar proofread, typo fixes
-
- (Partially automated) proofread of most of the documentation, leading to
- various typo fixes.
-
- Closes #8353
-
-- urldata: CONN_IS_PROXIED replaces bits.close when proxy can be disabled
-
- To remove run-time checks for such builds.
-
- Closes #8350
-
-- setopt: fix the TLSAUTH #ifdefs for proxy-disabled builds
-
- Closes #8350
-
-- conncache: make conncache_add_bundle return the pointer
-
- Simplifies the logic a little and avoids a ternary operator.
-
- Ref: #8346
- Closes #8349
-
-- mailmap: neutric on github
-
-Jay Satiro (30 Jan 2022)
-- [neutric on github brought this change]
-
- docs/TheArtOfHttpScripting: fix example POST URL
-
- Closes https://github.com/curl/curl/pull/8352
-
-Daniel Stenberg (28 Jan 2022)
-- nss: handshake callback during shutdown has no conn->bundle
-
- The callback gets called because of the call to PR_Recv() done to
- attempt to avoid RST on the TCP connection. The conn->bundle pointer is
- already cleared at this point so avoid dereferencing it.
-
- Reported-by: Eric Musser
- Fixes #8341
- Closes #8342
-
-- [Michał Antoniak brought this change]
-
- mbedtls: remove #include <mbedtls/certs.h>
-
- mbedtls/certs.h file contains only certificates example (all definitions
- is beginning by mbedtls_test_*). None of them is used so we can avoid
- include the file.
-
- Closes #8343
-
-- [Michał Antoniak brought this change]
-
- mbedtls: enable use of mbedtls without CRL support
-
- Closes #8344
-
-- [Bernhard Walle brought this change]
-
- configure: set CURL_LIBRARY_PATH for nghttp2
-
- To execute the test program, we might need the library path so that the
- lib is found at runtime.
-
- Closes #8340
-
-Jay Satiro (28 Jan 2022)
-- schannel: restore debug message in schannel_connect_step2
-
- This is a follow-up to recent commit 2218c3a which removed the debug
- message to avoid an unused variable warning. The message has been
- reworked to avoid the warning.
-
- Ref: https://github.com/curl/curl/pull/8320#issuecomment-1022957904
-
- Closes https://github.com/curl/curl/pull/8336
-
-- test3021: disable all msys2 path transformation
-
- - Disable all MSYS2 path transformation in test3021 and test3022.
-
- Prior to this change path transformation in those tests was disabled
- only for arguments that start with forward slashes. However arguments
- that are in base64 contain forward slashes at any position and caused
- unwanted translations.
-
- == Info: Denied establishing ssh session: mismatch sha256 fingerprint.
- Remote +/EYG2YDzDGm6yiwepEMSuExgRRMoTi8Di1UN3kixZw= is not equal to
- +C:/msys64/EYG2YDzDGm6yiwepEMSuExgRRMoTi8Di1UN3kixZw
-
- In the above example an argument containing a base64 sha256 fingerprint
- was passed to curl after MSYS2 translated +/ into +C:/msys64/, and then
- the fingerprint didn't match what was expected.
-
- Ref: https://www.msys2.org/wiki/Porting/
-
- Fixes https://github.com/curl/curl/issues/8084
- Closes https://github.com/curl/curl/pull/8325
-
-Daniel Stenberg (27 Jan 2022)
-- CI: move scan-build job from Zuul to Azure Pipelines
-
- Closes #8338
-
-Marcel Raad (27 Jan 2022)
-- openssl: fix `ctx_option_t` for OpenSSL v3+
-
- The options have been changed to `uint64_t` in
- https://github.com/openssl/openssl/commit/56bd17830f2d5855b533d923d4e0649d3ed61d11.
-
- Closes https://github.com/curl/curl/pull/8331
-
-Daniel Stenberg (27 Jan 2022)
-- CI: move 'distcheck' job from zuul to azure pipelines
-
- Assisted-by: Kushal Das
-
- Closes #8334
-
-- vtls: pass on the right SNI name
-
- The TLS backends convert the host name to SNI name and need to use that.
- This involves cutting off any trailing dot and lowercasing.
-
- Co-authored-by: Jay Satiro
- Closes #8320
-
-- url: revert the removal of trailing dot from host name
-
- Reverts 5de8d84098db1bd24e (May 2014, shipped in 7.37.0) and the
- follow-up changes done afterward.
-
- Keep the dot in names for everything except the SNI to make curl behave
- more similar to current browsers. This means 'name' and 'name.' send the
- same SNI for different 'Host:' headers.
-
- Updated test 1322 accordingly
-
- Fixes #8290
- Reported-by: Charles Cazabon
- Closes #8320
-
-- [neutric on github brought this change]
-
- docs/TheArtOfHttpScripting: fix capitalization
-
- Closes #8333
-
-- tests/memanalyze.pl: also count and show "total allocations"
-
- This is the total number of bytes allocated, increasing for new
- allocations and never reduced when freed. The existing "Maximum
- allocated" is the high water mark.
-
- Closes #8330
-
-- mailmap: spellfix githuh => github
-
-- RELEASE-NOTES: synced
-
-- hostcheck: fixed to not touch used input strings
-
- Avoids the need to clone the strings before check, thus avoiding
- mallocs, which for cases where there are many SAN names in a cert could
- end up numerous.
-
- Closes #8321
-
-- ngtcp2: adapt to changed end of headers callback proto
-
- Closes #8322
-
-- [Xiaoke Wang brought this change]
-
- openssl: check SSL_get_ex_data to prevent potential NULL dereference
-
- Closes #8268
-
-Jay Satiro (23 Jan 2022)
-- md5: check md5_init_func return value
-
- Prior to this change the md5_init_func (my_md5_init) return value was
- ignored.
-
- Closes https://github.com/curl/curl/pull/8319
-
-- md5: refactor for standard compliance
-
- - Wrap OpenSSL / wolfSSL MD5 functions instead of taking their function
- addresses during static initialization.
-
- Depending on how curl was built the old way may have used a dllimport
- function address during static initialization, which is not standard
- compliant, resulting in Visual Studio warning C4232 (nonstandard
- extension). Instead the function pointers now point to the wrappers
- which call the MD5 functions.
-
- This change only affects OpenSSL and wolfSSL because calls to other SSL
- libraries' md5 functions were already wrapped. Also sha256.c already
- does this for all SSL libraries.
-
- Ref: https://github.com/curl/curl/pull/8298
-
- Closes https://github.com/curl/curl/pull/8318
-
-Daniel Stenberg (21 Jan 2022)
-- [Lucas Pardue brought this change]
-
- docs: update IETF links to use datatracker
-
- The tools.ietf.org domain has been deprecated a while now, with the
- links being redirected to datatracker.ietf.org.
-
- Rather than make people eat that redirect time, this change switches the
- URL to a more canonical source.
-
- Closes #8317
-
-- [Harry Sarson brought this change]
-
- CI: test building wolfssl with --enable-opensslextra
-
- Closes #8315
-
-- [Harry Sarson brought this change]
-
- misc: allow curl to build with wolfssl --enable-opensslextra
-
- put all #include of openssl files behind wolfssl ifdefs so that we can
- use the wolfssl/ prefixed include paths. Without these curl only builds
- when wolfssl is built with enable-all.
-
- Fixes #8292
- Closes #8315
-
-- [Lucas Pardue brought this change]
-
- quiche: change qlog file extension to `.sqlog`
-
- quiche has just switched it's qlog serialization format to JSON-SEQ by
- default . The spec says this SHOULD use `.sqlog` extension.
-
- I believe ngtcp2 also supports JSON-SEQ by default as of
- https://github.com/ngtcp2/ngtcp2/commit/9baf06fc3f352a1d062b6953ae1de22cae30639d
-
- Let's update curl so that tools know what format we are using!
-
- Closes #8316
-
-Jay Satiro (21 Jan 2022)
-- projects: Fix Visual Studio wolfSSL configurations
-
- - Change build-wolfssl.bat to disable SSLv3, enable TLSv1.3, enable
- wolfSSL_DES_ecb_encrypt (needed by NTLM) and enable alt cert chains.
-
- - Disable warning C4214 'bit field types other than int'.
-
- - Add include directory wolfssl\wolfssl.
-
- wolfSSL offers OpenSSL API compatibility that libcurl uses, and some
- recent change in libcurl included an include file for wolfSSL like
- openssl/foo.h, which has a path like wolfssl\wolfssl\openssl\foo.h.
-
- The include directory issue was reported in #8292 but it's currently
- unclear whether this type of change is needed for other build systems.
-
- Bug: https://github.com/curl/curl/issues/8292
- Reported-by: Harry Sarson
-
- Closes https://github.com/curl/curl/pull/8298
-
-Daniel Stenberg (21 Jan 2022)
-- openssl: return error if TLS 1.3 is requested when not supported
-
- Previously curl would just silently ignore it if the necessary defines
- are not present at build-time.
-
- Reported-by: Stefan Eissing
- Fixes #8309
- Closes #8310
-
-- TODO: Passing NOTIFY option to CURLOPT_MAIL_RCPT
-
- Closes #8232
-
-- [Philip H brought this change]
-
- workflows/wolfssl: install impacket
-
- needed Python Package for SMB tests
-
- Closes #8307
-
-- url: make Curl_disconnect return void
-
- 1. The function would only ever return CURLE_OK anyway
- 2. Only one caller actually used the return code
- 3. Most callers did (void)Curl_disconnect()
-
- Closes #8303
-
-- docs: document HTTP/2 not insisting on TLS 1.2
-
- Both for --http2 and CURLOPT_HTTP_VERSION.
-
- Reported-by: jhoyla on github
- Fixes #8235
- Closes #8300
-
-- cmdline-opts/gen.pl: fix option matching to improve references
-
- Previously it could mistakenly match partial names when there are
- options that start with the same prefix, leading to the wrong references
- used.
-
- Closes #8299
-
-- TODO: Less memory massaging with Schannel
-
-- [Patrick Monnerat brought this change]
-
- runtests.pl: disable debuginfod
-
- Valgrind and gdb implement this feature: as this highly slows down tests,
- disable it.
-
- Closes #8291
-
-- RELEASE-NOTES: synced
-
-- CURLMOPT_TIMERFUNCTION/DATA.3: fix the examples
-
- ... to not call libcurl recursively back.
-
- Closes #8286
-
-- multi: set in_callback for multi interface callbacks
-
- This makes most libcurl functions return error if called from within a
- callback using the same multi handle. For example timer or socket
- callbacks calling curl_multi_socket_action.
-
- Reported-by: updatede on github
- Fixes #8282
- Closes #8286
-
-- docs/HISTORY.md: mention alt-svc and HSTS
-
-- misc: remove the final watcom references
-
- Follow-up to bbf8cae44dedc495e6
-
- We removed support for the watcom builds files back in September
- 2020. This removes all remaining watcom references and ifdefs.
-
- Closes #8287
-
-- misc: remove BeOS code and references
-
- There has not been a mention of this OS in any commit since December
- 2004 (58f4af7973e3d2). The OS is also long gone.
-
- Closes #8288
-
-- tool_getparam: DNS options that need c-ares now fail without it
-
- Just silently accepting the options and then not having any effect is
- not good.
-
- Ref: #8283
- Closes #8285
-
-- curl: remove "separators" (when using globbed URLs)
-
- Unless muted (with -s) When doing globbing, curl would output mime-like
- separators between the separate transfers. This is not documented
- anywhere, surprises users and clobbers the output. Gone now.
-
- Updated test 18 and 1235
-
- Reported-by: jonny112 on github
- Bug: https://github.com/curl/curl/discussions/8257
- Closes #8278
-
-Jay Satiro (15 Jan 2022)
-- [Niels Martignène brought this change]
-
- mbedtls: fix CURLOPT_SSLCERT_BLOB (again)
-
- - Increase the buffer length passed to mbedtls_x509_crt_parse to account
- for the null byte appended to the temporary blob.
-
- Follow-up to 867ad1c which uses a null terminated copy of the
- certificate blob, because mbedtls_x509_crt_parse requires PEM data
- to be null terminated.
-
- Ref: https://github.com/curl/curl/commit/867ad1c#r63439893
- Ref: https://github.com/curl/curl/pull/8146
-
- Closes https://github.com/curl/curl/pull/8260
-
-Daniel Stenberg (15 Jan 2022)
-- [Alessandro Ghedini brought this change]
-
- quiche: verify the server cert on connect
-
- Similarly to c148f0f551f9bea0e3d0, make quiche correctly acknowledge
- `CURLOPT_SSL_VERIFYPEER` and `CURLOPT_SSL_VERIFYHOST`.
-
- Fixes #8173
- Closes #8275
-
-- [Ikko Ashimine brought this change]
-
- checksrc: fix typo in comment
-
- enfore -> enforce
-
- Closes #8281
-
-- curl-openssl: remove the OpenSSL headers and library versions check
-
- It is more work to maintain that check than the (any?) benefit it
- brings.
-
- Fixes #8279
- Reported-by: Satadru Pramanik
- Closes #8280
-
-- mqtt: free any leftover when done
-
- Oss-fuzz found an issue when the "sendleftovers" pointer could leak memory.
- Fix this by always freeing it (if still assigned) in the done function.
-
- Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43515
- Closes #8274
-
-- formdata: avoid size_t => long typecast overflows
-
- Typically a problem for platforms with 32 bit long and 64 bit size_t
-
- Reported-by: Fabian Yamaguchi
- Bug: https://hackerone.com/reports/1444539
- Closes #8272
-
-- RELEASE-NOTES: synced
-
- bump next release to become 7.82.0
-
-Marcel Raad (13 Jan 2022)
-- build: enable -Warith-conversion
-
- This makes the behavior consistent between GCC 10 and earlier versions.
-
- Closes https://github.com/curl/curl/pull/8271
-
-- build: fix -Wenum-conversion handling
-
- Don't enable that warning when warnings are disabled.
- Also add it to CMake.
-
- Closes https://github.com/curl/curl/pull/8271
-
-- appveyor: use VS 2017 image for the autotools builds
-
- The newer images don't have all required MSYS2 packages.
-
- Fixes https://github.com/curl/curl/issues/8248
- Closes https://github.com/curl/curl/pull/8265
-
-- appveyor: update images from VS 2019 to 2022
-
- Closes https://github.com/curl/curl/pull/8265
-
-Daniel Stenberg (12 Jan 2022)
-- [Michał Antoniak brought this change]
-
- mbedtls: return CURLcode result instead of a mbedtls error code
-
- ... when a certificate fails to be loaded from a blob
-
- Closes #8266
-
-- curl_multi_socket.3: remove callback and typical usage descriptions
-
- 1. The callback is better described in the option for setting it. Having
- it in a single place reduces the risk that one of them is wrong.
-
- 2. The "typical usage" is wrong since the functions described in this
- man page are both deprecated so they cannot be used in any "typical" way
- anymore.
-
- Closes #8262
-
-- curl-functions.m4: revert DYLD_LIBRARY_PATH tricks in CURL_RUN_IFELSE
-
- Mostly reverts ba0657c343f, but now instead just run the plain macro on
- darwin. The approach as used on other platforms is simply not necessary
- on macOS.
-
- Fixes #8229
- Reported-by: Ryan Schmidt
- Closes #8247
-
-- [Patrick Monnerat brought this change]
-
- openldap: implement SASL authentication
-
- As credentials can be quite different depending on the mechanism used,
- there are no default mechanisms for LDAP and simple bind with a DN is
- then used.
-
- The caller has to provide mechanism(s) using CURLOPT_LOGIN_OPTIONS to
- enable SASL authentication and disable simple bind.
-
- Closes #8152
-
-Jay Satiro (10 Jan 2022)
-- [Cameron Will brought this change]
-
- CURLOPT_RESOLVE.3: change example port to 443
-
- 83cc966 changed documentation from using http to https. However,
- CURLOPT_RESOLVE being set to port 80 in the documentation means that it
- isn't valid for the new URL. Update to 443.
-
- Closes https://github.com/curl/curl/pull/8258
-
-Daniel Stenberg (10 Jan 2022)
-- [Fabian Keil brought this change]
-
- test374: gif data without new line at the end
-
- Closes #8239
-
-- [Fabian Keil brought this change]
-
- runtests.pl: support the nonewline attribute for the data part
-
- Added to FILEFORMAT
-
- Closes #8239
-
-- [Patrick Monnerat brought this change]
-
- curl tool: erase some more sensitive command line arguments
-
- As the ps command may reveal sensitive command line info, obfuscate
- options --tlsuser, --tlspasswd, --proxy-tlsuser, --proxy-tlspassword and
- --oauth2-bearer arguments.
-
- Reported-by: Stephen Boost <s.booth@epcc.ed.ac.uk>
-
- Closes #7964
-
-- mesalink: remove support
-
- Mesalink has ceased development. We can no longer encourage use of it.
- It seems to be continued under the name TabbySSL, but no attempts have
- (yet) been to make curl support it.
-
- Fixes #8188
- Closes #8191
-
-- ldap: return CURLE_URL_MALFORMAT for bad URL
-
- For consistency, use the same return code for URL malformats,
- independently of what scheme that is used. Previously this would return
- CURLE_LDAP_INVALID_URL, but starting now that error cannot be returned.
-
- Closes #8170
-
-- docs/cmdline-opts: add "mutexed" options for more http versions
-
- Update four http version man page sections.
-
- Closes #8254
-
-- [Stephen M. Coakley brought this change]
-
- rustls: add CURLOPT_CAINFO_BLOB support
-
- Add support for `CURLOPT_CAINFO_BLOB` `CURLOPT_PROXY_CAINFO_BLOB` to the
- rustls TLS backend. Multiple certificates in a single PEM string are
- supported just like OpenSSL does with this option.
-
- This is compatible at least with rustls-ffi 0.8+ which is our new
- minimum version anyway.
-
- I was able to build and run this on Windows, pulling trusted certs from
- the system and then add them to rustls by setting
- `CURLOPT_CAINFO_BLOB`. Handy!
-
- Closes #8255
-
-- scripts/copyright.pl: ignore missing files
-
-- RELEASE-NOTES: synced
-
-- data/DISABLED: disable test 313 for wolfssl builds
-
- It was previously disabled only in the CI jobs yaml
-
- Closes #8252
-
-- runtests: make 'wolfssl' a testable feature
-
- Closes #8252
-
-- GHA: install stunnel in the medbtls + wolfssl CI jobs
-
- Closes #8252
-
-- CI: move the rustls CI job to GHA from Zuul
-
- Closes #8251
-
-- DISABLE: disable a dozen tests in the rustls build
-
- Disables tests that don't yet work with the rustls backend.
-
- Fixes #8004
- Closes #8250
-
-- runtests: make 'rustls' a testable feature
-
-- remote-header-name.d: clarify
-
- - it strips off the path from the server provided name
- - it saves in current directory or --output-dir
-
- Ref: https://curl.se/mail/archive-2022-01/0032.html
- Closes #8249
-
-- url: given a user in the URL, find pwd for that user in netrc
-
- Add test 380 and 381 to verify, edited test 133
-
- Reported-by: Manfred Schwarb
- Fixes #8241
- Closes #8243
-
-- [Niels Martignène brought this change]
-
- mbedtls: Fix ssl_init error with mbedTLS 3.1.0+
-
- Since mbedTLS 3.1.0, mbedtls_ssl_setup() fails if the provided
- config struct is not valid.
-
- mbedtls_ssl_config_defaults() needs to be called before the config
- struct is passed to mbedtls_ssl_setup().
-
- Closes #8238
-
-- [Filip Lundgren brought this change]
-
- cmake: fix iOS CMake project generation error
-
- Closes #8244
-
-- ngtcp2: fix declaration of ‘result’ shadows a previous local
-
- Follow-up to 8fbd6feddfa587cfd3
-
- Closes #8245
-
-- openssl.h: avoid including OpenSSL headers here
-
- ... by instead using the struct version of the typedef'ed pointer. To
- fix build errors when both Schannel and OpenSSL are enabled.
-
- Fixes #8240
- Reported-by: Jan Ehrhardt
- Closes #8246
-
-- curl_url_set.3: mention when CURLU_ALLOW_SPACE was added
-
-- tool_findfile: free mem properly
-
- Follow-up to 764e4f066d5
-
- Closes #8242
-
-- tool_findfile: check ~/.config/curlrc too
-
- ... after the initial checks for .curlrc and if XDG_CONFIG_HOME is not
- set, use $HOME and $CURL_HOME to check if ~/.config/curlrc is present.
-
- Add test 436 to verify
-
- Reported-by: Sandro Jaeckel
- Fixes #8208
- Closes #8213
-
-- runtests: allow client/file to specify multiple directories
-
- ... and make sure to mkdir them all
-
-- scripts/copyright.pl: support many provided file names on the cmdline
-
-- [Fabian Keil brought this change]
-
- tests/FILEFORMAT.md: fix typo
-
-- [Fabian Keil brought this change]
-
- Add test373: multiple chunks with binary zeros
-
-- [Fabian Keil brought this change]
-
- Add test372: binary zero in data element
-
-- [Fabian Keil brought this change]
-
- tests/server/getpart.c: properly deal with binary data containing NUL bytes
-
-- [Fabian Keil brought this change]
-
- runtests.pl: properly print the test if it contains binary zeros
-
-- mailmap: Xiaoke Wang
-
-- openssl: copyright year update
-
- Follow-up to 30aea2b1ede
-
-- scripts/copyright.pl: hush unless -v (for verbose) is used
-
-- [Xiaoke Wang brought this change]
-
- openssl: check the return value of BIO_new_mem_buf()
-
- Closes #8233
-
-- examples/multi-app.c: call curl_multi_remove_handle as well
-
- Fixes #8234
- Reported-by: Melroy van den Berg
- Closes #8236
-
-- COPYING: bump copyright year range
-
-- RELEASE-NOTES: synced
-
- and bump curlver after release
-
-- docs: fix mandoc -T lint formatting complaints
-
- Closes #8228
-
-- next.d. remove .fi/.nf as they are handled by gen.pl
-
- Closes #8228
-
-- gen.pl: terminate "example" sections better
-
- If the example (section that is prefixed with spaces) ends the
- description gen.pl would previously miss to output the terminating .fi
-
- Closes #8228
-
-- [Satadru Pramanik brought this change]
-
- curl-functions.m4: fix LIBRARY_PATH adjustment to avoid eval
-
- $$ usage in a m4 file introduces the PID in linux.
- Instead, just duplicate previous working code with a case switch.
-
- Fixes #8229
- Closes #8230
-
-Version 7.81.0 (5 Jan 2022)
-
-Daniel Stenberg (5 Jan 2022)
-- RELEASE-NOTES: synced
-
- curl 7.81.0 release
-
-- THANKS: add names from 7.81.0 release
-
-- curl_multi_init.3: fix the copyright year range
-
-- test719-721: require "proxy" feature present to run
-
- Bug: https://github.com/curl/curl/pull/8223#issuecomment-1005188696
- Reported-by: Marc Hörsken
-
- Closes #8226
-
-- test719: require ipv6 support to run
-
- Follow-up to effd2bd7ba2a5fd244
- Reported-by: Marc Hörsken
- Bug: https://github.com/curl/curl/pull/8217#issuecomment-1004681145
-
- Closes #8223
-
-- test719-721: verify SOCKS details
-
- Using the new verify/socks details
-
-- runtests: add verify/socks check
-
- If used, this data is compared with the data in log/socksd-request.log
- which the socksd server logs.
-
- Added to FILEFORMAT.md
-
-- server/socksd: log atyp + address in a separate log
-
- To allow the test suite to verify that the right data arrived
-
-- socks5: use appropriate ATYP for numerical IP address host names
-
- When not resolving the address locallly (known as socks5h).
-
- Add test 719 and 720 to verify.
-
- Reported-by: Peter Piekarski
- Fixes #8216
- Closes #8217
-
-Jay Satiro (3 Jan 2022)
-- curl_multi_init.3: fix EXAMPLE formatting
-
-Daniel Stenberg (3 Jan 2022)
-- RELEASE-NOTES: synced
-
-- libtest: avoid "assignment within conditional expression"
-
- In lib530, lib540 and lib582
-
- Closes #8218
-
-- ftp: disable warning 4706 in MSVC
-
- Follow-up to 21248e052d
-
- Disabling "assignment within conditional expression" for MSVC needs to
- be done before the function starts, for it to take effect.
-
- Closes #8218
-
-- tool_operate: warn if too many output arguments were found
-
- More output instructions than URLs is likely a user error.
-
- Add test case 371 to verify
-
- Closes #8210
-
-- .github/workflows/mbedtls.yml: bump to mbedtls 3.1.0
-
- Closes #8215
-
-- zuul: remove the mbedtls jobs
-
- Now running as github workflows
-
- Closes #8215
-
-- github/workflows: add mbedtls and mbedtls-clang
-
- Closes #8215
-
-- [Valentin Richter brought this change]
-
- mbedtls: fix private member designations for v3.1.0
-
- "As a last resort, you can access the field foo of a structure bar by
- writing bar.MBEDTLS_PRIVATE(foo). Note that you do so at your own risk,
- since such code is likely to break in a future minor version of Mbed
- TLS." -
- https://github.com/ARMmbed/mbedtls/blob/f2d1199edc5834df4297f247f213e614f7782d1d/docs/3.0-migration-guide.md
-
- That future minor version is v3.1.0. I set the >= to == for the version
- checks because v3.1.0 is a release, and I am not sure when the private
- designation was reverted after v3.0.0.
-
- Closes #8214
-
-- [Valentin Richter brought this change]
-
- cmake: prevent dev warning due to mismatched arg
-
- -- curl version=[7.81.0-DEV]
- CMake Warning (dev) at /usr/share/cmake-3.22.1/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
- The package name passed to `find_package_handle_standard_args` (MBEDTLS)
- does not match the name of the calling package (MbedTLS). This can lead to
- problems in calling code that expects `find_package` result variables
- (e.g., `_FOUND`) to follow a certain pattern.
- Call Stack (most recent call first):
- deps/curl/CMake/FindMbedTLS.cmake:31 (find_package_handle_standard_args)
- deps/curl/CMakeLists.txt:473 (find_package)
- This warning is for project developers. Use -Wno-dev to suppress it.
-
- Closes #8207
-
-- urlapi: if possible, shorten given numerical IPv6 addresses
-
- Extended test 1560 to verify
-
- Closes #8206
-
-- [Michał Antoniak brought this change]
-
- url: reduce ssl backend count for CURL_DISABLE_PROXY builds
-
- Closes #8212
-
-- KNOWN_BUGS: "Trying local ports fails on Windows"
-
- Reported-by: gclinch on github
- Closes #8112
-
-- misc: update copyright year range
-
-- zuul: remove the wolfssl even more
-
- Follow-up to 1914465cf180d32b3d
-
-- examples/multi-single.c: remove WAITMS()
-
- As it isn't used.
-
- Reported-by: Melroy van den Berg
- Fixes #8200
- Closes #8201
-
-- gtls: add gnutls include for the session type
-
- Follow-up to 8fbd6feddfa5 to make it build more universally
-
-- m4/curl-compilers: tell clang -Wno-pointer-bool-conversion
-
- To hush compiler warnings we don't care for: error: address of function
- 'X' will always evaluate to 'true'
-
- Fixes #8197
- Closes #8198
-
-- http_proxy: don't close the socket (too early)
-
- ... and double-check in the OpenSSL shutdown that the socket is actually
- still there before it is used.
-
- Fixes #8193
- Closes #8195
-
- Reported-by: Leszek Kubik
-
-- ngtcp2: verify the server certificate for the gnutls case
-
- Closes #8178
-
-- ngtcp2: verify the server cert on connect (quictls)
-
- Make ngtcp2+quictls correctly acknowledge `CURLOPT_SSL_VERIFYPEER` and
- `CURLOPT_SSL_VERIFYHOST`.
-
- The name check now uses a function from lib/vtls/openssl.c which will
- need attention for when TLS is not done by OpenSSL or is disabled while
- QUIC is enabled.
-
- Possibly the servercert() function in openssl.c should be adjusted to be
- able to use for both regular TLS and QUIC.
-
- Ref: #8173
- Closes #8178
-
-- zuul: remove the wolfssl build
-
-- github workflow: add wolfssl
-
- Closes #8196
-
-- [Nicolas Sterchele brought this change]
-
- zuul: fix quiche build pointing to wrong Cargo
-
- Fixes #8184
- Closes #8189
-
-- checksrc: detect more kinds of NULL comparisons we avoid
-
- Co-authored-by: Jay Satiro
- Closes #8180
-
-- RELEASE-NOTES: synced
-
-- mesalink: remove the BACKEND define kludge
-
- Closes #8183
-
-- schannel: remove the BACKEND define kludge
-
- Closes #8182
-
-- gtls: check return code for gnutls_alpn_set_protocols
-
- Closes #8181
-
-- [Stefan Huber brought this change]
-
- README: label the link to the support document
-
- Closes #8185
-
-- docs/HTTP3: describe how to setup a h3 reverse-proxy for testing
-
- Assisted-by: Matt Holt
-
- Closes #8177
-
-- libcurl-multi.3: "SOCKS proxy handshakes" are not blocking
-
- Since 4a4b63daaa0
-
-- [Vladimir Panteleev brought this change]
-
- tests: Add test for CURLOPT_HTTP200ALIASES
-
-- [Vladimir Panteleev brought this change]
-
- http: Fix CURLOPT_HTTP200ALIASES
-
- The httpcode < 100 check was also triggered when none of the fields were
- parsed, thus making the if(!nc) block unreachable.
-
- Closes #8171
-
-- RELEASE-NOTES: synced
-
-- language: "email"
-
- Missed three occurrences.
-
- Follow-up to 7a92f86
-
-- nss:set_cipher don't clobber the cipher list
-
- The string is set by the user and needs to remain intact for proper
- connection reuse etc.
-
- Reported-by: Eric Musser
- Fixes #8160
- Closes #8161
-
-- misc: s/e-mail/email
-
- Consistency is king. Following the lead in everything curl.
-
- Closes #8159
-
-- [Tobias Nießen brought this change]
-
- docs: fix typo in OpenSSL 3 build instructions
-
- Closes #8162
-
-- linkcheck.yml: add CI job that checks markdown links
-
- Closes #8158
-
-- RELEASE-PROCEDURE.md: remove ICAL link and old release dates
-
-- BINDINGS.md: "markdown-link-check-disable"
-
- It feels a bit unfortunate to litter an ugly tag for this functionality,
- but if we get link scans of all markdown files, this might be worth the
- price.
-
-- docs: fix dead links, remove ECH.md
-
-Jay Satiro (16 Dec 2021)
-- openssl: define HAVE_OPENSSL_VERSION for OpenSSL 1.1.0+
-
- Prior to this change OpenSSL_version was only detected in configure
- builds. For other builds the old version parsing code was used which
- would result in incorrect versioning for OpenSSL 3:
-
- Before:
-
- curl 7.80.0 (i386-pc-win32) libcurl/7.80.0 OpenSSL/3.0.0a zlib/1.2.11
- WinIDN libssh2/1.9.0
-
- After:
-
- curl 7.80.0 (i386-pc-win32) libcurl/7.80.0 OpenSSL/3.0.1 zlib/1.2.11
- WinIDN libssh2/1.9.0
-
- Reported-by: lllaffer@users.noreply.github.com
-
- Fixes https://github.com/curl/curl/issues/8154
- Closes https://github.com/curl/curl/pull/8155
-
-Daniel Stenberg (16 Dec 2021)
-- [James Fuller brought this change]
-
- docs: add known bugs list to HTTP3.md
-
- Closes #8156
-
-Dan Fandrich (15 Dec 2021)
-- BINDINGS: add one from Everything curl and update a link
-
-- libcurl-security.3: mention address and URL mitigations
-
- The new CURLOPT_PREREQFUNCTION callback is another way to sanitize
- addresses.
- Using the curl_url API is a way to mitigate against attacks relying on
- URL parsing differences.
-
-Daniel Stenberg (15 Dec 2021)
-- RELEASE-NOTES: synced
-
-- x509asn1: return early on errors
-
- Overhaul to make sure functions that detect errors bail out early with
- error rather than trying to continue and risk hiding the problem.
-
- Closes #8147
-
-- [Patrick Monnerat brought this change]
-
- openldap: several minor improvements
-
- - Early check proper LDAP URL syntax. Reject URLs with a userinfo part.
- - Use dynamic memory for ldap_init_fd() URL rather than a
- stack-allocated buffer.
- - Never chase referrals: supporting it would require additional parallel
- connections and alternate authentication credentials.
- - Do not wait 1 microsecond while polling/reading query response data.
- - Store last received server code for retrieval with CURLINFO_RESPONSE_CODE.
-
- Closes #8140
-
-- [Michał Antoniak brought this change]
-
- misc: remove unused doh flags when CURL_DISABLE_DOH is defined
-
- Closes #8148
-
-- mbedtls: fix CURLOPT_SSLCERT_BLOB
-
- The memory passed to mbedTLS for this needs to be null terminated.
-
- Reported-by: Florian Van Heghe
- Closes #8146
-
-- asyn-ares: ares_getaddrinfo needs no happy eyeballs timer
-
- Closes #8142
-
-- mailmap: add Yongkang Huang
-
- From #8141
-
-- [Yongkang Huang brought this change]
-
- check ssl_config when re-use proxy connection
-
-- mbedtls: do a separate malloc for ca_info_blob
-
- Since the mbedTLS API requires the data to the null terminated.
-
- Follow-up to 456c53730d21b1fad0c7f72c1817
-
- Fixes #8139
- Closes #8145
-
-Marc Hoersken (14 Dec 2021)
-- CI: build examples for additional code verification
-
- Some CIs already build them, let's do it on more of them.
-
- Reviewed-by: Daniel Stenberg
-
- Follow up to #7690 and 77311f420a541a0de5b3014e0e40ff8b4205d4af
- Replaces #7591
- Closes #7922
-
-- docs/examples: workaround broken -Wno-pedantic-ms-format
-
- Avoid CURL_FORMAT_CURL_OFF_T by using unsigned long instead.
- Improve size_t to long conversion in imap-append.c example.
-
- Ref: https://github.com/curl/curl/issues/6079
- Ref: https://github.com/curl/curl/pull/6082
- Assisted-by: Jay Satiro
- Reviewed-by: Daniel Stenberg
-
- Preparation of #7922
-
-- tests/data/test302[12]: fix MSYS2 path conversion of hostpubsha256
-
- Ref: https://www.msys2.org/wiki/Porting/#filesystem-namespaces
-
- Reviewed-by: Marcel Raad
- Reviewed-by: Jay Satiro
-
- Fixes #8084
- Closes #8138
-
-Daniel Stenberg (13 Dec 2021)
-- [Patrick Monnerat brought this change]
-
- openldap: simplify ldif generation code
-
- and take care of zero-length values, avoiding conversion to base64
- and/or trailing spaces.
-
- Closes #8136
-
-- example/progressfunc: remove code for old libcurls
-
- 7.61.0 is over three years old now, remove all #ifdefs for handling
- ancient libcurl versions so that the example gets easier to read and
- understand
-
- Closes #8137
-
-- [Xiaoke Wang brought this change]
-
- sha256/md5: return errors when init fails
-
- Closes #8133
-
-- TODO: 13.3 Defeat TLS fingerprinting
-
- Closes #8119
-
-- RELEASE-NOTES: synced
-
-- [Patrick Monnerat brought this change]
-
- openldap: process search query response messages one by one
-
- Upon receiving large result sets, this reduces memory consumption and
- allows starting to output results while the transfer is still in
- progress.
-
- Closes #8101
-
-- hash: lazy-alloc the table in Curl_hash_add()
-
- This makes Curl_hash_init() infallible which saves error paths.
-
- Closes #8132
-
-- multi: cleanup the socket hash when destroying it
-
- Since each socket hash entry may themselves have a hash table in them,
- the destroying of the socket hash needs to make sure all the subhashes
- are also correctly destroyed to avoid leaking memory.
-
- Fixes #8129
- Closes #8131
-
-- test1156: fixup the stdout check for Windows
-
- It is not text mode.
-
- Follow-up to 6f73e68d182
-
- Closes #8134
-
-- test1528: enable for hyper
-
- Closes #8128
-
-- test1527: enable for hyper
-
- Closes #8128
-
-- test1526: enable for hyper
-
- Closes #8128
-
-- test1525: slightly tweaked for hyper
-
- Closes #8128
-
-- test1156: enable for hyper
-
- Minor reorg of the lib1156 code and it works fine for hyper.
-
- Closes #8127
-
-- test661: enable for hyper
-
- Closes #8126
-
-- docs: fix proselint nits
-
- - remove a lot of exclamation marks
- - use consistent spaces (1, not 2)
- - use better words at some places
-
- Closes #8123
-
-- [RekGRpth brought this change]
-
- BINDINGS.md: add cURL client for PostgreSQL
-
- Closes #8125
-
-- [RekGRpth brought this change]
-
- CURLSHOPT_USERDATA.3: fix copy-paste mistake
-
- Closes #8124
-
-- docs: fix minor nroff format nits
-
- Repairs test 1140
-
- Follow-up to 436cdf82041
-
-- docs/URL-SYNTAX.md: space is not fine in a given URL
-
-- curl_multi_perform/socket_action.3: clarify what errors mean
-
- An error returned from one of these funtions mean that ALL still ongoing
- transfers are to be considered failed.
-
- Ref: #8114
- Closes #8120
-
-- libcurl-errors.3: add CURLM_ABORTED_BY_CALLBACK
-
- Follow-up to #8089 (2b3dd01)
-
- Closes #8116
-
-- hash: add asserts to help detect bad usage
-
- For example trying to add entries after the hash has been "cleaned up"
-
- Closes #8115
-
-- lib530: abort on curl_multi errors
-
- This makes torture tests run more proper.
-
- Also add an assert to trap situations where it would end up with no
- sockets to wait for.
-
- Closes #8121
-
-- FAQ: we never pronounced it "see URL", we say "kurl"
-
-- RELEASE-NOTES: synced
-
-- CURLOPT_RESOLVE.3: minor polish
-
- Minor rephrasing for some explanations.
-
- Put the format strings in stand-alone lines with .nf/.fi to be easier to spot.
-
- Move "added in" to AVAILABILITY
-
- Closed #8110
-
-- test1556: adjust for hyper
-
- Closes #8105
-
-- test1554: adjust for hyper
-
- Closes #8104
-
-- retry-all-errors.d: make the example complete
-
- ... as it needs --retry too to work
-
-- TODO: 5.7 Require HTTP version X or higher
-
- Closes #7980
-
-- CURLOPT_STDERR.3: does not work with libcurl as a win32 DLL
-
- This is the exact same limitation already documented for
- CURLOPT_WRITEDATA but should be clarified here. It also has a different
- work-around.
-
- Reported-by: Stephane Pellegrino
- Bug: https://github.com/curl/curl/issues/8102
- Closes #8103
-
-- multi: handle errors returned from socket/timer callbacks
-
- The callbacks were partially documented to support this. Now the
- behavior is documented and returning error from either of these
- callbacks will effectively kill all currently ongoing transfers.
-
- Added test 530 to verify
-
- Reported-by: Marcelo Juchem
- Fixes #8083
- Closes #8089
-
-- http2:set_transfer_url() return early on OOM
-
- If curl_url() returns NULL this should return early to avoid mistakes -
- even if right now the subsequent function invokes are all OK.
-
- Coverity (wrongly) pointed out this as a NULL deref.
-
- Closes #8100
-
-- tool_parsecfg: use correct free() call to free memory
-
- Detected by Coverity. CID 1494642.
- Follow-up from 2be1aa619bca
-
- Closes #8099
-
-- tool_operate: fix potential memory-leak
-
- A 'CURLU *' would leak if url_proto() is called with no URL.
-
- Detected by Coverity. CID 1494643.
- Follow-up to 18270893abdb19
- Closes #8098
-
-- [Patrick Monnerat brought this change]
-
- openldap: implement STARTTLS
-
- As this introduces use of CURLOPT_USE_SSL option for LDAP, also check
- this option in ldap.c as it is not supported by this backend.
-
- Closes #8065
-
-- [Jun Tseng brought this change]
-
- curl_easy_unescape.3: call curl_easy_cleanup in example
-
- Closes #8097
-
-- [Jun Tseng brought this change]
-
- curl_easy_escape.3: call curl_easy_cleanup in example
-
- Closes #8097
-
-- tool_listhelp: sync
-
- Follow-up to 172068b76f
-
-- [Damien Walsh brought this change]
-
- request.d: refer to 'method' rather than 'command'
-
- Closes #8094
-
-- RELEASE-NOTES: synced
-
-- writeout: fix %{http_version} for HTTP/3
-
- Output "3" properly when HTTP/3 was used.
-
- Reported-by: Bernat Mut
- Fixes #8072
- Closes #8092
-
-- urlapi: accept port number zero
-
- This is a regression since 7.62.0 (fb30ac5a2d).
-
- Updated test 1560 accordingly
-
- Reported-by: Brad Fitzpatrick
- Fixes #8090
- Closes #8091
-
-- [Mark Dodgson brought this change]
-
- lift: ignore is a deprecated config option, use ignoreRules
-
- Closes #8082
-
-- [Alessandro Ghedini brought this change]
-
- HTTP3: update quiche build instructions
-
- The repo repo was re-organized a bit, so the build instructions need to
- be updated.
-
- Closes #8076
-
-- CURLMOPT_TIMERFUNCTION.3: call it expire time, not interval
-
- Since we say it is a non-repating timer
-
-- [Florian Van Heghe brought this change]
-
- mbedTLS: include NULL byte in blob data length for CURLOPT_CAINFO_BLOB
-
- Fixes #8079
- Closes #8081
-
-Jay Satiro (2 Dec 2021)
-- [Wyatt O'Day brought this change]
-
- version_win32: Check build number and platform id
-
- Prior to this change the build number was not checked during version
- comparison, and the platform id was supposed to be checked but wasn't.
-
- Checking the build number is required for enabling "evergreen"
- Windows 10/11 features (like TLS 1.3).
-
- Ref: https://github.com/curl/curl/pull/7784
-
- Closes https://github.com/curl/curl/pull/7824
- Closes https://github.com/curl/curl/pull/7867
-
-- libssh2: fix error message for sha256 mismatch
-
- - On mismatch error show sha256 fingerprint in base64 format.
-
- Prior to this change the fingerprint was mistakenly printed in binary.
-
-Daniel Stenberg (1 Dec 2021)
-- [Xiaoke Wang brought this change]
-
- openssl: check the return value of BIO_new()
-
- Closes #8078
-
-Dan Fandrich (30 Nov 2021)
-- docs: Update the Reducing Size section
-
- Add many more options that can reduce the size of the binary that were
- added since the last update. Update the sample minimal binary size for
- version 7.80.0.
-
-- tests: Add some missing keywords to tests
-
- These are needed to skip some tests when configure options have disabled
- certain features.
-
-Daniel Stenberg (30 Nov 2021)
-- [Florian Van Heghe brought this change]
-
- mbedTLS: add support for CURLOPT_CAINFO_BLOB
-
- Closes #8071
-
-- [Glenn Strauss brought this change]
-
- digest: compute user:realm:pass digest w/o userhash
-
- https://datatracker.ietf.org/doc/html/rfc7616#section-3.4.4
- ... the client MUST calculate a hash of the username after
- any other hash calculation ...
-
- Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
- Closes #8066
-
-- config.d: update documentation to match the path search
-
- Assisted-by: Jay Satiro
-
-- tool_findfile: search for a file in the homedir
-
- The homedir() function is now renamed into findfile() and iterates over
- all the environment variables trying to access the file in question
- until it finds it. Last resort is then getpwuid() if
- available. Previously it would first try to find a home directory and if
- that was set, insist on checking only that directory for the file. This
- now returns the full file name it finds.
-
- The Windows specific checks are now done differently too and in this
- order:
-
- 1 - %USERPROFILE%
- 2 - %APPDATA%
- 3 - %USERPROFILE%\\Application Data
-
- The windows order is modified to match how the Windows 10 ssh tool works
- when it searches for .ssh/known_hosts.
-
- Reported-by: jeffrson on github
- Co-authored-by: Jay Satiro
- Fixes #8033
- Closes #8035
-
-- docs: consistent manpage SYNOPSIS
-
- Make all libcurl related options use .nf (no fill) for the SYNOPSIS
- section - for consistent look. roffit then renders that section using
- <pre> (monospace font) in html for the website.
-
- Extended manpage-syntax (test 1173) with a basic check for it.
-
- Closes #8062
-
-- RELEASE-NOTES: synced
-
-- [Patrick Monnerat brought this change]
-
- openldap: handle connect phase with a state machine
-
- Closes #8054
-
-- docs: address proselint nits
-
- - avoid exclamation marks
- - use consistent number of spaces after periods: one
- - avoid clichés
- - avoid using 'very'
-
- Closes #8060
-
-- [Bruno Baguette brought this change]
-
- FAQ: typo fix : "yout" ➤ "your"
-
- Closes #8059
-
-- [Bruno Baguette brought this change]
-
- docs/INSTALL.md: typo fix : added missing "get" verb
-
- Closes #8058
-
-- insecure.d: detail its use for SFTP and SCP as well
-
- Closes #8056
-
-Viktor Szakats (25 Nov 2021)
-- Makefile.m32: rename -winssl option to -schannel and tidy up
-
- - accept `-schannel` as an alternative to `CFG` option `-winssl`
- (latter still accepted, but deprecated)
- - rename internal variable `WINSSL` to `SCHANNEL`
- - make the `CFG` option evaluation shorter, without repeating the option
- name
-
- Reviewed-by: Marcel Raad
- Reviewed-by: Daniel Stenberg
- Closes #8053
-
-Daniel Stenberg (25 Nov 2021)
-- KNOWN_BUGS: 5.6 make distclean loops forever
-
- Reported-by: David Bohman
- Closes #7716
-
-- KNOWN_BUGS: add one, remove one
-
- - 5.10 SMB tests fail with Python 2
-
- Just use python 3.
-
- + 5.10 curl hangs on SMB upload over stdin
-
- Closes #7896
-
-- urlapi: provide more detailed return codes
-
- Previously, the return code CURLUE_MALFORMED_INPUT was used for almost
- 30 different URL format violations. This made it hard for users to
- understand why a particular URL was not acceptable. Since the API cannot
- point out a specific position within the URL for the problem, this now
- instead introduces a number of additional and more fine-grained error
- codes to allow the API to return more exactly in what "part" or section
- of the URL a problem was detected.
-
- Also bug-fixes curl_url_get() with CURLUPART_ZONEID, which previously
- returned CURLUE_OK even if no zoneid existed.
-
- Test cases in 1560 have been adjusted and extended. Tests 1538 and 1559
- have been updated.
-
- Updated libcurl-errors.3 and curl_url_strerror() accordingly.
-
- Closes #8049
-
-- urlapi: make Curl_is_absolute_url always use MAX_SCHEME_LEN
-
- Instad of having all callers pass in the maximum length, always use
- it. The passed in length is instead used only as the length of the
- target buffer for to storing the scheme name in, if used.
-
- Added the scheme max length restriction to the curl_url_set.3 man page.
-
- Follow-up to 45bcb2eaa78c79
-
- Closes #8047
-
-- [Jay Satiro brought this change]
-
- cmake: warn on use of the now deprecated symbols
-
- Follow-up to 9108da2c26d
-
- Closes #8052
-
-- [Kevin Burke brought this change]
-
- tests/CI.md: add more information on CI environments
-
- Fixes #8012
- Closes #8022
-
-- cmake: private identifiers use CURL_ instead of CMAKE_ prefix
-
- Since the 'CMAKE_' prefix is reserved for cmake's own private use.
- Ref: https://cmake.org/cmake/help/latest/manual/cmake-variables.7.html
-
- Reported-by: Boris Rasin
- Fixes #7988
- Closes #8044
-
-- urlapi: reject short file URLs
-
- file URLs that are 6 bytes or shorter are not complete. Return
- CURLUE_MALFORMED_INPUT for those. Extended test 1560 to verify.
-
- Triggered by #8041
- Closes #8042
-
-- curl: improve error message for --head with -J
-
- ... it now focuses on the "output of headers" combined with the
- --remote-header-name option, as that is actually the problem. Both
- --head and --include can output headers.
-
- Reported-by: nimaje on github
- Fixes #7987
- Closes #8045
-
-- RELEASE-NOTES: synced
-
-- [Stefan Eissing brought this change]
-
- urlapi: cleanup scheme parsing
-
- Makea Curl_is_absolute_url() always leave a defined 'buf' and avoids
- copying on urls that do not start with a scheme.
-
- Closes #8043
-
-- tool_operate: only set SSH related libcurl options for SSH URLs
-
- For example, this avoids trying to find and set the known_hosts file (or
- warn for its absence) if SFTP or SCP are not used.
-
- Closes #8040
-
-- [Jacob Hoffman-Andrews brought this change]
-
- rustls: remove comment about checking handshaking
-
- The comment is incorrect in two ways:
- - It says the check needs to be last, but the check is actually first.
- - is_handshaking actually starts out true.
-
- Closes #8038
-
-Marcel Raad (20 Nov 2021)
-- openssl: use non-deprecated API to read key parameters
-
- With OpenSSL 3.0, the parameters are read directly from the `EVP_PKEY`
- using `EVP_PKEY_get_bn_param`.
-
- Closes https://github.com/curl/curl/pull/7893
-
-- openssl: reduce code duplication
-
- `BN_print`'s `BIGNUM` parameter has been `const` since OpenSSL 0.9.4.
-
- Closes https://github.com/curl/curl/pull/7893
-
-- openssl: remove `RSA_METHOD_FLAG_NO_CHECK` handling if unavailable
-
- The flag has been deprecated without replacement in OpenSSL 3.0.
-
- Closes https://github.com/curl/curl/pull/7893
-
-- openssl: remove usage of deprecated `SSL_get_peer_certificate`
-
- The function name was changed to `SSL_get1_peer_certificate` in OpenSSL
- 3.0.
-
- Closes https://github.com/curl/curl/pull/7893
-
-Daniel Stenberg (19 Nov 2021)
-- page-footer: fix typo
-
- Closes #8036
-
-- http: enable haproxy support for hyper backend
-
- This is done by having native code do the haproxy header output before
- hyper issues its request. The little downside with this approach is that
- we need the entire Curl_buffer_send() function built, which is otherwise
- not used for hyper builds.
-
- If hyper ends up getting native support for the haproxy protocols we can
- backpedal on this.
-
- Enables test 1455 and 1456
-
- Closes #8034
-
-- [Bernhard Walle brought this change]
-
- configure: fix runtime-lib detection on macOS
-
- With a non-standard installation of openssl we get this error:
-
- checking run-time libs availability... failed
- configure: error: one or more libs available at link-time are not available run-time. Libs used at link-time: -lnghttp2 -lssl -lcrypto -lssl -lcrypto -lz
-
- There's already code to set LD_LIBRARY_PATH on Linux, so set
- DYLD_LIBRARY_PATH equivalent on macOS.
-
- Closes #8028
-
-- [Don J Olmstead brought this change]
-
- cmake: don't set _USRDLL on a static Windows build
-
- Closes #8030
-
-- page-footer: document more environment variables
-
- ... that curl might use.
-
- Closes #8027
-
-- netrc.d: edit the .netrc example to look nicer
-
- Works nicely thanks to d1828b470f43d
-
- Closes #8025
-
-- tftp: mark protocol as not possible to do over CONNECT
-
- ... and make connect_init() refusing trying to tunnel protocols marked
- as not working. Avoids a double-free.
-
- Reported-by: Even Rouault
- Fixes #8018
- Closes #8020
-
-- docs/cmdline-opts: do not say "protocols: all"
-
- Remove the lines saying "protocols: all". It makes the output in the
- manpage look funny, and the expectation is probably by default that if
- not anything is mentioned about protocols the option apply to them all.
-
- Closes #8021
-
-- curl.1: require "see also" for every documented option
-
- gen.pl now generates a warning if the "See Also" field is not filled in for a
- command line option
-
- All command line options now provide one or more related options. 167
- "See alsos" added!
-
- Closes #8019
-
-- insecure.d: expand and clarify
-
- Closes #8017
-
-- gen.pl: improve example output format
-
- Treat consecutive lines that start with a space to be "examples". They
- are output enclosed by .nf and .fi
-
- Updated form.d to use this new fanciness
-
- Closes #8016
-
-- Revert "form-escape.d: double the back-slashes for proper man page output"
-
- This reverts commit a2d8eac04a4eb1d5a98cf24b4e5cec5cec565d27.
-
- silly me, it was intended to be one backslash!
-
-- form-escape.d: double the back-slashes for proper man page output
-
-- page-footer: add a mention of how to report bugs to the man page
-
-- RELEASE-NOTES: synced
-
- and bump to 7.81.0-DEV
-
-- [Patrick Monnerat brought this change]
-
- mime: use percent-escaping for multipart form field and file names
-
- Until now, form field and file names where escaped using the
- backslash-escaping algorithm defined for multipart mails. This commit
- replaces this with the percent-escaping method for URLs.
-
- As this may introduce incompatibilities with server-side applications, a
- new libcurl option CURLOPT_MIME_OPTIONS with bitmask
- CURLMIMEOPT_FORMESCAPE is introduced to revert to legacy use of
- backslash-escaping. This is controlled by new cli tool option
- --form-escape.
-
- New tests and documentation are provided for this feature.
-
- Reported by: Ryan Sleevi
- Fixes #7789
- Closes #7805
-
-- [Kevin Burke brought this change]
-
- zuul.d: update rustls-ffi to version 0.8.2
-
- This version fixes errors with ALPN negotiation in rustls, which is
- necessary for HTTP/2 support. For more information see the rustls-ffi
- changelog.
-
- Closes #8013
-
-- configure: better diagnostics if hyper is built wrong
-
- If hyper is indeed present in the specified directory but couldn't be
- used to find the correct symbol, then offer a different error message to
- better help the user understand the issue.
-
- Suggested-by: Jacob Hoffman-Andrews
- Fixes #8001
- Closes #8005
-
-- test1939: require proxy support to run
-
- Follow-up to f0b7099a10d1a
-
- Closes #8011
-
-- test302[12]: run only with the libssh2 backend
-
- ... as the others don't support --hostpubsha256
-
- Reported-by: Paul Howarth
- Fixes #8009
- Closes #8010
-
-- runtests: make the SSH library a testable feature
-
- libssh2, libssh and wolfssh
-
-- [Jacob Hoffman-Andrews brought this change]
-
- rustls: read of zero bytes might be okay
-
- When we're reading out plaintext from rustls' internal buffers, we might
- get a read of zero bytes (meaning a clean TCP close, including
- close_notify). However, we shouldn't return immediately when that
- happens, since we may have already copied out some plaintext bytes.
- Break out of the loop when we get a read of zero bytes, and figure out
- which path we're dealing with.
-
- Acked-by: Kevin Burke
-
- Closes #8003
-
-- [Jacob Hoffman-Andrews brought this change]
-
- rustls: remove incorrect EOF check
-
- The update to rustls-ffi 0.8.0 changed handling of EOF and close_notify.
- From the CHANGELOG:
-
- > Handling of unclean close and the close_notify TLS alert. Mirroring
- > upstream changes, a rustls_connection now tracks TCP closed state like
- > so: rustls_connection_read_tls considers a 0-length read from its
- > callback to mean "TCP stream was closed by peer." If that happens
- > before the peer sent close_notify, rustls_connection_read will return
- > RUSTLS_RESULT_UNEXPECTED_EOF once the available plaintext bytes are
- > exhausted. This is useful to protect against truncation attacks. Note:
- > some TLS implementations don't send close_notify. If you are already
- > getting length information from your protocol (e.g. Content-Length in
- > HTTP) you may choose to ignore UNEXPECTED_EOF so long as the number of
- > plaintext bytes was as expected.
-
- That means we don't need to check for unclean EOF in `cr_recv()`,
- because `process_new_packets()` will give us an error if appropriate.
-
- Closes #8003
-
-- lib1939: make it endure torture tests
-
- Follow-up to f0b7099a10d1a
-
- Closes #8007
-
-- azure: make the "w/o HTTP/SMTP/IMAP" build disable SSL proper
-
- The configure line would previously depend on a configure mistake using
- --without-openssl that is fixed and now this configure line needs
- adjusting to use --without-ssl.
-
- Follow-up to b589696f0312d
-
- Closes #8006
-
-- [Jacob Hoffman-Andrews brought this change]
-
- configure: add -lm to configure for rustls build.
-
- Note: The list of libraries that rustc tells us we need to include is
- longer, but also includes some more platform-specific libraries that I
- am not sure how to effectively incorporate. Adding just -lm seems to
- solve an immediate problem, so I'm adding just that.
-
- Closes #8002
-
-- curl_share_setopt.3: refer to CURLSHOPT_USERDATA(3) properly
-
-- curl_share_setopt.3: split out options into their own manpages
-
- CURLSHOPT_LOCKFUNC.3
- CURLSHOPT_SHARE.3
- CURLSHOPT_UNLOCKFUNC.3
- CURLSHOPT_UNSHARE.3
- CURLSHOPT_USERDATA.3
-
- Closes #7998
-
-- http_proxy: make Curl_connect_done() work for proxy disabled builds
-
- ... by making it an empty macro then.
-
- Follow-up to f0b7099a10d1a
- Reported-by: Vincent Grande
- Fixes #7995
- Closes #7996
-
-- Curl_connect_done: handle being called twice
-
- Follow-up to f0b7099a10d1a7c
-
- When torture testing 1021, it turns out the Curl_connect_done function
- might be called twice and that previously then wrongly cleared the HTTP
- pointer in the second invoke.
-
- Closes #7999
-
-- [Stan Hu brought this change]
-
- configure: don't enable TLS when --without-* flags are used
-
- Previously specifying `--without-gnutls` would unexpectedly attempt to
- compile with GnuTLS, effectively interpreting this as
- `--with-gnutls`. This caused a significant amount of confusion when
- `libcurl` was built with SSL disabled since GnuTLS wasn't present.
-
- 68d89f24 dropped the `--without-*` options from the configure help, but
- `AC_ARG_WITH` still defines these flags automatically. As
- https://www.gnu.org/software/autoconf/manual/autoconf-2.60/html_node/External-Software.html
- describes, the `action-if-given` is called when the user specifies
- `--with-*` or `--without-*` options.
-
- To prevent this confusion, we make the `--without` flag do the right
- thing by ignoring the value if it set to "no".
-
- Closes #7994
-
-- [Rikard Falkeborn brought this change]
-
- docs/checksrc: Add documentation for STRERROR
-
- Closes #7991
-
-- vtls/rustls: adapt to the updated rustls_version proto
-
- Closes #7956
-
-- [Kevin Burke brought this change]
-
- vtls/rustls: handle RUSTLS_RESULT_PLAINTEXT_EMPTY
-
- Previously we'd return CURLE_READ_ERROR if we received this, instead
- of triggering the error handling logic that's present in the next if
- block down.
-
- After this change, curl requests to https://go.googlesource.com using
- HTTP/2 complete successfully.
-
- Fixes #7949
- Closes #7948
-
-- [Kevin Burke brought this change]
-
- zuul: update build environment for rustls-ffi 0.8.0
-
-- [Kevin Burke brought this change]
-
- vtls/rustls: update to compile with rustls-ffi v0.8.0
-
- Some method names, as well as the generated library name, were changed
- in a recent refactoring.
-
- Further, change the default configuration instructions to check for
- Hyper in either "target/debug" or "target/release" - the latter
- contains an optimized build configuration.
-
- Fixes #7947
- Closes #7948
-
-- RELEASE-NOTES: synced
-
- and bump the version to 7.80.1
-
-- multi: shut down CONNECT in Curl_detach_connnection
-
- ... to prevent a lingering pointer that would lead to a double-free.
-
- Added test 1939 to verify.
-
- Reported-by: Stephen M. Coakley
- Fixes #7982
- Closes #7986
-
-- curl_easy_cleanup.3: remove from multi handle first
-
- Easy handles that are used by the multi interface should be removed from
- the multi handle before they are cleaned up.
-
- Reported-by: Stephen M. Coakley
- Ref: #7982
- Closes #7983
-
-- url.c: fix the SIGPIPE comment for Curl_close
-
- Closes #7984
-
-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
-
-- [Xiaoke Wang 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
diff --git a/libs/libcurl/docs/THANKS b/libs/libcurl/docs/THANKS
index b9f6eee256..b898341c95 100644
--- a/libs/libcurl/docs/THANKS
+++ b/libs/libcurl/docs/THANKS
@@ -6,6 +6,7 @@
0xee on github
0xflotus on github
+12932 on github
1337vt on github
1ocalhost on github
3dyd on github
@@ -39,7 +40,9 @@ Adrian Peniak
Adrian Schuur
Adriano Meirelles
afrind on github
+Aftab Alam
ahodesuka on github
+ajak in #curl
Ajit Dhumale
Akhil Kedia
Aki Koskinen
@@ -100,6 +103,7 @@ Alexander Sinditskiy
Alexander Traud
Alexander V. Tikhonov
Alexander Zhuravlev
+Alexandre Bury
Alexandre Pion
Alexey Borzov
Alexey Eremikhin
@@ -144,6 +148,7 @@ Andreas Rieke
Andreas Roth
Andreas Schneider
Andreas Schuldei
+Andreas Sommer
Andreas Streichardt
Andreas Wurf
Andrei Benea
@@ -273,6 +278,7 @@ Benjamin Gerard
Benjamin Gilbert
Benjamin Johnson
Benjamin Kircher
+Benjamin Loison
Benjamin Riefenstahl
Benjamin Ritcey
Benjamin Sergeant
@@ -321,6 +327,7 @@ Boris Rasin
Boris Verkhovskiy
Brad Burdick
Brad Fitzpatrick
+Brad Forschinger
Brad Harder
Brad Hards
Brad King
@@ -357,6 +364,7 @@ Bruno Thomsen
Bryan Henderson
Bryan Kemp
bsammon on github
+bsergean on github
Bubu on github
buzo-ffm on github
bxac on github
@@ -386,6 +394,7 @@ Catalin Patulea
causal-agent on github
cbartl on github
cclauss on github
+Cering on github
Cesar Eduardo Barros
Chad Monroe
Chandrakant Bagul
@@ -434,6 +443,7 @@ Christopher Head
Christopher Palow
Christopher R. Palmer
Christopher Reid
+Christopher Sauer
Christopher Stone
Chungtsun Li
Ciprian Badescu
@@ -515,10 +525,12 @@ Daniel Carpenter
Daniel Cater
Daniel Egger
Daniel Gustafsson
+Daniel Hallberg
Daniel Hwang
Daniel Jeliński
Daniel Johnson
Daniel Kahn Gillmor
+Daniel Katz
Daniel Krügler
Daniel Kurečka
Daniel Lee Hwang
@@ -557,6 +569,7 @@ David Binderman
David Blaikie
David Bohman
David Byron
+David Carlier
David Cohen
David Cook
David Demelier
@@ -579,6 +592,7 @@ David LeBlanc
David Lopes
David Lord
David McCreedy
+David McLaughlin
David Odin
David Phillips
David Rosenstrauch
@@ -651,9 +665,12 @@ Dmitry S. Baikov
Dmitry Wagin
dnivras on github
Dolbneff A.V
+Domen Kožar
Domenico Andreoli
Dominick Meglio
Dominik Hölzl
+Dominik Klemba
+Dominik Thalhammer
Dominique Leuenberger
Don J Olmstead
Dongliang Mu
@@ -675,6 +692,7 @@ Duane Cathey
Duncan Mac-Vicar Prett
Duncan Wilcox
Dustin Boswell
+Dustin Howett
Dusty Mabe
Duy Phan Thanh
Dwarakanath Yadavalli
@@ -692,6 +710,7 @@ Eddie Lumpkin
Edgaras Janušauskas
Edin Kadribasic
Edmond Yu
+Edoardo Lolletti
Eduard Bloch
Edward Kimmel
Edward Rudd
@@ -711,6 +730,7 @@ Elliot Saba
Ellis Pritchard
Elmira A Semenova
Elms
+Eloy Degen
elsamuko on github
emanruse on github
Emanuele Bovisio
@@ -719,6 +739,7 @@ Emil Engler
Emil Lerner
Emil Romanus
Emiliano Ida
+Emilio López
Emmanuel Tychon
Enrico Scholz
Enrik Berkhan
@@ -763,11 +784,12 @@ Evan Jordan
Evangelos Foutras
Even Rouault
Evert Pot
-Evgeny Grin
+Evgeny Grin (Karlson2k)
Evgeny Turnaev
eXeC64 on github
Eygene Ryabinkin
Eylem Ugurel
+Fabian Fischer
Fabian Frank
Fabian Hiernaux
Fabian Keil
@@ -913,6 +935,7 @@ Gustaf Hui
Gustavo Grieco
Guy Poizat
GwanYeong Kim
+Gwen Shapira
Gwenole Beauchesne
Gökhan Şengün
Götz Babin-Ebell
@@ -958,7 +981,9 @@ Henry Roeland
Herve Amblard
HexTheDragon
Hidemoto Nakada
+highmtworks on github
Himanshu Gupta
+Hiroki Kurosawa
Ho-chi Chen
Hoi-Ho Chan
Hongli Lai
@@ -1017,6 +1042,7 @@ Isaiah Norton
Ishan SinghLevett
Ithubg on github
Ivan Avdeev
+Ivan Tsybulin
IvanoG on github
Ivo Bellin Salarin
iz8mbw on github
@@ -1029,6 +1055,7 @@ Jacob Barthelmeh
Jacob Hoffman-Andrews
Jacob Meuser
Jacob Moshenko
+Jacob Tolar
Jactry Zeng
Jad Chamcham
Jaime Fullaondo
@@ -1143,6 +1170,7 @@ Jesse Tan
jethrogb on github
jhoyla on github
Jie He
+Jilayne Lovejoy
Jim Beveridge
Jim Drash
Jim Freeman
@@ -1179,6 +1207,7 @@ Johannes G. Kristinsson
Johannes Lesr
Johannes Schindelin
John A. Bristor
+John Bampton
John Bradshaw
John Butterfield
John Coffey
@@ -1226,6 +1255,7 @@ Jon Travis
Jon Turner
Jon Wilkes
Jonas Forsman
+Jonas Haag
Jonas Minnberg
Jonas Schnelli
Jonas Vautherin
@@ -1251,6 +1281,7 @@ Josh Kapell
Josh Soref
joshhe on github
Joshua Kwan
+Joshua Root
Joshua Swink
Josie Huddleston
Josip Medved
@@ -1282,12 +1313,14 @@ Junho Choi
Jurij Smakov
jurisuk on github
Juro Bystricky
+justchen1369 on github
Justin Clift
Justin Ehlert
Justin Fletcher
Justin Karneges
Justin Maggard
jveazey on github
+jvvprasad78 on github
jzinn on github
János Fekete
Jérémy Rocher
@@ -1299,6 +1332,7 @@ ka7 on github
Kael1117 on github
Kai Engert
Kai Noda
+Kai Pastor
Kai Sommerfeld
Kai-Uwe Rommel
Kalle Vahlman
@@ -1310,7 +1344,6 @@ Kantanat Wannapaka
Kari Pahula
Karl Chen
Karl Moerder
-Karlson2k on github
Karol Pietrzak
Kartik Mahajan
Kaspar Brand
@@ -1319,9 +1352,11 @@ Katsuhiko YOSHIDA
Kazuho Oku
Kees Cook
Kees Dekker
+Keitagit-kun on github
Keith MacDonald
Keith McGuigan
Keith Mok
+Kelly Kaoudis
Ken Brown
Ken Hirsch
Ken Rastatter
@@ -1440,6 +1475,7 @@ Linus Nielsen Feltzing
Linus Nordberg
Lior Kaplan
Lisa Xu
+Litter White
Liviu Chircu
Liza Alenchery
lllaffer on github
@@ -1474,6 +1510,7 @@ Luo Jinghua
Luong Dinh Dung
Luz Paz
Luật Nguyễn
+lwthiker on github
Lyman Epp
Lyndon Hill
M.R.T on github
@@ -1513,6 +1550,7 @@ Marcin Gryszkalis
Marcin Konicki
Marco Deckel
Marco G. Salvagno
+Marco Kamner
Marco Maggi
Marcos Diazr
Marcus Hoffmann
@@ -1528,6 +1566,7 @@ Mark Davies
Mark Dodgson
Mark Hamilton
Mark Incley
+Mark Itzcovitz
Mark Karpeles
Mark Lentczner
Mark Nottingham
@@ -1567,8 +1606,10 @@ Martin Lemke
Martin Skinner
Martin Staael
Martin Storsjö
+Martin Strunz
Martin V
Martin Vejnár
+Martin Ågren
Marty Kuhrt
Maruko
Masaya Suzuki
@@ -1576,9 +1617,11 @@ masbug on github
Massimiliano Fantuzzi
Massimiliano Ziccardi
Massimo Callegari
+MasterInQuestion on github
Mateusz Loskot
Mathias Axelsson
Mathias Gumz
+Mathieu Carbonneaux
Mathieu Legare
Matias N. Goldberg
Mats Lidell
@@ -1599,6 +1642,7 @@ Matthew Blain
Matthew Clarke
Matthew Hall
Matthew Kerwin
+Matthew Thompson
Matthew Whitehead
Matthias Bolte
Matthias Gatto
@@ -1641,10 +1685,12 @@ Michael Calmer
Michael Cronenworth
Michael Curtis
Michael Day
+Michael Drake
Michael Felt
Michael Forney
Michael Gmelin
Michael Goffioul
+Michael Heimpold
Michael Hordijk
Michael Jahn
Michael Jerris
@@ -1667,6 +1713,7 @@ Michael Smith
Michael Stapelberg
Michael Steuer
Michael Stillwell
+Michael Trebilcock
Michael Vittiglio
Michael Wallner
Michal Bonino
@@ -1734,8 +1781,10 @@ Muhammed Yavuz Nuzumlalı
Murugan Balraj
Muz Dima
Myk Taylor
+n0name321 on github
Nach M. S.
Nagai H
+Nao Yonashiro
naost3rn on github
Nate Prewitt
Nathan Coulter
@@ -1823,12 +1872,14 @@ Oli Kingshott
Oliver Gondža
Oliver Graute
Oliver Kuckertz
+Oliver Roberts
Oliver Schindler
Oliver Urbann
Olivier Berger
Olivier Brunel
Omar Ramadan
omau on github
+opensignature on github
Orange Tsai
Oren Souroujon
Oren Tirosh
@@ -1884,6 +1935,7 @@ Paul Nolan
Paul Oliver
Paul Querna
Paul Saab
+Paul Seligman
Paul Vixie
Paulo Roberto Tomasi
Pavel Cenek
@@ -1914,6 +1966,7 @@ Peter Bray
Peter Forret
Peter Frühberger
Peter Gal
+Peter Goodman
Peter Heuchert
Peter Hjalmarsson
Peter Korsgaard
@@ -1940,6 +1993,7 @@ Petr Bahula
Petr Novak
Petr Pisar
Petr Voytsik
+Petr Štetiar
Phil Blundell
Phil Crump
Phil E. Taylor
@@ -1948,7 +2002,7 @@ Phil Lisiecki
Phil Pellouchoud
Philip Craig
Philip Gladstone
-Philip H
+Philip Heiduck
Philip Langdale
Philip Prindeville
Philipp Klaus Krause
@@ -1975,7 +2029,9 @@ Pramod Sharma
Prash Dush
Praveen Pvs
Prithvi MK
+privetryan on github
Priyanka Shah
+ProceduralMan on github
Przemysław Tomaszewski
pszemus on github
puckipedia on github
@@ -2094,6 +2150,8 @@ Rob Jones
Rob Sanders
Rob Stanzel
Rob Ward
+RobBotic1 on github
+Robby Simpson
Robert A. Monat
Robert B. Harris
Robert Brose
@@ -2141,6 +2199,7 @@ Ron Eldor
Ron Parker
Ron Zapp
Ronnie Mose
+Rosen Penev
Rosimildo da Silva
Ross Burton
Roy Bellingan
@@ -2165,6 +2224,7 @@ Ryan Sleevi
Ryan Winograd
ryancaicse on github
Ryuichi KAWAMATA
+rzrymiak on github
Rémy Léone
S. Moonesamy
Sai Ram Kunala
@@ -2220,6 +2280,7 @@ Sebastian Sterk
Senthil Raja Velu
Sergei Kuzmin
Sergei Nikulov
+Sergey Bronnikov
Sergey Markelov
Sergey Ogryzkov
Sergey Tatarincev
@@ -2237,6 +2298,7 @@ Sevan Janiyan
Sgharat on github
Sh Diao
Shachaf Ben-Kiki
+ShadowZzj on github
Shailesh Kapse
Shankar Jadhavar
Shao Shuchao
@@ -2244,6 +2306,7 @@ Sharad Gupta
Shard
Sharon Brizinov
Shaun Jackman
+Shaun Mirani
Shawn Landden
Shawn Poulson
Shikha Sharma
@@ -2278,6 +2341,7 @@ Spezifant on github
Spiridonoff A.V
Spoon Man
Spork Schivago
+ssdbest on github
sspiri on github
sstruchtrup on github
Stadler Stephan
@@ -2342,6 +2406,7 @@ Stian Soiland-Reyes
Stoned Elipot
stootill on github
Stuart Henderson
+Sukanya Hanumanthu
SumatraPeter on github
Sune Ahlgren
Sunny Bean
@@ -2369,6 +2434,7 @@ tarek112 on github
Tatsuhiro Tsujikawa
tawmoto on github
tbugfinder on github
+Ted Lyngmo
Teemu Yli-Elsila
Temprimus
Terri Oda
@@ -2376,8 +2442,10 @@ Terry Wu
thanhchungbtc on github
The Infinnovation team
TheAssassin on github
+TheKnarf on github
Theodore Dubois
therealhirudo on github
+Thiago Suchorski
tholin on github
Thomas Bouzerar
Thomas Braun
@@ -2396,6 +2464,7 @@ Thomas Schwinge
Thomas Tonino
Thomas van Hesteren
Thomas Vegas
+Thomas Weißschuh
Thorsten Schöning
Tiit Pikma
Till Maas
@@ -2434,8 +2503,10 @@ Tobias Hintze
Tobias Lindgren
Tobias Markus
Tobias Nießen
+Tobias Nygren
Tobias Nyholm
Tobias Rundström
+Tobias Schaefer
Tobias Stoeckmann
Toby Peterson
Todd A Ouska
@@ -2487,6 +2558,7 @@ Toshio Kuratomi
Toshiyuki Maezawa
tpaukrt on github
Traian Nicolescu
+Trail of Bits
Travis Burtrum
Travis Obenhaus
Trivikram Kamat
@@ -2516,6 +2588,7 @@ Valerii Zapodovnikov
vanillajonathan on github
Varnavas Papaioannou
Vasiliy Faronov
+Vasiliy Ulyanov
Vasily Lobaskin
Vasy Okhin
Venkat Akella
@@ -2548,6 +2621,7 @@ Vladimir Lazarenko
Vladimir Panteleev
Vladimir Varlamov
Vlastimil Ovčáčík
+vlubart on github
Vojtech Janota
Vojtech Minarik
Vojtěch Král
@@ -2586,6 +2660,7 @@ Wojciech Zwiefka
Wolf Vollprecht
Wouter Van Rooy
Wu Yongzheng
+Wu Zheng
Wyatt O'Day
Wyatt OʼDay
x2018 on github
@@ -2612,6 +2687,7 @@ ygthien on github
Yi Huang
Yiming Jing
Yingwei Liu
+yiyuaner on github
Ymir1711 on github
Yonggang Luo
Yongkang Huang
@@ -2622,6 +2698,7 @@ Yu Xin
Yukihiro Kawada
Yun SangHo
Yuri Slobodyanyuk
+Yuriy Chernyshov
Yuriy Sosov
Yusuke Nakamura
Yves Arrouye
@@ -2635,6 +2712,7 @@ zelinchen on github
Zenju on github
Zero King
Zhang Xiuhua
+zhanghu on xiaomi
Zhao Yisha
Zhaoyang Wu
Zhibiao Wu
@@ -2646,6 +2724,7 @@ Zvi Har'El
zzq1015 on github
Ádler Jonas Gross
Érico Nogueira
+Érico Nogueira Rolim
İsmail Dönmez
Łukasz Domeradzki
Štefan Kremeň