curl and libcurl 7.81.0 Public curl releases: 205 Command line options: 244 curl_easy_setopt() options: 295 Public functions in libcurl: 86 Contributors: 2548 This release includes the following changes: o mime: use percent-escaping for multipart form field and file names [1] This release includes the following bugfixes: o azure: make the "w/o HTTP/SMTP/IMAP" build disable SSL proper [12] o cmake: don't set _USRDLL on a static Windows build [22] o cmake: private identifiers use CURL_ instead of CMAKE_ prefix [40] o config.d: update documentation to match the path search o configure: add -lm to configure for rustls build. [13] o configure: better diagnostics if hyper is built wrong [6] o configure: don't enable TLS when --without-* flags are used [17] o configure: fix runtime-lib detection on macOS [21] o curl.1: require "see also" for every documented option [27] o curl: improve error message for --head with -J [42] o curl_easy_cleanup.3: remove from multi handle first [3] o curl_easy_escape.3: call curl_easy_cleanup in example [58] o curl_easy_unescape.3: call curl_easy_cleanup in example [57] o curl_share_setopt.3: split out options into their own manpages [14] o CURLOPT_STDERR.3: does not work with libcurl as a win32 DLL [51] o digest: compute user:realm:pass digest w/o userhash [45] o docs/checksrc: Add documentation for STRERROR [18] o docs/cmdline-opts: do not say "protocols: all" [26] o docs/INSTALL.md: typo fix : added missing "get" verb [31] o docs: address proselint nits [16] o docs: consistent manpage SYNOPSIS [47] o docs: Update the Reducing Size section o FAQ: typo fix : "yout" ➤ "your" [30] o gen.pl: improve example output format [29] o http2:set_transfer_url() return early on OOM [53] o HTTP3: update quiche build instructions [37] o http: enable haproxy support for hyper backend [20] o insecure.d: detail its use for SFTP and SCP as well [32] o insecure.d: expand and clarify [28] o libssh2: fix error message for sha256 mismatch o lift: ignore is a deprecated config option, use ignoreRules [35] o Makefile.m32: rename -winssl option to -schannel and tidy up [33] o mbedTLS: add support for CURLOPT_CAINFO_BLOB [44] o mbedTLS: include NULL byte in blob data length for CURLOPT_CAINFO_BLOB [38] o multi: handle errors returned from socket/timer callbacks [52] o multi: shut down CONNECT in Curl_detach_connnection [2] o netrc.d: edit the .netrc example to look nicer [24] o openldap: implement STARTTLS [56] o openssl: check the return value of BIO_new() [43] o openssl: remove `RSA_METHOD_FLAG_NO_CHECK` handling if unavailable o openssl: remove usage of deprecated `SSL_get_peer_certificate` o openssl: use non-deprecated API to read key parameters o page-footer: add a mention of how to report bugs to the man page o page-footer: document more environment variables [23] o request.d: refer to 'method' rather than 'command' [59] o retry-all-errors.d: make the example complete o runtests: make the SSH library a testable feature o rustls: read of zero bytes might be okay [9] o rustls: remove comment about checking handshaking [15] o rustls: remove incorrect EOF check [10] o test1554: adjust for hyper [49] o test1556: adjust for hyper [48] o test302[12]: run only with the libssh2 backend [8] o tests/CI.md: add more information on CI environments [39] o tftp: mark protocol as not possible to do over CONNECT [25] o tool_findfile: updated search for a file in the homedir [46] o tool_operate: only set SSH related libcurl options for SSH URLs [11] o url.c: fix the SIGPIPE comment for Curl_close [4] o urlapi: accept port number zero [34] o urlapi: provide more detailed return codes [36] o urlapi: reject short file URLs [41] o version_win32: Check build number and platform id o vtls/rustls: adapt to the updated rustls_version proto [19] o writeout: fix %{http_version} for HTTP/3 [7] o zuul.d: update rustls-ffi to version 0.8.2 [5] 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: Alessandro Ghedini, Bernat Mut, Bernhard Walle, Boris Rasin, Brad Fitzpatrick, Bruno Baguette, Damien Walsh, Dan Fandrich, Daniel Stenberg, David Bohman, Don J Olmstead, Even Rouault, Florian Van Heghe, Glenn Strauss, Jacob Hoffman-Andrews, Jeff Luszcz, jeffrson on github, Jun Tseng, Kevin Burke, Marcelo Juchem, Marcel Raad, Mark Dodgson, nimaje on github, Patrick Monnerat, Paul Howarth, Ray Satiro, Rikard Falkeborn, Ryan Sleevi, Stan Hu, Stefan Eissing, Stephane Pellegrino, Stephen M. Coakley, Viktor Szakats, Vincent Grande, Wyatt O'Day, (35 contributors) References to bug reports and discussions on issues: [1] = https://curl.se/bug/?i=7789 [2] = https://curl.se/bug/?i=7982 [3] = https://curl.se/bug/?i=7983 [4] = https://curl.se/bug/?i=7984 [5] = https://curl.se/bug/?i=8013 [6] = https://curl.se/bug/?i=8001 [7] = https://curl.se/bug/?i=8072 [8] = https://curl.se/bug/?i=8009 [9] = https://curl.se/bug/?i=8003 [10] = https://curl.se/bug/?i=8003 [11] = https://curl.se/bug/?i=8040 [12] = https://curl.se/bug/?i=8006 [13] = https://curl.se/bug/?i=8002 [14] = https://curl.se/bug/?i=7998 [15] = https://curl.se/bug/?i=8038 [16] = https://curl.se/bug/?i=8060 [17] = https://curl.se/bug/?i=7994 [18] = https://curl.se/bug/?i=7991 [19] = https://curl.se/bug/?i=7956 [20] = https://curl.se/bug/?i=8034 [21] = https://curl.se/bug/?i=8028 [22] = https://curl.se/bug/?i=8030 [23] = https://curl.se/bug/?i=8027 [24] = https://curl.se/bug/?i=8025 [25] = https://curl.se/bug/?i=8018 [26] = https://curl.se/bug/?i=8021 [27] = https://curl.se/bug/?i=8019 [28] = https://curl.se/bug/?i=8017 [29] = https://curl.se/bug/?i=8016 [30] = https://curl.se/bug/?i=8059 [31] = https://curl.se/bug/?i=8058 [32] = https://curl.se/bug/?i=8056 [33] = https://curl.se/bug/?i=8053 [34] = https://curl.se/bug/?i=8090 [35] = https://curl.se/bug/?i=8082 [36] = https://curl.se/bug/?i=8049 [37] = https://curl.se/bug/?i=8076 [38] = https://curl.se/bug/?i=8079 [39] = https://curl.se/bug/?i=8012 [40] = https://curl.se/bug/?i=7988 [41] = https://curl.se/bug/?i=8042 [42] = https://curl.se/bug/?i=7987 [43] = https://curl.se/bug/?i=8078 [44] = https://curl.se/bug/?i=8071 [45] = https://curl.se/bug/?i=8066 [46] = https://curl.se/bug/?i=8033 [47] = https://curl.se/bug/?i=8062 [48] = https://curl.se/bug/?i=8105 [49] = https://curl.se/bug/?i=8104 [51] = https://curl.se/bug/?i=8103 [52] = https://curl.se/bug/?i=8083 [53] = https://curl.se/bug/?i=8100 [56] = https://curl.se/bug/?i=8065 [57] = https://curl.se/bug/?i=8097 [58] = https://curl.se/bug/?i=8097 [59] = https://curl.se/bug/?i=8094