| curl and libcurl 8.1.0 |
| |
| Public curl releases: 217 |
| Command line options: 251 |
| curl_easy_setopt() options: 302 |
| Public functions in libcurl: 91 |
| Contributors: 2859 |
| |
| This release includes the following changes: |
| |
| o curl: add --proxy-http2 [62] |
| o CURLPROXY_HTTPS2: for HTTPS proxy that may speak HTTP/2 [57] |
| o proxy: http2 proxy tunnel implementation [68] |
| o tool_writeout: add URL component variables [41] |
| |
| This release includes the following bugfixes: |
| |
| o autotools: sync up clang picky warnings with cmake [114] |
| o bufq: simplify since expression is always true [72] |
| o cf-h1-proxy: skip an extra NULL assign [80] |
| o cf-h2-proxy: fix processing ingress to stop too early [76] |
| o cf-socket: add socket recv buffering for most tcp cases [90] |
| o cf-socket: Disable socket receive buffer by default [75] |
| o cf-socket: remove dead code discovered by PVS [82] |
| o CI: fix brew retries on GHA |
| o CI: skip Azure for commits which change only GHA |
| o cmake: bring in the network library on Haiku [9] |
| o cmake: do not add zlib headers for openssl [49] |
| o CMake: make config version 8 compatible with 7 [28] |
| o cmake: picky-linker fixes for openssl, ZLIB, H3 and more [31] |
| o cmake: set SONAME for SunOS too [3] |
| o cmake: speed up and extend picky clang/gcc options [116] |
| o CMakeLists.txt: fix typo for Haiku detection [95] |
| o config-dos.h: fix SIZEOF_CURL_OFF_T for MS-DOS/DJGPP [52] |
| o configure: don't set HAVE_WRITABLE_ARGV on Windows [64] |
| o configure: make quiche require quiche_conn_send_ack_eliciting [46] |
| o connect: fix https connection setup to treat ssl_mode correctly [94] |
| o content_encoding: only do tranfer-encoding compression if asked to [61] |
| o cookie: address PVS nits [74] |
| o cookie: clarify that init with data set to NULL reads no file [99] |
| o curl: do NOT append file name to path for upload when there's a query [58] |
| o curl_easy_getinfo.3: typo fix (duplicated "from the") [43] |
| o curl_easy_unescape.3: rename the argument [113] |
| o curl_url_set.3: mention that users can set content rather freely [105] |
| o data.d: emphasize no conversion [5] |
| o digest: clear target buffer [8] |
| o doc: curl_mime_init() strong easy binding was relaxed in 7.87.0 [26] |
| o docs/cmdline-opts: document the dotless config path [1] |
| o docs/examples/protofeats.c: outputs all protocols and features [110] |
| o docs: bump the minimum perl version to 5.6 |
| o dynbuf: never allocate larger than "toobig" [17] |
| o ftp: fix 'portsock' variable was assigned the same value [78] |
| o ftp: remove dead code [79] |
| o ftplistparser: move out private data from public struct [20] |
| o ftplistparser: replace realloc with dynbuf [18] |
| o gen.pl: error on duplicated See-Also fields [102] |
| o getpart: better handle case of file not found |
| o GHA-linux: add an address-sanitizer build [15] |
| o GHA: add a memory-sanitizer job [2] |
| o GHA: run all linux test jobs with valgrind [14] |
| o GHA: suppress git clone output [89] |
| o GHA: update ngtcp2-*.yml to v0.10.0 [21] |
| o gskit: various compile errors in OS400 [12] |
| o hash: fix assigning same value [73] |
| o hostip: refuse to resolve the .onion TLD [19] |
| o HTTP-COOKIES.md: mention the #HttpOnly_ prefix [16] |
| o http2: flow control and buffer improvements [54] |
| o http2: move HTTP/2 stream vars into local context [67] |
| o http2: remove unused Curl_http2_strerror function declaration [108] |
| o HTTP3/quiche: terminate h1 response header when no body is sent [112] |
| o http3: check stream_ctx more thoroughly in all backends [77] |
| o http3: improvements across backends [51] |
| o http: skip a double NULL assign [83] |
| o KNOWN_BUGS: remove fixed or outdated issues, move non-bugs [65] |
| o lib/cmake: add HAVE_WRITABLE_ARGV check [63] |
| o lib/sha256.c: typo fix in comment (duplicated "is available") [40] |
| o lib1560: verify that more bad host names are rejected [104] |
| o lib: add `bufq` and `dynhds` [34] |
| o lib: remove CURLX_NO_MEMORY_CALLBACKS [55] |
| o lib: use correct printf flags for sockets and timediffs [36] |
| o mime: skip NULL assigns after Curl_safefree() [84] |
| o multi: add handle asserts in DEBUG builds [11] |
| o multi: free up more data earleier in DONE [118] |
| o multi: remove a few superfluous assigns [97] |
| o multi: remove PENDING + MSGSENT handles from the main linked list [23] |
| o ngtcp2: adjust config and code checks for ngtcp2 without nghttp3 [4] |
| o noproxy: pointer to local array 'hostip' is stored outside scope [93] |
| o ntlm: clear lm and nt response buffers before use [7] |
| o openssl: interop with AWS-LC [30] |
| o OS400: fix and complete ILE/RPG binding [96] |
| o OS400: implement EBCDIC support for recent features [100] |
| o OS400: improve vararg emulation [92] |
| o OS400: provide ILE/RPG usage examples [81] |
| o pytest: improvements for suitable curl and error output [35] |
| o quiche: Enable IDLE egress handling [109] |
| o RELEASE-PROCEDURE: update to new schedule [25] |
| o rtsp: convert mallocs to dynbuf for RTP buffering [37] |
| o rtsp: skip malformed RTSP interleaved frame data [33] |
| o rtsp: skip NULL assigns after Curl_safefree() [85] |
| o runtests: die if curl version can be found [10] |
| o runtests: don't start servers if -l is given |
| o runtests: fix quoting in Appveyor and Azure test integration [117] |
| o runtests: lots of refactoring |
| o runtests: refactor into more packages [60] |
| o runtests: show error message if file can't be written |
| o rustls: fix error in recv handling [50] |
| o schannel: add clarifying comment [98] |
| o server/getpart: clear target buffer before load [6] |
| o smb: remove double assign [86] |
| o telnet: simplify the implementation of str_is_nonascii() [42] |
| o test1169: fix so it works properly everywhere [106] |
| o test1592: add flaky keyword [39] |
| o test1960: point to the correct path for the precheck tool |
| o test303: kill server after test |
| o tests/http: add timeout to running curl in test cases [24] |
| o tests/http: fix log formatting on wrong exit code [27] |
| o tests/http: improved httpd detection [45] |
| o tests/http: relax connection check in test_07_02 [53] |
| o tests/keywords.pl: remove [111] |
| o tests/libtest/lib1900.c: remove |
| o tests/sshserver.pl: Define AddressFamily earlier [103] |
| o tests: 1078 1288 1297 use valid IPv4 addresses |
| o tests: document that the unittest keyword is special |
| o tests: increase sws timeout for more robust testing [66] |
| o tests: log a too-long Unix socket path in sws and socksd |
| o tests: make test_12_01 a bit more forgiving on connection counts |
| o tests: move pidfiles and portfiles under the log directory [48] |
| o tests: move server config files under the pid dir [47] |
| o tests: silence some Perl::Critic warnings in test suite [56] |
| o tests: stop using strndup(), which isn't portable |
| o tests: switch to 3-argument open in test suite |
| o tests: turn perl modules into full packages |
| o tests: use %LOGDIR to refer to the log directory |
| o tool_operate: pass a long as CURLOPT_HEADEROPT argument [13] |
| o transfer: skip extra assign [87] |
| o url: fix PVS nits [71] |
| o url: remove call to Curl_llist_destroy in Curl_close [22] |
| o urlapi: cleanups and improvements [91] |
| o urlapi: detect and error on illegal IPv4 addresses [70] |
| o urlapi: prevent setting invalid schemes with *url_set() [107] |
| o urlapi: skip a pointless assign [88] |
| o urlapi: URL encoding for the URL missed the fragment [29] |
| o vlts: use full buffer size when receiving data if possible [32] |
| o vtls and h2 improvements [69] |
| o wolfssl.yml: bump to version 5.6.0 [44] |
| o ws: handle reads before EAGAIN better [38] |
| |
| This release includes the following known bugs: |
| |
| o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html) |
| |
| Planned upcoming removals include: |
| |
| o gskit |
| o NSS |
| o support for space-separated NOPROXY patterns |
| o support for the original legacy mingw version 1 |
| |
| See https://curl.se/dev/deprecate.html for details |
| |
| This release would not have looked like this without help, code, reports and |
| advice from friends like these: |
| |
| Ali Khodkar, Andreas Falkenhahn, Andy Alt, Arne Soete, Ben Fritz, |
| Biswapriyo Nath, Brian Lund, Chloe Kudryavtsev, Colman Mbuya, Dan Fandrich, |
| Dan Frandrich, Daniel Stenberg, dengjfzh on github, Dirk Rosenkranz, |
| Douglas R. Reno, eaglegai on github, Emil Engler, Frank Gevaerts, |
| Gisle Vanem, Harry Sintonen, Jakub Zakrzewski, Jim King, Jon Rumsey, |
| Josh McCullough, Kai Pastor, Kamil Dudka, Kvarec Lezki, kwind on github, |
| Marcel Raad, Matt Jolly, Micah Snyder), Osaila on github, Patrick Monnerat, |
| Paul Howarth, Paweł Wegner, Philip Heiduck, Ray Satiro, Ronan Pigott, |
| Sevan Janiyan, simplerobot on github, Stefan Eissing, SuperIlu on github, |
| Viktor Szakats |
| (43 contributors) |
| |
| References to bug reports and discussions on issues: |
| |
| [1] = https://curl.se/bug/?i=10849 |
| [2] = https://curl.se/bug/?i=10815 |
| [3] = https://curl.se/bug/?i=10816 |
| [4] = https://curl.se/bug/?i=10793 |
| [5] = https://curl.se/bug/?i=10823 |
| [6] = https://curl.se/bug/?i=10822 |
| [7] = https://curl.se/bug/?i=10814 |
| [8] = https://curl.se/bug/?i=10814 |
| [9] = https://curl.se/bug/?i=10296 |
| [10] = https://curl.se/bug/?i=10813 |
| [11] = https://curl.se/bug/?i=10812 |
| [12] = https://curl.se/bug/?i=10799 |
| [13] = https://curl.se/bug/?i=10798 |
| [14] = https://curl.se/bug/?i=10798 |
| [15] = https://curl.se/bug/?i=10810 |
| [16] = https://curl.se/bug/?i=10847 |
| [17] = https://curl.se/bug/?i=10845 |
| [18] = https://curl.se/bug/?i=10844 |
| [19] = https://curl.se/bug/?i=543 |
| [20] = https://curl.se/bug/?i=10844 |
| [21] = https://curl.se/bug/?i=10612 |
| [22] = https://curl.se/bug/?i=10846 |
| [23] = https://curl.se/bug/?i=10801 |
| [24] = https://curl.se/bug/?i=10783 |
| [25] = https://curl.se/bug/?i=10827 |
| [26] = https://curl.se/bug/?i=10834 |
| [27] = https://curl.se/bug/?i=10868 |
| [28] = https://curl.se/bug/?i=10819 |
| [29] = https://curl.se/bug/?i=10887 |
| [30] = https://curl.se/bug/?i=10320 |
| [31] = https://curl.se/bug/?i=10857 |
| [32] = https://curl.se/bug/?i=10736 |
| [33] = https://curl.se/bug/?i=10808 |
| [34] = https://curl.se/bug/?i=10720 |
| [35] = https://curl.se/bug/?i=10829 |
| [36] = https://curl.se/bug/?i=10737 |
| [37] = https://curl.se/bug/?i=10786 |
| [38] = https://curl.se/bug/?i=10831 |
| [39] = https://curl.se/bug/?i=10860 |
| [40] = https://curl.se/bug/?i=10851 |
| [41] = https://curl.se/bug/?i=10853 |
| [42] = https://curl.se/bug/?i=10852 |
| [43] = https://curl.se/bug/?i=10850 |
| [44] = https://curl.se/bug/?i=10843 |
| [45] = https://curl.se/bug/?i=10879 |
| [46] = https://curl.se/bug/?i=10886 |
| [47] = https://curl.se/bug/?i=10875 |
| [48] = https://curl.se/bug/?i=10874 |
| [49] = https://curl.se/bug/?i=10878 |
| [50] = https://curl.se/bug/?i=10876 |
| [51] = https://curl.se/bug/?i=10772 |
| [52] = https://curl.se/bug/?i=10905 |
| [53] = https://curl.se/bug/?i=10865 |
| [54] = https://curl.se/bug/?i=10771 |
| [55] = https://curl.se/bug/?i=10908 |
| [56] = https://curl.se/bug/?i=10861 |
| [57] = https://curl.se/bug/?i=10900 |
| [58] = https://curl.se/mail/archive-2023-04/0008.html |
| [60] = https://curl.se/bug/?i=10995 |
| [61] = https://curl.se/bug/?i=10899 |
| [62] = https://curl.se/bug/?i=10926 |
| [63] = https://curl.se/bug/?i=10896 |
| [64] = https://curl.se/bug/?i=10896 |
| [65] = https://curl.se/bug/?i=10963 |
| [66] = https://curl.se/bug/?i=10898 |
| [67] = https://curl.se/bug/?i=10877 |
| [68] = https://curl.se/bug/?i=10780 |
| [69] = https://curl.se/bug/?i=10891 |
| [70] = https://curl.se/bug/?i=10894 |
| [71] = https://curl.se/bug/?i=10959 |
| [72] = https://curl.se/bug/?i=10958 |
| [73] = https://curl.se/bug/?i=10956 |
| [74] = https://curl.se/bug/?i=10954 |
| [75] = https://curl.se/bug/?i=10961 |
| [76] = https://curl.se/bug/?i=10952 |
| [77] = https://curl.se/bug/?i=10951 |
| [78] = https://curl.se/bug/?i=10955 |
| [79] = https://curl.se/bug/?i=10957 |
| [80] = https://curl.se/bug/?i=10953 |
| [81] = https://curl.se/bug/?i=10994 |
| [82] = https://curl.se/bug/?i=10960 |
| [83] = https://curl.se/bug/?i=10950 |
| [84] = https://curl.se/bug/?i=10947 |
| [85] = https://curl.se/bug/?i=10946 |
| [86] = https://curl.se/bug/?i=10945 |
| [87] = https://curl.se/bug/?i=10944 |
| [88] = https://curl.se/bug/?i=10943 |
| [89] = https://curl.se/bug/?i=10939 |
| [90] = https://curl.se/bug/?i=10787 |
| [91] = https://curl.se/bug/?i=10935 |
| [92] = https://curl.se/bug/?i=10994 |
| [93] = https://curl.se/bug/?i=10933 |
| [94] = https://curl.se/bug/?i=10934 |
| [95] = https://curl.se/bug/?i=10937 |
| [96] = https://curl.se/bug/?i=10994 |
| [97] = https://curl.se/bug/?i=10932 |
| [98] = https://curl.se/bug/?i=10931 |
| [99] = https://curl.se/bug/?i=10930 |
| [100] = https://curl.se/bug/?i=10994 |
| [102] = https://curl.se/bug/?i=10925 |
| [103] = https://curl.se/bug/?i=10983 |
| [104] = https://curl.se/bug/?i=10922 |
| [105] = https://curl.se/bug/?i=10921 |
| [106] = https://curl.se/bug/?i=10889 |
| [107] = https://curl.se/bug/?i=10911 |
| [108] = https://curl.se/bug/?i=10912 |
| [109] = https://curl.se/bug/?i=11000 |
| [110] = https://curl.se/bug/?i=10991 |
| [111] = https://curl.se/bug/?i=10895 |
| [112] = https://curl.se/bug/?i=11003 |
| [113] = https://curl.se/bug/?i=10979 |
| [114] = https://curl.se/bug/?i=10974 |
| [116] = https://curl.se/bug/?i=10973 |
| [117] = https://curl.se/bug/?i=11010 |
| [118] = https://curl.se/bug/?i=10971 |