RELEASE-NOTES 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. curl and libcurl 7.71.0
  2. Public curl releases: 192
  3. Command line options: 232
  4. curl_easy_setopt() options: 277
  5. Public functions in libcurl: 82
  6. Contributors: 2189
  7. This release includes the following changes:
  8. o CURLOPT_SSL_OPTIONS: optional use of Windows' CA store (with openssl) [10]
  9. o setopt: add CURLOPT_PROXY_ISSUERCERT(_BLOB) for coherency [31]
  10. o setopt: support certificate options in memory with struct curl_blob [41]
  11. o tool: Add option --retry-all-errors to retry on any error [27]
  12. This release includes the following bugfixes:
  13. o *_sspi: fix bad uses of CURLE_NOT_BUILT_IN [21]
  14. o all: fix codespell errors [75]
  15. o altsvc: fix parser for lines ending with CRLF [74]
  16. o appveyor: add non-debug plain autotools-based build [90]
  17. o appveyor: disable flaky test 1501 and ignore broken 1056
  18. o appveyor: disable test 1139 instead of ignoring it
  19. o asyn-*: remove support for never-used NULL entry pointers [19]
  20. o azure: use matrix strategy to avoid configuration redundancy [83]
  21. o build: disable more code/data when built without proxy support [84]
  22. o checksrc: enhance the ASTERISKSPACE and update code accordingly [52]
  23. o cirrus: disable SFTP and SCP tests [7]
  24. o CMake: add ENABLE_ALT_SVC option
  25. o CMake: add HTTP/3 support (ngtcp2+nghttp3, quiche) [34]
  26. o CMake: add libssh build support [37]
  27. o CMake: do not build test programs by default [30]
  28. o CMake: fix runtests.pl with CMake, add new test targets [29]
  29. o CMake: rebuild Makefile.inc.cmake when Makefile.inc changes [58]
  30. o configure: fix pthread check with static boringssl
  31. o configure: repair the check if argv can be written to [47]
  32. o configure: the wolfssh backend does not provide SCP [57]
  33. o connect: make happy eyeballs work for QUIC (again) [16]
  34. o curl.1: Quote globbed URLs [51]
  35. o curl: remove -J "informational" written on stdout [36]
  36. o doc: add missing closing parenthesis in CURLINFO_SSL_VERIFYRESULT.3 [5]
  37. o doc: Rename VERSIONS to VERSIONS.md as it already has Markdown syntax [20]
  38. o docs/HTTP3: add qlog to the quiche build instruction
  39. o docs/options-in-versions: which version added each cmdline option [53]
  40. o docs: unify protocol lists [54]
  41. o dynbuf: introduce internal generic dynamic buffer functions [17]
  42. o easy: fix dangling pointer on easy_perform fail [26]
  43. o examples/ephiperfifo: turn off interval when setting timerfd [79]
  44. o examples/http2-down/upload: add error checks [78]
  45. o examples: remove asiohiper.cpp [4]
  46. o FILEFORMAT: add more features that tests can depend on
  47. o ftp: make domore_getsock() return the secondary socket properly
  48. o ftp: mark return-ignoring calls to Curl_GetFTPResponse with (void) [64]
  49. o ftp: shut down the secondary connection properly when SSL is used [43]
  50. o GnuTLS: Backend support for CURLINFO_SSL_VERIFYRESULT [9]
  51. o hostip: make Curl_printable_address not return anything [63]
  52. o hostip: on macOS avoid DoH when given a numerical IP address [69]
  53. o http2: keep trying to send pending frames after req.upload_done [40]
  54. o http2: simplify and clean up trailer handling [6]
  55. o libcurl.pc: Merge Libs.private into Libs for static-only builds [28]
  56. o libssh2: improved error output for wrong quote syntax [39]
  57. o libssh2: set the expected total size in SCP upload init [2]
  58. o libtest/cmake: Remove commented code [13]
  59. o list-only.d: this option existed already in 4.0
  60. o ngtcp2: cleanup memory when failing to connect [70]
  61. o ngtcp2: fix build with current ngtcp2 master implementing draft 28 [76]
  62. o ngtcp2: introduce qlog support [23]
  63. o OpenSSL: have CURLOPT_CRLFILE imply CURLSSLOPT_NO_PARTIALCHAIN [55]
  64. o quiche: clean up memory properly when failing to connect [71]
  65. o quiche: enable qlog output [14]
  66. o Revert "buildconf: use find -execdir" [38]
  67. o Revert "ssh: ignore timeouts during disconnect" [67]
  68. o runtests: remove sleep calls [18]
  69. o runtests: show elapsed test time with higher precision (ms)
  70. o select: always use Sleep in Curl_wait_ms on Win32 [82]
  71. o select: fix overflow protection in Curl_socket_check [22]
  72. o sendf: make failf() use the mvsnprintf() return code [62]
  73. o server/sws: fix asan warning on use of uninitialized variable
  74. o sha256: fixed potentially uninitialized variable [61]
  75. o sockfilt: make select_ws stop waiting on exit signal event
  76. o source cleanup: remove all custom typedef structs [42]
  77. o test1167: fixes in badsymbols.pl [73]
  78. o test1177: look for curl.h in source directory [1]
  79. o test1238: avoid tftpd being busy for tests shortly following [33]
  80. o test613.pl: make tests 613 and 614 work with OpenSSH for Windows [8]
  81. o test75: Remove precheck test
  82. o tests: add https-proxy support to the test suite [49]
  83. o tests: add support for SSH server variant specific transfer paths [24]
  84. o tests: make test 1248 + 1249 use %NOLISTENPORT [3]
  85. o tests: pick a random port number for SSH [12]
  86. o tests: run stunnel for HTTPS and FTPS on dynamic ports [11]
  87. o timeouts: change millisecond timeouts to timediff_t from time_t [86]
  88. o tool: fixup a few --help descriptions [56]
  89. o tool: support UTF-16 command line on Windows [46]
  90. o tool_operate: fixed potentially uninitialized variables [60]
  91. o tool_paramhlp: fixed potentially uninitialized strtol() variable [59]
  92. o transfer: close connection after excess data has been read [66]
  93. o travis: add "qlog" as feature in the quiche build
  94. o travis: Add ngtcp2 and quiche tests for CMake
  95. o travis: upgrade to bionic, clang-9, improve readability [35]
  96. o typecheck-gcc.h: CURLINFO_PRIVATE does not need a 'char *' [44]
  97. o unit1604.c: fix implicit conv from 'SANITIZEcode' to 'CURLcode' [88]
  98. o url: accept "any length" credentials for proxy auth [72]
  99. o url: alloc the download buffer at transfer start [85]
  100. o url: make the updated credentials URL-encoded in the URL [48]
  101. o url: reject too long input when parsing credentials [25]
  102. o url: sort the protocol schemes in rough popularity order [32]
  103. o urlapi: accept :: as a valid IPv6 address [15]
  104. o urldata: leave the HTTP method untouched in the set.* struct [45]
  105. o vauth/cleartext: fix theoretical integer overflow [50]
  106. o vtls: Extract and simplify key log file handling from OpenSSL
  107. o wolfssl: add SSLKEYLOGFILE support [65]
  108. o write-out.d: added "response_code"
  109. This release includes the following known bugs:
  110. o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html)
  111. This release would not have looked like this without help, code, reports and
  112. advice from friends like these:
  113. Billyzou0741326 on github, Brian Carpenter, Dan Fandrich, Daniel Stenberg,
  114. Emil Engler, Estanislau Augé-Pujadas, Gilles Vollant, Gregory Jefferis,
  115. huzunhao on github, James Le Cuirot, Jeroen Ooms, John Simpson, Kamil Dudka,
  116. Kane York, Lucas Pardue, Maksim Stsepanenka, Marcel Raad, Marc Hörsken,
  117. Max Peal, Michael Kaufmann, Murugan Balraj, Neal Poole, Pavel Volgarev,
  118. Peter Wang, Peter Wu, Radoslav Georgiev, Ray Satiro, Rikard Falkeborn,
  119. rl1987 on github, Saleem Abdulrasool, Samuel Marks, Siva Sivaraman,
  120. therealhirudo on github, Thomas Bouzerar, Viktor Szakats, Vyron Tsingaras,
  121. Werner Stolz, Will Roberts, Коваленко Анатолий Викторович, kotoriのねこ
  122. (40 contributors)
  123. Thanks! (and sorry if I forgot to mention someone)
  124. References to bug reports and discussions on issues:
  125. [1] = https://curl.haxx.se/bug/?i=5310
  126. [2] = https://curl.haxx.se/mail/archive-2020-05/0000.html
  127. [3] = https://curl.haxx.se/bug/?i=5318
  128. [4] = https://curl.haxx.se/bug/?i=5090
  129. [5] = https://curl.haxx.se/bug/?i=5320
  130. [6] = https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=22030
  131. [7] = https://curl.haxx.se/bug/?i=5315
  132. [8] = https://curl.haxx.se/bug/?i=5328
  133. [9] = https://curl.haxx.se/bug/?i=5287
  134. [10] = https://curl.haxx.se/bug/?i=4346
  135. [11] = https://curl.haxx.se/bug/?i=5267
  136. [12] = https://curl.haxx.se/bug/?i=5273
  137. [13] = https://curl.haxx.se/bug/?i=5311
  138. [14] = https://curl.haxx.se/bug/?i=5341
  139. [15] = https://curl.haxx.se/bug/?i=5344
  140. [16] = https://curl.haxx.se/bug/?i=5334
  141. [17] = https://curl.haxx.se/bug/?i=5300
  142. [18] = https://curl.haxx.se/bug/?i=5323
  143. [19] = https://curl.haxx.se/bug/?i=5324
  144. [20] = https://curl.haxx.se/bug/?i=5325
  145. [21] = https://curl.haxx.se/bug/?i=5355
  146. [22] = https://curl.haxx.se/bug/?i=5286
  147. [23] = https://curl.haxx.se/bug/?i=5353
  148. [24] = https://curl.haxx.se/bug/?i=5298
  149. [25] = https://curl.haxx.se/bug/?i=5383
  150. [26] = https://curl.haxx.se/bug/?i=5363
  151. [27] = https://curl.haxx.se/bug/?i=5185
  152. [28] = https://curl.haxx.se/bug/?i=5373
  153. [29] = https://curl.haxx.se/bug/?i=5358
  154. [30] = https://curl.haxx.se/bug/?i=5368
  155. [31] = https://curl.haxx.se/bug/?i=5431
  156. [32] = https://curl.haxx.se/bug/?i=5377
  157. [33] = https://curl.haxx.se/bug/?i=5364
  158. [34] = https://curl.haxx.se/bug/?i=5359
  159. [35] = https://curl.haxx.se/bug/?i=5370
  160. [36] = https://curl.haxx.se/mail/archive-2020-05/0044.html
  161. [37] = https://curl.haxx.se/bug/?i=5372
  162. [38] = https://curl.haxx.se/bug/?i=5483
  163. [39] = https://curl.haxx.se/bug/?i=5474
  164. [40] = https://curl.haxx.se/bug/?i=1410
  165. [41] = https://curl.haxx.se/bug/?i=5357
  166. [42] = https://curl.haxx.se/bug/?i=5338
  167. [43] = https://curl.haxx.se/bug/?i=5340
  168. [44] = https://curl.haxx.se/bug/?i=5432
  169. [45] = https://curl.haxx.se/bug/?i=5499
  170. [46] = https://curl.haxx.se/bug/?i=3784
  171. [47] = https://curl.haxx.se/bug/?i=5470
  172. [48] = https://github.com/jeroen/curl/issues/224
  173. [49] = https://curl.haxx.se/bug/?i=5399
  174. [50] = https://curl.haxx.se/bug/?i=5391
  175. [51] = https://github.com/curl/curl/issues/5388
  176. [52] = https://curl.haxx.se/bug/?i=5386
  177. [53] = https://curl.haxx.se/bug/?i=5381
  178. [54] = https://curl.haxx.se/bug/?i=5384
  179. [55] = https://curl.haxx.se/bug/?i=5374
  180. [56] = https://curl.haxx.se/bug/?i=5379
  181. [57] = https://curl.haxx.se/bug/?i=5387
  182. [58] = https://curl.haxx.se/bug/?i=5469
  183. [59] = https://curl.haxx.se/bug/?i=5417
  184. [60] = https://curl.haxx.se/bug/?i=5416
  185. [61] = https://curl.haxx.se/bug/?i=5414
  186. [62] = https://curl.haxx.se/bug/?i=5413
  187. [63] = https://curl.haxx.se/bug/?i=5411
  188. [64] = https://curl.haxx.se/bug/?i=5412
  189. [65] = https://curl.haxx.se/bug/?i=5327
  190. [66] = https://curl.haxx.se/bug/?i=5440
  191. [67] = https://curl.haxx.se/mail/lib-2020-05/0068.html
  192. [69] = https://curl.haxx.se/bug/?i=5454
  193. [70] = https://curl.haxx.se/bug/?i=5447
  194. [71] = https://curl.haxx.se/bug/?i=5450
  195. [72] = https://curl.haxx.se/bug/?i=5448
  196. [73] = https://curl.haxx.se/bug/?i=5442
  197. [74] = https://curl.haxx.se/bug/?i=5445
  198. [75] = https://curl.haxx.se/bug/?i=5452
  199. [76] = https://curl.haxx.se/bug/?i=5444
  200. [78] = https://curl.haxx.se/bug/?i=5463
  201. [79] = https://curl.haxx.se/bug/?i=5485
  202. [82] = https://curl.haxx.se/bug/?i=5489
  203. [83] = https://curl.haxx.se/bug/?i=5468
  204. [84] = https://curl.haxx.se/bug/?i=5466
  205. [85] = https://curl.haxx.se/bug/?i=5472
  206. [86] = https://curl.haxx.se/bug/?i=5479
  207. [88] = https://curl.haxx.se/bug/?i=5476
  208. [90] = https://curl.haxx.se/bug/?i=5477