Command line options: 268
curl_easy_setopt() options: 307
Public functions in libcurl: 96
- Contributors: 3386
+ Contributors: 3394
This release includes the following changes:
+ o mqtt: send ping at upkeep interval [49]
+ o schannel: handle pkcs12 client certificates containing CA certificates [58]
This release includes the following bugfixes:
+ o asyn resolver code improvements [50]
o async-threaded resolver: use ref counter [10]
o build: check required rustls-ffi version [46]
o certs: drop unused `default_bits` from `.prm` files [45]
o cmake/FindNGTCP2: simplify multi-pkg-config detection [27]
+ o cmake: append picky warnings to `CMAKE_REQUIRED_FLAGS` as string [68]
+ o cmake: fix nghttp3 static linking with `USE_OPENSSL_QUIC=ON` [79]
+ o cmake: merge `CURL_WERROR` logic into `PickyWarnings.cmake` [66]
+ o cmake: prefer `COMPILE_OPTIONS` over `CMAKE_C_FLAGS` for custom C options [72]
o cmake: quotes, whitespace, use `VERSION_GREATER_EQUAL` [33]
+ o cmake: revert `CURL_LTO` behavior for multi-config generators [74]
o cmake: use `INCLUDE_DIRECTORIES` prop to specify local header dirs [47]
o cmake: use absolute paths for completion targets [40]
+ o cmake: use the `LINK_OPTIONS` property with CMake 3.13+ [78]
+ o configure: catch asking for double resolver without https-rr [82]
o configure: fix --disable-rt [20]
o configure: restore link checks [25]
o conncache: make Curl_cpool_init return void [15]
o content_encoding: Transfer-Encoding parser improvements [31]
o contrithanks.sh: drop set -e [6]
+ o cpool/cshutdown: force close connections under pressure [80]
+ o curl_get_line: handle lines ending on the buffer boundary [62]
o curl_krb5: only use functions if FTP is still enabled [21]
o curl_multibyte: fixup low-level calls, include in unity builds [55]
+ o dist: drop duplicate entry from `CMAKE_DIST` [88]
+ o docs/INSTALL.md: drop reference to removed configure option [83]
+ o docs/libcurl: make examples build with picky compiler options [84]
+ o docs: add missing return statement in examples [85]
o docs: fix incorrect shell substitution in docker run example command [51]
+ o easy_reset: fix dohfor_mid member [63]
o eventfd: fix feature guards [24]
o genserv.pl: fail with a message if `openssl` is missing or failing [14]
o hostip: fix build without threaded-resolver and without DoH [17]
o http2: fix stream window size after unpausing [34]
o HTTP3.md: fix incorrect variable placeholders [30]
o http: fix a build error when all auths are disabled [16]
+ o http: in alt-svc negotiation only allow supported HTTP versions [59]
o http_aws_sigv4: add additional verbose log statements [39]
o http_negotiate: fix non-SSL build with GSSAPI [23]
o https-connect: fix httpsrr target check [36]
o mk-ca-bundle.pl: follow redirects [53]
o openssl-quic: fix shutdown when stream not open [11]
o parsedate: provide Curl_wkday also for GnuTLS builds [13]
+ o processhelp.pm: always call `taskkill` with `-f` (force) [69]
o processhelp.pm: avoid potential endless loop, log more (Windows) [5]
o rand: update comment on Curl_rand_bytes weak random [35]
+ o runtests: remove server verification after start [89]
+ o runtests: split `SSH_PWD` into `SCP_PWD` and `SFTP_PWD`, and more [75]
o rustls: make max size of cert and key reasonable [41]
o scripts: completion.pl: sort the completion file for all shells [9]
o scripts: fix --opts-dir help in completion.pl
o tests/ech_tests.sh: sync shebang with rest of bash scripts [42]
o tests/README.md: document --test-duphandle [8]
o tests/README.md: list the openssl tool among the prerequisites [12]
+ o tests/server: fix typo in comment
o tests/serverhelp: remove last remnants of http-pipe server [1]
o tests/tunit: make a separate directory for tool-based unit tests [54]
o tests: Add https-mtls server to force client auth [57]
o tests: move a boolean variable out of the path section
o tests: prefer `--insecure` over `-k` [43]
o tests: remove some unused test case sections
+ o tests: require IPv6 for 1265, 1324, 2086 [87]
o tests: unify test case keywords
o tests: use a more portable null device path [38]
+ o tool_cb_write.c: handle EINTR on flush [65]
+ o tool_parsecfg: make get_line handle lines ending on the buffer boundary [81]
o VERSIONS: list all past releases [22]
o vtls: fix build with ssl but without http [18]
o winbuild: add the deprecation warning to the README [29]
+ o wolfssl: fix to enable ALPN when available [67]
This release includes the following known bugs:
This release would not have looked like this without help, code, reports and
advice from friends like these:
- Abhinav Singhal, Andrew Kirillov, Andy Pan, Carlos Henrique Lima Melara,
+ Abhinav Singhal, Andrew Kirillov, Andy Pan, Bo Anderson, bruce.yoon,
+ Carlos Henrique Lima Melara, Christian Schmitz, Cole Helbling,
Dagobert Michelsen, Dan Fandrich, Daniel Engberg, Daniel McCarney,
- Daniel Stenberg, Demi Marie Obenour, dependabot[bot], Harry Sintonen,
- Jake Yuesong Li, Jean-Christophe Amiel, Johan Eliasson, Jonathan Rosa,
- Kai Pastor, Nigel Brittain, Pavel Kropachev, Ray Satiro, renovate[bot],
- Stefan Eissing, Tomas Volf, Viktor Szakats, x1sc0 on github, Yedaya Katsman
- (26 contributors)
+ Daniel Stenberg, Demi Marie Obenour, dependabot[bot],
+ epicmkirzinger on github, Fujii Hironori, Graham Christensen, Harry Sintonen,
+ Jake Yuesong Li, Jean-Christophe Amiel, Joel Depooter, Johan Eliasson,
+ Jonathan Rosa, Kai Pastor, Marius Kleidl, mschroeder-fzj on github,
+ Nigel Brittain, Nils Goroll, Pavel Kropachev, PleaseJustDont, Ray Satiro,
+ renovate[bot], Sören Tempel, Stefan Eissing, Tomas Volf, Viktor Szakats,
+ x1sc0 on github, Yedaya Katsman
+ (39 contributors)
References to bug reports and discussions on issues:
[46] = https://curl.se/bug/?i=16922
[47] = https://curl.se/bug/?i=16993
[48] = https://curl.se/bug/?i=16991
+ [49] = https://curl.se/bug/?i=16975
+ [50] = https://curl.se/bug/?i=16963
[51] = https://curl.se/bug/?i=16990
[53] = https://curl.se/bug/?i=16995
[54] = https://curl.se/bug/?i=16983
[55] = https://curl.se/bug/?i=16742
[56] = https://curl.se/bug/?i=16987
[57] = https://curl.se/bug/?i=16923
+ [58] = https://curl.se/bug/?i=16825
+ [59] = https://curl.se/bug/?i=17037
[60] = https://curl.se/bug/?i=16986
+ [62] = https://curl.se/bug/?i=17036
+ [63] = https://curl.se/bug/?i=17052
+ [65] = https://curl.se/bug/?i=17061
+ [66] = https://curl.se/bug/?i=17062
+ [67] = https://curl.se/bug/?i=17056
+ [68] = https://curl.se/bug/?i=17055
+ [69] = https://curl.se/bug/?i=17054
+ [72] = https://curl.se/bug/?i=17047
+ [74] = https://curl.se/bug/?i=17042
+ [75] = https://curl.se/bug/?i=17041
+ [78] = https://curl.se/bug/?i=17039
+ [79] = https://curl.se/bug/?i=17010
+ [80] = https://curl.se/bug/?i=17020
+ [81] = https://curl.se/bug/?i=17030
+ [82] = https://curl.se/bug/?i=17025
+ [83] = https://curl.se/bug/?i=17023
+ [84] = https://curl.se/bug/?i=17028
+ [85] = https://curl.se/bug/?i=17024
+ [87] = https://curl.se/bug/?i=17014
+ [88] = https://curl.se/bug/?i=17012
+ [89] = https://curl.se/bug/?i=17005