Command line options: 269
curl_easy_setopt() options: 308
Public functions in libcurl: 96
- Contributors: 3432
+ Contributors: 3437
This release includes the following changes:
This release includes the following bugfixes:
+ o asyn-thrdd: free the previous name before strdup'ing the new [84]
+ o autotools: drop `$top_builddir/src` from src header path [23]
+ o autotools: drop no longer necessary `--srcdir` unity options [66]
+ o autotools: simplify configuration in tests, examples [47]
o build: assume `sys/socket.h`, `sys/time.h` on non-Windows (as in `curl/curl.h`) [21]
+ o build: drop `HAVE_SYS_SOCKET_H` and `HAVE_SYS_TIME_H` macros [69]
+ o build: drop unused variables in tests
+ o build: sync build scripts between client/libtest [49]
+ o build: tidy up header paths, use srcdir where possible [42]
+ o cmake: build `stubgss` library for libtests to match autotools [34]
o cmake: document OpenSSL and ngtcp2 crypto lib custom variables [29]
o cmake: drop never propagated C macros [22]
+ o cmake: drop passing redundant `CURL_STATICLIB` in examples and clients [52]
+ o cmake: drop redundant macro from test clients [51]
+ o cmake: make docs depend on support files [80]
+ o cmake: move `OUTPUT` argument in the `add_custom_command()` line [50]
o cmake: replace `cmakelint` with `cmake-lint` from `cmakelang`, fix issues [20]
+ o cmake: simplify handling generated `lib1521.c` in libtests [24]
+ o cmake: sync `target_link_libraries()` order in tests more [44]
+ o cmake: sync tests scripts by using the variable `BUNDLE` [46]
+ o cmake: use `target_link_options()` when available [43]
+ o connection: eliminate member `remote_addr` [10]
o curl.h: make CURLSSLOPT_* symbols defined as longs [3]
o curl.h: remove the "RESERVED" error codes [2]
o curl_path: make SFTP handle a path like /~ properly. [11]
+ o digest: fix build with disabled digest auth [72]
o docs/examples: add ftp-delete.c [5]
+ o easy: fix comment-documentation [36]
+ o http2: do not delay RST send on aborted transfer [57]
+ o http_ntlm: protect against null deref [95]
+ o http_ntlm: remove unreachable code [88]
o INSTALL.md: cygwin details and add source code link [4]
+ o lib: avoid reusing unclean connection [73]
+ o lib: make `CURLX_SET_BINMODE()` and use it [39]
+ o lib: make `curlx_wait_ms()` and use it [40]
+ o lib: unify recv/send function signatures [92]
o libssh: de-complex myssh_statemach_act() [18]
+ o libtests: make test 1503,1504,1505 use the 1502 binary [90]
+ o libtests: stop building the sames source multiple times [89]
+ o memdebug: include in unity batch [63]
+ o multi: do no expire a blocked transfer [56]
+ o multi: fix polling with pending input [60]
+ o openssl: enable readahead [91]
+ o openssl: error on SSL_ERROR_SYSCALL [94]
+ o openssl: fix handling of buffered data [82]
+ o openssl: fix openssl engine use [74]
o pingpong: on disconnect, check for unflushed pingpong state [12]
+ o pytest test_07_70, weaken early data check [96]
o pytest: adapt for runs with openssl-1.1.1
o pytest: disable test_07_37 and test_07_36 with openssl's quic [1]
o RELEASE-PROCEDURE.md: update docs/VERSIONS [7]
+ o schannel: allow partial chains for manual peer verification [79]
o schannel: drop Windows 2000 compatibility logic [26]
o SCP/SFTP: avoid busy loop after EAGAIN [8]
o system.h: remove some macros [6]
o test1117: reduce write delays [9]
+ o test1596: let test pass after year 2036 [35]
+ o tests/client: drop autotools logic no longer necessary [45]
+ o tests/client: use `curl_mfprintf()` [48]
+ o tests/http/clients: drop hack and use `curl_setup.h` again [58]
+ o tests/http/clients: move to tests/client [53]
+ o tests/server: make all global vars/funcs static [41]
o tests/servers.pm: add more ways to figure out current user [17]
+ o tests: always make bundles, adapt build and tests [81]
+ o tests: bundle http clients, de-dupe, enable for MSVC [61]
o tests: drop mk-bundle exceptions [25]
o tests: fail torture if !valgrind&threaded resolver [31]
+ o tests: make sshserver less verbose [55]
o tests: torture: don't duplicate valgrind command [32]
+ o tftpd: use `CURLMIN()` macro [38]
+ o tls: remove Curl_ssl false_start [86]
o tool_getparam: fix --ftp-pasv [15]
o tool_operate: fix return code when --retry is used but not triggered [13]
o url: fix connection lifetime checks [14]
o urlapi: simplify and split into sub functions [16]
o vauth: move auth structs to conn meta data [30]
+ o warnless: drop parts of the `read`/`write` preprocessor hack (Windows) [37]
+ o warnless: replace `read()`/`write()` wrapper functions with macros (Windows) [75]
+ o windows: fixup `fopen()` in `CURLDEBUG` builds [62]
o windows: reduce/stop loading DLLs at runtime [27]
This release includes the following known bugs:
This release would not have looked like this without help, code, reports and
advice from friends like these:
+ 4lan.m, Bernhard M. Wiedemann, Brad Harder, Brian Harris, Calvin Ruocco,
Carlos Henrique Lima Melara, Christian Weisgerber, Dan Fandrich,
- Daniel Stenberg, fjaell on github, John Haugabook, Orgad Shaneh, Ray Satiro,
- renovate[bot], Stefan Eissing, Viktor Szakats, Yedaya Katsman
- (12 contributors)
+ Daniel McCarney, Daniel Stenberg, Edwin Török, fjaell on github,
+ hiimmat on github, John Haugabook, Michael Kaufmann, Orgad Shaneh,
+ Ray Satiro, renovate[bot], Rod Widdowson, Stefan Eissing, Theodore A. Roth,
+ Tristan Perrault, Viktor Szakats, Yedaya Katsman
+ (24 contributors)
References to bug reports and discussions on issues:
[7] = https://curl.se/bug/?i=17584
[8] = https://curl.se/bug/?i=17533
[9] = https://curl.se/bug/?i=17530
+ [10] = https://curl.se/bug/?i=17385
[11] = https://curl.se/bug/?i=17534
[12] = https://curl.se/bug/?i=17555
[13] = https://curl.se/bug/?i=17554
[20] = https://curl.se/bug/?i=17576
[21] = https://curl.se/bug/?i=17522
[22] = https://curl.se/bug/?i=17580
+ [23] = https://curl.se/bug/?i=17679
+ [24] = https://curl.se/bug/?i=17676
[25] = https://curl.se/bug/?i=17468
[26] = https://curl.se/bug/?i=17447
[27] = https://curl.se/bug/?i=17413
[30] = https://curl.se/bug/?i=17557
[31] = https://curl.se/bug/?i=17501
[32] = https://curl.se/bug/?i=17501
+ [34] = https://curl.se/bug/?i=17653
+ [35] = https://curl.se/bug/?i=17665
+ [36] = https://curl.se/bug/?i=17664
+ [37] = https://curl.se/bug/?i=17673
+ [38] = https://curl.se/bug/?i=17674
+ [39] = https://curl.se/bug/?i=17672
+ [40] = https://curl.se/bug/?i=17641
+ [41] = https://curl.se/bug/?i=17671
+ [42] = https://curl.se/bug/?i=17630
+ [43] = https://curl.se/bug/?i=17670
+ [44] = https://curl.se/bug/?i=17669
+ [45] = https://curl.se/bug/?i=17668
+ [46] = https://curl.se/bug/?i=17667
+ [47] = https://curl.se/bug/?i=17661
+ [48] = https://curl.se/bug/?i=17651
+ [49] = https://curl.se/bug/?i=17660
+ [50] = https://curl.se/bug/?i=17658
+ [51] = https://curl.se/bug/?i=17657
+ [52] = https://curl.se/bug/?i=17655
+ [53] = https://curl.se/bug/?i=17637
+ [55] = https://curl.se/bug/?i=17647
+ [56] = https://curl.se/bug/?i=17639
+ [57] = https://curl.se/bug/?i=17611
+ [58] = https://curl.se/bug/?i=17642
+ [60] = https://curl.se/bug/?i=17636
+ [61] = https://curl.se/bug/?i=17627
+ [62] = https://curl.se/bug/?i=16747
+ [63] = https://curl.se/bug/?i=16746
+ [66] = https://curl.se/bug/?i=17632
+ [69] = https://curl.se/bug/?i=17581
+ [72] = https://curl.se/bug/?i=17612
+ [73] = https://curl.se/bug/?i=17578
+ [74] = https://curl.se/bug/?i=17617
+ [75] = https://curl.se/bug/?i=17619
+ [79] = https://curl.se/bug/?i=17418
+ [80] = https://curl.se/bug/?i=17620
+ [81] = https://curl.se/bug/?i=17590
+ [82] = https://curl.se/bug/?i=17601
+ [84] = https://curl.se/bug/?i=17602
+ [86] = https://curl.se/bug/?i=17595
+ [88] = https://curl.se/bug/?i=17587
+ [89] = https://curl.se/bug/?i=17598
+ [90] = https://curl.se/bug/?i=17591
+ [91] = https://curl.se/bug/?i=17548
+ [92] = https://curl.se/bug/?i=17546
+ [94] = https://curl.se/bug/?i=17471
+ [95] = https://curl.se/bug/?i=17585
+ [96] = https://curl.se/bug/?i=17575