DLP: Use Curl_inet_pton() to get a network address
[platform/upstream/curl.git] / RELEASE-NOTES
1 curl and libcurl 7.73.0
2
3  Public curl releases:         195
4  Command line options:         234
5  curl_easy_setopt() options:   278
6  Public functions in libcurl:  85
7  Contributors:                 2270
8
9 This release includes the following changes:
10
11  o curl: add --output-dir [25]
12  o curl: support XDG_CONFIG_HOME to find .curlrc [3]
13  o curl: update --help with categories [77]
14  o curl_easy_option_*: new API for meta-data about easy options [40]
15  o CURLE_PROXY: new error code [7]
16  o mqtt: enable by default [28]
17  o sftp: add new quote commands 'atime' and 'mtime' [6]
18  o ssh: add the option CURLKHSTAT_FINE_REPLACE [27]
19  o tls: add CURLOPT_SSL_EC_CURVES and --curves [29]
20
21 This release includes the following bugfixes:
22
23  o altsvc: clone setting in curl_easy_duphandle [60]
24  o base64: also build for smtp, pop3 and imap [81]
25  o BUGS: convert document to markdown [107]
26  o build-wolfssl: fix build with Visual Studio 2019 [114]
27  o buildconf: invoke 'autoreconf -fi' instead [37]
28  o checksrc: detect // comments on column 0 [132]
29  o checksrc: verify do-while and spaces between the braces [2]
30  o checksrc: warn on space after exclamation mark [129]
31  o CI/azure: disable test 571 in the msys2 builds [93]
32  o CI/azure: MQTT is now enabled by default [64]
33  o CI/azure: no longer ignore results of test 1013 [43]
34  o CI/tests: fix invocation of tests for CMake builds [117]
35  o CI/travis: add a CI job with openssl3 (from git master) [51]
36  o cleanups: avoid curl_ on local variables [53]
37  o CMake: add option to enable Unicode on Windows [48]
38  o cmake: make HTTP_ONLY also disable MQTT [58]
39  o CMake: remove explicit `CMAKE_ANSI_CFLAGS` [45]
40  o cmake: remove scary warning [96]
41  o cmdline-opts/gen.pl: generate nicer "See Also" in curl.1 [66]
42  o configure: don't say HTTPS-proxy is enabled when disabled [120]
43  o configure: fix pkg-config detecting wolfssl [26]
44  o configure: let --enable-debug set -Wenum-conversion with gcc >= 10 [56]
45  o conn: check for connection being dead before reuse [39]
46  o connect.c: remove superfluous 'else' in Curl_getconnectinfo [42]
47  o curl.1: add see also no-progress-meter on two spots [67]
48  o curl.1: fix typo invokved -> invoked [36]
49  o curl: in retry output don't call all problems "transient" [74]
50  o curl: make --libcurl show binary posts correctly [130]
51  o curl: make checkpasswd use dynbuf [100]
52  o curl: make file2memory use dynbuf [102]
53  o curl: make file2string use dynbuf [103]
54  o curl: make glob_match_url use dynbuf [101]
55  o curl: make sure setopt CURLOPT_IPRESOLVE passes on a long [134]
56  o curl: retry delays in parallel mode no longer sleeps blocking [70]
57  o curl: use curlx_dynbuf for realloc when loading config files [73]
58  o curl:parallel_transfers: make sure retry readds the transfer [71]
59  o curl_get_line: build only if cookies or alt-svc are enabled [13]
60  o curl_mime_headers.3: fix the example's use of curl_slist_append [83]
61  o Curl_pgrsTime - return new time to avoid timeout integer overflow [32]
62  o Curl_send: return error when pre_receive_plain can't malloc [111]
63  o dist: add missing CMake Find modules to the distribution [14]
64  o docs/LICENSE-MIXING: remove [79]
65  o docs/opts: fix typos in two manual pages [119]
66  o docs/RESOURCES: remove [105]
67  o docs/TheArtOfHttpScripting: convert to markdown [106]
68  o docs: add description about CI platforms to CONTRIBUTE.md [44]
69  o docs: correct non-existing macros in man pages [35]
70  o doh: add error message for DOH_DNS_NAME_TOO_LONG [17]
71  o dynbuf: make sure Curl_dyn_tail() zero terminates [78]
72  o easy_reset: clear retry counter [82]
73  o easygetopt: pass a valid enum to avoid compiler warning [75]
74  o etag: save and use the full received contents [4]
75  o ftp: a 550 response to SIZE returns CURLE_REMOTE_FILE_NOT_FOUND [99]
76  o ftp: avoid risk of reading uninitialized integers [76]
77  o ftp: get rid of the PPSENDF macro [85]
78  o ftp: make a 552 response return CURLE_REMOTE_DISK_FULL [87]
79  o ftp: separate FTPS from FTP over "HTTPS proxy" [112]
80  o git: ignore libtests in 3XXX area [16]
81  o github: use new issue template feature [88]
82  o HISTORY: mention alt-svc added in 2019
83  o HTTP/3: update to OpenSSL_1_1_1g-quic-draft-29 [41]
84  o http: consolidate nghttp2_session_mem_recv() call paths [80]
85  o http_proxy: do not count proxy headers in the header bytecount [90]
86  o http_proxy: do not crash with HTTPS_PROXY and NO_PROXY set [50]
87  o imap: make imap_send use dynbuf for the send buffer management [110]
88  o imap: set cselect_bits to CURL_CSELECT_IN initially [104]
89  o ldap: reduce the amount of #ifdefs needed [124]
90  o lib/Makefile.am: bump VERSIONINFO due to new functions [65]
91  o lib1560: verify "redirect" to double-slash leading URL [20]
92  o lib583: fix enum mixup
93  o lib: fix -Wassign-enum warnings [84]
94  o lib: make Curl_gethostname accept a const pointer [38]
95  o libssh2: handle the SSH protocols done over HTTPS proxy [125]
96  o libssh2: pass on the error from ssh_force_knownhost_key_type [47]
97  o Makefile.m32: add ability to override zstd libs [ci skip] [10]
98  o man pages: switch to https://example.com URLs [86]
99  o MANUAL: update examples to resolve without redirects [122]
100  o mbedtls: add missing header when defining MBEDTLS_DEBUG [133]
101  o memdebug: remove 9 year old unused debug function [126]
102  o multi: expand pre-check for socket readiness [21]
103  o multi: handle connection state winsock events [31]
104  o multi: implement wait using winsock events [22]
105  o ngtcp2: adapt to new NGTCP2_PROTO_VER_MAX define [108]
106  o ngtcp2: adapt to the new pkt_info arguments [18]
107  o ntlm: fix condition for curl_ntlm_core usage [46]
108  o openssl: avoid error conditions when importing native CA [52]
109  o openssl: consider ALERT_CERTIFICATE_EXPIRED a failed verification [57]
110  o openssl: Fix wincrypt symbols conflict with BoringSSL [9]
111  o parsedate: tune the date to epoch conversion [95]
112  o pause: only trigger a reread if the unpause sticks [92]
113  o pingpong: use a dynbuf for the *_pp_sendf() function [113]
114  o READMEs: convert several to markdown [115]
115  o runtests: add %repeat[]% for test files [116]
116  o runtests: allow creating files without newlines [72]
117  o runtests: allow generating a binary sequence from hex
118  o runtests: clear pid variables when failing to start a server [12]
119  o runtests: make cleardir() erase dot files too [8]
120  o runtests: provide curl's version string as %VERSION for tests [127]
121  o schannel: fix memory leak when using get_cert_location [15]
122  o schannel: return CURLE_PEER_FAILED_VERIFICATION for untrusted root [128]
123  o scripts: improve the "get latest curl release tag" logic
124  o sectransp: make it build with --disable-proxy [123]
125  o select.h: make socket validation macros test for INVALID_SOCKET [24]
126  o select: align poll emulation to return all relevant events [63]
127  o select: fix poll-based check not detecting connect failure
128  o select: reduce duplication of Curl_poll in Curl_socket_check [23]
129  o select: simplify return code handling for poll and select [49]
130  o setopt: if the buffer exists, refuse the new BUFFERSIZE [5]
131  o setopt: return CURLE_BAD_FUNCTION_ARGUMENT on bad argument [91]
132  o socketpair: allow CURL_DISABLE_SOCKETPAIR [11]
133  o sockfilt: handle FD_CLOSE winsock event on write socket [30]
134  o src: spell whitespace without whitespace [121]
135  o SSLCERTS: fix English syntax [34]
136  o strerror: honor Unicode API choice on Windows [109]
137  o symbian: drop support [118]
138  o telnet.c: depend on static requirement of WinSock version 2 [61]
139  o test1541: remove since it is a known bug [68]
140  o test163[12]: require http to be built-in to run [94]
141  o test434: test -K use in a single line without newline [59]
142  o test971: show test mismatches "inline"
143  o tests/data: Fix some mismatched XML tags in test cases
144  o tests/FILEFORMAT: document nonewline support for <file>
145  o tests/FILEFORMAT: document type=shell for <command>
146  o tests/server/util.c: fix support for Windows Unicode builds [131]
147  o tests: remove pipelining tests [69]
148  o tls: fix SRP detection by using the proper #ifdefs [33]
149  o tls: provide the CApath verbose log on its own line [1]
150  o tool_setopt: escape binary data to hex, not octal
151  o tool_writeout: add new writeout variable, %{num_headers} [97]
152  o travis: add a build using libressl (from git master) [55]
153  o url: use blank credentials when using proxy w/o username and password [54]
154  o urlapi: use more Curl_safefree [89]
155  o vtls: deduplicate client certificates in ssl_config_data [98]
156  o win32: drop support for WinSock version 1, require version 2 [62]
157  o winbuild: convert the instruction text to README.md [19]
158
159 This release includes the following known bugs:
160
161  o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html)
162
163 This release would not have looked like this without help, code, reports and
164 advice from friends like these:
165
166   Alessandro Ghedini, Anders Bakken, Andrew Barnes, anio on github,
167   Antarpreet Singh, beckenc on github, Chris Paulson-Ellis,
168   Christian Weisgerber, COFFEETALES on github, Dan Fandrich, Daniel Gustafsson,
169   Daniel Stenberg, Dan Kenigsberg, Diven Qi, Don J Olmstead, Duncan Wilcox,
170   Eli Schwartz, Emil Engler, Eric Curtin, Frederik Wedel-Heinen,
171   fullincome on github, Gaurav Malhotra, Gergely Nagy, Gisle Vanem,
172   Harry Sintonen, htasta on github, iammrtau on github, ihsinme on github,
173   Ionuț-Francisc Oancea, Javier Blazquez, Javier Navarro, Jeroen Ooms,
174   jmdavitt on github, Kamil Dudka, Kunal Chandarana, Laramie Leavitt,
175   Marcel Raad, Marc Hörsken, Martin Bašti, Michael Baentsch, Michael Musset,
176   Michael Olbrich, Mingtao Yang, M.R.T on github, Peter Körner, Peter Wu,
177   Quentin Balland, Rasmus Melchior Jacobsen, Ray Satiro, rcombs on github,
178   Robin Douine, Samanta Navarro, Samuel Marks, Samuel Tranchet, Sergei Nikulov,
179   sofaboss on github, Stefan Strogin, Stephan Mühlstrasser,
180   Tatsuhiro Tsujikawa, Tomas Berger, Tom van der Woerdt, Viktor Szakats,
181   xwxbug on github,
182   (63 contributors)
183
184         Thanks! (and sorry if I forgot to mention someone)
185
186 References to bug reports and discussions on issues:
187
188  [1] = https://curl.haxx.se/bug/?i=5826
189  [2] = https://curl.haxx.se/bug/?i=5845
190  [3] = https://curl.haxx.se/bug/?i=5829
191  [4] = https://curl.haxx.se/bug/?i=5610
192  [5] = https://curl.haxx.se/bug/?i=5842
193  [6] = https://curl.haxx.se/bug/?i=5810
194  [7] = https://curl.haxx.se/bug/?i=5770
195  [8] = https://curl.haxx.se/bug/?i=5838
196  [9] = https://curl.haxx.se/bug/?i=5669
197  [10] = https://curl.haxx.se/bug/?i=5840
198  [11] = https://curl.haxx.se/bug/?i=5850
199  [12] = https://curl.haxx.se/mail/lib-2020-08/0018.html
200  [13] = https://curl.haxx.se/bug/?i=5851
201  [14] = https://curl.haxx.se/bug/?i=5836
202  [15] = https://curl.haxx.se/bug/?i=5855
203  [16] = https://curl.haxx.se/bug/?i=5859
204  [17] = https://curl.haxx.se/bug/?i=5863
205  [18] = https://curl.haxx.se/bug/?i=5864
206  [19] = https://curl.haxx.se/bug/?i=5861
207  [20] = https://curl.haxx.se/bug/?i=5849
208  [21] = https://curl.haxx.se/bug/?i=5634
209  [22] = https://curl.haxx.se/bug/?i=5634
210  [23] = https://curl.haxx.se/bug/?i=5707
211  [24] = https://curl.haxx.se/bug/?i=5760
212  [25] = https://curl.haxx.se/bug/?i=5637
213  [26] = https://curl.haxx.se/bug/?i=5848
214  [27] = https://curl.haxx.se/bug/?i=5685
215  [28] = https://curl.haxx.se/bug/?i=5858
216  [29] = https://curl.haxx.se/bug/?i=5892
217  [30] = https://curl.haxx.se/bug/?i=5879
218  [31] = https://curl.haxx.se/bug/?i=5867
219  [32] = https://curl.haxx.se/bug/?i=5583
220  [33] = https://curl.haxx.se/bug/?i=5865
221  [34] = https://curl.haxx.se/bug/?i=5876
222  [35] = https://curl.haxx.se/bug/?i=5846
223  [36] = https://curl.haxx.se/bug/?i=5846
224  [37] = https://curl.haxx.se/bug/?i=5853
225  [38] = https://curl.haxx.se/bug/?i=5866
226  [39] = https://curl.haxx.se/bug/?i=5884
227  [40] = https://curl.haxx.se/bug/?i=5365
228  [41] = https://curl.haxx.se/bug/?i=5871
229  [42] = https://curl.haxx.se/bug/?i=5912
230  [43] = https://curl.haxx.se/bug/?i=5889
231  [44] = https://curl.haxx.se/bug/?i=5882
232  [45] = https://curl.haxx.se/bug/?i=5439
233  [46] = https://curl.haxx.se/bug/?i=1262
234  [47] = https://curl.haxx.se/bug/?i=5909
235  [48] = https://curl.haxx.se/bug/?i=5843
236  [49] = https://curl.haxx.se/bug/?i=5880
237  [50] = https://bugzilla.redhat.com/1873327
238  [51] = https://curl.haxx.se/bug/?i=5908
239  [52] = https://curl.haxx.se/bug/?i=5907
240  [53] = https://curl.haxx.se/bug/?i=5906
241  [54] = https://curl.haxx.se/bug/?i=5914
242  [55] = https://curl.haxx.se/bug/?i=5932
243  [56] = https://curl.haxx.se/bug/?i=5930
244  [57] = https://curl.haxx.se/bug/?i=5934
245  [58] = https://curl.haxx.se/bug/?i=5931
246  [59] = https://curl.haxx.se/bug/?i=5946
247  [60] = https://curl.haxx.se/bug/?i=5923
248  [61] = https://curl.haxx.se/bug/?i=5854
249  [62] = https://curl.haxx.se/bug/?i=5854
250  [63] = https://curl.haxx.se/bug/?i=5883
251  [64] = https://curl.haxx.se/bug/?i=5903
252  [65] = https://curl.haxx.se/bug/?i=5899
253  [66] = https://curl.haxx.se/bug/?i=5898
254  [67] = https://curl.haxx.se/bug/?i=5897
255  [68] = https://curl.haxx.se/bug/?i=5922
256  [69] = https://curl.haxx.se/bug/?i=5921
257  [70] = https://curl.haxx.se/bug/?i=5917
258  [71] = https://curl.haxx.se/bug/?i=5905
259  [72] = https://curl.haxx.se/bug/?i=5946
260  [73] = https://curl.haxx.se/bug/?i=5946
261  [74] = https://curl.haxx.se/bug/?i=5916
262  [75] = https://github.com/curl/curl/commit/6ebe63fac23f38df911edc348e8ccc72280f9434#commitcomment-42042843
263  [76] = https://curl.haxx.se/bug/?i=5972
264  [77] = https://curl.haxx.se/bug/?i=5680
265  [78] = https://curl.haxx.se/bug/?i=5959
266  [79] = https://curl.haxx.se/bug/?i=5955
267  [80] = https://curl.haxx.se/bug/?i=5648
268  [81] = https://curl.haxx.se/bug/?i=5937
269  [82] = https://curl.haxx.se/bug/?i=5974
270  [83] = https://curl.haxx.se/bug/?i=5942
271  [84] = https://github.com/curl/curl/commit/879007f8118771f4896334731aaca5850a154675#commitcomment-42087553
272  [85] = https://curl.haxx.se/bug/?i=5971
273  [86] = https://curl.haxx.se/bug/?i=5969
274  [87] = https://curl.haxx.se/bug/?i=6016
275  [88] = https://curl.haxx.se/bug/?i=5936
276  [89] = https://curl.haxx.se/bug/?i=5968
277  [90] = https://curl.haxx.se/bug/?i=5992
278  [91] = https://curl.haxx.se/bug/?i=5993
279  [92] = https://curl.haxx.se/mail/lib-2020-09/0081.html
280  [93] = https://curl.haxx.se/bug/?i=5954
281  [94] = https://curl.haxx.se/bug/?i=6014
282  [95] = https://curl.haxx.se/bug/?i=5985
283  [96] = https://curl.haxx.se/bug/?i=5984
284  [97] = https://curl.haxx.se/bug/?i=5947
285  [98] = https://curl.haxx.se/bug/?i=5629
286  [99] = https://curl.haxx.se/bug/?i=5953
287  [100] = https://curl.haxx.se/bug/?i=5952
288  [101] = https://curl.haxx.se/bug/?i=5952
289  [102] = https://curl.haxx.se/bug/?i=5952
290  [103] = https://curl.haxx.se/bug/?i=5952
291  [104] = https://curl.haxx.se/bug/?i=5961
292  [105] = https://curl.haxx.se/bug/?i=5980
293  [106] = https://curl.haxx.se/bug/?i=5981
294  [107] = https://curl.haxx.se/bug/?i=5979
295  [108] = https://curl.haxx.se/bug/?i=6012
296  [109] = https://curl.haxx.se/bug/?i=6005
297  [110] = https://curl.haxx.se/bug/?i=6010
298  [111] = https://curl.haxx.se/bug/?i=6011
299  [112] = https://curl.haxx.se/bug/?i=5523
300  [113] = https://curl.haxx.se/bug/?i=6004
301  [114] = https://curl.haxx.se/bug/?i=6033
302  [115] = https://curl.haxx.se/bug/?i=6028
303  [116] = https://curl.haxx.se/bug/?i=6040
304  [117] = https://curl.haxx.se/bug/?i=6052
305  [118] = https://curl.haxx.se/bug/?i=5989
306  [119] = https://curl.haxx.se/bug/?i=6039
307  [120] = https://github.com/curl/curl/pull/5735#issuecomment-701376388
308  [121] = https://curl.haxx.se/bug/?i=6023
309  [122] = https://curl.haxx.se/bug/?i=6024
310  [123] = https://curl.haxx.se/bug/?i=6025
311  [124] = https://curl.haxx.se/bug/?i=6035
312  [125] = https://curl.haxx.se/bug/?i=4295
313  [126] = https://curl.haxx.se/bug/?i=5973
314  [127] = https://curl.haxx.se/bug/?i=6037
315  [128] = https://curl.haxx.se/bug/?i=6003
316  [129] = https://curl.haxx.se/bug/?i=6034
317  [130] = https://curl.haxx.se/bug/?i=6031
318  [131] = https://curl.haxx.se/bug/?i=6070
319  [132] = https://curl.haxx.se/bug/?i=6048
320  [133] = https://curl.haxx.se/bug/?i=6045
321  [134] = https://curl.haxx.se/bug/?i=6042