Command line options: 250
curl_easy_setopt() options: 302
Public functions in libcurl: 91
- Contributors: 2829
+ Contributors: 2834
This release includes the following changes:
o .cirrus.yml: Bump to FreeBSD 13.2 [9]
o BINDINGS: add Fortran binding [33]
+ o build: drop the use of XC_AMEND_DISTCLEAN [62]
o cf-socket: fix handling of remote addr for accepted tcp sockets [17]
+ o cf-socket: if socket is already connected, return CURLE_OK [69]
o CI: update ngtcp2 and nghttp2 for pytest [13]
+ o cmake: fix enabling LDAPS on Windows [55]
+ o cmake: skip CA-path/bundle auto-detection in cross-builds [57]
o cookie: parse without sscanf()
o curl: make -w's %{stderr} use the file set with --stderr [30]
o CURLOPT_PIPEWAIT: allow waited reuse also for subsequent connections [10]
+ o DEPRECATE: the original legacy mingw version 1 [43]
o docs/cmdline-opts: mark all global options [6]
+ o docs: note '--data-urlencode' option [7]
+ o DYNBUF.md: note Curl_dyn_add* calls Curl_dyn_free on failure [70]
o easy: remove infof() debug leftover from curl_easy_recv [44]
o examples/http3.c: use CURL_HTTP_VERSION_3 [46]
+ o ftp: allocate the wildcard struct on demand [59]
o ftp: make the EPSV response parser not use sscanf [25]
o ftp: replace sscanf for MDTM 213 response parsing [23]
o ftp: replace sscanf for PASV parsing [24]
o hostip: avoid sscanf and extra buffer copies [42]
o http2: fix for http2-prior-knowledge when reusing connections [14]
+ o http2: fix upload busy loop [71]
o http: fix unix domain socket use in https connects [28]
o http: rewrite the status line parser without sscanf [29]
o http_proxy: parse the status line without sscanf [16]
o idn: return error if the conversion ends up with a blank host [45]
o krb5: avoid sscanf for parsing [18]
+ o lib1560: test parsing URLs with ridiculously large fields [60]
o lib517: verify time stamps without leading zeroes plus some more
o libcurl-errors.3: add the CURLHcode errors from curl_easy_header.3 [39]
+ o Makefile.mk: delete redundant `HAVE_LDAP_SSL` macro [56]
o misc: remove support for curl_off_t < 8 bytes [19]
o mqtt: on send error, return error [40]
o ngtcp2-gnutls.yml: bump to gnutls 3.8.0 [11]
o parsedate: parse strings without using sscanf() [2]
o parsedate: replace sscanf( for time stamp parsing [1]
o quic/schannel: fix compiler warnings [36]
+ o rand: use arc4random as fallback when available [48]
o rate.d: single URLs make no sense in --rate example [38]
o rtsp: avoid sscanf for parsing [15]
o runtests: use a hash table for server port numbers [51]
o sectransp: fix compiler warning c89 mixed code/declaration [32]
+ o sectransp: make read_cert() use a dynbuf when loading [72]
o select: stop treating POLLRDBAND as an error [27]
o setopt: move the CURLOPT_CHUNK_DATA pointer to the set struct [35]
+ o socket: detect "dead" connections better, e.g. not fit for reuse [66]
o telnet: parse NEW_ENVIRON without sscanf [20]
o telnet: parse telnet options without sscanf [22]
o telnet: parse the WS= argument without sscanf [21]
+ o test1470: test socks proxy using unix sockets and connect to https [63]
+ o test1960: verify CURL_SOCKOPT_ALREADY_CONNECTED [64]
o test2600: detect when ALARM_TIMEOUT is in use and adjust [34]
+ o tests: fix gnutls-serv check [53]
o tests: HTTP server fixups [3]
o tests: support for imaps/pop3s/smtps protocols [50]
o tests: test secure mail protocols with explicit SSL requests [49]
+ o tool: dump headers even if file is write-only [52]
o tool_getparam: don't add a new node for just --no-remote-name [5]
o tool_operate: avoid fclose(NULL) on bad header dump file [12]
o tool_operate: propagate error codes for missing URL after --next [4]
o tool_progress: shut off progress meter for --silent in parallel [8]
+ o transfer: limit Windows SO_SNDBUF updates to once a second [73]
+ o urlapi: parse IPv6 literals without ENABLE_IPV6 [61]
+ o wildcard: remove files and move functions into ftplistparser.c
o winbuild: fix makefile clean [31]
o ws: keep the socket non-blocking [41]
o x509asn1.c: use correct format specifier for infof() call [47]
This release would not have looked like this without help, code, reports and
advice from friends like these:
- Andy Alt, Daniel Stenberg, finkjsc on github, Harry Sintonen,
- Jelle van der Waa, Jérémy Rabasco, Maciej Domanski, Marcel Raad,
- marski on github, Matt Jolly, opensslonzos-github on github,
- Patrick Monnerat, Philip Heiduck, Philipp Engel, Ray Satiro,
- rwmjones on github, Sergey Fionov, Stefan Eissing, u20221022 on github,
+ Andy Alt, Balakrishnan Balasubramanian, Brad Spencer, Cristian Morales Vega,
+ Daniel Stenberg, finkjsc on github, Grisha Levit, Harry Sintonen,
+ Ilmari Lauhakangas, JackBoosY on github, Jan Engelhardt, Jelle van der Waa,
+ Jérémy Rabasco, Maciej Domanski, Marcel Raad, marski on github, Matt Jolly,
+ opensslonzos-github on github, Patrick Monnerat, Philip Heiduck,
+ Philipp Engel, Ray Satiro, rwmjones on github, SendSonS on github,
+ Sergey Fionov, Shankar Jadhavar, Stefan Eissing, u20221022 on github,
Viktor Szakats, 積丹尼 Dan Jacobson
- (21 contributors)
+ (30 contributors)
References to bug reports and discussions on issues:
[4] = https://curl.se/bug/?i=10558
[5] = https://curl.se/bug/?i=10564
[6] = https://curl.se/bug/?i=10566
+ [7] = https://curl.se/bug/?i=10687
[8] = https://curl.se/bug/?i=10573
[9] = https://curl.se/bug/?i=10270
[10] = https://curl.se/bug/?i=10456
[40] = https://curl.se/bug/?i=10623
[41] = https://curl.se/bug/?i=10615
[42] = https://curl.se/bug/?i=10601
+ [43] = https://curl.se/bug/?i=10667
[44] = https://curl.se/bug/?i=10628
[45] = https://curl.se/bug/?i=10617
[46] = https://curl.se/bug/?i=10619
[47] = https://curl.se/bug/?i=10614
+ [48] = https://curl.se/bug/?i=10672
[49] = https://curl.se/bug/?i=10077
[50] = https://curl.se/bug/?i=10077
[51] = https://curl.se/bug/?i=10077
+ [52] = https://curl.se/bug/?i=10675
+ [53] = https://curl.se/bug/?i=10688
+ [55] = https://curl.se/bug/?i=6284
+ [56] = https://curl.se/bug/?i=10681
+ [57] = https://curl.se/bug/?i=6178
+ [59] = https://curl.se/bug/?i=10639
+ [60] = https://curl.se/bug/?i=10665
+ [61] = https://curl.se/bug/?i=10660
+ [62] = https://curl.se/bug/?i=9843
+ [63] = https://curl.se/bug/?i=10662
+ [64] = https://curl.se/bug/?i=10651
+ [66] = https://curl.se/bug/?i=10646
+ [69] = https://curl.se/bug/?i=10626
+ [70] = https://curl.se/bug/?i=10645
+ [71] = https://curl.se/bug/?i=10449
+ [72] = https://curl.se/bug/?i=10632
+ [73] = https://curl.se/bug/?i=10611