curl and libcurl 7.80.0 Public curl releases: 204 Command line options: 243 curl_easy_setopt() options: 294 Public functions in libcurl: 86 Contributors: 2531 This release includes the following changes: o CURLOPT_MAXLIFETIME_CONN: maximum allowed lifetime for conn reuse [25] o CURLOPT_PREREQFUNCTION: add new callback [17] o libssh2: add SHA256 fingerprint support [4] o urlapi: add curl_url_strerror() [21] o urlapi: support UNC paths in file: URLs on Windows [20] o wolfssl: allow setting of groups/curves [22] This release includes the following bugfixes: o aws-sigv4: make signature work when post data is binary [68] o BINDINGS: URL updates [30] o build: remove checks for WinSock 1 [36] o c-hyper: don't abort CONNECT responses early when auth-in-progress [71] o c-hyper: make Curl_http propagate errors better [50] o c-hyper: make CURLOPT_SUPPRESS_CONNECT_HEADERS work [97] o c-hyper: make test 217 run [74] o c-hyper: use hyper_request_set_uri_parts to make h2 better [39] o checksrc: ignore preprocessor lines [64] o CI/makefiles: introduce dedicated test target [34] o ci: update Lift config to match requirements of curl build [1] o cirrus: remove FreeBSD 11.4 from the matrix [62] o cirrus: switch to openldap24-client [63] o cleanup: constify unmodified static structs [2] o cmake: add CURL_ENABLE_SSL option [46] o cmake: fix error getting LOCATION property on non-imported target [59] o CMake: restore support for SecureTransport on iOS [103] o cmake: with OpenSSL, define OPENSSL_SUPPRESS_DEPRECATED [14] o cmdline-opts: made the 'Added:' field mandatory [37] o configure.ac: replace krb5-config with pkg-config [80] o configure: when hyper is selected, deselect nghttp2 [94] o connect: use sysaddr_un from sys/un.h or custom-defined for windows [23] o curl-confopts.m4: remove --enable/disable-hidden-symbols [70] o curl-openssl.m4: modify library order for openssl linking [40] o curl-openssl: pass argument to sed single-quoted [15] o curl.1: remove mentions of really old version changes [38] o curl: actually append "-" to --range without number only [57] o curl: correct grammar in generated libcurl code [53] o curl: print help descriptions in an aligned right column [16] o curl_gssapi: fix link error on macOS Monterey [55] o curl_multi_socket_action.3: add a "RETURN VALUE" section [106] o curl_ntlm_core: use OpenSSL only if DES is available [42] o Curl_updateconninfo: store addresses for QUIC connections too [90] o CURLOPT_HSTSWRITEFUNCTION.3: using CURLOPT_HSTS_CTRL is required [114] o CURLOPT_HTTPHEADER.3: add descripion for specific headers [35] o docs/HTTP3: improve build instructions [102] o docs/Makefile.am: repair 'make html' [52] o docs: fix typo in CURLOPT_TRAILERFUNCTION example [93] o docs: provide "RETURN VALUE" section for more func manpages [105] o docs: reduce use of "very" [107] o doh: remove experimental code for DoH with GET [61] o examples/htmltidy: correct wrong printf() use [66] o examples/imap-append: fix end-of-data check [7] o gen.pl: insert the current date and version in generated man page [11] o gen.pl: replace leading single quotes with \(aq [110] o http2: make getsock not wait for write if there's no remote window [56] o HTTP3: fix the HTTP/3 Explained book link [27] o http: fix Basic auth with empty name field in URL [24] o http: reject HTTP response codes < 100 [92] o http: remove assert that breaks hyper [47] o http: set content length earlier [67] o http_proxy: make hyper CONNECT() return the correct error code [51] o http_proxy: multiple CONNECT with hyper done better [78] o hyper: disable test 1294 since hyper doesn't allow such crazy headers [96] o hyper: does not support disabling CURLOPT_HTTP_TRANSFER_DECODING [72] o hyper: pass the CONNECT line to the debug callback [79] o imap: display quota information [115] o INSTALL: update symbol hiding option [77] o lib/mk-ca-bundle.pl: skip certs passed Not Valid After date [18] o lib: avoid fallthrough cases in switch statements [33] o libcurl.rc: switch out the copyright symbol for plain ASCII [5] o libssh2: Get the version at runtime if possible [12] o llist: remove redundant code, branch will not be executed [10] o Makefile.m32: fix to not require OpenSSL with -libssh2 or -rtmp options [100] o maketgz: redirect updatemanpages.pl output to /dev/null o man pages: require all to use the same section header order [101] o manpage: adjust the asterisk in some SYNOPSIS sections [82] o md5: fix compilation with OpenSSL 3.0 API [43] o misc: fix a few issues on MidnightBSD [28] o misc: fix typos in docs and comments [3] o ngtcp2: fix QUIC transport parameter version [6] o ngtcp2: specify the missing required callback functions [108] o NTLM: use DES_set_key_unchecked with OpenSSL [13] o openssl: if verifypeer is not requested, skip the CA loading [69] o openssl: with OpenSSL 1.1.0+ a failed RAND_status means goaway [44] o Revert "src/tool_filetime: disable -Wformat on mingw for this file" [88] o sasl: binary messages [31] o schannel: fix memory leak due to failed SSL connection [89] o scripts/delta: count command line options in the new file o sendf: accept zero-length data in Curl_client_write() [95] o sha256: use high-level EVP interface for OpenSSL [41] o smooth-gtk-thread.c: enhance the mutex lock use [112] o sws: fix memory leak on exit [49] o test1160: edited to work with hyper [83] o test1185: verify checksrc [58] o test1266/1267: disabled on hyper: no HTTP/0.9 support [99] o test1287: make work on hyper [98] o test207: accept a different error code for hyper [76] o test262: don't attempt with hyper [73] o test552: updated to work with hyper [87] o test559: add 'HTTP' in keywords [86] o tests/smbserver.py: fix compatibility with impacket 0.9.23+ [104] o tests: disable test 2043 [54] o tests: kill some test servers afterwards to avoid locked logfiles [111] o tests: use python3 in test 1451 [48] o tls: remove newline from three infof() calls [85] o tool_cb_prg: make resumed upload progress bar show better [9] o tool_listhelp: easier generated with gen.pl [19] o tool_main: fix typo in comment [29] o URL-SYNTAX: add IMAP UID SEARCH example [81] o url: check the return value of curl_url() [75] o url: set "k->size" -1 at start of request [60] o urlapi: skip a strlen(), pass in zero [65] o urlapi: URL decode percent-encoded host names [26] o version_win32: use actual version instead of manifested version [45] o vtls: Fix a memory leak if an SSL session cannot be added to the cache [8] o wolfssl: use for SHA256, MD4, MD5, and setting DES odd parity [32] o zuul: pin the quiche build to use an older cmake-rs [84] 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: 8U61ife on github, a1346054 on github, Abhinav Singh, Alexander Chuykov, Alexander Kanavin, Anthony Hu, Axel Morawietz, beslick5 on github, billionai on github, Bo Anderson, Boris Rasin, Daniel Gustafsson, Daniel Stenberg, David Cook, David Hu, Eddie Lumpkin, Érico Nogueira, Erik Stenlund, Gisle Vanem, Gleb Ivanovsky, h1zzz on github, Harry Sintonen, Hayden Roche, Jakub Zakrzewski, Jan Mazur, Jeffrey Tolar, Jerome Mao, Joel Depooter, Jonathan Cardoso Machado, Josip Medved, Jun-ya Kato, Kerem Kat, Kirill Efimov, Lucas Holt, Malik Idrees Hasan Khan, Marcel Raad, Marc Hörsken, Mats Lindestam, Max Dymond, Michael Afanasiev, Michael Baentsch, Michael Kaufmann, Momoka Yamamoto, Noam Moshe, orycho on github, Patrick Monnerat, Rafał Mikrut, Randall S. Becker, Raul Onitza-Klugman, Ray Satiro, Ricardo Martins, Rick Lane, Rikard Falkeborn, Roy Li, ryancaicse on github, Ryan Mast, Samuel Henrique, Sean Molenaar, Sergey Markelov, Sergio Durigan Junior, sergio-nsk on github, Sharon Brizinov, Stathis Kapnidis, Steini2000 on github, Tatsuhiro Tsujikawa, Thomas M. DuBuisson, tlahn on github, Viktor Szakats, Vitaly Varyvdin, Wyatt O'Day, x2018 on github, Борис Верховский, (72 contributors) References to bug reports and discussions on issues: [1] = https://curl.se/bug/?i=7761 [2] = https://curl.se/bug/?i=7759 [3] = https://curl.se/bug/?i=7747 [4] = https://curl.se/bug/?i=7646 [5] = https://curl.se/bug/?i=7765 [6] = https://curl.se/bug/?i=7771 [7] = https://curl.se/bug/?i=7774 [8] = https://curl.se/bug/?i=7683 [9] = https://curl.se/bug/?i=7760 [10] = https://curl.se/bug/?i=7770 [11] = https://curl.se/bug/?i=7782 [12] = https://curl.se/bug/?i=7768 [13] = https://curl.se/bug/?i=7779 [14] = https://curl.se/bug/?i=7767 [15] = https://curl.se/bug/?i=7758 [16] = https://curl.se/bug/?i=7792 [17] = https://curl.se/bug/?i=7477 [18] = https://curl.se/bug/?i=7801 [19] = https://curl.se/bug/?i=7787 [20] = https://curl.se/bug/?i=7366 [21] = https://curl.se/bug/?i=7605 [22] = https://curl.se/bug/?i=7728 [23] = https://curl.se/bug/?i=7737 [24] = https://curl.se/bug/?i=7819 [25] = https://curl.se/mail/lib-2021-09/0058.html [26] = https://curl.se/bug/?i=7830 [27] = https://curl.se/bug/?i=7813 [28] = https://curl.se/bug/?i=7812 [29] = https://curl.se/bug/?i=7811 [30] = https://curl.se/bug/?i=7809 [31] = https://curl.se/bug/?i=6930 [32] = https://curl.se/bug/?i=7806 [33] = https://curl.se/bug/?i=7322 [34] = https://curl.se/bug/?i=7785 [35] = https://curl.se/bug/?i=7829 [36] = https://curl.se/bug/?i=7778 [37] = https://curl.se/bug/?i=7786 [38] = https://curl.se/bug/?i=7786 [39] = https://curl.se/bug/?i=7679 [40] = https://curl.se/bug/?i=7826 [41] = https://curl.se/bug/?i=7808 [42] = https://curl.se/bug/?i=7808 [43] = https://curl.se/bug/?i=7808 [44] = https://curl.se/bug/?i=7840 [45] = https://curl.se/bug/?i=7742 [46] = https://curl.se/bug/?i=7822 [47] = https://curl.se/bug/?i=7852 [48] = https://curl.se/bug/?i=7899 [49] = https://curl.se/bug/?i=7849 [50] = https://curl.se/bug/?i=7851 [51] = https://curl.se/bug/?i=7825 [52] = https://curl.se/bug/?i=7853 [53] = https://curl.se/bug/?i=7802 [54] = https://curl.se/bug/?i=7845 [55] = https://curl.se/bug/?i=7657 [56] = https://curl.se/bug/?i=7821 [57] = https://curl.se/bug/?i=7837 [58] = https://curl.se/bug/?i=7866 [59] = https://curl.se/bug/?i=7885 [60] = https://curl.se/bug/?i=7871 [61] = https://curl.se/bug/?i=7870 [62] = https://curl.se/bug/?i=7869 [63] = https://curl.se/bug/?i=7868 [64] = https://curl.se/bug/?i=7863 [65] = https://curl.se/bug/?i=7862 [66] = https://curl.se/bug/?i=7860 [67] = https://github.com/curl/curl/commit/8a16e54#r57374914 [68] = https://curl.se/bug/?i=7844 [69] = https://curl.se/bug/?i=7892 [70] = https://curl.se/bug/?i=7891 [71] = https://curl.se/bug/?i=7889 [72] = https://curl.se/bug/?i=7889 [73] = https://curl.se/bug/?i=7889 [74] = https://curl.se/bug/?i=7889 [75] = https://curl.se/bug/?i=7917 [76] = https://curl.se/bug/?i=7889 [77] = https://curl.se/bug/?i=7890 [78] = https://curl.se/bug/?i=7888 [79] = https://curl.se/bug/?i=7887 [80] = https://curl.se/bug/?i=7916 [81] = https://github.com/curl/curl/issues/7626 [82] = https://curl.se/bug/?i=7884 [83] = https://curl.se/bug/?i=7912 [84] = https://curl.se/bug/?i=7927 [85] = https://curl.se/bug/?i=7879 [86] = https://curl.se/bug/?i=7911 [87] = https://curl.se/bug/?i=7911 [88] = https://curl.se/bug/?i=7941 [89] = https://curl.se/bug/?i=7877 [90] = https://curl.se/bug/?i=7939 [92] = https://curl.se/bug/?i=7909 [93] = https://curl.se/bug/?i=7910 [94] = https://curl.se/bug/?i=7908 [95] = https://curl.se/bug/?i=7898 [96] = https://curl.se/bug/?i=7905 [97] = https://curl.se/bug/?i=7905 [98] = https://curl.se/bug/?i=7905 [99] = https://curl.se/bug/?i=7905 [100] = https://curl.se/bug/?i=7895 [101] = https://curl.se/bug/?i=7904 [102] = https://curl.se/bug/?i=7842 [103] = https://curl.se/bug/?i=7501 [104] = https://curl.se/bug/?i=7924 [105] = https://curl.se/bug/?i=7902 [106] = https://curl.se/bug/?i=7901 [107] = https://curl.se/bug/?i=7936 [108] = https://curl.se/bug/?i=7929 [110] = https://curl.se/bug/?i=7933 [111] = https://curl.se/bug/?i=7925 [112] = https://curl.se/bug/?i=7926 [114] = https://curl.se/bug/?i=7923 [115] = https://curl.se/bug/?i=6973