RELEASE-NOTES 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. curl and libcurl 8.2.0
  2. Public curl releases: 220
  3. Command line options: 255
  4. curl_easy_setopt() options: 303
  5. Public functions in libcurl: 91
  6. Contributors: 2922
  7. This release includes the following changes:
  8. o curl: add --ca-native and --proxy-ca-native [24]
  9. o curl: add --trace-ids [53]
  10. o CURLOPT_MAIL_RCPT_ALLOWFAILS: replace CURLOPT_MAIL_RCPT_ALLLOWFAILS [5]
  11. o haproxy: add --haproxy-clientip flag to set client IPs [23]
  12. o lib: add CURLINFO_CONN_ID and CURLINFO_XFER_ID [54]
  13. This release includes the following bugfixes:
  14. o bufq: make write/pass methods more robust [21]
  15. o build: drop unused/redundant `HAVE_WINLDAP_H` [25]
  16. o cf-socket: don't bypass fclosesocket callback if cancelled before connect [114]
  17. o cf-socket: move ctx declaration under HAVE_GETPEERNAME [91]
  18. o cf-socket: skip getpeername()/getsockname for TFTP [65]
  19. o checksrc: modernise perl file open [87]
  20. o checksrc: quote the file name to work with "funny" letters [93]
  21. o CI: brew fix for openssl in default path [116]
  22. o CI: don't install impacket if tests are not run
  23. o CI: enable parallel make in more builds
  24. o circleci: install impacket & wolfssl 5.6.0 [1]
  25. o cmake: add support for "unity" builds [13]
  26. o cmake: make use of snprintf [102]
  27. o cmake: stop CMake from quietly ignoring missing Brotli [81]
  28. o configure: add check for ldap_init_fd [80]
  29. o configure: fix run-compiler for old /bin/sh [4]
  30. o configure: the --without forms of the options are also gone [79]
  31. o connect-timeout.d: mention that the DNS lookup is included [85]
  32. o curl.h: include <sys/select.h> for vxworks [78]
  33. o curl: count uploaded data to stop at the originally given size [14]
  34. o curl: return error when asked to use an unsupported HTTP version [113]
  35. o curl_easy_nextheader.3: add missing open parenthesis examples [74]
  36. o curl_log: evaluate log statement only when transfer is verbose [8]
  37. o curl_mprintf.3: minor fix of the example
  38. o curl_pushheader_byname/bynum.3: document in their own man pages [37]
  39. o curl_url_set: enforce the max string length check for all parts [38]
  40. o CURLOPT_AWS_SIGV4.3: remove unused variable from example [11]
  41. o CURLOPT_INFILESIZE.3: mention -1 triggers chunked [55]
  42. o CURLOPT_MIMEPOST.3: clarify what setting to NULL means [95]
  43. o CURLOPT_SSH_PRIVATE_KEYFILE.3: expand on the file search [31]
  44. o docs/libcurl/libcurl.3: cleanups and improvements [46]
  45. o docs: add more .IP after .RE to fix indentation of generate paragraphs [82]
  46. o docs: fix missing parameter names in examples [41]
  47. o docs: update CURLOPT_UPLOAD.3 [63]
  48. o docs: update HTTP3.md for newer ngtcp2 and nghttp3 [28]
  49. o docs: use a space after RFC when spelling out RFC numbers [105]
  50. o example/connect-to: show CURLOPT_CONNECT_TO [47]
  51. o example/crawler: also set CURLOPT_AUTOREFERER [35]
  52. o example/crawler: make it use a few more options
  53. o example/default-scheme: set the default scheme for schemeless URLs [67]
  54. o example/hsts-preload: show one way to HSTS preload [68]
  55. o example/http2-download: set CURLOPT_BUFFERSIZE [34]
  56. o example/ipv6: feature CURLOPT_ADDRESS_SCOPE in use [27]
  57. o example/maxconnects: set maxconnect example [98]
  58. o example/opensslthreadlock: remove [59]
  59. o examples/ftpuploadresume.c: add use of CURLOPT_ACCEPTTIMEOUT_MS [39]
  60. o examples/http-options: show how to send "OPTIONS *" [69]
  61. o examples/https.c: use CURLOPT_CA_CACHE_TIMEOUT [19]
  62. o examples/multi-debugcallback.c: avoid the bool typedef [29]
  63. o examples/smtp-mime: use CURLOPT_MAIL_RCPT_ALLOWFAILS [71]
  64. o examples/unixsocket.c: example using CURLOPT_UNIX_SOCKET_PATH [40]
  65. o examples/websocket.c: websocket example using CONNECT_ONLY [17]
  66. o examples: make use of CURLOPT_(REDIR_|)PROTOCOLS_STR [70]
  67. o fopen: fix conversion warning on 32-bit Android [49]
  68. o fopen: optimize [101]
  69. o hostip.c: Move macOS-specific calls into global init call [104]
  70. o HTTP/2: upload handling fixes [56]
  71. o http2: better support for --limit-rate [7]
  72. o http2: error stream resets with code CURLE_HTTP2_STREAM [84]
  73. o http2: fix crash in handling stream weights [76]
  74. o http2: fix variable type [50]
  75. o http2: h2 and h2-PROXY connection alive check fixes [83]
  76. o http2: raise header limitations above and beyond [73]
  77. o http2: send HEADER & DATA together if possible [99]
  78. o http2: treat initial SETTINGS as a WINDOW_UPDATE [100]
  79. o HTTP3.md: update openssl version [57]
  80. o http3/ngtcp2: upload EAGAIN handling [108]
  81. o http: rectify the outgoing Cookie: header field size check [72]
  82. o hyper: fix EOF handling on input [66]
  83. o hyper: unslow [51]
  84. o imap-append.c: update to make it more likely to work [106]
  85. o imap: Provide method to disable SASL if it is advertised [75]
  86. o krb5: add typecast to please Coverity
  87. o libcurl-url.3: also mention CURLUPART_ZONEID
  88. o libcurl-ws.3. WebSocket API overview [48]
  89. o libssh2: provide error message when setting host key type fails [9]
  90. o libssh2: use custom memory functions [12]
  91. o ngtcp2: assigning timeout, but value is overwritten before used [103]
  92. o ngtcp2: build with 0.17.0 and nghttp3 0.13.0 [96]
  93. o ngtcp2: use ever increasing timestamp in io [32]
  94. o quiche: avoid NULL deref in debug logging [97]
  95. o quiche: fix defects found in latest coverity report [94]
  96. o quote.d: fix indentation of generated paragraphs [86]
  97. o runtests: abort test run after failure without -a [3]
  98. o runtests: better handle ^C during slow tests
  99. o runtests: consistently write the test check summary block
  100. o runtests: create multiple test runners when requested [20]
  101. o runtests: include missing valgrind package [89]
  102. o runtests: make test file directories in log/N [44]
  103. o runtests: rename server command file
  104. o runtests: use more consistent failure lines
  105. o runtests: work around a perl without SIGUSR1 [88]
  106. o runtests; give each server a unique log lock file [43]
  107. o scripts: Fix GHA matrix job detection in cijobs.pl
  108. o sectransp: fix EOF handling [92]
  109. o system.h: remove __IBMC__/__IBMCPP__ guards and apply to all z/OS compiles [10]
  110. o test2600: fix the description [90]
  111. o test427: verify sending more cookies than fit in a 8190 bytes line [61]
  112. o tests/http: Add mod_h2 directive `H2ProxyRequests` [77]
  113. o tests/servers.pm: pick unused port number with a server socket [16]
  114. o tests/servers: generate temp names in /tmp for unix domain sockets [6]
  115. o tests: fix error messages & handling around sockets [30]
  116. o tests: improve reliability of TFTP tests
  117. o testutil: allow multiple %-operators on the same line [62]
  118. o timeval: use CLOCK_MONOTONIC_RAW if available [52]
  119. o tls13-ciphers.d: include Schannel [36]
  120. o tool: remove exclamation marks from error/warning messages
  121. o tool: remove newlines from all helpf/notef/warnf/errorf calls [15]
  122. o tool_easysrc.h: correct `easysrc_perform` for `CURL_DISABLE_LIBCURL_OPTION` [109]
  123. o tool_getparam: fix comment [22]
  124. o tool_operate: allow cookie lines up to 8200 bytes [60]
  125. o tool_parsecfg: accept line lengths up to 10M [115]
  126. o tool_urlglob: use curl_off_t instead of longs [2]
  127. o tool_writeout_json: fix encoding of control characters [107]
  128. o transfer: clear credentials when redirecting to absolute URL [64]
  129. o urlapi: have *set(PATH) prepend a slash if one is missing [42]
  130. o urlapi: scheme must start with alpha [26]
  131. o vtls: avoid memory leak if sha256 call fails [58]
  132. o websocket-cb: example doing WebSocket download using callback [18]
  133. o wolfssl: detect when TLS 1.2 support is not built into wolfssl [111]
  134. o wolfssl: support setting CA certificates as blob [110]
  135. o ws: make the curl_ws_meta() return pointer a const [45]
  136. This release includes the following known bugs:
  137. o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
  138. Planned upcoming removals include:
  139. o gskit
  140. o NSS
  141. o support for space-separated NOPROXY patterns
  142. o support for the original legacy mingw version 1
  143. See https://curl.se/dev/deprecate.html for details
  144. This release would not have looked like this without help, code, reports and
  145. advice from friends like these:
  146. ad0p on github, Alejandro R. Sedeño, Andy Fiddaman, Anssi Kolehmainen,
  147. Antoine du Hamel, atjg on github, Boris Verkhovskiy, Brian Nixon,
  148. Chris Paulson-Ellis, Chris Talbot, Cristian Rodríguez, Dan Fandrich,
  149. Daniel Stenberg, Derzsi Dániel, Dion Williams, divinity76, Emanuele Torre,
  150. Frank Gevaerts, Gisle Vanem, Graham Campbell, Harry Sintonen, humbleacolyte,
  151. Igor Todorovski, James Fuller, James Lucas, jbgoog on github,
  152. Juan Cruz Viotti, JustAnotherArchivist on github, Karthikdasari0423,
  153. lizhuang0630 on github, MaeIsBad on github, Marcel Raad, Margu,
  154. Mark Seuffert, Michał Petryka, Oleg Jukovec, Ondřej Koláček, Paul Wise,
  155. Pedro Henrique, Philip Heiduck, Pontakorn Prasertsuk, Raito Bezarius,
  156. Ray Satiro, SaltyMilk, Sean McArthur, selmelc on hackerone, Sergey Alirzaev,
  157. Sheshadri.V, Stan Hu, Stefan Eissing, Tatsuhiro Tsujikawa, Viktor Szakats,
  158. vlkl-sap on github, Wyatt OʼDay
  159. (54 contributors)
  160. References to bug reports and discussions on issues:
  161. [1] = https://curl.se/bug/?i=11221
  162. [2] = https://curl.se/bug/?i=11224
  163. [3] = https://curl.se/bug/?i=11225
  164. [4] = https://curl.se/bug/?i=11228
  165. [5] = https://curl.se/bug/?i=11218
  166. [6] = https://curl.se/bug/?i=11152
  167. [7] = https://curl.se/bug/?i=11115
  168. [8] = https://curl.se/bug/?i=11238
  169. [9] = https://curl.se/bug/?i=11240
  170. [10] = https://curl.se/bug/?i=11241
  171. [11] = https://curl.se/bug/?i=11302
  172. [12] = https://curl.se/bug/?i=11235
  173. [13] = https://curl.se/bug/?i=11095
  174. [14] = https://curl.se/bug/?i=11222
  175. [15] = https://curl.se/bug/?i=11226
  176. [16] = https://curl.se/bug/?i=11220
  177. [17] = https://curl.se/bug/?i=11262
  178. [18] = https://curl.se/bug/?i=11260
  179. [19] = https://curl.se/bug/?i=11290
  180. [20] = https://curl.se/bug/?i=10818
  181. [21] = https://curl.se/bug/?i=11247
  182. [22] = https://curl.se/bug/?i=11253
  183. [23] = https://curl.se/bug/?i=10779
  184. [24] = https://curl.se/bug/?i=11049
  185. [25] = https://curl.se/bug/?i=11245
  186. [26] = https://curl.se/bug/?i=11249
  187. [27] = https://curl.se/bug/?i=11282
  188. [28] = https://curl.se/bug/?i=11295
  189. [29] = https://curl.se/bug/?i=11299
  190. [30] = https://curl.se/bug/?i=11265
  191. [31] = https://curl.se/bug/?i=11289
  192. [32] = https://curl.se/bug/?i=11288
  193. [34] = https://curl.se/bug/?i=11284
  194. [35] = https://curl.se/bug/?i=11283
  195. [36] = https://curl.se/bug/?i=11271
  196. [37] = https://curl.se/bug/?i=11286
  197. [38] = https://curl.se/bug/?i=11273
  198. [39] = https://curl.se/bug/?i=11277
  199. [40] = https://curl.se/bug/?i=11276
  200. [41] = https://curl.se/bug/?i=11278
  201. [42] = https://curl.se/mail/lib-2023-06/0015.html
  202. [43] = https://curl.se/bug/?i=11231
  203. [44] = https://curl.se/bug/?i=11267
  204. [45] = https://curl.se/bug/?i=11261
  205. [46] = https://curl.se/bug/?i=11317
  206. [47] = https://curl.se/bug/?i=11340
  207. [48] = https://curl.se/bug/?i=11314
  208. [49] = https://curl.se/bug/?i=11313
  209. [50] = https://curl.se/bug/?i=11312
  210. [51] = https://curl.se/bug/?i=11203
  211. [52] = https://curl.se/bug/?i=11291
  212. [53] = https://curl.se/bug/?i=11185
  213. [54] = https://curl.se/bug/?i=11185
  214. [55] = https://curl.se/bug/?i=11304
  215. [56] = https://curl.se/bug/?i=11342
  216. [57] = https://curl.se/bug/?i=11297
  217. [58] = https://curl.se/bug/?i=11306
  218. [59] = https://curl.se/bug/?i=11341
  219. [60] = https://curl.se/bug/?i=11303
  220. [61] = https://curl.se/bug/?i=11303
  221. [62] = https://curl.se/bug/?i=11303
  222. [63] = https://curl.se/bug/?i=11300
  223. [64] = https://curl.se/bug/?i=11410
  224. [65] = https://curl.se/bug/?i=11332
  225. [66] = https://curl.se/bug/?i=11377
  226. [67] = https://curl.se/bug/?i=11338
  227. [68] = https://curl.se/bug/?i=11337
  228. [69] = https://curl.se/bug/?i=11333
  229. [70] = https://curl.se/bug/?i=11334
  230. [71] = https://curl.se/bug/?i=11335
  231. [72] = https://curl.se/bug/?i=11331
  232. [73] = https://curl.se/bug/?i=11405
  233. [74] = https://curl.se/bug/?i=11409
  234. [75] = https://curl.se/bug/?i=10041
  235. [76] = https://curl.se/bug/?i=11379
  236. [77] = https://curl.se/bug/?i=11392
  237. [78] = https://curl.se/bug/?i=11356
  238. [79] = https://curl.se/bug/?i=11378
  239. [80] = https://curl.se/bug/?i=11372
  240. [81] = https://curl.se/bug/?i=11376
  241. [82] = https://curl.se/bug/?i=11375
  242. [83] = https://curl.se/bug/?i=11368
  243. [84] = https://curl.se/bug/?i=11357
  244. [85] = https://curl.se/bug/?i=11370
  245. [86] = https://curl.se/bug/?i=11371
  246. [87] = https://curl.se/bug/?i=11358
  247. [88] = https://curl.se/bug/?i=11350
  248. [89] = https://curl.se/bug/?i=11364
  249. [90] = https://curl.se/bug/?i=11354
  250. [91] = https://curl.se/bug/?i=11352
  251. [92] = https://curl.se/bug/?i=11427
  252. [93] = https://curl.se/bug/?i=11437
  253. [94] = https://curl.se/bug/?i=11455
  254. [95] = https://curl.se/bug/?i=11430
  255. [96] = https://curl.se/bug/?i=11428
  256. [97] = https://curl.se/bug/?i=11454
  257. [98] = https://curl.se/bug/?i=11343
  258. [99] = https://curl.se/bug/?i=11420
  259. [100] = https://curl.se/bug/?i=11450
  260. [101] = https://curl.se/bug/?i=11419
  261. [102] = https://curl.se/bug/?i=11423
  262. [103] = https://curl.se/bug/?i=11453
  263. [104] = https://curl.se/bug/?i=11252
  264. [105] = https://curl.se/bug/?i=11382
  265. [106] = https://curl.se/bug/?i=10300
  266. [107] = https://curl.se/bug/?i=11414
  267. [108] = https://curl.se/bug/?i=11389
  268. [109] = https://curl.se/bug/?i=11398
  269. [110] = https://curl.se/bug/?i=11445
  270. [111] = https://curl.se/bug/?i=11444
  271. [113] = https://curl.se/bug/?i=11440
  272. [114] = https://curl.se/bug/?i=11439
  273. [115] = https://curl.se/bug/?i=11431
  274. [116] = https://curl.se/bug/?i=11413