curl/RELEASE-NOTES
2022-04-18 10:27:55 +02:00

254 lines
11 KiB
Plaintext

curl and libcurl 7.83.0
Public curl releases: 207
Command line options: 247
curl_easy_setopt() options: 295
Public functions in libcurl: 88
Contributors: 2620
This release includes the following changes:
o curl: add %header{name} experimental support in -w handling
o curl: add %{header_json} experimental support in -w handling
o curl: add --no-clobber [28]
o curl: add --remove-on-error [11]
o header api: add curl_easy_header and curl_easy_nextheader [56]
o msh3: add support for QUIC and HTTP/3 using msh3 [84]
This release includes the following bugfixes:
o appveyor: add Cygwin build [77]
o appveyor: only add MSYS2 to PATH where required [78]
o BearSSL: add CURLOPT_SSL_CIPHER_LIST support [27]
o BearSSL: add CURLOPT_SSL_CTX_FUNCTION support [26]
o BINDINGS.md: add Hollywood binding [34]
o CI: Do not use buildconf. Instead, just use: autoreconf -fi [42]
o CI: install Python package impacket to run SMB test 1451 [5]
o configure.ac: move -pthread CFLAGS setting back where it used to be [14]
o configure: bump the copyright year range int the generated output
o connecache: remove duplicate connc->closure_handle check [90]
o connect: make Curl_getconnectinfo work with conn cache from share handle [22]
o connect: use TCP_KEEPALIVE only if TCP_KEEPIDLE is not defined [6]
o curl/system.h: update ifdef condition for MCST-LCC compiler [4]
o curl: error out if -T and -d are used for the same URL [99]
o curl: error out when options need features not present in libcurl [18]
o curl: fix segmentation fault for empty output file names. [60]
o curl_easy_header: fix typos in documentation [74]
o CURLOPT_DISALLOW_USERNAME_IN_URL.3: use uppercase URL
o CURLOPT_PREQUOTE.3: only works for FTP file transfers, not dirs [79]
o CURLOPT_PROGRESSFUNCTION.3: fix typo in example [63]
o CURLSHOPT_UNLOCKFUNC.3: fix the callback prototype [9]
o docs/HYPER.md: updated to reflect current hyper build needs
o docs/opts: Mention Schannel client cert type is P12 [50]
o docs: Fix missing semicolon in example code [102]
o docs: lots of minor language polish [51]
o English: use American spelling consistently [95]
o fail.d: tweak the description [101]
o firefox-db2pem.sh: make the shell script safer [47]
o ftp: fix error message for partial file upload [61]
o gen.pl: change wording for mutexed options [98]
o GHA: add openssl3 jobs moved over from zuul [88]
o GHA: build hyper with nightly rustc [7]
o GHA: move bearssl jobs over from zuul [85]
o gha: move the event-based test over from Zuul [59]
o gtls: fix build for disabled TLS-SRP [48]
o http2: handle DONE called for the paused stream [69]
o http2: RST the stream if we stop it on our own will [67]
o http: close the stream (not connection) on time condition abort [68]
o http: reject header contents with nul bytes [41]
o http: return error on colon-less HTTP headers [31]
o http: streamclose "already downloaded" [57]
o hyper: fix status_line() return code [13]
o hyper: no h2c support [33]
o infof: consistent capitalization of warning messages [103]
o ipv4/6.d: clarify that they are about using IP addresses [3]
o json.d: fix typo (overriden -> overridden) [24]
o keepalive-time.d: It takes many probes to detect brokenness [29]
o lib/warnless.[ch]: only check for WIN32 and ignore _WIN32 [45]
o lib670: avoid double check result [71]
o lib: #ifdef on USE_HTTP2 better [65]
o lib: fix some misuse of curlx_convert_wchar_to_UTF8 [38]
o lib: remove exclamation marks [100]
o libssh: fix build with old libssh versions [12]
o libssh: Improve fix for missing SSH_S_ stat macros [10]
o libssh: unstick SFTP transfers when done event-based [58]
o mbedtls: remove 'protocols' array from backend when ALPN is not used [66]
o mbedtls: remove server_fd from backend [91]
o mk-ca-bundle.pl: Use stricter logic to process the certificates [39]
o mk-ca-bundle.vbs: delete this script in favor of mk-ca-bundle.pl [8]
o mlc_config.json: add file to ignore known troublesome URLs [35]
o mqtt: better handling of TCP disconnect mid-message [55]
o ngtcp2: add client certificate authentication for OpenSSL [15]
o ngtcp2: disconnect the QUIC connection proper [19]
o ngtcp2: enlarge H3_SEND_SIZE [82]
o ngtcp2: fix HTTP/3 upload stall and avoid busy loop [83]
o ngtcp2: fix memory leak [80]
o ngtcp2: fix QUIC_IDLE_TIMEOUT [94]
o ngtcp2: make curl 1ms faster [93]
o ngtcp2: remove remote_addr which is not used in a meaningful way [81]
o ngtcp2: update to work after recent ngtcp2 updates [62]
o ngtcp2: use token when detecting :status header field [92]
o nonblock: restore setsockopt method to curlx_nonblock [20]
o openssl: check SSL_get_peer_cert_chain return value [1]
o openssl: enable CURLOPT_SSL_EC_CURVES with BoringSSL [23]
o openssl: fix CN check error code [21]
o options: remove mistaken space before paren in prototype
o perl: removed a double semicolon at end of line [64]
o pop3/smtp: return *WEIRD_SERVER_REPLY when not understood [43]
o projects/README: converted to markdown [76]
o projects: Update VC version names for VS2017, VS2022 [52]
o rtsp: don't let CSeq error override earlier errors [37]
o runtests: add 'bearssl' as testable feature [87]
o runtests: make 'oldlibssh' be before 0.9.4 [2]
o schannel: remove dead code that will never run [89]
o scripts/copyright.pl: ignore the new mlc_config.json file
o scripts: move three scripts from lib/ to scripts/ [44]
o test1135: sync with recent API updates [54]
o test1459: disable for oldlibssh [53]
o test375: fix line endings on Windows [40]
o test386: Fix an incorrect test markup tag
o test718: edited slightly to return better HTTP [32]
o tests/server/util.h: align WIN32 condition with util.c [46]
o tests: refactor server/socksd.c to support --unix-socket [96]
o timediff.[ch]: add curlx helper functions for timeval conversions [86]
o tls: make mbedtls and NSS check for h2, not nghttp2 [70]
o tool and tests: force flush of all buffers at end of program [17]
o tool_cb_hdr: Turn the Location: into a terminal hyperlink [30]
o tool_listhelp.c: uppercase URL
o tool_operate: fix a scan-build warning [16]
o tool_paramhlp: use feof(3) to identify EOF correctly when using fread(3) [97]
o vtls: provide a unified APLN-disagree string for all backends [75]
o vtls: use a backend standard message for "ALPN: offers %s" [73]
o vtls: use a generic "ALPN, server accepted" message [72]
o winbuild/README.md: fixup dead link [36]
o winbuild: Add a Visual Studio example to the README [49]
o wolfssl: fix compiler error without IPv6 [25]
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:
Alejandro R. Sedeño, Andreas Falkenhahn, Andrey Alifanov,
anon00000000 on github, Balakrishnan Balasubramanian, Boris Verkhovskiy,
Christian Schmitz, Colin Leroy, Dan Fandrich, Daniel Gustafsson,
Daniel Stenberg, Daniel Valenzuela, Don J Olmstead, Emanuele Torre,
Evangelos Foutras, Francisco Olarte, Frank Meier, Gisle Vanem, Ian Blanes,
Jan Venekamp, Jean-Philippe Menil, Jenny Heino, Joseph Chen,
jurisuk on github, Kristoffer Gleditsch, Leandro Coutinho, Marcel Raad,
Marc Hörsken, Matteo Baccan, mehatzri on github, Michael Kaufmann,
Michał Antoniak, Nick Banks, Nick Coghlan, Paul Howarth, Paweł Kowalski,
Peter Korsgaard, pheiduck on github, r-a-sattarov on github, Ray Satiro,
Rianov Viacheslav, Robert Brose, Robert Charles Muir, Samuel Henrique,
Sascha Zengler, Taras Kushnir, Tatsuhiro Tsujikawa, Timothe Litt,
Viktor Szakats, HexTheDragon
(50 contributors)
References to bug reports and discussions on issues:
[1] = https://curl.se/bug/?i=8579
[2] = https://curl.se/bug/?i=8548
[3] = https://curl.se/bug/?i=8543
[4] = https://curl.se/bug/?i=8546
[5] = https://curl.se/bug/?i=8544
[6] = https://curl.se/bug/?i=8539
[7] = https://curl.se/bug/?i=8545
[8] = https://curl.se/bug/?i=8412
[9] = https://curl.se/bug/?i=8573
[10] = https://curl.se/bug/?i=8588
[11] = https://curl.se/bug/?i=8503
[12] = https://curl.se/bug/?i=8574
[13] = https://curl.se/bug/?i=8572
[14] = https://curl.se/bug/?i=8541
[15] = https://curl.se/bug/?i=8522
[16] = https://curl.se/bug/?i=8565
[17] = https://curl.se/bug/?i=8516
[18] = https://curl.se/bug/?i=8565
[19] = https://curl.se/bug/?i=8534
[20] = https://curl.se/bug/?i=8562
[21] = https://curl.se/bug/?i=8559
[22] = https://curl.se/bug/?i=8524
[23] = https://curl.se/bug/?i=8553
[24] = https://curl.se/bug/?i=8557
[25] = https://curl.se/bug/?i=8550
[26] = https://curl.se/bug/?i=8478
[27] = https://curl.se/bug/?i=8477
[28] = https://curl.se/bug/?i=7708
[29] = https://curl.se/bug/?i=8570
[30] = https://curl.se/bug/?i=7963
[31] = https://curl.se/bug/?i=8610
[32] = https://github.com/hyperium/hyper/issues/2783
[33] = https://curl.se/bug/?i=8605
[34] = https://curl.se/bug/?i=8609
[35] = https://curl.se/bug/?i=8597
[36] = https://curl.se/bug/?i=8597
[37] = https://curl.se/bug/?i=8525
[38] = https://curl.se/bug/?i=8521
[39] = https://curl.se/bug/?i=8411
[40] = https://curl.se/bug/?i=8599
[41] = https://curl.se/bug/?i=8601
[42] = https://curl.se/bug/?i=8596
[43] = https://curl.se/bug/?i=8506
[44] = https://curl.se/bug/?i=8625
[45] = https://curl.se/bug/?i=8594
[46] = https://curl.se/bug/?i=8594
[47] = https://curl.se/bug/?i=8616
[48] = https://curl.se/mail/lib-2022-03/0046.html
[49] = https://curl.se/bug/?i=8592
[50] = https://curl.se/bug/?i=8587
[51] = https://curl.se/bug/?i=8646
[52] = https://curl.se/bug/?i=8447
[53] = https://curl.se/bug/?i=8622
[54] = https://curl.se/bug/?i=8620
[55] = https://hackerone.com/reports/1521610
[56] = https://curl.se/bug/?i=8593
[57] = https://curl.se/bug/?i=8665
[58] = https://curl.se/bug/?i=8490
[59] = https://curl.se/bug/?i=8490
[60] = https://curl.se/bug/?i=8606
[61] = https://curl.se/bug/?i=8637
[62] = https://curl.se/bug/?i=8638
[63] = https://curl.se/bug/?i=8636
[64] = https://curl.se/bug/?i=8709
[65] = https://curl.se/bug/?i=8661
[66] = https://curl.se/bug/?i=8663
[67] = https://curl.se/bug/?i=8664
[68] = https://curl.se/bug/?i=8664
[69] = https://curl.se/bug/?i=8626
[70] = https://curl.se/bug/?i=8656
[71] = https://curl.se/bug/?i=8660
[72] = https://curl.se/bug/?i=8657
[73] = https://curl.se/bug/?i=8657
[74] = https://curl.se/bug/?i=8694
[75] = https://curl.se/bug/?i=8643
[76] = https://curl.se/bug/?i=8652
[77] = https://curl.se/bug/?i=8693
[78] = https://curl.se/bug/?i=8693
[79] = https://curl.se/bug/?i=8602
[80] = https://curl.se/bug/?i=8691
[81] = https://curl.se/bug/?i=8689
[82] = https://curl.se/bug/?i=8690
[83] = https://curl.se/bug/?i=8688
[84] = https://curl.se/bug/?i=8517
[85] = https://curl.se/bug/?i=8684
[86] = https://curl.se/bug/?i=8595
[87] = https://curl.se/bug/?i=8684
[88] = https://curl.se/bug/?i=8683
[89] = https://curl.se/bug/?i=8677
[90] = https://curl.se/bug/?i=8676
[91] = https://curl.se/bug/?i=8682
[92] = https://curl.se/bug/?i=8679
[93] = https://curl.se/bug/?i=8678
[94] = https://curl.se/bug/?i=8678
[95] = https://curl.se/bug/?i=8673
[96] = https://curl.se/bug/?i=8687
[97] = https://curl.se/bug/?i=8701
[98] = https://curl.se/bug/?i=8716
[99] = https://curl.se/bug/?i=8704
[100] = https://curl.se/bug/?i=8713
[101] = https://curl.se/bug/?i=8714
[102] = https://curl.se/bug/?i=8697
[103] = https://curl.se/bug/?i=8711