| curl and libcurl 7.70.0 |
| |
| Public curl releases: 191 |
| Command line options: 231 |
| curl_easy_setopt() options: 270 |
| Public functions in libcurl: 82 |
| Contributors: 2165 |
| |
| This release includes the following changes: |
| |
| o curl: add --ssl-revoke-best-effort to allow a "best effort" revocation check [5] |
| o mqtt: add new experimental protocol [57] |
| o schannel: add "best effort" revocation check option: CURLSSLOPT_REVOKE_BEST_EFFORT [5] |
| o writeout: support to generate JSON output with '%{json}' [8] |
| |
| This release includes the following bugfixes: |
| |
| o appveyor: add Unicode winbuild jobs [88] |
| o appveyor: completely disable tests that fail to timeout early |
| o appveyor: show failed tests in log even if test is ignored |
| o appveyor: sort builds by type and add two new variants |
| o appveyor: turn disabled tests into ignored result tests |
| o appveyor: use random test server ports based upon APPVEYOR_API_URL [52] |
| o build: fixed build for systems with select() in unistd.h [43] |
| o buildconf: avoid using tempfile when removing files [90] |
| o checksrc: warn on obvious conditional blocks on the same line as if() [44] |
| o CI-fuzz: increase fuzz time to 40 minutes [59] |
| o ci/tests: fix Azure Pipelines not running Windows containers [25] |
| o CI: add build with ngtcp2 + gnutls on Travis CI |
| o CI: bring GitHub Actions fuzzing job in line with macOS jobs |
| o CI: migrate macOS jobs from Azure and Travis CI to GitHub Actions [36] |
| o CI: remove default Ubuntu build from GitHub Actions |
| o cirrus: no longer ignore test 504 which is working again |
| o cirrus: re-enable the FreeBSD 13 CI builds [29] |
| o cleanup: insert newline after if() conditions |
| o cmake: add aliases so exported target names are available in tree [73] |
| o cmake: add CMAKE_MSVC_RUNTIME_LIBRARY [45] |
| o cmake: add support for building with wolfSSL [9] |
| o cmake: Avoid MSVC C4273 warnings in send/recv checks [92] |
| o cmdline: fix handling of OperationConfig linked list (--next) [24] |
| o compressed.d: stress that the headers are not modified [80] |
| o config: remove all defines of HAVE_DES_H [37] |
| o configure: convert -I to -isystem as a last step [2] |
| o configure: document 'compiler_num' for gcc [4] |
| o configure: don't check for Security.framework when cross-compiling [47] |
| o configure: fix -pedantic-errors for GCC 5 and later [3] |
| o configure: remove use of -vec-report0 from CFLAGS with icc [71] |
| o connect: happy eyeballs cleanup [15] |
| o connect: store connection info for QUIC connections [68] |
| o copyright: fix out-of-date copyright ranges and missing headers [38] |
| o curl-functions.m4: remove inappropriate AC_REQUIRE [26] |
| o curl.h: remnove CURL_VERSION_ESNI. Never supported nor documented [49] |
| o curl.h: update comment typo [61] |
| o curl: allow both --etag-compare and --etag-save with same file name [56] |
| o curl_setup: define _WIN32_WINNT_[OS] symbols [27] |
| o CURLINFO_CONDITION_UNMET: return true for 304 http status code [54] |
| o CURLINFO_NUM_CONNECTS: improve accuracy [28] |
| o CURLOPT_WRITEFUNCTION.3: add inline example and new see-also [70] |
| o dist: add mail-rcpt-allowfails.d to the tarball [35] |
| o docs/make: generate curl.1 from listed files only [33] |
| o docs: add warnings about FILE: URLs on Windows [19] |
| o easy: fix curl_easy_duphandle for builds missing IPv6 that use c-ares [18] |
| o examples/sessioninfo.c: add include to fix compiler warning [42] |
| o github actions: run when pushed to master or */ci + PRs [64] |
| o gnutls: bump lowest supported version to 3.1.10 [89] |
| o gnutls: Don't skip really long certificate fields [86] |
| o gnutls: ensure TLS 1.3 when SRP isn't requested [79] |
| o gopher: check remaining time left during write busy loop [78] |
| o gskit: use our internal select wrapper for portability [12] |
| o http2: Fix erroneous debug message that h2 connection closed [21] |
| o http: don't consider upload done if the request isn't completely sent off [67] |
| o http: free memory when Alt-Used header creation fails due to OOM [98] |
| o lib670: use the same Win32 API check as all other lib tests |
| o lib: fix typos in comments and errormessages |
| o lib: never define CURL_CA_BUNDLE with a getenv [51] |
| o libssh: Use new ECDSA key types to check known hosts [87] |
| o mailmap: fixup a few author names/fields |
| o Makefile.m32: Improve windres parameter compatibility [17] |
| o Makefile: run the cd commands in a subshell [1] |
| o memdebug: don't log free(NULL) |
| o mime: properly check Content-Type even if it has parameters [83] |
| o multi-ssl: reset the SSL backend on `Curl_global_cleanup()` [100] |
| o multi: improve parameter check for curl_multi_remove_handle [6] |
| o nghttp2: 1.12.0 required [40] |
| o ngtcp2: update to git master for the key installation API change [46] |
| o openssl: adapt to functions marked as deprecated since version 3 [34] |
| o OS400: update strings for ccsid-ifier (fixes the build) [30] |
| o output.d: quote the URL when globbing [48] |
| o packages: add OS400/chkstrings.c to the dist [39] |
| o RELEASE-PROCEDURE.md: run the copyright.pl script! |
| o Revert "file: on Windows, refuse paths that start with \\" [50] |
| o runtests: always put test number in servercmd file |
| o runtests: provide nicer errormsg when protocol "dump" file is empty |
| o schannel: Fix blocking timeout logic [76] |
| o schannel: support .P12 or .PFX client certificates [65] |
| o scripts/release-notes.pl: add helper script for RELEASE-NOTES maintenance |
| o select: move duplicate select preparation code into Curl_select [14] |
| o select: remove typecast from SOCKET_WRITABLE/READABLE macros [69] |
| o server/getpart: make the "XML-parser" stricter [20] |
| o server/resolve: remove AI_CANONNAME to make macos tell the truth [63] |
| o sockfilt: add logmsg output to select_ws_wait_thread on Windows [32] |
| o sockfilt: fix broken pipe on Windows to be ready in select_ws [95] |
| o sockfilt: fix handling of ready closed sockets on Windows |
| o sockfilt: fix race-condition of waiting threads and event handling [58] |
| o socks: Fix blocking timeout logic [77] |
| o src: Remove C99 constructs to ensure C89 compliance [82] |
| o SSLCERTS.md: Fix example code for setting CA cert file [31] |
| o test1148: tolerate progress updates better (again) [60] |
| o test1177: verify that all the CURL_VERSION_ bits are documented |
| o test1566: verify --etag-compare that gets a 304 back [53] |
| o test1908: avoid using fixed port number in test data [75] |
| o test2043: use revoked.badssl.com instead of revoked.grc.com [94] |
| o test2100: fix static port instead of dynamic value being used |
| o tests/data: fix some XML formatting issues in test cases |
| o tests/FILEFORMAT: converted to markdown and extended [84] |
| o tests/server/util.c: use curl_off_t instead of long for pid |
| o tests: add %NOLISTENPORT and use it [93] |
| o tests: add Windows compatible pidwait like pidkill and pidterm |
| o tests: fix conflict between Cygwin/msys and Windows PIDs [81] |
| o tests: introduce preprocessed test cases |
| o tests: make Python-based servers compatible with Python 2 and 3 [22] |
| o tests: move pingpong server to dynamic listening port |
| o tests: remove python_dependencies for smbserver from our tree [16] |
| o tests: run the RTSP test server on a dynamic port number [91] |
| o tests: run the SOCKS test server on a dynamic port number [99] |
| o tests: run the sws server on "any port" [85] |
| o tests: run the TFTP test server on a dynamic port number [101] |
| o tests: use Cygwin/msys PIDs for stunnel and sshd on Windows |
| o tls: remove the BACKEND define kludge from most backends [23] |
| o tool: do not declare functions with Curl_ prefix [66] |
| o tool_operate: fix add_parallel_transfers when more are in queue [10] |
| o transfer: cap retries of "dead connections" to 5 [13] |
| o travis: update the ngtcp2 build to use the latest OpenSSL patch |
| o url: allow non-HTTPS altsvc-matching for debug builds [62] |
| o version: add 'cainfo' and 'capath' to version info struct [55] |
| o version: increase buffer space for ssl version output [74] |
| o vquic: add support for GnuTLS backend of ngtcp2 [41] |
| o vtls: fix ssl_config memory-leak on out-of-memory [11] |
| o warnless: remove code block for icc that didn't work [72] |
| o windows: enable UnixSockets with all build toolchains |
| o windows: suppress UI in all CryptAcquireContext() calls [7] |
| |
| This release includes the following known bugs: |
| |
| o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html) |
| |
| This release would not have looked like this without help, code, reports and |
| advice from friends like these: |
| |
| Alain Miniussi, Alexander V. Tikhonov, Alex Gaynor, |
| Anderson Toshiyuki Sasaki, Andrew Kurushin, Björn Stenberg, Brad King, |
| Brian Bergeron, Calvin Buckley, Chris Roberts, Christoph Krey, Clément Notin, |
| Daiki Ueno, Dan Fandrich, Daniel Gustafsson, Daniel Stenberg, |
| davidedec on github, Dennis Felsing, Dima Tisnek, Dirkjan Bussink, |
| Emil Engler, Eylem Ugurel, Frank Gevaerts, FuccDucc on github, Gavin Wong, |
| Gilles Vollant, Gisle Vanem, Harry Sintonen, hydra3333 on github, |
| James Fuller, Johannes Schindelin, Jon Rumsey, JP Mens, Kamil Dudka, |
| Karl Chen, Kwon-Young Choi, Leo Neat, Maksim Stsepanenka, Marcel Raad, |
| Marc Hörsken, Markus Olsson, Mathias Gumz, Michael Kaufmann, Michael Osipov, |
| Muhammad Herdiansyah, Nathaniel R. Lewis, Patrick Monnerat, Paul Vixie, |
| Ray Satiro, Rici Lake, Roger Orr, Ross Burton, Simon Chalifoux, |
| Stepan Efremov, Steven Penny, thanhchungbtc on github, Timothe Litt, |
| Tim Sedlmeyer, Tommy Petty, Viktor Szakats, |
| (60 contributors) |
| |
| Thanks! (and sorry if I forgot to mention someone) |
| |
| References to bug reports and discussions on issues: |
| |
| [1] = https://curl.haxx.se/bug/?i=5073 |
| [2] = https://curl.haxx.se/bug/?i=5060 |
| [3] = https://curl.haxx.se/bug/?i=5067 |
| [4] = https://curl.haxx.se/bug/?i=5069 |
| [5] = https://curl.haxx.se/bug/?i=4981 |
| [6] = https://curl.haxx.se/bug/?i=5116 |
| [7] = https://curl.haxx.se/bug/?i=5088 |
| [8] = https://curl.haxx.se/bug/?i=4870 |
| [9] = https://curl.haxx.se/bug/?i=5095 |
| [10] = https://curl.haxx.se/bug/?i=4937 |
| [11] = https://curl.haxx.se/bug/?i=5108 |
| [12] = https://curl.haxx.se/bug/?i=5106 |
| [13] = https://curl.haxx.se/mail/lib-2020-03/0044.html |
| [14] = https://curl.haxx.se/bug/?i=5078 |
| [15] = https://curl.haxx.se/bug/?i=4954 |
| [16] = https://curl.haxx.se/bug/?i=5094 |
| [17] = https://curl.haxx.se/bug/?i=5099 |
| [18] = https://curl.haxx.se/bug/?i=5097 |
| [19] = https://curl.haxx.se/bug/?i=5066 |
| [20] = https://curl.haxx.se/bug/?i=5071 |
| [21] = https://curl.haxx.se/bug/?i=5118 |
| [22] = https://curl.haxx.se/bug/?i=5104 |
| [23] = https://curl.haxx.se/bug/?i=5122 |
| [24] = https://curl.haxx.se/bug/?i=5120 |
| [25] = https://curl.haxx.se/bug/?i=5117 |
| [26] = https://curl.haxx.se/bug/?i=5126 |
| [27] = https://curl.haxx.se/bug/?i=4995 |
| [28] = https://curl.haxx.se/bug/?i=5135 |
| [29] = https://curl.haxx.se/bug/?i=5091 |
| [30] = https://curl.haxx.se/bug/?i=5132 |
| [31] = https://curl.haxx.se/mail/lib-2020-03/0121.html |
| [32] = https://curl.haxx.se/bug/?i=5086 |
| [33] = https://curl.haxx.se/bug/?i=5149 |
| [34] = https://curl.haxx.se/bug/?i=5139 |
| [35] = https://curl.haxx.se/bug/?i=5146 |
| [36] = https://curl.haxx.se/bug/?i=5124 |
| [37] = https://curl.haxx.se/bug/?i=5144 |
| [38] = https://curl.haxx.se/bug/?i=5141 |
| [39] = https://curl.haxx.se/bug/?i=5142 |
| [40] = https://curl.haxx.se/bug/?i=5140 |
| [41] = https://curl.haxx.se/bug/?i=5148 |
| [42] = https://curl.haxx.se/bug/?i=5171 |
| [43] = https://curl.haxx.se/bug/?i=5169 |
| [44] = https://curl.haxx.se/bug/?i=5164 |
| [45] = https://curl.haxx.se/bug/?i=5165 |
| [46] = https://curl.haxx.se/bug/?i=5166 |
| [47] = https://curl.haxx.se/bug/?i=5189 |
| [48] = https://curl.haxx.se/bug/?i=5160 |
| [49] = https://curl.haxx.se/bug/?i=5157 |
| [50] = https://curl.haxx.se/mail/archive-2020-04/0013.html |
| [51] = https://github.com/curl/curl/commit/6de756c#r38127030 |
| [52] = https://curl.haxx.se/bug/?i=5034 |
| [53] = https://curl.haxx.se/bug/?i=5186 |
| [54] = https://curl.haxx.se/bug/?i=5181 |
| [55] = https://curl.haxx.se/bug/?i=5150 |
| [56] = https://curl.haxx.se/bug/?i=5179 |
| [57] = https://curl.haxx.se/bug/?i=5173 |
| [58] = https://curl.haxx.se/bug/?i=5156 |
| [59] = https://curl.haxx.se/bug/?i=5174 |
| [60] = https://curl.haxx.se/bug/?i=5194 |
| [61] = https://curl.haxx.se/bug/?i=5279 |
| [62] = https://curl.haxx.se/bug/?i=5205 |
| [63] = https://curl.haxx.se/bug/?i=5202 |
| [64] = https://curl.haxx.se/bug/?i=5201 |
| [65] = https://curl.haxx.se/bug/?i=5193 |
| [66] = https://curl.haxx.se/bug/?i=5219 |
| [67] = https://curl.haxx.se/bug/?i=4919 |
| [68] = https://curl.haxx.se/bug/?i=5196 |
| [69] = https://curl.haxx.se/bug/?i=5190 |
| [70] = https://curl.haxx.se/bug/?i=5192 |
| [71] = https://curl.haxx.se/bug/?i=5096 |
| [72] = https://curl.haxx.se/bug/?i=5096 |
| [73] = https://curl.haxx.se/bug/?i=5206 |
| [74] = https://curl.haxx.se/bug/?i=5222 |
| [75] = https://curl.haxx.se/bug/?i=5225 |
| [76] = https://curl.haxx.se/bug/?i=5177 |
| [77] = https://curl.haxx.se/bug/?i=5220 |
| [78] = https://curl.haxx.se/bug/?i=5214 |
| [79] = https://curl.haxx.se/bug/?i=5223 |
| [80] = https://github.com/curl/curl/issues/5182#issuecomment-611638008 |
| [81] = https://curl.haxx.se/bug/?i=5188 |
| [82] = https://curl.haxx.se/bug/?i=5254 |
| [83] = https://curl.haxx.se/bug/?i=5256 |
| [84] = https://curl.haxx.se/bug/?i=5261 |
| [85] = https://curl.haxx.se/bug/?i=5247 |
| [86] = https://curl.haxx.se/bug/?i=5271 |
| [87] = https://curl.haxx.se/bug/?i=5252 |
| [88] = https://curl.haxx.se/bug/?i=5063 |
| [89] = https://curl.haxx.se/bug/?i=5276 |
| [90] = https://curl.haxx.se/bug/?i=5213 |
| [91] = https://curl.haxx.se/bug/?i=5272 |
| [92] = https://curl.haxx.se/bug/?i=4764 |
| [93] = https://curl.haxx.se/bug/?i=5270 |
| [94] = https://curl.haxx.se/bug/?i=5233 |
| [95] = https://curl.haxx.se/bug/?i=5228 |
| [98] = https://curl.haxx.se/bug/?i=5268 |
| [99] = https://curl.haxx.se/bug/?i=5266 |
| [100] = https://curl.haxx.se/bug/?i=5255 |
| [101] = https://curl.haxx.se/bug/?i=5265 |