1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
curl and libcurl 7.81.0
Public curl releases: 205
Command line options: 244
curl_easy_setopt() options: 295
Public functions in libcurl: 86
Contributors: 2554
This release includes the following changes:
o mime: use percent-escaping for multipart form field and file names [1]
This release includes the following bugfixes:
o asyn-ares: ares_getaddrinfo needs no happy eyeballs timer [73]
o azure: make the "w/o HTTP/SMTP/IMAP" build disable SSL proper [12]
o BINDINGS: add cURL client for PostgreSQL [68]
o BINDINGS: add one from Everything curl and update a link
o CI: build examples for additional code verification [75]
o cmake: don't set _USRDLL on a static Windows build [22]
o cmake: private identifiers use CURL_ instead of CMAKE_ prefix [40]
o config.d: update documentation to match the path search
o configure: add -lm to configure for rustls build. [13]
o configure: better diagnostics if hyper is built wrong [6]
o configure: don't enable TLS when --without-* flags are used [17]
o configure: fix runtime-lib detection on macOS [21]
o curl.1: require "see also" for every documented option [27]
o curl: improve error message for --head with -J [42]
o curl_easy_cleanup.3: remove from multi handle first [3]
o curl_easy_escape.3: call curl_easy_cleanup in example [58]
o curl_easy_unescape.3: call curl_easy_cleanup in example [57]
o curl_multi_perform/socket_action.3: clarify what errors mean [70]
o curl_share_setopt.3: split out options into their own manpages [14]
o CURLOPT_STDERR.3: does not work with libcurl as a win32 DLL [51]
o digest: compute user:realm:pass digest w/o userhash [45]
o docs/checksrc: Add documentation for STRERROR [18]
o docs/cmdline-opts: do not say "protocols: all" [26]
o docs/examples: workaround broken -Wno-pedantic-ms-format
o docs/HTTP3: describe how to setup a h3 reverse-proxy for testing [88]
o docs/INSTALL.md: typo fix : added missing "get" verb [31]
o docs/URL-SYNTAX.md: space is not fine in a given URL
o docs: add known bugs list to HTTP3.md [83]
o docs: address proselint nits [16]
o docs: consistent manpage SYNOPSIS [47]
o docs: fix dead links, remove ECH.md
o docs: fix typo in OpenSSL 3 build instructions [80]
o docs: Update the Reducing Size section
o example/progressfunc: remove code for old libcurls [78]
o FAQ: typo fix : "yout" ➤ "your" [30]
o gen.pl: improve example output format [29]
o gtls: check return code for gnutls_alpn_set_protocols [86]
o hash: lazy-alloc the table in Curl_hash_add() [54]
o http2:set_transfer_url() return early on OOM [53]
o HTTP3: update quiche build instructions [37]
o http: enable haproxy support for hyper backend [20]
o http: Fix CURLOPT_HTTP200ALIASES [89]
o insecure.d: detail its use for SFTP and SCP as well [32]
o insecure.d: expand and clarify [28]
o libcurl-multi.3: "SOCKS proxy handshakes" are not blocking
o libcurl-security.3: mention address and URL mitigations
o libssh2: fix error message for sha256 mismatch
o lift: ignore is a deprecated config option, use ignoreRules [35]
o linkcheck.yml: add CI job that checks markdown links [82]
o Makefile.m32: rename -winssl option to -schannel and tidy up [33]
o mbedTLS: add support for CURLOPT_CAINFO_BLOB [44]
o mbedtls: fix CURLOPT_SSLCERT_BLOB [72]
o misc: remove unused doh flags when CURL_DISABLE_DOH is defined [71]
o misc: s/e-mail/email [74]
o multi: cleanup the socket hash when destroying it [55]
o multi: handle errors returned from socket/timer callbacks [52]
o multi: shut down CONNECT in Curl_detach_connnection [2]
o netrc.d: edit the .netrc example to look nicer [24]
o nss:set_cipher don't clobber the cipher list [38]
o openldap: implement STARTTLS [56]
o openldap: process search query response messages one by one [50]
o openldap: several minor improvements [69]
o openldap: simplify ldif generation code [77]
o openssl: check the return value of BIO_new() [43]
o openssl: define HAVE_OPENSSL_VERSION for OpenSSL 1.1.0+
o openssl: remove `RSA_METHOD_FLAG_NO_CHECK` handling if unavailable
o openssl: remove usage of deprecated `SSL_get_peer_certificate`
o openssl: use non-deprecated API to read key parameters
o page-footer: add a mention of how to report bugs to the man page
o page-footer: document more environment variables [23]
o request.d: refer to 'method' rather than 'command' [59]
o retry-all-errors.d: make the example complete
o runtests: make the SSH library a testable feature
o rustls: read of zero bytes might be okay [9]
o rustls: remove comment about checking handshaking [15]
o rustls: remove incorrect EOF check [10]
o sha256/md5: return errors when init fails [79]
o test1156: enable for hyper [65]
o test1156: fixup the stdout check for Windows [60]
o test1525: tweaked for hyper [64]
o test1526: enable for hyper [63]
o test1527: enable for hyper [62]
o test1528: enable for hyper [61]
o test1554: adjust for hyper [49]
o test1556: adjust for hyper [48]
o test302[12]: run only with the libssh2 backend [8]
o test661: enable for hyper [66]
o tests/CI.md: add more information on CI environments [39]
o tests/data/test302[12]: fix MSYS2 path conversion of hostpubsha256 [76]
o tftp: mark protocol as not possible to do over CONNECT [25]
o tool_findfile: updated search for a file in the homedir [46]
o tool_operate: only set SSH related libcurl options for SSH URLs [11]
o url.c: fix the SIGPIPE comment for Curl_close [4]
o url: check ssl_config when re-use proxy connection [81]
o urlapi: accept port number zero [34]
o urlapi: provide more detailed return codes [36]
o urlapi: reject short file URLs [41]
o version_win32: Check build number and platform id
o vtls/rustls: adapt to the updated rustls_version proto [19]
o writeout: fix %{http_version} for HTTP/3 [7]
o x509asn1: return early on errors [67]
o zuul.d: update rustls-ffi to version 0.8.2 [5]
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:
Alessandro Ghedini, Bernat Mut, Bernhard Walle, Boris Rasin,
Brad Fitzpatrick, Bruno Baguette, Damien Walsh, Dan Fandrich,
Daniel Stenberg, David Bohman, Don J Olmstead, Eric Musser, Even Rouault,
Florian Van Heghe, Glenn Strauss, Jacob Hoffman-Andrews, James Fuller,
Jeff Luszcz, jeffrson on github, Jun Tseng, Kevin Burke, lllaffer on github,
Marcelo Juchem, Marcel Raad, Marc Hörsken, Mark Dodgson, Matt Holt,
Michał Antoniak, nimaje on github, Patrick Monnerat, Paul Howarth,
Ray Satiro, RekGRpth on github, Rikard Falkeborn, Ryan Sleevi, Stan Hu,
Stefan Eissing, Stefan Huber, Stephane Pellegrino, Stephen M. Coakley,
Tobias Nießen, Viktor Szakats, Vincent Grande, Vladimir Panteleev,
Wyatt O'Day, x2018 on github, Yongkang Huang,
(47 contributors)
References to bug reports and discussions on issues:
[1] = https://curl.se/bug/?i=7789
[2] = https://curl.se/bug/?i=7982
[3] = https://curl.se/bug/?i=7983
[4] = https://curl.se/bug/?i=7984
[5] = https://curl.se/bug/?i=8013
[6] = https://curl.se/bug/?i=8001
[7] = https://curl.se/bug/?i=8072
[8] = https://curl.se/bug/?i=8009
[9] = https://curl.se/bug/?i=8003
[10] = https://curl.se/bug/?i=8003
[11] = https://curl.se/bug/?i=8040
[12] = https://curl.se/bug/?i=8006
[13] = https://curl.se/bug/?i=8002
[14] = https://curl.se/bug/?i=7998
[15] = https://curl.se/bug/?i=8038
[16] = https://curl.se/bug/?i=8060
[17] = https://curl.se/bug/?i=7994
[18] = https://curl.se/bug/?i=7991
[19] = https://curl.se/bug/?i=7956
[20] = https://curl.se/bug/?i=8034
[21] = https://curl.se/bug/?i=8028
[22] = https://curl.se/bug/?i=8030
[23] = https://curl.se/bug/?i=8027
[24] = https://curl.se/bug/?i=8025
[25] = https://curl.se/bug/?i=8018
[26] = https://curl.se/bug/?i=8021
[27] = https://curl.se/bug/?i=8019
[28] = https://curl.se/bug/?i=8017
[29] = https://curl.se/bug/?i=8016
[30] = https://curl.se/bug/?i=8059
[31] = https://curl.se/bug/?i=8058
[32] = https://curl.se/bug/?i=8056
[33] = https://curl.se/bug/?i=8053
[34] = https://curl.se/bug/?i=8090
[35] = https://curl.se/bug/?i=8082
[36] = https://curl.se/bug/?i=8049
[37] = https://curl.se/bug/?i=8076
[38] = https://curl.se/bug/?i=8160
[39] = https://curl.se/bug/?i=8012
[40] = https://curl.se/bug/?i=7988
[41] = https://curl.se/bug/?i=8042
[42] = https://curl.se/bug/?i=7987
[43] = https://curl.se/bug/?i=8078
[44] = https://curl.se/bug/?i=8071
[45] = https://curl.se/bug/?i=8066
[46] = https://curl.se/bug/?i=8033
[47] = https://curl.se/bug/?i=8062
[48] = https://curl.se/bug/?i=8105
[49] = https://curl.se/bug/?i=8104
[50] = https://curl.se/bug/?i=8101
[51] = https://curl.se/bug/?i=8103
[52] = https://curl.se/bug/?i=8083
[53] = https://curl.se/bug/?i=8100
[54] = https://curl.se/bug/?i=8132
[55] = https://curl.se/bug/?i=8129
[56] = https://curl.se/bug/?i=8065
[57] = https://curl.se/bug/?i=8097
[58] = https://curl.se/bug/?i=8097
[59] = https://curl.se/bug/?i=8094
[60] = https://curl.se/bug/?i=8134
[61] = https://curl.se/bug/?i=8128
[62] = https://curl.se/bug/?i=8128
[63] = https://curl.se/bug/?i=8128
[64] = https://curl.se/bug/?i=8128
[65] = https://curl.se/bug/?i=8127
[66] = https://curl.se/bug/?i=8126
[67] = https://curl.se/bug/?i=8147
[68] = https://curl.se/bug/?i=8125
[69] = https://curl.se/bug/?i=8140
[70] = https://curl.se/bug/?i=8120
[71] = https://curl.se/bug/?i=8148
[72] = https://curl.se/bug/?i=8146
[73] = https://curl.se/bug/?i=8142
[74] = https://curl.se/bug/?i=8159
[75] = https://curl.se/bug/?i=7922
[76] = https://curl.se/bug/?i=8084
[77] = https://curl.se/bug/?i=8136
[78] = https://curl.se/bug/?i=8137
[79] = https://curl.se/bug/?i=8133
[80] = https://curl.se/bug/?i=8162
[81] = https://curl.se/bug/?i=8141
[82] = https://curl.se/bug/?i=8158
[83] = https://curl.se/bug/?i=8156
[86] = https://curl.se/bug/?i=8181
[88] = https://curl.se/bug/?i=8177
[89] = https://curl.se/bug/?i=8171
|