1curl and libcurl 7.80.0 2 3 Public curl releases: 204 4 Command line options: 243 5 curl_easy_setopt() options: 294 6 Public functions in libcurl: 86 7 Contributors: 2533 8 9This release includes the following changes: 10 11 o CURLOPT_MAXLIFETIME_CONN: maximum allowed lifetime for conn reuse [25] 12 o CURLOPT_PREREQFUNCTION: add new callback [17] 13 o libssh2: add SHA256 fingerprint support [4] 14 o urlapi: add curl_url_strerror() [21] 15 o urlapi: support UNC paths in file: URLs on Windows [20] 16 o wolfssl: allow setting of groups/curves [22] 17 18This release includes the following bugfixes: 19 20 o .github: retry macos "brew install" command on failure [125] 21 o aws-sigv4: make signature work when post data is binary [68] 22 o BINDINGS: URL updates [30] 23 o build: remove checks for WinSock 1 [36] 24 o c-hyper: don't abort CONNECT responses early when auth-in-progress [71] 25 o c-hyper: make Curl_http propagate errors better [50] 26 o c-hyper: make CURLOPT_SUPPRESS_CONNECT_HEADERS work [97] 27 o c-hyper: make test 217 run [74] 28 o c-hyper: use hyper_request_set_uri_parts to make h2 better [39] 29 o checksrc: ignore preprocessor lines [64] 30 o CI/makefiles: introduce dedicated test target [34] 31 o ci: update Lift config to match requirements of curl build [1] 32 o cirrus: remove FreeBSD 11.4 from the matrix [62] 33 o cirrus: switch to openldap24-client [63] 34 o cleanup: constify unmodified static structs [2] 35 o cmake: add CURL_ENABLE_SSL option [46] 36 o cmake: fix error getting LOCATION property on non-imported target [59] 37 o CMake: restore support for SecureTransport on iOS [103] 38 o cmake: with OpenSSL, define OPENSSL_SUPPRESS_DEPRECATED [14] 39 o cmdline-opts: made the 'Added:' field mandatory [37] 40 o configure.ac: replace krb5-config with pkg-config [80] 41 o configure: when hyper is selected, deselect nghttp2 [94] 42 o connect: use sysaddr_un from sys/un.h or custom-defined for windows [23] 43 o curl-confopts.m4: remove --enable/disable-hidden-symbols [70] 44 o curl-openssl.m4: modify library order for openssl linking [40] 45 o curl-openssl: pass argument to sed single-quoted [15] 46 o curl.1: remove mentions of really old version changes [38] 47 o curl: actually append "-" to --range without number only [57] 48 o curl: correct grammar in generated libcurl code [53] 49 o curl: print help descriptions in an aligned right column [16] 50 o curl_gssapi: fix link error on macOS Monterey [55] 51 o curl_multi_socket_action.3: add a "RETURN VALUE" section [106] 52 o curl_ntlm_core: use OpenSSL only if DES is available [42] 53 o Curl_updateconninfo: store addresses for QUIC connections too [90] 54 o CURLOPT_ALTSVC_CTRL.3: mention conn reuse is preferred [126] 55 o CURLOPT_HSTSWRITEFUNCTION.3: using CURLOPT_HSTS_CTRL is required [114] 56 o CURLOPT_HTTPHEADER.3: add descripion for specific headers [35] 57 o docs/HTTP3: improve build instructions [102] 58 o docs/Makefile.am: repair 'make html' [52] 59 o docs: fix typo in CURLOPT_TRAILERFUNCTION example [93] 60 o docs: provide "RETURN VALUE" section for more func manpages [105] 61 o docs: reduce use of "very" [107] 62 o doh: remove experimental code for DoH with GET [61] 63 o examples/htmltidy: correct wrong printf() use [66] 64 o examples/imap-append: fix end-of-data check [7] 65 o ftp: make the MKD retry to retry once per directory [113] 66 o gen.pl: insert the current date and version in generated man page [11] 67 o gen.pl: replace leading single quotes with \(aq [110] 68 o http2: make getsock not wait for write if there's no remote window [56] 69 o HTTP3: fix the HTTP/3 Explained book link [27] 70 o http: fix Basic auth with empty name field in URL [24] 71 o http: reject HTTP response codes < 100 [92] 72 o http: remove assert that breaks hyper [47] 73 o http: set content length earlier [67] 74 o http_proxy: make hyper CONNECT() return the correct error code [51] 75 o http_proxy: multiple CONNECT with hyper done better [78] 76 o hyper: disable test 1294 since hyper doesn't allow such crazy headers [96] 77 o hyper: does not support disabling CURLOPT_HTTP_TRANSFER_DECODING [72] 78 o hyper: pass the CONNECT line to the debug callback [79] 79 o imap: display quota information [115] 80 o INSTALL: update symbol hiding option [77] 81 o lib/mk-ca-bundle.pl: skip certs passed Not Valid After date [18] 82 o lib: avoid fallthrough cases in switch statements [33] 83 o libcurl.rc: switch out the copyright symbol for plain ASCII [5] 84 o libssh2: Get the version at runtime if possible [12] 85 o limit-rate.d: this is average over several seconds [119] 86 o llist: remove redundant code, branch will not be executed [10] 87 o Makefile.m32: fix to not require OpenSSL with -libssh2 or -rtmp options [100] 88 o maketgz: redirect updatemanpages.pl output to /dev/null 89 o man pages: require all to use the same section header order [101] 90 o manpage: adjust the asterisk in some SYNOPSIS sections [82] 91 o md5: fix compilation with OpenSSL 3.0 API [43] 92 o misc: fix a few issues on MidnightBSD [28] 93 o misc: fix typos in docs and comments [3] 94 o ngtcp2: advertise h3 as well as h3-29 [109] 95 o ngtcp2: compile with the latest nghttp3 [117] 96 o ngtcp2: specify the missing required callback functions [108] 97 o ngtcp2: use latest QUIC TLS RFC9001 [122] 98 o NTLM: use DES_set_key_unchecked with OpenSSL [13] 99 o openssl: if verifypeer is not requested, skip the CA loading [69] 100 o openssl: with OpenSSL 1.1.0+ a failed RAND_status means goaway [44] 101 o Revert "src/tool_filetime: disable -Wformat on mingw for this file" [88] 102 o sasl: binary messages [31] 103 o schannel: fix memory leak due to failed SSL connection [89] 104 o scripts/delta: count command line options in the new file 105 o sendf: accept zero-length data in Curl_client_write() [95] 106 o sha256: use high-level EVP interface for OpenSSL [41] 107 o smooth-gtk-thread.c: enhance the mutex lock use [112] 108 o sws: fix memory leak on exit [49] 109 o test1160: edited to work with hyper [83] 110 o test1173: make manpage-syntax.pl spot \n errors in examples 111 o test1185: verify checksrc [58] 112 o test1266/1267: disabled on hyper: no HTTP/0.9 support [99] 113 o test1287: make work on hyper [98] 114 o test207: accept a different error code for hyper [76] 115 o test262: don't attempt with hyper [73] 116 o test552: updated to work with hyper [87] 117 o test559: add 'HTTP' in keywords [86] 118 o tests/smbserver.py: fix compatibility with impacket 0.9.23+ [104] 119 o tests: add Schannel-specific tests and disable unsupported ones [91] 120 o tests: disable test 2043 [54] 121 o tests: kill some test servers afterwards to avoid locked logfiles [111] 122 o tests: use python3 in test 1451 [48] 123 o tls: remove newline from three infof() calls [85] 124 o tool_cb_prg: make resumed upload progress bar show better [9] 125 o tool_listhelp: easier generated with gen.pl [19] 126 o tool_main: fix typo in comment [29] 127 o tool_operate: a failed etag save now only fails that transfer [124] 128 o URL-SYNTAX: add IMAP UID SEARCH example [81] 129 o url: check the return value of curl_url() [75] 130 o url: set "k->size" -1 at start of request [60] 131 o urlapi: skip a strlen(), pass in zero [65] 132 o urlapi: URL decode percent-encoded host names [26] 133 o version_win32: use actual version instead of manifested version [45] 134 o vtls: Fix a memory leak if an SSL session cannot be added to the cache [8] 135 o wolfssl: use for SHA256, MD4, MD5, and setting DES odd parity [32] 136 o zuul: pin the quiche build to use an older cmake-rs [84] 137 138This release includes the following known bugs: 139 140 o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html) 141 142This release would not have looked like this without help, code, reports and 143advice from friends like these: 144 145 8U61ife on github, a1346054 on github, Abhinav Singh, Alexander Chuykov, 146 Alexander Kanavin, Amaury Denoyelle, Anthony Hu, Axel Morawietz, 147 beslick5 on github, billionai on github, Bo Anderson, Boris Rasin, 148 Dan Fandrich, Daniel Gustafsson, Daniel Stenberg, David Cook, David Hu, 149 Earnestly on github, Eddie Lumpkin, Érico Nogueira, Erik Stenlund, 150 Gisle Vanem, Gleb Ivanovsky, Godwin Stewart, h1zzz on github, Harry Sintonen, 151 Hayden Roche, Jakub Zakrzewski, Jan Mazur, Jeffrey Tolar, Jerome Mao, 152 Joel Depooter, Jonathan Cardoso Machado, Josip Medved, Jun-ya Kato, 153 Kerem Kat, Kevin Burke, Kirill Efimov, Lucas Holt, Malik Idrees Hasan Khan, 154 Marcel Raad, Marc Hörsken, Mats Lindestam, Max Dymond, Michael Afanasiev, 155 Michael Baentsch, Michael Kaufmann, Momoka Yamamoto, Noam Moshe, 156 orycho on github, Patrick Monnerat, Rafał Mikrut, Randall S. Becker, 157 Raul Onitza-Klugman, Ray Satiro, Ricardo Martins, Rick Lane, 158 Rikard Falkeborn, Roger Young, Roy Li, ryancaicse on github, Ryan Mast, 159 Samuel Henrique, Sean Molenaar, Sergey Markelov, Sergio Durigan Junior, 160 sergio-nsk on github, Sharon Brizinov, Stathis Kapnidis, 161 Steini2000 on github, Tatsuhiro Tsujikawa, Thomas M. DuBuisson, 162 tlahn on github, Viktor Szakats, Vitaly Varyvdin, Wyatt O'Day, 163 x2018 on github, Борис Верховский, 164 (78 contributors) 165 166References to bug reports and discussions on issues: 167 168 [1] = https://curl.se/bug/?i=7761 169 [2] = https://curl.se/bug/?i=7759 170 [3] = https://curl.se/bug/?i=7747 171 [4] = https://curl.se/bug/?i=7646 172 [5] = https://curl.se/bug/?i=7765 173 [7] = https://curl.se/bug/?i=7774 174 [8] = https://curl.se/bug/?i=7683 175 [9] = https://curl.se/bug/?i=7760 176 [10] = https://curl.se/bug/?i=7770 177 [11] = https://curl.se/bug/?i=7782 178 [12] = https://curl.se/bug/?i=7768 179 [13] = https://curl.se/bug/?i=7779 180 [14] = https://curl.se/bug/?i=7767 181 [15] = https://curl.se/bug/?i=7758 182 [16] = https://curl.se/bug/?i=7792 183 [17] = https://curl.se/bug/?i=7477 184 [18] = https://curl.se/bug/?i=7801 185 [19] = https://curl.se/bug/?i=7787 186 [20] = https://curl.se/bug/?i=7366 187 [21] = https://curl.se/bug/?i=7605 188 [22] = https://curl.se/bug/?i=7728 189 [23] = https://curl.se/bug/?i=7737 190 [24] = https://curl.se/bug/?i=7819 191 [25] = https://curl.se/mail/lib-2021-09/0058.html 192 [26] = https://curl.se/bug/?i=7830 193 [27] = https://curl.se/bug/?i=7813 194 [28] = https://curl.se/bug/?i=7812 195 [29] = https://curl.se/bug/?i=7811 196 [30] = https://curl.se/bug/?i=7809 197 [31] = https://curl.se/bug/?i=6930 198 [32] = https://curl.se/bug/?i=7806 199 [33] = https://curl.se/bug/?i=7322 200 [34] = https://curl.se/bug/?i=7785 201 [35] = https://curl.se/bug/?i=7829 202 [36] = https://curl.se/bug/?i=7778 203 [37] = https://curl.se/bug/?i=7786 204 [38] = https://curl.se/bug/?i=7786 205 [39] = https://curl.se/bug/?i=7679 206 [40] = https://curl.se/bug/?i=7826 207 [41] = https://curl.se/bug/?i=7808 208 [42] = https://curl.se/bug/?i=7808 209 [43] = https://curl.se/bug/?i=7808 210 [44] = https://curl.se/bug/?i=7840 211 [45] = https://curl.se/bug/?i=7742 212 [46] = https://curl.se/bug/?i=7822 213 [47] = https://curl.se/bug/?i=7852 214 [48] = https://curl.se/bug/?i=7899 215 [49] = https://curl.se/bug/?i=7849 216 [50] = https://curl.se/bug/?i=7851 217 [51] = https://curl.se/bug/?i=7825 218 [52] = https://curl.se/bug/?i=7853 219 [53] = https://curl.se/bug/?i=7802 220 [54] = https://curl.se/bug/?i=7845 221 [55] = https://curl.se/bug/?i=7657 222 [56] = https://curl.se/bug/?i=7821 223 [57] = https://curl.se/bug/?i=7837 224 [58] = https://curl.se/bug/?i=7866 225 [59] = https://curl.se/bug/?i=7885 226 [60] = https://curl.se/bug/?i=7871 227 [61] = https://curl.se/bug/?i=7870 228 [62] = https://curl.se/bug/?i=7869 229 [63] = https://curl.se/bug/?i=7868 230 [64] = https://curl.se/bug/?i=7863 231 [65] = https://curl.se/bug/?i=7862 232 [66] = https://curl.se/bug/?i=7860 233 [67] = https://github.com/curl/curl/commit/8a16e54#r57374914 234 [68] = https://curl.se/bug/?i=7844 235 [69] = https://curl.se/bug/?i=7892 236 [70] = https://curl.se/bug/?i=7891 237 [71] = https://curl.se/bug/?i=7889 238 [72] = https://curl.se/bug/?i=7889 239 [73] = https://curl.se/bug/?i=7889 240 [74] = https://curl.se/bug/?i=7889 241 [75] = https://curl.se/bug/?i=7917 242 [76] = https://curl.se/bug/?i=7889 243 [77] = https://curl.se/bug/?i=7890 244 [78] = https://curl.se/bug/?i=7888 245 [79] = https://curl.se/bug/?i=7887 246 [80] = https://curl.se/bug/?i=7916 247 [81] = https://github.com/curl/curl/issues/7626 248 [82] = https://curl.se/bug/?i=7884 249 [83] = https://curl.se/bug/?i=7912 250 [84] = https://curl.se/bug/?i=7927 251 [85] = https://curl.se/bug/?i=7879 252 [86] = https://curl.se/bug/?i=7911 253 [87] = https://curl.se/bug/?i=7911 254 [88] = https://curl.se/bug/?i=7941 255 [89] = https://curl.se/bug/?i=7877 256 [90] = https://curl.se/bug/?i=7939 257 [91] = https://curl.se/bug/?i=7968 258 [92] = https://curl.se/bug/?i=7909 259 [93] = https://curl.se/bug/?i=7910 260 [94] = https://curl.se/bug/?i=7908 261 [95] = https://curl.se/bug/?i=7898 262 [96] = https://curl.se/bug/?i=7905 263 [97] = https://curl.se/bug/?i=7905 264 [98] = https://curl.se/bug/?i=7905 265 [99] = https://curl.se/bug/?i=7905 266 [100] = https://curl.se/bug/?i=7895 267 [101] = https://curl.se/bug/?i=7904 268 [102] = https://curl.se/bug/?i=7842 269 [103] = https://curl.se/bug/?i=7501 270 [104] = https://curl.se/bug/?i=7924 271 [105] = https://curl.se/bug/?i=7902 272 [106] = https://curl.se/bug/?i=7901 273 [107] = https://curl.se/bug/?i=7936 274 [108] = https://curl.se/bug/?i=7929 275 [109] = https://curl.se/bug/?i=7979 276 [110] = https://curl.se/bug/?i=7933 277 [111] = https://curl.se/bug/?i=7925 278 [112] = https://curl.se/bug/?i=7926 279 [113] = https://curl.se/bug/?i=7967 280 [114] = https://curl.se/bug/?i=7923 281 [115] = https://curl.se/bug/?i=6973 282 [117] = https://curl.se/bug/?i=7978 283 [119] = https://curl.se/bug/?i=7970 284 [122] = https://curl.se/bug/?i=7960 285 [124] = https://curl.se/bug/?i=7945 286 [125] = https://curl.se/bug/?i=7955 287 [126] = https://curl.se/bug/?i=7957 288