RELEASE-NOTES 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  1. curl and libcurl 7.87.0
  2. Public curl releases: 212
  3. Command line options: 249
  4. curl_easy_setopt() options: 302
  5. Public functions in libcurl: 91
  6. Contributors: 2771
  7. This release includes the following changes:
  8. o curl: add --url-query [52]
  9. o CURLOPT_QUICK_EXIT: don't wait for DNS thread on exit [75]
  10. o lib: add CURL_WRITEFUNC_ERROR to signal write callback error [47]
  11. o openssl: reduce CA certificate bundle reparsing by caching [11]
  12. o version: add a feature names array to curl_version_info_data [67]
  13. This release includes the following bugfixes:
  14. o altsvc: fix rejection of negative port numbers [144]
  15. o aws_sigv4: consult x-%s-content-sha256 for payload hash [102]
  16. o aws_sigv4: fix typos in aws_sigv4.c [101]
  17. o base64: better alloc size [124]
  18. o base64: encode without using snprintf [123]
  19. o base64: faster base64 decoding [120]
  20. o build: assume assert.h is always available [111]
  21. o build: assume errno.h is always available [110]
  22. o c-hyper: CONNECT respones are not server responses [137]
  23. o c-hyper: fix multi-request mechanism [115]
  24. o CI: Change FreeBSD image from 12.3 to 12.4 [108]
  25. o CI: LGTM.com will be shut down in December 2022 [112]
  26. o ci: Remove zuul fuzzing job as it's superseded by CIFuzz
  27. o cmake: check for cross-compile, not for toolchain [54]
  28. o CMake: fix build with `CURL_USE_GSSAPI` [78]
  29. o cmake: really enable warnings with clang [25]
  30. o cmake: set the soname on the shared library [140]
  31. o cmdline-opts/gen.pl: fix the linkifier [64]
  32. o cmdline-opts/page-footer: remove long option nroff formatting
  33. o config-mac: define HAVE_SYS_IOCTL_H [107]
  34. o config-mac: fix typo: size_T -> size_t [125]
  35. o config-mac: remove HAVE_SYS_SELECT_H [116]
  36. o config-win32: fix SIZEOF_OFF_T for MSVC and old MinGW [41]
  37. o configure: require fork for NTLM-WB [36]
  38. o contributors.sh: actually use $CURLWWW instead of just setting it [129]
  39. o cookie: compare cookie prefixes case insensitively [14]
  40. o cookie: expire cookies at once when max-age is negative [45]
  41. o cookie: open cookie jar as a binary file [89]
  42. o curl-openssl.m4: do not add $prefix/include/openssl to CPPFLAGS [90]
  43. o curl-rustls.m4: on macOS, rustls also needs the Security framework [44]
  44. o curl.h: include <sys/select.h> on SerenityOS [104]
  45. o curl.h: name all public function parameters [118]
  46. o curl.h: reword comment to not use deprecated option [132]
  47. o curl: override the numeric locale and set "C" by force [60]
  48. o curl: timeout in the read callback [15]
  49. o curl_endian: remove Curl_write64_le from header [81]
  50. o curl_get_line: allow last line without newline char [88]
  51. o curl_path: do not add '/' if homedir ends with one [4]
  52. o curl_url_get.3: remove spurious backtick [127]
  53. o curl_url_set.3: document CURLU_DISALLOW_USER [139]
  54. o curl_url_set.3: fix typo [148]
  55. o CURLMOPT_SOCKETFUNCTION.3: clarify CURL_POLL_REMOVE [1]
  56. o CURLOPT_COOKIEFILE.3: advice => advise [131]
  57. o CURLOPT_DEBUGFUNCTION.3: do not assume nul-termination in example [31]
  58. o CURLOPT_DEBUGFUNCTION.3: emphasize that incoming data is "raw" [130]
  59. o CURLOPT_POST.3: Explain setting to 0 changes request type [61]
  60. o docs/curl_ws_send: Fixed typo in websocket docs [114]
  61. o docs/EARLY-RELEASE.md: how to determine an early release [37]
  62. o docs/examples: spell correction ('Retrieve') [119]
  63. o docs/INSTALL.md: expand on static builds [62]
  64. o docs/WEBSOCKET.md: explain the URL use [71]
  65. o docs: add missing parameters for --retry flag [2]
  66. o docs: add more "SEE ALSO" links to CA related pages [82]
  67. o docs: explain the noproxy CIDR notation support [17]
  68. o docs: extend the dump-header documentation [150]
  69. o docs: remove performance note in CURLOPT_SSL_VERIFYPEER [13]
  70. o examples/10-at-a-time: fix possible skipped final transfers [85]
  71. o examples: update descriptions [83]
  72. o ftp: support growing files with CURLOPT_IGNORE_CONTENT_LENGTH [96]
  73. o gen.pl: do not generate CURLHELP bitmask lines > 79 characters [10]
  74. o GHA: clarify workflows permissions, set least possible privilege [79]
  75. o GHA: NSS use clang instead of clang-9 [103]
  76. o gnutls: use common gnutls init and verify code for ngtcp2 [98]
  77. o headers: add endif comments [51]
  78. o HTTP-COOKIES.md: mention that http://localhost is a secure context [76]
  79. o HTTP-COOKIES.md: update the 6265bis link to draft-11 [70]
  80. o http: do not send PROXY more than once [46]
  81. o http: fix the ::1 comparison for IPv6 localhost for cookies [155]
  82. o http: set 'this_is_a_follow' in the Location: logic [40]
  83. o http: use the IDN decoded name in HSTS checks [154]
  84. o hyper: classify headers as CONNECT and 1XX [56]
  85. o hyper: fix handling of hyper_task's when reusing the same address [33]
  86. o idn: remove Curl_win32_ascii_to_idn [153]
  87. o INSTALL: update operating systems and CPU archs [91]
  88. o KNOWN_BUGS: remove eight entries [50]
  89. o lib1560: add some basic IDN host name tests [151]
  90. o lib: connection filters (cfilter) addition to curl: [43]
  91. o lib: feature deprecation warnings in gcc >= 4.3 [58]
  92. o lib: fix some type mismatches and remove unneeded typecasts [12]
  93. o lib: parse numbers with fixed known base 10 [77]
  94. o lib: remove bad set.opt_no_body assignments [42]
  95. o lib: rewind BEFORE request instead of AFTER previous [65]
  96. o lib: sync guard for Curl_getaddrinfo_ex() definition and use [6]
  97. o lib: use size_t or int etc instead of longs [145]
  98. o libcurl-errors.3: remove duplicate word [3]
  99. o libssh2: return error when ssh_hostkeyfunc returns error [121]
  100. o limit-rate.d: see also --rate
  101. o log2changes.pl: wrap long lines at 80 columns [59]
  102. o Makefile.mk: address minor issues [87]
  103. o Makefile.mk: improve a GNU Make hack [122]
  104. o Makefile.mk: portable Makefile.m32 [86]
  105. o maketgz: set the right version in lib/libcurl.plist [53]
  106. o mime: relax easy/mime structures binding [94]
  107. o misc: Fix incorrect spelling [113]
  108. o misc: remove duplicated include files [28]
  109. o misc: typo and grammar fixes [23]
  110. o negtelnetserver.py: have it call its close() method [68]
  111. o netrc.d: provide mutext info [63]
  112. o netware: remove leftover traces [80]
  113. o noproxy: also match with adjacent comma [19]
  114. o noproxy: guard against empty hostnames in noproxy check [136]
  115. o noproxy: tailmatch like in 7.85.0 and earlier [35]
  116. o nroff-scan.pl: detect double highlights
  117. o ntlm: improve comment for encrypt_des [55]
  118. o ntlm: silence ubsan warning about copying from null target_info pointer [69]
  119. o openssl/mbedtls: use %d for outputing port with failf (int) [72]
  120. o openssl: prefix errors with '[lib]/[version]: ' [105]
  121. o os400: use platform socklen_t in Curl_getnameinfo_a [18]
  122. o page-header: grammar improvement (display transfer rate) [126]
  123. o proxy: refactor haproxy protocol handling as connection filter [57]
  124. o README.md: remove badges and xmas-tree garnish [9]
  125. o rtsp: fix RTSP auth [49]
  126. o runtests: --no-debuginfod now disables DEBUGINFOD_URLS [100]
  127. o runtests: do CRLF replacements per section only [97]
  128. o scripts/checksrc.pl: detect duplicated include files [29]
  129. o sendf: change Curl_read_plain to wrap Curl_recv_plain [48]
  130. o sendf: remove unnecessary if condition [26]
  131. o setup: do not require __MRC__ defined for Mac OS 9 builds [117]
  132. o smb/telnet: do not free the protocol struct in *_done() [152]
  133. o socks: fix username max size is 255 (0xFF) [146]
  134. o spellcheck.words: remove 'github' as an accepted word [22]
  135. o ssl-reqd.d: clarify that this is for upgrading connections only [138]
  136. o strcase: use curl_str(n)equal for case insensitive matches [8]
  137. o styled-output.d: this option does not work on Windows [93]
  138. o system.h: fix socklen_t, curl_off_t, long long for Classic Mac OS [133]
  139. o system.h: support 64-bit curl_off_t for NonStop 32-bit [21]
  140. o test1421: fix typo [109]
  141. o test3026: reduce runtime in legacy mingw builds [73]
  142. o tests/sshserver.pl: re-enable ssh-rsa while using openssh 8.8+
  143. o tests: add authorityInfoAccess to generated certs [99]
  144. o tests: add HTTP/3 test case, custom location for proper nghttpx [106]
  145. o tls: backends use connection filters for IO, enabling HTTPS-proxy [92]
  146. o tool: determine the correct fopen option for -D [95]
  147. o tool_cfgable: free the ssl_ec_curves on exit [142]
  148. o tool_cfgable: make socks5_gssapi_nec a boolean [128]
  149. o tool_formparse: avoid clobbering on function params [135]
  150. o tool_getparam: make --no-get work as the opposite of --get [39]
  151. o tool_operate: provide better errmsg for -G with bad URL [16]
  152. o tool_operate: when aborting, make sure there is a non-NULL error buffer [20]
  153. o tool_paramhlp: free the proto strings on exit [141]
  154. o url: move back the IDN conversion of proxy names [74]
  155. o urlapi: reject more bad letters from the host name: &+() [143]
  156. o urldata: change port num storage to int and unsigned short [66]
  157. o vms: remove SIZEOF_SHORT [134]
  158. o vtls: fix build without proxy support [38]
  159. o vtls: localization of state data in filters [84]
  160. o WEBSOCKET.md: fix broken link [30]
  161. o Websocket: fixes for partial frames and buffer updates [7]
  162. o websockets: fix handling of partial frames [32]
  163. o windows: fail early with a missing windres in autotools [5]
  164. o windows: fix linking .rc to shared curl with autotools [24]
  165. o winidn: drop WANT_IDN_PROTOTYPES [27]
  166. o ws: if no connection is around, return error [149]
  167. o ws: return CURLE_NOT_BUILT_IN when websockets not built in [34]
  168. o x509asn1: avoid freeing unallocated pointers [147]
  169. This release includes the following known bugs:
  170. o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
  171. Planned upcoming removals include:
  172. o NSS
  173. o Support for systems without 64 bit data types
  174. See https://curl.se/dev/deprecate.html for details
  175. This release would not have looked like this without help, code, reports and
  176. advice from friends like these:
  177. Adam Averay, Alexandre Ferrieux, Alex Xu, Ali Utku Selen, Andrei Rybak,
  178. Andy Alt, Andy Stamp, Anthony Hu, AtariDreams on github, Ayesh Karunaratne,
  179. Baitinq on github, Boris Verkhovskiy, BratSinot on github, Casey Bodley,
  180. Christian Schmitz, Christopher Sauer, Christoph Reiter, Dan Fandrich,
  181. Daniel Faust, Daniel Gustafsson, Daniel Stenberg, David Benjamin,
  182. Diogo Teles Sant'Anna, Egor Pugin, Emanuele Torre, Emil Engler,
  183. Emil Österlund, Eric Vigeant, Erik Janssen, Fata Nugraha, Felipe Gasper,
  184. Frank Gevaerts, Geeknik Labs, Gisle Vanem, godmar on github, Henning Schild,
  185. Hiroki Kurosawa, Hirotaka Tagawa, Ikko Ashimine, Jakub Zakrzewski,
  186. Joel Depooter, John Sherrill, Jon Rumsey, jvreelanda on github,
  187. Karthikdasari0423 on github, Kenneth Myhra, Lorenzo Miniero, Luca Niccoli,
  188. Marcel Raad, Marc Hörsken, Mark Gaiser, Max Dymond, Michael Drake,
  189. Michael Kaufmann, Michael Musset, Mikhail Kuznetsov,
  190. MonkeybreadSoftware on github, Nathan Moinvaziri, Oskar Sigvardsson,
  191. Patrick Monnerat, Patrick Schlangen, Peter Piekarski, Philip Chan,
  192. Philip Heiduck, Philip Sanetra, Prithvi MK, Randall S. Becker, Ray Satiro,
  193. Rob de Wit, Robin Marx, Ryan Schmidt, Sean McArthur, Stefan Eissing,
  194. Stephan Guilloux, Stuart Henderson, Thomas Glanzmann, Trail of Bits,
  195. u20221022 on github, Viktor Szakats, xianghongai on github, Xì Gà,
  196. xtonik on github, Zespre Schmidt
  197. (83 contributors)
  198. References to bug reports and discussions on issues:
  199. [1] = https://curl.se/bug/?i=9799
  200. [2] = https://curl.se/bug/?i=9848
  201. [3] = https://curl.se/bug/?i=9846
  202. [4] = https://curl.se/bug/?i=9844
  203. [5] = https://curl.se/bug/?i=9781
  204. [6] = https://curl.se/bug/?i=9734
  205. [7] = https://curl.se/bug/?i=9890
  206. [8] = https://curl.se/bug/?i=9837
  207. [9] = https://curl.se/bug/?i=9833
  208. [10] = https://curl.se/bug/?i=9834
  209. [11] = https://curl.se/bug/?i=9620
  210. [12] = https://curl.se/bug/?i=9835
  211. [13] = https://curl.se/bug/?i=9832
  212. [14] = https://curl.se/bug/?i=9863
  213. [15] = https://sourceforge.net/p/curl/bugs/846/
  214. [16] = https://curl.se/bug/?i=9889
  215. [17] = https://curl.se/bug/?i=9818
  216. [18] = https://curl.se/bug/?i=9811
  217. [19] = https://curl.se/bug/?i=9813
  218. [20] = https://curl.se/bug/?i=9865
  219. [21] = https://curl.se/bug/?i=9817
  220. [22] = https://curl.se/bug/?i=9810
  221. [23] = https://curl.se/bug/?i=9802
  222. [24] = https://curl.se/bug/?i=9803
  223. [25] = https://curl.se/bug/?i=9783
  224. [26] = https://curl.se/bug/?i=9801
  225. [27] = https://curl.se/bug/?i=9793
  226. [28] = https://curl.se/bug/?i=9796
  227. [29] = https://curl.se/bug/?i=9796
  228. [30] = https://curl.se/mail/lib-2022-10/0097.html
  229. [31] = https://curl.se/mail/lib-2022-11/0016.html
  230. [32] = https://curl.se/bug/?i=9861
  231. [33] = https://curl.se/bug/?i=9840
  232. [34] = https://curl.se/bug/?i=9851
  233. [35] = https://curl.se/bug/?i=9842
  234. [36] = https://curl.se/bug/?i=9847
  235. [37] = https://curl.se/bug/?i=9820
  236. [38] = https://curl.se/bug/?i=9895
  237. [39] = https://curl.se/bug/?i=9891
  238. [40] = https://curl.se/bug/?i=9885
  239. [41] = https://curl.se/bug/?i=9712
  240. [42] = https://curl.se/bug/?i=9888
  241. [43] = https://curl.se/bug/?i=9855
  242. [44] = https://curl.se/bug/?i=9883
  243. [45] = https://curl.se/bug/?i=9930
  244. [46] = https://curl.se/bug/?i=9442
  245. [47] = https://curl.se/bug/?i=9874
  246. [48] = https://curl.se/bug/?i=9431
  247. [49] = https://curl.se/bug/?i=4750
  248. [50] = https://curl.se/bug/?i=9871
  249. [51] = https://curl.se/bug/?i=9853
  250. [52] = https://curl.se/bug/?i=9691
  251. [53] = https://curl.se/bug/?i=9866
  252. [54] = https://curl.se/bug/?i=9921
  253. [55] = https://curl.se/bug/?i=9903
  254. [56] = https://curl.se/bug/?i=9947
  255. [57] = https://curl.se/bug/?i=9893
  256. [58] = https://curl.se/bug/?i=9667
  257. [59] = https://curl.se/bug/?i=9896
  258. [60] = https://curl.se/bug/?i=9969
  259. [61] = https://curl.se/bug/?i=9849
  260. [62] = https://curl.se/bug/?i=9944
  261. [63] = https://curl.se/bug/?i=9899
  262. [64] = https://curl.se/bug/?i=9899
  263. [65] = https://curl.se/bug/?i=9735
  264. [66] = https://curl.se/bug/?i=9946
  265. [67] = https://curl.se/bug/?i=9583
  266. [68] = https://curl.se/bug/?i=9894
  267. [69] = https://curl.se/bug/?i=9898
  268. [70] = https://curl.se/bug/?i=9940
  269. [71] = https://curl.se/bug/?i=9936
  270. [72] = https://curl.se/bug/?i=10001
  271. [73] = https://curl.se/bug/?i=9412
  272. [74] = https://curl.se/bug/?i=9937
  273. [75] = https://curl.se/bug/?i=2975
  274. [76] = https://curl.se/bug/?i=9938
  275. [77] = https://curl.se/bug/?i=9933
  276. [78] = https://curl.se/bug/?i=9017
  277. [79] = https://curl.se/bug/?i=9928
  278. [80] = https://curl.se/bug/?i=9966
  279. [81] = https://curl.se/bug/?i=9968
  280. [82] = https://curl.se/bug/?i=9959
  281. [83] = https://curl.se/bug/?i=9960
  282. [84] = https://curl.se/bug/?i=9919
  283. [85] = https://curl.se/bug/?i=9953
  284. [86] = https://curl.se/bug/?i=9764
  285. [87] = https://curl.se/bug/?i=10000
  286. [88] = https://curl.se/bug/?i=9973
  287. [89] = https://curl.se/bug/?i=10017
  288. [90] = https://curl.se/bug/?i=9989
  289. [91] = https://curl.se/bug/?i=9994
  290. [92] = https://curl.se/bug/?i=9962
  291. [93] = https://curl.se/bug/?i=10082
  292. [94] = https://curl.se/bug/?i=9927
  293. [95] = https://curl.se/bug/?i=10074
  294. [96] = https://curl.se/bug/?i=9772
  295. [97] = https://curl.se/bug/?i=10009
  296. [98] = https://curl.se/bug/?i=10007
  297. [99] = https://curl.se/bug/?i=9980
  298. [100] = https://curl.se/bug/?i=9950
  299. [101] = https://curl.se/bug/?i=10008
  300. [102] = https://curl.se/bug/?i=9804
  301. [103] = https://curl.se/bug/?i=9978
  302. [104] = https://curl.se/bug/?i=10006
  303. [105] = https://curl.se/bug/?i=10004
  304. [106] = https://curl.se/bug/?i=9031
  305. [107] = https://curl.se/bug/?i=10042
  306. [108] = https://curl.se/bug/?i=10051
  307. [109] = https://curl.se/bug/?i=10055
  308. [110] = https://curl.se/bug/?i=9986
  309. [111] = https://curl.se/bug/?i=9985
  310. [112] = https://curl.se/bug/?i=10052
  311. [113] = https://curl.se/bug/?i=10045
  312. [114] = https://curl.se/bug/?i=10081
  313. [115] = https://curl.se/bug/?i=8896
  314. [116] = https://curl.se/bug/?i=10039
  315. [117] = https://curl.se/bug/?i=10037
  316. [118] = https://curl.se/bug/?i=10036
  317. [119] = https://curl.se/bug/?i=10040
  318. [120] = https://curl.se/bug/?i=10032
  319. [121] = https://curl.se/bug/?i=10034
  320. [122] = https://curl.se/bug/?i=10031
  321. [123] = https://curl.se/bug/?i=10026
  322. [124] = https://curl.se/bug/?i=10024
  323. [125] = https://curl.se/bug/?i=10029
  324. [126] = https://curl.se/bug/?i=10068
  325. [127] = https://curl.se/bug/?i=10101
  326. [128] = https://curl.se/bug/?i=10078
  327. [129] = https://curl.se/bug/?i=10064
  328. [130] = https://curl.se/bug/?i=10106
  329. [131] = https://curl.se/bug/?i=10063
  330. [132] = https://curl.se/bug/?i=10062
  331. [133] = https://curl.se/bug/?i=10049
  332. [134] = https://curl.se/bug/?i=10061
  333. [135] = https://curl.se/bug/?i=10046
  334. [136] = https://curl.se/bug/?i=10057
  335. [137] = https://curl.se/bug/?i=8853
  336. [138] = https://curl.se/bug/?i=10093
  337. [139] = https://curl.se/bug/?i=10099
  338. [140] = https://curl.se/bug/?i=10023
  339. [141] = https://curl.se/bug/?i=10098
  340. [142] = https://curl.se/bug/?i=10097
  341. [143] = https://curl.se/bug/?i=10096
  342. [144] = https://curl.se/bug/?i=10095
  343. [145] = https://curl.se/bug/?i=10088
  344. [146] = https://curl.se/bug/?i=10105
  345. [147] = https://curl.se/bug/?i=10087
  346. [148] = https://curl.se/bug/?i=10089
  347. [149] = https://curl.se/bug/?i=10084
  348. [150] = https://curl.se/bug/?i=10085
  349. [151] = https://curl.se/bug/?i=10094
  350. [152] = https://curl.se/bug/?i=10112
  351. [153] = https://curl.se/bug/?i=10094
  352. [154] = https://curl.se/bug/?i=10111
  353. [155] = https://curl.se/bug/?i=10120