curl and libcurl 7.76.0 Public curl releases: 198 Command line options: 240 curl_easy_setopt() options: 288 Public functions in libcurl: 85 Contributors: 2340 This release includes the following changes: o cookies: Support multiple -b parameters [69] o curl: add --fail-with-body [17] o doh: add options to disable ssl verification [5] o http: add support to read and store the referrer header [30] o sasl: support SCRAM-SHA-1 and SCRAM-SHA-256 via libgsasl [4] o vtls: initial implementation of rustls backend [3] This release includes the following bugfixes: o asyn-ares: use consistent resolve error message [37] o BUG-BOUNTY: removed the cooperation mention o build: delete unused feature guards [51] o build: fix --disable-dateparse [1] o build: fix --disable-http-auth o build: remove all traces of USE_BLOCKING_SOCKETS [70] o c-hyper: Remove superfluous pointer check [56] o CI/azure: replace python-impacket with python3-impacket [61] o ci: stop building on freebsd-12-1 [38] o cmake: fix import library name for non-MS compiler on Windows [10] o cmake: use CMAKE_INSTALL_INCLUDEDIR indirection [49] o configure: fail if --with-quiche is used and quiche isn't found [48] o configure: make hyper opt-in, and fail if missing [53] o curl: set CURLOPT_NEW_FILE_PERMS if requested [65] o curl_multibyte: always return a heap-allocated copy of string [29] o curl_multibyte: fall back to local code page stat/access on Windows [8] o curl_url_set.3: mention CURLU_PATH_AS_IS [13] o CURLOPT_QUOTE.3: clarify that libcurl doesn't parse what's sent [16] o docs/Makefile.inc: format to be update-friendly [11] o docs: add CURLOPT_CURLU to 'See also' in curl_url_ functions [52] o docs: add missing Arg tag to --stderr [58] o docs: fix FILE example url in --metalink documentation [19] o doh: Fix sharing user's resolve list with DOH handles [46] o doh: Inherit CURLOPT_STDERR from user's easy handle [60] o dynbuf: bump the max HTTP request to 1MB [39] o file: Support unicode urls on windows [9] o ftp: add 'list_only' to the transfer state struct [35] o ftp: add 'prefer_ascii' to the transfer state struct [36] o ftp: avoid SIZE when asking for a TYPE A file [23] o ftp: fix Codacy/cppcheck warning about null pointer arithmetic [34] o ftp: never set data->set.ftp_append outside setopt [14] o gnutls: assume nettle crypto support [33] o gskit: correct the gskit_send() prototype [21] o hostip: fix build with sync resolver [20] o hostip: fix crash in sync resolver builds that use DOH [12] o http: do not add a referrer header with empty value [44] o http: use credentials from transfer, not connection [25] o ldap: use correct memory free function [63] o lib: remove 'conn->data' completely [45] o memdebug: close debug logfile explicitly on exit [28] o mingw: enable using strcasecmp() [50] o multi: do once-per-transfer inits in before_perform in DID state [54] o multi: rename the multi transfer states [43] o ngtcp2: adapt to the new recv_datagram callback o ngtcp2: clarify calculation precedence [27] o openssl: remove get_ssl_version_txt in favor of SSL_get_version [67] o OS400: update for CURLOPT_AWS_SIGV4 [2] o parse_proxy: fix a memory leak in the OOM path [41] o pathhelp.pm: fix use of pwd -L in Msys environment o projects: Update VS projects for OpenSSL 1.1.x [59] o quiche: fix build error: use 'int' for port number o runtests.pl: add %TESTNUMBER variable to make copying tests more convenient o runtests.pl: add a -P option to specify an external proxy o runtests.pl: kill processes locking test log files [62] o test1188: change error to check for: --fail HTTP status [26] o tests: disable .curlrc in more environments [7] o time: enable 64-bit time_t in supported mingw environments [24] o tool_help: add missing argument for --create-file-mode [18] o tool_help: Increase space between option and description [64] o url.c: use consistent error message for failed resolve o url: fix memory leak if OOM in the HSTS handling [32] o url: fix possible use-after-free in default protocol [42] o urldata: don't touch data->set.httpversion at run-time [6] o urldata: fix build without HTTP and MQTT [22] o urldata: make 'actions[]' use unsigned char instead of int [47] o urldata: remove the 'rtspversion' field [15] o urldata: remove the _ORIG suffix from string names [31] o version.d: Add missing features to the features list [57] o wolfssl: don't store a NULL sessionid [40] This release includes the following known bugs: o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html) This release would not have looked like this without help, code, reports and advice from friends like these: Ádler Jonas Gross, Alex Xu, Amaury Denoyelle, arvids-kokins-bidstack on github, awesomenode on github, Benbuck Nason, Bodo Bergmann, Carl Zogheib, Dan Fandrich, Daniel Gustafsson, Daniel Stenberg, David Demelier, David Goerger, Emil Engler, Fabian Keil, Firefox OS, Gisle Vanem, Gregor Jasny, Ikko Ashimine, Jack Boos Yu, Jacob Hoffman-Andrews, Jean-Philippe Menil, Johannes Lesr, Jon Rumsey, Joseph Chen, kokke on github, Manuj Bhatia, Marcel Raad, Marc Hörsken, Ray Satiro, Sergei Nikulov, Simon Josefsson, Stephan Szabo, Viktor Szakats, Vincent Torri, Vladimir Varlamov, ZimCodes on github, (37 contributors) References to bug reports and discussions on issues: [1] = https://curl.se/mail/lib-2021-02/0008.html [2] = https://curl.se/bug/?i=6560 [3] = https://curl.se/bug/?i=6350 [4] = https://curl.se/bug/?i=6372 [5] = https://curl.se/bug/?i=4578 [6] = https://curl.se/bug/?i=6585 [7] = https://curl.se/bug/?i=6595 [8] = https://curl.se/bug/?i=6514 [9] = https://curl.se/bug/?i=6501 [10] = https://curl.se/bug/?i=6225 [11] = https://curl.se/bug/?i=6593 [12] = https://curl.se/bug/?i=6603 [13] = https://curl.se/mail/lib-2021-02/0046.html [14] = https://curl.se/bug/?i=6579 [15] = https://curl.se/bug/?i=6581 [16] = https://curl.se/bug/?i=6577 [17] = https://curl.se/bug/?i=6449 [18] = https://curl.se/bug/?i=6590 [19] = https://curl.se/bug/?i=6573 [20] = https://curl.se/bug/?i=6566 [21] = https://curl.se/bug/?i=6569 [22] = https://curl.se/bug/?i=6562 [23] = https://curl.se/bug/?i=6564 [24] = https://curl.se/bug/?i=6636 [25] = https://curl.se/bug/?i=6542 [26] = https://curl.se/bug/?i=6637 [27] = https://curl.se/bug/?i=6576 [28] = https://github.com/curl/curl/pull/6591#issuecomment-780396541 [29] = https://curl.se/bug/?i=6602 [30] = https://curl.se/bug/?i=6591 [31] = https://curl.se/bug/?i=6624 [32] = https://github.com/curl/curl/pull/6627#issuecomment-781626205 [33] = https://curl.se/bug/?i=6625 [34] = https://curl.se/bug/?i=6576 [35] = https://curl.se/bug/?i=6578 [36] = https://curl.se/bug/?i=6578 [37] = https://curl.se/bug/?i=6626 [38] = https://curl.se/bug/?i=6622 [39] = https://curl.se/bug/?i=6681 [40] = https://curl.se/bug/?i=6616 [41] = https://github.com/curl/curl/pull/6591#issuecomment-780396541 [42] = https://github.com/curl/curl/issues/6604#issuecomment-780138219 [43] = https://curl.se/bug/?i=6612 [44] = https://curl.se/bug/?i=6610 [45] = https://curl.se/bug/?i=6608 [46] = https://curl.se/bug/?i=6589 [47] = https://curl.se/bug/?i=6648 [48] = https://curl.se/bug/?i=6652 [49] = https://curl.se/bug/?i=6440 [50] = https://curl.se/bug/?i=6644 [51] = https://curl.se/bug/?i=6645 [52] = https://curl.se/bug/?i=6639 [53] = https://curl.se/bug/?i=6598 [54] = https://curl.se/bug/?i=6640 [56] = https://curl.se/bug/?i=6697 [57] = https://curl.se/bug/?i=6677 [58] = https://curl.se/bug/?i=6692 [59] = https://curl.se/bug/?i=984 [60] = https://github.com/curl/curl/issues/6605 [61] = https://curl.se/bug/?i=6678 [62] = https://curl.se/bug/?i=6179 [63] = https://curl.se/bug/?i=6671 [64] = https://curl.se/bug/?i=6674 [65] = https://curl.se/bug/?i=6657 [67] = https://curl.se/bug/?i=6665 [69] = https://curl.se/bug/?i=6649 [70] = https://curl.se/bug/?i=6655