blob: f77f0a9e135b466caf5ce584b0eb8bbdc6a4b720 [file] [log] [blame]
Elliott Hughes82be86d2017-09-20 17:00:17 -07001 _ _ ____ _
2 ___| | | | _ \| |
3 / __| | | | |_) | |
4 | (__| |_| | _ <| |___
5 \___|\___/|_| \_\_____|
Lucas Eckels9bd90e62012-08-06 15:07:02 -07006
Elliott Hughes82be86d2017-09-20 17:00:17 -07007 Changelog
Lucas Eckels9bd90e62012-08-06 15:07:02 -07008
Elliott Hughesf344baa2021-12-07 09:12:34 -08009Version 7.80.0 (10 Nov 2021)
10
11Daniel Stenberg (10 Nov 2021)
12- RELEASE-NOTES: synced
13
14 for curl 7.80.0
15
16- THANKS: add contributors from the 7.80.0 cycle
17
18- [Tatsuhiro Tsujikawa brought this change]
19
20 ngtcp2: advertise h3 as well as h3-29
21
22 Advertise h3 as well as h3-29 since some servers out there require h3
23 for QUIC v1.
24
25 Closes #7979
26
27- [Tatsuhiro Tsujikawa brought this change]
28
29 ngtcp2: use QUIC v1 consistently
30
31 Since we switched to v1 quic_transport_parameters codepoint in #7960
32 with quictls, lets use QUIC v1 consistently.
33
34 Closes #7979
35
36- [Tatsuhiro Tsujikawa brought this change]
37
38 ngtcp2: compile with the latest nghttp3
39
40 Closes #7978
41
42Marc Hoersken (9 Nov 2021)
43- tests: add Schannel-specific tests and disable unsupported ones
44
45 Adds Schannel variants of SSLpinning tests that include the option
46 --ssl-revoke-best-effort to ignore certificate revocation check
47 failures which is required due to our custom test CA certificate.
48
49 Disable the original variants if the Schannel backend is enabled.
50
51 Also skip all IDN tests which are broken while using an msys shell.
52
53 This is a step to simplify test exclusions for Windows and MinGW.
54
55 Reviewed-by: Jay Satiro
56 Reviewed-by: Marcel Raad
57 Reviewed-by: Daniel Stenberg
58 Closes #7968
59
60Daniel Stenberg (8 Nov 2021)
61- docs: NAME fixes in easy option man pages
62
63 Closes #7975
64
65- [Roger Young brought this change]
66
67 ftp: make the MKD retry to retry once per directory
68
69 Reported-by: Roger Young
70 Fixes #7967
71 Closes #7976
72
73- tool_operate: reorder code to avoid compiler warning
74
75 tool_operate.c(889) : warning C4701: potentially uninitialized local
76 variable 'per' use
77
78 Follow-up to cc71d352651a0d95
79 Reported-by: Marc Hörsken
80 Bug: https://github.com/curl/curl/pull/7922#issuecomment-963042676
81 Closes #7971
82
83- curl_easy_perform.3: add a para about recv and send data
84
85 Reported-by: Godwin Stewart
86 Fixes #7973
87 Closes #7974
88
89- tool_operate: fclose stream only if fopened
90
91 Fixes torture test failures
92 Follow-up to cc71d352651
93
94 Closes #7972
95
96- libcurl-easy.3: language polish
97
98- limit-rate.d: this is average over several seconds
99
100 Closes #7970
101
102- docs: reduce/avoid English contractions
103
104 You're => You are
105 Hasn't => Has not
106 Doesn't => Does not
107 Don't => Do not
108 You'll => You will
109 etc
110
111 Closes #7930
112
113- tool_operate: fix torture leaks with etags
114
115 Spotted by torture testing 343 344 345 347.
116
117 Follow-up from cc71d352651a0
118 Pointed-out-by: Dan Fandrich
119
120 Closes #7969
121
122- [Amaury Denoyelle brought this change]
123
124 ngtcp2: support latest QUIC TLS RFC9001
125
126 QUIC Transport Parameters Extension has been changed between draft-29
127 and latest RFC9001. Most notably, its identifier has been updated from
128 0xffa5 to 0x0039. The version is selected through the QUIC TLS library
129 via the legacy codepoint.
130
131 Disable the usage of legacy codepoint in curl to switch to latest
132 RFC9001. This is required to be able to keep up with latest QUIC
133 implementations.
134
135 Acked-by: Tatsuhiro Tsujikawa
136 Closes #7960
137
138- test1173: make manpage-syntax.pl spot \n errors in examples
139
140- man pages: fix backslash-n in examples
141
142 ... to be proper backslash-backslash-n sequences to render nicely in man
143 and on website.
144
145 Follow-up to 24155569d8a
146 Reported-by: Sergey Markelov
147
148 Fixes https://github.com/curl/curl-www/issues/163
149 Closes #7962
150
151- scripts/release-notes.pl: use out of repo links verbatim in refs
152
153- tool_operate: a failed etag save now only fails that transfer
154
155 When failing to create the output file for saving an etag, only fail
156 that particular single transfer and allow others to follow.
157
158 In a serial transfer setup, if no transfer at all is done due to them
159 all being skipped because of this error, curl will output an error
160 message and return exit code 26.
161
162 Added test 369 and 370 to verify.
163
164 Reported-by: Earnestly on github
165 Ref: #7942
166 Closes #7945
167
168- [Kevin Burke brought this change]
169
170 .github: retry macos "brew install" command on failure
171
172 Previously we saw errors attempting to run "brew install", see
173 https://github.com/curl/curl/runs/4095721123?check_suite_focus=true for
174 an example, since this command is idempotent, it is safe to run again.
175
176 Closes #7955
177
178- CURLOPT_ALTSVC_CTRL.3: mention conn reuse is preferred
179
180 Ref: https://github.com/curl/curl/discussions/7954
181
182 Closes #7957
183
184- RELEASE-NOTES: synced
185
186- zuul: pin the quiche build to use an older cmake-rs
187
188 The latest cmake-rs assumes cmake's --parallel works. That was added in
189 cmake 3.12, but a lot of our CI builds run on Ubuntu Bionic which only
190 has cmake 3.10.
191
192 Fixes #7927
193 Closes #7952
194
195- [Marc Hoersken brought this change]
196
197 Revert "src/tool_filetime: disable -Wformat on mingw for this file"
198
199 This reverts commit 7c88fe375b15c44d77bccc9ab733b8069d228e6f.
200
201 Follow up to #6535 as the pragma is obsolete with warnf
202
203 Closes #7941
204
205Jay Satiro (2 Nov 2021)
206- schannel: fix memory leak due to failed SSL connection
207
208 - Call schannel_shutdown if the SSL connection fails.
209
210 Prior to this change schannel_shutdown (which shuts down the SSL
211 connection as well as memory cleanup) was not called when the SSL
212 connection failed (eg due to failed handshake).
213
214 Co-authored-by: Gisle Vanem
215
216 Fixes https://github.com/curl/curl/issues/7877
217 Closes https://github.com/curl/curl/pull/7878
218
219Daniel Stenberg (2 Nov 2021)
220- Curl_updateconninfo: store addresses for QUIC connections too
221
222 So that CURLINFO_PRIMARY_IP etc work for HTTP/3 like for other HTTP
223 versions.
224
225 Reported-by: Jerome Mao
226 Fixes #7939
227 Closes #7944
228
229- [Sergio Durigan Junior brought this change]
230
231 curl.1: fix typos in the manpage
232
233 s/transfering/transferring/
234 s/transfered/transferred/
235
236 Signed-off-by: Sergio Durigan Junior <sergiodj@sergiodj.net>
237 Closes #7937
238
239Marc Hoersken (1 Nov 2021)
240- tests/smbserver.py: fix compatibility with impacket 0.9.23+
241
242 impacket now performs sanity checks if the requested and to
243 be served file path actually is inside the real share path.
244
245 Ref: https://github.com/SecureAuthCorp/impacket/pull/1066
246
247 Fixes #7924
248 Closes #7935
249
250Daniel Stenberg (1 Nov 2021)
251- docs: reduce use of "very"
252
253 "Very" should be avoided in most texts. If intensifiers are needed, try
254 find better words instead.
255
256 Closes #7936
257
258- [Tatsuhiro Tsujikawa brought this change]
259
260 ngtcp2: specify the missing required callback functions
261
262 Closes #7929
263
264- CURLOPT_[PROXY]_SSL_CIPHER_LIST.3: bold instead of quote
265
266 Bold the example ciphers instead of using single quotes, which then also
267 avoids the problem of how to use single quotes when first in a line.
268
269 Also rephrased the pages a little.
270
271 Reported-by: Sergio Durigan Junior
272 Ref: #7928
273 Closes #7934
274
275- gen.pl: replace leading single quotes with \(aq
276
277 ... and allow single quotes to be used "normally" in the .d files.
278
279 Makes the output curl.1 use better nroff.
280
281 Reported-by: Sergio Durigan Junior
282 Ref: #7928
283 Closes #7933
284
285Marc Hoersken (1 Nov 2021)
286- tests: kill some test servers afterwards to avoid locked logfiles
287
288 Reviewed-by: Daniel Stenberg
289 Closes #7925
290
291Daniel Stenberg (1 Nov 2021)
292- smooth-gtk-thread.c: enhance the mutex lock use
293
294 Reported-by: ryancaicse on github
295 Fixes #7926
296 Closes #7931
297
298Marc Hoersken (31 Oct 2021)
299- CI/runtests.pl: restore -u flag, but remove it from CI runs
300
301 This makes it possible to use -u again for local testing,
302 but removes the flag from CI config files and make targets.
303
304 Reviewed-by: Daniel Stenberg
305
306 Partially reverts #7841
307 Closes #7921
308
309Daniel Stenberg (29 Oct 2021)
310- [Jonathan Cardoso Machado brought this change]
311
312 CURLOPT_HSTSWRITEFUNCTION.3: using CURLOPT_HSTS_CTRL is required
313
314 Closes #7923
315
316- [Axel Morawietz brought this change]
317
318 imap: display quota information
319
320 Show response to "GETQUOTAROOT INBOX" command.
321
322 Closes #6973
323
324- RELEASE-NOTES: synced
325
326- [Boris Rasin brought this change]
327
328 cmake: fix error getting LOCATION property on non-imported target
329
330 Closes #7885
331
332- [x2018 brought this change]
333
334 url: check the return value of curl_url()
335
336 Closes #7917
337
338- [Roy Li brought this change]
339
340 configure.ac: replace krb5-config with pkg-config
341
342 The rationale is that custom *-config tools don't work well when
343 cross-compiling or using sysroots (such as when using Yocto project) and
344 require custom fixing for each of them; pkg-config on the other hand
345 works similarly everywhere.
346
347 Signed-off-by: Roy Li <rongqing.li@windriver.com>
348 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
349
350 Closes #7916
351
352- test1160: edited to work with hyper
353
354 Closes #7912
355
356- data/DISABLED: enable tests that now work with hyper
357
358 Closes #7911
359
360- test559: add 'HTTP' in keywords
361
362 Makes it run fine with hyper
363
364 Closes #7911
365
366- test552: updated to work with hyper
367
368 Closes #7911
369
370Marc Hoersken (27 Oct 2021)
371- github: fix incomplete permission to label PRs for Hacktoberfest
372
373 Unfortunately the GitHub API requires a token with write permission
374 for both issues and pull-requests to edit labels on even just PRs.
375
376 Follow up to #7897
377
378Daniel Stenberg (27 Oct 2021)
379- opt-manpages: use 'Added in' instead of 'Since'
380
381 Closes #7913
382
383Marc Hoersken (27 Oct 2021)
384- github: fix missing permission to label PRs for Hacktoberfest
385
386 Follow up to #7897
387
388 Test references to see if permissions are now sufficient:
389
390 Closes #7832
391 Closes #7897
392
393- CI: more use of test-ci make target and verbose output
394
395 Replace test-nonflaky with test-ci and enable verbose output
396 in all remaining CIs except Zuul which is customized a lot.
397
398 Reviewed-by: Daniel Stenberg
399 Reviewed-by: Jay Satiro
400
401 Follow up to #7785
402 Closes #7832
403
404- github: add support for Hacktoberfest using labels
405
406 Automatically add hacktoberfest-accepted label to PRs opened between
407 September 30th and November 1st once a commit with a close reference
408 to it is pushed onto the master branch.
409
410 With this workflow we can participate in Hacktoberfest while not
411 relying on GitHub to identify PRs as merged due to our rebasing.
412
413 Requires hacktoberfest-accepted labels to exist for PRs on the
414 participating repository. Also requires hacktoberfest topic on
415 the participating repository to avoid applying to forked repos.
416
417 Reviewed-by: Daniel Stenberg
418
419 Fixes #7865
420 Closes #7897
421
422Daniel Stenberg (27 Oct 2021)
423- http: reject HTTP response codes < 100
424
425 ... which then also includes negative ones as test 1430 uses.
426
427 This makes native + hyper backend act identically on this and therefore
428 test 1430 can now be enabled when building with hyper. Adjust test 1431
429 as well.
430
431 Closes #7909
432
433- [Kerem Kat brought this change]
434
435 docs: fix typo in CURLOPT_TRAILERFUNCTION example
436
437 Closes #7910
438
439- docs/HYPER: remove some remaining issues, add HTTP/0.9 limitation
440
441- configure: when hyper is selected, deselect nghttp2
442
443 Closes #7908
444
445- [Patrick Monnerat brought this change]
446
447 sendf: accept zero-length data in Curl_client_write()
448
449 Historically, Curl_client_write() used a length value of 0 as a marker
450 for a null-terminated data string. This feature has been removed in
451 commit f4b85d2. To detect leftover uses of the feature, a DEBUGASSERT
452 statement rejecting a length with value 0 was introduced, effectively
453 precluding use of this function with zero-length data.
454
455 The current commit removes the DEBUGASSERT and makes the function to
456 return immediately if length is 0.
457
458 A direct effect is to fix trying to output a zero-length distinguished
459 name in openldap.
460
461 Another DEBUGASSERT statement is also rephrased for better readability.
462
463 Closes #7898
464
465- hyper: disable test 1294 since hyper doesn't allow such crazy headers
466
467 Closes #7905
468
469- c-hyper: make CURLOPT_SUPPRESS_CONNECT_HEADERS work
470
471 Verified by the enabled test 1288
472
473 Closes #7905
474
475- test1287: make work on hyper
476
477 Closes #7905
478
479- test1266/1267: disabled on hyper: no HTTP/0.9 support
480
481 Closes #7905
482
483Viktor Szakats (25 Oct 2021)
484- Makefile.m32: fix to not require OpenSSL with -libssh2 or -rtmp options
485
486 Previously, -libssh2/-rtmp options assumed that OpenSSL is also enabled
487 (and then failed with an error when not finding expected OpenSSL headers),
488 but this isn't necessarly true, e.g. when building both libssh2 and curl
489 against Schannel. This patch makes sure to only enable the OpenSSL backend
490 with -libssh2/-rtmp, when there was no SSL option explicitly selected.
491
492 - Re-implement the logic as a single block of script.
493 - Also fix an indentation while there.
494
495 Assisted-by: Jay Satiro
496
497 Closes #7895
498
499Daniel Stenberg (25 Oct 2021)
500- docs: consistent use of "Added in"
501
502 Make them all say "Added in [version]" without using 'curl' or 'libcurl'
503 in that phrase.
504
505- man pages: require all to use the same section header order
506
507 This is the same order we already enforce among the options' man pages:
508 consistency is good. Add lots of previously missing examples.
509
510 Adjust the manpage-syntax script for this purpose, used in test 1173.
511
512 Closes #7904
513
514- [David Hu brought this change]
515
516 docs/HTTP3: improve build instructions
517
518 1. If writing to a system path if the command is not prefixed with
519 `sudo` it will cause a permission denied error
520
521 2. The patched OpenSSL branch has been updated to `openssl-3.0.0+quic`
522 to match upstream OpenSSL version.
523
524 3. We should not disable GnuTLS docs.
525
526 Updated some commands about `make install`
527
528 Closes #7842
529
530- [Ricardo Martins brought this change]
531
532 CMake: restore support for SecureTransport on iOS
533
534 Restore support for building curl for iOS with SecureTransport enabled.
535
536 Closes #7501
537
538- tests: enable more tests with hyper
539
540 Adjusted 1144, 1164 and 1176.
541
542 Closes #7900
543
544- docs: provide "RETURN VALUE" section for more func manpages
545
546 Three were missing, one used a non-standard name for the header.
547
548 Closes #7902
549
550Jay Satiro (25 Oct 2021)
551- curl_multi_socket_action.3: add a "RETURN VALUE" section
552
553 .. because it may not be immediately clear to the user what
554 curl_multi_socket_action returns.
555
556 Ref: https://curl.se/mail/lib-2021-10/0035.html
557
558 Closes https://github.com/curl/curl/pull/7901
559
560Daniel Stenberg (24 Oct 2021)
561- RELEASE-NOTES: synced
562
563- [Samuel Henrique brought this change]
564
565 tests: use python3 in test 1451
566
567 This is a continuation of commit ec91b5a69000bea0794bbb3 in which
568 changing this test was missed. There are no other python2 leftovers
569 now.
570
571 Based on a Debian patch originally written by Alessandro Ghedini
572 <ghedo@debian.org>
573
574 Closes #7899
575
576- [Eddie Lumpkin brought this change]
577
578 lib: fixing comment spelling typos in lib files
579
580 Closes #7894
581 Signed-off-by: ewlumpkin <ewlumpkin@gmail.com>
582
583- openssl: if verifypeer is not requested, skip the CA loading
584
585 It was previously done mostly to show a match/non-match in the verbose
586 output even when verification was not asked for. This change skips the
587 loading of the CA certs unless verifypeer is set to save memory and CPU.
588
589 Closes #7892
590
591- curl-confopts.m4: remove --enable/disable-hidden-symbols
592
593 These configure options have been saying "deprecated" since 9e24b9c7af
594 (April 2012). It was about time we remove them.
595
596 Closes #7891
597
598- c-hyper: don't abort CONNECT responses early when auth-in-progress
599
600 ... and make sure to stop ignoring the body once the CONNECT is done.
601
602 This should make test 206 work proper again and not be flaky.
603
604 Closes #7889
605
606- hyper: does not support disabling CURLOPT_HTTP_TRANSFER_DECODING
607
608 Simply because hyper doesn't have this ability. Mentioned in docs now.
609
610 Skip test 326 then
611
612 Closes #7889
613
614- test262: don't attempt with hyper
615
616 This test verifies that curl works with binary zeroes in HTTP response
617 headers and hyper refuses such. They're not kosher http.
618
619 Closes #7889
620
621- c-hyper: make test 217 run
622
623 Closes #7889
624
625- DISABLED: enable test 209+213 for hyper
626
627 Follow-up to 823d3ab855c
628
629 Closes #7889
630
631- test207: accept a different error code for hyper
632
633 It returns HYPERE_UNEXPECTED_EOF for this case which we convert to the
634 somewhat generic CURLE_RECV_ERROR.
635
636 Closes #7889
637
638- [Érico Nogueira brought this change]
639
640 INSTALL: update symbol hiding option
641
642 --enable-hidden-symbols was deprecated in
643 9e24b9c7afbcb81120af4cf3f6cdee49a06d8224.
644
645 Closes #7890
646
647- http_proxy: multiple CONNECT with hyper done better
648
649 Enabled test 206
650
651 Closes #7888
652
653- hyper: pass the CONNECT line to the debug callback
654
655 Closes #7887
656
657- mailmap: Malik Idrees Hasan Khan
658
659Jay Satiro (21 Oct 2021)
660- [Malik Idrees Hasan Khan brought this change]
661
662 build: fix typos
663
664 Closes https://github.com/curl/curl/pull/7886
665
666- URL-SYNTAX: add IMAP UID SEARCH example
667
668 - Explain the difference between IMAP search via URL (which returns
669 message sequence numbers) and IMAP search via custom request (which
670 can return UID numbers if prefixed with UID, eg "UID SEARCH ...").
671
672 Bug: https://github.com/curl/curl/issues/7626
673 Reported-by: orycho@users.noreply.github.com
674
675 Ref: https://github.com/curl/curl/issues/2789
676
677 Closes https://github.com/curl/curl/pull/7881
678
679Daniel Stenberg (20 Oct 2021)
680- manpage: adjust the asterisk in some SYNOPSIS sections
681
682 Closes #7884
683
684- curl_multi_perform.3: polish wording
685
686 - simplify the example by using curl_multi_poll
687
688 - mention curl_multi_add_handle in the text
689
690 - cut out the description of pre-7.20.0 return code behavior - that version
691 is now more than eleven years old and is basically no longer out there
692
693 - adjust the "typical usage" to mention curl_multi_poll
694
695 Closes #7883
696
697- docs/THANKS: removed on request
698
699- FAQ: polish the explanation of libcurl
700
701- curl_easy_perform.3: minor wording tweak
702
703- [Erik Stenlund brought this change]
704
705 mime: mention CURL_DISABLE_MIME in comment
706
707 CURL_DISABLE_MIME is not mentioned in the comment describing the if else
708 preprocessor directive.
709
710 Closes #7882
711
712- tls: remove newline from three infof() calls
713
714 Follow-up to e7416cf
715
716 Reported-by: billionai on github
717 Fixes #7879
718 Closes #7880
719
720- RELEASE-NOTES: synced
721
722- curl_gssapi: fix build warnings by removing const
723
724 Follow-up to 20e980f85b0ea6
725
726 In #7875 these inits were modified but I get two warnings that these new
727 typecasts are necessary for.
728
729 Closes #7876
730
731- [Bo Anderson brought this change]
732
733 curl_gssapi: fix link error on macOS Monterey
734
735 Fixes #7657
736 Closes #7875
737
738- test1185: verify checksrc
739
740 Closes #7866
741
742- checksrc: improve the SPACESEMICOLON error message
743
744 and adjust the MULTISPACE one to use plural
745
746 Closes #7866
747
748- url: set "k->size" -1 at start of request
749
750 The size of the transfer is unknown at that point.
751
752 Fixes #7871
753 Closes #7872
754
755Daniel Gustafsson (18 Oct 2021)
756- doh: remove experimental code for DoH with GET
757
758 The code for sending DoH requests with GET was never enabled in a way
759 such that it could be used or tested. As there haven't been requests
760 for this feature, and since it at this is effectively dead, remove it
761 and favor reimplementing the feature in case anyone is interested.
762
763 Closes #7870
764 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
765
766Daniel Stenberg (18 Oct 2021)
767- cirrus: remove FreeBSD 11.4 from the matrix
768
769 It has reached End-Of-Life and causes some LDAP CI issues.
770
771 Closes #7869
772
773- cirrus: switch to openldap24-client
774
775 ... as it seems openldap-client doesn't exist anymore.
776
777 Reported-by: Jay Satiro
778 Fixes #7868
779 Closes #7869
780
781- checksrc: ignore preprocessor lines
782
783 In order to check the actual code better, checksrc now ignores
784 everything that look like preprocessor instructions. It also means
785 that code in macros are now longer checked.
786
787 Note that some rules then still don't need to be followed when code is
788 exactly below a cpp instruction.
789
790 Removes two checksrc exceptions we needed previously because of
791 preprocessor lines being checked.
792
793 Reported-by: Marcel Raad
794 Fixes #7863
795 Closes #7864
796
797- urlapi: skip a strlen(), pass in zero
798
799 ... to let curl_easy_escape() itself do the strlen. This avoids a (false
800 positive) Coverity warning and it avoids us having to store the strlen()
801 return value in an int variable.
802
803 Reviewed-by: Daniel Gustafsson
804 Closes #7862
805
806- misc: update copyright years
807
808- examples/htmltidy: correct wrong printf() use
809
810 ... and update the includes to match how current htmltidy wants them
811 used.
812
813 Reported-by: Stathis Kapnidis
814 Fixes #7860
815 Closes #7861
816
817Jay Satiro (15 Oct 2021)
818- http: set content length earlier
819
820 - Make content length (ie download size) accessible to the user in the
821 header callback, but only after all headers have been processed (ie
822 only in the final call to the header callback).
823
824 Background:
825
826 For a long time the content length could be retrieved in the header
827 callback via CURLINFO_CONTENT_LENGTH_DOWNLOAD_T as soon as it was parsed
828 by curl.
829
830 Changes were made in 8a16e54 (precedes 7.79.0) to ignore content length
831 if any transfer encoding is used. A side effect of that was that
832 content length was not set by libcurl until after the header callback
833 was called the final time, because until all headers are processed it
834 cannot be determined if content length is valid.
835
836 This change keeps the same intention --all headers must be processed--
837 but now the content length is available before the final call to the
838 header function that indicates all headers have been processed (ie
839 a blank header).
840
841 Bug: https://github.com/curl/curl/commit/8a16e54#r57374914
842 Reported-by: sergio-nsk@users.noreply.github.com
843
844 Co-authored-by: Daniel Stenberg
845
846 Fixes https://github.com/curl/curl/issues/7804
847 Closes https://github.com/curl/curl/pull/7803
848
849Daniel Stenberg (15 Oct 2021)
850- [Abhinav Singh brought this change]
851
852 aws-sigv4: make signature work when post data is binary
853
854 User sets the post fields size for binary data. Hence, we should not be
855 using strlen on it.
856
857 Added test 1937 and 1938 to verify.
858
859 Closes #7844
860
861- [a1346054 brought this change]
862
863 MacOSX-Framework: remove redundant ';'
864
865 Closes #7859
866
867- RELEASE-NOTES: synced
868
869- openssl: with OpenSSL 1.1.0+ a failed RAND_status means goaway
870
871 One reason we know it can fail is if a provider is used that doesn't do
872 a proper job or is wrongly configured.
873
874 Reported-by: Michael Baentsch
875 Fixes #7840
876 Closes #7856
877
878Marcel Raad (14 Oct 2021)
879- [Ryan Mast brought this change]
880
881 cmake: add CURL_ENABLE_SSL option and make CMAKE_USE_* SSL backend options depend on it
882
883 Closes https://github.com/curl/curl/pull/7822
884
885Daniel Stenberg (14 Oct 2021)
886- http: remove assert that breaks hyper
887
888 Reported-by: Jay Satiro
889 Fixes #7852
890 Closes #7855
891
892- http_proxy: fix one more result assign for hyper
893
894 and remove the bad assert again, since it was run even with no error!
895
896 Closes #7854
897
898Jay Satiro (14 Oct 2021)
899- sws: fix memory leak on exit
900
901 - Free the allocated http request struct on cleanup.
902
903 Prior to this change if sws was built with leak sanitizer it would
904 report a memory leak error during testing.
905
906 Closes https://github.com/curl/curl/pull/7849
907
908Daniel Stenberg (14 Oct 2021)
909- c-hyper: make Curl_http propagate errors better
910
911 Pass on better return codes when errors occur within Curl_http instead
912 of insisting that CURLE_OUT_OF_MEMORY is the only possible one.
913
914 Pointed-out-by: Jay Satiro
915 Closes #7851
916
917- http_proxy: make hyper CONNECT() return the correct error code
918
919 For every 'goto error', make sure the result variable holds the error
920 code for what went wrong.
921
922 Reported-by: Rafał Mikrut
923 Fixes #7825
924 Closes #7846
925
926- docs/Makefile.am: repair 'make html'
927
928 by removing index.html which isn't around anymore
929
930 Closes #7853
931
932- [Борис Верховский brought this change]
933
934 curl: correct grammar in generated libcurl code
935
936 Closes #7802
937
938- tests: disable test 2043
939
940 It uses revoked.badssl.com which now is expired and therefor this now
941 permafails. We should not use external sites for tests, this test should
942 be converted to use our own infra.
943
944 Closes #7845
945
946- runtests: split out ignored tests
947
948 Report ignore tests separately from the actual fails.
949
950 Don't exit non-zero if test servers couldn't get killed.
951
952 Assisted-by: Jay Satiro
953
954 Fixes #7818
955 Closes #7841
956
957- http2: make getsock not wait for write if there's no remote window
958
959 While uploading, check for remote window availability in the getsock
960 function so that we don't wait for a writable socket if no data can be
961 sent.
962
963 Reported-by: Steini2000 on github
964 Fixes #7821
965 Closes #7839
966
967- test368: verify dash is appended for "-r [num]"
968
969 Follow-up to 8758a26f8878
970
971- [Борис Верховский brought this change]
972
973 curl: actually append "-" to --range without number only
974
975 Closes #7837
976
977- RELEASE-NOTES: synced
978
979- urlapi: URL decode percent-encoded host names
980
981 The host name is stored decoded and can be encoded when used to extract
982 the full URL. By default when extracting the URL, the host name will not
983 be URL encoded to work as similar as possible as before. When not URL
984 encoding the host name, the '%' character will however still be encoded.
985
986 Getting the URL with the CURLU_URLENCODE flag set will percent encode
987 the host name part.
988
989 As a bonus, setting the host name part with curl_url_set() no longer
990 accepts a name that contains space, CR or LF.
991
992 Test 1560 has been extended to verify percent encodings.
993
994 Reported-by: Noam Moshe
995 Reported-by: Sharon Brizinov
996 Reported-by: Raul Onitza-Klugman
997 Reported-by: Kirill Efimov
998 Fixes #7830
999 Closes #7834
1000
1001Marc Hoersken (8 Oct 2021)
1002- CI/makefiles: introduce dedicated test target
1003
1004 Make it easy to use the same set of test flags
1005 throughout all current and future CI builds.
1006
1007 Reviewed-by: Jay Satiro
1008
1009 Follow up to #7690
1010 Closes #7785
1011
1012Daniel Stenberg (8 Oct 2021)
1013- maketgz: redirect updatemanpages.pl output to /dev/null
1014
1015- CURLOPT_HTTPHEADER.3: add descripion for specific headers
1016
1017 Settting Host: or Transfer-Encoding: chunked actually have special
1018 meanings to libcurl. This change tries to document them
1019
1020 Closes #7829
1021
1022- c-hyper: use hyper_request_set_uri_parts to make h2 better
1023
1024 and make sure to not send Host: over h2.
1025
1026 Fixes #7679
1027 Reported-by: David Cook
1028 Closes #7827
1029
1030- [Michael Afanasiev brought this change]
1031
1032 curl-openssl.m4: modify library order for openssl linking
1033
1034 lcrypto may depend on lz, and configure corrently fails with when
1035 statically linking as the order is "-lz -lcrypto". This commit switches
1036 the order to "-lcrypto -lz".
1037
1038 Closes #7826
1039
1040Marcel Raad (7 Oct 2021)
1041- sha256: use high-level EVP interface for OpenSSL
1042
1043 Available since OpenSSL 0.9.7. The low-level SHA256 interface is
1044 deprecated in OpenSSL v3, and its usage was discouraged even before.
1045
1046 Closes https://github.com/curl/curl/pull/7808
1047
1048- curl_ntlm_core: use OpenSSL only if DES is available
1049
1050 This selects another SSL backend then if available, or otherwise at
1051 least gives a meaningful error message.
1052
1053 Closes https://github.com/curl/curl/pull/7808
1054
1055- md5: fix compilation with OpenSSL 3.0 API
1056
1057 Only use OpenSSL's MD5 code if it's available.
1058
1059 Also fix wolfSSL build with `NO_MD5`, in which case neither the
1060 wolfSSL/OpenSSL implementation nor the fallback implementation was
1061 used.
1062
1063 Closes https://github.com/curl/curl/pull/7808
1064
1065Daniel Stenberg (7 Oct 2021)
1066- print_category: printf %*s needs an int argument
1067
1068 ... not a size_t!
1069
1070 Detected by Coverity: CID 1492331.
1071 Closes #7823
1072
1073Jay Satiro (7 Oct 2021)
1074- version_win32: use actual version instead of manifested version
1075
1076 - Use RtlVerifyVersionInfo instead of VerifyVersionInfo, when possible.
1077
1078 Later versions of Windows have normal version functions that compare and
1079 return versions based on the way the application is manifested, instead
1080 of the actual version of Windows the application is running on. We
1081 prefer the actual version of Windows so we'll now call the Rtl variant
1082 of version functions (RtlVerifyVersionInfo) which does a proper
1083 comparison of the actual version.
1084
1085 Reported-by: Wyatt O'Day
1086
1087 Ref: https://github.com/curl/curl/pull/7727
1088
1089 Fixes https://github.com/curl/curl/issues/7742
1090 Closes https://github.com/curl/curl/pull/7810
1091
1092Daniel Stenberg (6 Oct 2021)
1093- RELEASE-NOTES: synced
1094
1095- http: fix Basic auth with empty name field in URL
1096
1097 Add test 367 to verify.
1098
1099 Reported-by: Rick Lane
1100 Fixes #7819
1101 Closes #7820
1102
1103- [Jeffrey Tolar brought this change]
1104
1105 CURLOPT_MAXLIFETIME_CONN: maximum allowed lifetime for conn reuse
1106
1107 ... and close connections that are too old instead of reusing them.
1108
1109 By default, this behavior is disabled.
1110
1111 Bug: https://curl.se/mail/lib-2021-09/0058.html
1112 Closes #7751
1113
1114Daniel Gustafsson (6 Oct 2021)
1115- docs/examples: add missing binaries to gitignore
1116
1117 Commit f65d7889b added getreferrer, and commit ae8e11ed5 multi-legacy,
1118 both of which missed adding .gitignore clauses for the built binaries.
1119
1120 Closes #7817
1121 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1122
1123Daniel Stenberg (5 Oct 2021)
1124- [Josip Medved brought this change]
1125
1126 HTTP3: fix the HTTP/3 Explained book link
1127
1128 Closes #7813
1129
1130- [Lucas Holt brought this change]
1131
1132 misc: fix a few issues on MidnightBSD
1133
1134 Closes #7812
1135
1136Daniel Gustafsson (4 Oct 2021)
1137- [8U61ife brought this change]
1138
1139 tool_main: fix typo in comment
1140
1141 Closes: #7811
1142 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
1143
1144Daniel Stenberg (4 Oct 2021)
1145- [Ryan Mast brought this change]
1146
1147 BINDINGS: URL updates
1148
1149 For cpr, BBHTTP, Eiffel, Harbour, Haskell, Mono, and Rust
1150
1151 Closes #7809
1152
1153- scripts/delta: hide a git error message we don't care about
1154
1155 fatal: path 'src/tool_listhelp.c' exists on disk, but not in [tag]
1156
1157- [Patrick Monnerat brought this change]
1158
1159 sasl: binary messages
1160
1161 Capabilities of sasl module are extended to exchange messages in binary
1162 as an alternative to base64.
1163
1164 If http authentication flags have been set, those are used as sasl
1165 default preferred mechanisms.
1166
1167 Closes #6930
1168
1169- [Hayden Roche brought this change]
1170
1171 wolfssl: use for SHA256, MD4, MD5, and setting DES odd parity
1172
1173 Prior to this commit, OpenSSL could be used for all these functions, but
1174 not wolfSSL. This commit makes it so wolfSSL will be used if USE_WOLFSSL
1175 is defined.
1176
1177 Closes #7806
1178
1179- scripts/delta: count command line options in the new file
1180
1181 ... which makes the shown delta number wrong until next release.
1182
1183- RELEASE-NOTES: synced
1184
1185- print_category: print help descriptions aligned
1186
1187 Adjust the description position to make an aligned column when doing
1188 help listings, which is more pleasing to the eye.
1189
1190 Suggested-by: Gisle Vanem
1191 Closes #7792
1192
1193- lib/mk-ca-bundle.pl: skip certs passed Not Valid After date
1194
1195 With this change applied, the now expired 'DST Root CA X3' cert will no
1196 longer be included in the output.
1197
1198 Details: https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/
1199
1200 Closes #7801
1201
1202- tool_listhelp: easier to generate with gen.pl
1203
1204 tool_listhelp.c is now a separate file with only the command line --help
1205 output, exactly as generated by gen.pl. This makes it easier to generate
1206 updates according to what's in the docs/cmdline-opts docs.
1207
1208 cd $srcroot/docs/cmdline-opts
1209 ./gen.pl listhelp *.d > $srcroot/src/tool_listhelp.c
1210
1211 With a configure build, this also works:
1212
1213 make -C src listhelp
1214
1215 Closes #7787
1216
1217- [Anthony Hu brought this change]
1218
1219 wolfssl: allow setting of groups/curves
1220
1221 In particular, the quantum safe KEM and hybrid curves if wolfSSL is
1222 built to support them.
1223
1224 Closes #7728
1225
1226- [Jan Mazur brought this change]
1227
1228 connnect: use sysaddr_un fron sys/un.h or custom-defined for windows
1229
1230 Closes #7737
1231
1232Jay Satiro (30 Sep 2021)
1233- [Rikard Falkeborn brought this change]
1234
1235 hostip: Move allocation to clarify there is no memleak
1236
1237 By just glancing at the code, it looks like there is a memleak if the
1238 call to Curl_inet_pton() fails. Looking closer, it is clear that the
1239 call to Curl_inet_pton() can not fail, so the code will never leak
1240 memory. However, we can make this obvious by moving the allocation
1241 after the if-statement.
1242
1243 Closes https://github.com/curl/curl/pull/7796
1244
1245Daniel Stenberg (30 Sep 2021)
1246- gen.pl: make the output date format work better
1247
1248 Follow-up to 15910dfd143dd
1249
1250 The previous strftime format used didn't work correctly on Windows, so
1251 change to %B %d %Y which today looks like "September 29 2021".
1252
1253 Reported-by: Gisle Vanem
1254 Bug: #7782
1255 Closes #7793
1256
1257- typecheck-gcc.h: add CURLOPT_PREREQDATA awareness
1258
1259 Follow-up to a517378de58358a
1260
1261 To make test 1912 happy again
1262
1263 Closes #7799
1264
1265Marcel Raad (29 Sep 2021)
1266- configure: remove `HAVE_WINSOCK_H` definition
1267
1268 It's not used anymore.
1269
1270 Closes https://github.com/curl/curl/pull/7795
1271
1272- CMake: remove `HAVE_WINSOCK_H` definition
1273
1274 It's not used anymore.
1275
1276 Closes https://github.com/curl/curl/pull/7795
1277
1278- config: remove `HAVE_WINSOCK_H` definition
1279
1280 It's not used anymore.
1281
1282 Closes https://github.com/curl/curl/pull/7795
1283
1284- lib: remove `HAVE_WINSOCK_H` usage
1285
1286 WinSock v1 is not supported anymore. Exclusively use `HAVE_WINSOCK2_H`
1287 instead.
1288
1289 Closes https://github.com/curl/curl/pull/7795
1290
1291Daniel Stenberg (29 Sep 2021)
1292- easyoptions: add the two new PRE* options
1293
1294 Follow-up to a517378de58358a
1295
1296 Also fix optiontable.pl to do the correct remainder on the entry.
1297
1298 Reported-by: Gisle Vanem
1299 Bug: https://github.com/curl/curl/commit/a517378de58358a85b7cfe9efecb56051268f629#commitcomment-57224830
1300 Closes #7791
1301
1302- Revert "build: remove checks for WinSock 1"
1303
1304 Due to CI issues
1305
1306 This reverts commit c2ea04f92b00b6271627cb218647527b5a50f2fc.
1307
1308 Closes #7790
1309
1310Daniel Gustafsson (29 Sep 2021)
1311- lib: avoid fallthrough cases in switch statements
1312
1313 Commit b5a434f7f0ee4d64857f8592eced5b9007d83620 inhibits the warning
1314 on implicit fallthrough cases, since the current coding of indicating
1315 fallthrough with comments is falling out of fashion with new compilers.
1316 This attempts to make the issue smaller by rewriting fallthroughs to no
1317 longer fallthrough, via either breaking the cases or turning switch
1318 statements into if statements.
1319
1320 lib/content_encoding.c: the fallthrough codepath is simply copied
1321 into the case as it's a single line.
1322 lib/http_ntlm.c: the fallthrough case skips a state in the state-
1323 machine and fast-forwards to NTLMSTATE_LAST. Do this before the
1324 switch statement instead to set up the states that we actually
1325 want.
1326 lib/http_proxy.c: the fallthrough is just falling into exiting the
1327 switch statement which can be done easily enough in the case.
1328 lib/mime.c: switch statement rewritten as if statement.
1329 lib/pop3.c: the fallthrough case skips to the next state in the
1330 statemachine, do this explicitly instead.
1331 lib/urlapi.c: switch statement rewritten as if statement.
1332 lib/vssh/wolfssh.c: the fallthrough cases fast-forwards the state
1333 machine, do this by running another iteration of the switch
1334 statement instead.
1335 lib/vtls/gtls.c: switch statement rewritten as if statement.
1336 lib/vtls/nss.c: the fallthrough codepath is simply copied into the
1337 case as it's a single line. Also twiddle a comment to not be
1338 inside a non-brace if statement.
1339
1340 Closes: #7322
1341 See-also: #7295
1342 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1343
1344Marcel Raad (28 Sep 2021)
1345- config-win32ce: enable WinSock 2
1346
1347 WinSock 2.2 is supported by Windows CE .NET 4.1 (from 2002, out of
1348 support since 2013).
1349
1350 Ref: https://docs.microsoft.com/en-us/previous-versions/windows/embedded/ms899586(v=msdn.10)
1351
1352 Closes https://github.com/curl/curl/pull/7778
1353
1354- externalsocket: use WinSock 2.2
1355
1356 That's the only version we support.
1357
1358 Closes https://github.com/curl/curl/pull/7778
1359
1360- build: remove checks for WinSock 1
1361
1362 It's not supported anymore.
1363
1364 Closes https://github.com/curl/curl/pull/7778
1365
1366Daniel Stenberg (28 Sep 2021)
1367- scripts/copyright: .muse is .lift now
1368
1369 And update 5 files with old copyright year range
1370
1371- cmdline-opts: made the 'Added:' field mandatory
1372
1373 Since "too old" versions are no longer included in the generated man
1374 page, this field is now mandatory so that it won't be forgotten and then
1375 not included in the documentation.
1376
1377 Closes #7786
1378
1379- curl.1: remove mentions of really old version changes
1380
1381 To make the man page more readable, this change removes all references
1382 to changes in support/versions etc that happened before 7.30.0 from the
1383 curl.1 output file. 7.30.0 was released on Apr 12 2013. This particular
1384 limit is a bit arbitrary but was fairly easy to grep for.
1385
1386 It is handled like this: the 'Added' keyword is only used in output if
1387 it refers to 7.30.0 or later. All occurances of "(Added in $VERSION)" in
1388 description will be stripped out if the mentioned $VERSION is from
1389 before 7.30.0. It is therefore important that the "Added in..."
1390 references are always written exactly like that - and on a single line,
1391 not split over two.
1392
1393 This change removes about 80 version number references from curl.1, down
1394 to 138 from 218.
1395
1396 Closes #7786
1397
1398- RELEASE-NOTES: synced
1399
1400- tool_cb_prg: make resumed upload progress bar show better
1401
1402 This is a regression that was *probably* injected in the larger progress
1403 bar overhaul in 2018.
1404
1405 Reported-by: beslick5 on github
1406 Fixes #7760
1407 Closes #7777
1408
1409- gen.pl: insert the current date and version in generated man page
1410
1411 Reported-by: Gisle Vanem
1412 Ref: #7780
1413 Closes #7782
1414
1415- NTLM: use DES_set_key_unchecked with OpenSSL
1416
1417 ... as the previously used function DES_set_key() will in some cases
1418 reject using a key that it deems "weak" which will cause curl to
1419 continue using the unitialized buffer content as key instead.
1420
1421 Assisted-by: Harry Sintonen
1422 Fixes #7779
1423 Closes #7781
1424
1425Marc Hoersken (27 Sep 2021)
1426- CI: align make and test flags in various config files
1427
1428 1. Use Makefile target to run tests in autotools builds on AppVeyor.
1429 2. Disable testing of SCP protocol on native Windows environments.
1430 3. Remove redundant parameters -a -p from target test-nonflaky.
1431 4. Don't use -vc parameter which is reserved for debugging.
1432
1433 Replaces #7591
1434 Closes #7690
1435
1436Daniel Stenberg (27 Sep 2021)
1437- mailmap: unify Max!
1438
1439- [Max Dymond brought this change]
1440
1441 CURLOPT_PREREQFUNCTION: add new callback
1442
1443 Triggered before a request is made but after a connection is set up
1444
1445 Changes:
1446
1447 - callback: Update docs and callback for pre-request callback
1448 - Add documentation for CURLOPT_PREREQDATA and CURLOPT_PREREQFUNCTION,
1449 - Add redirect test and callback failure test
1450 - Note that the function may be called multiple times on a redirection
1451 - Disable new 2086 test due to Windows weirdness
1452
1453 Closes #7477
1454
1455- KNOWN_BUGS: HTTP/2 connections through HTTPS proxy frequently stall
1456
1457 Closes #6936
1458
1459- TODO: make configure use --cache-file more and better
1460
1461 Closes #7753
1462
1463- [Sergey Markelov brought this change]
1464
1465 urlapi: support UNC paths in file: URLs on Windows
1466
1467 - file://host.name/path/file.txt is a valid UNC path
1468 \\host.name\path\files.txt to a non-local file transformed into URI
1469 (RFC 8089 Appendix E.3)
1470
1471 - UNC paths on other OSs must be smb: URLs
1472
1473 Closes #7366
1474
1475- [Gleb Ivanovsky brought this change]
1476
1477 urlapi: add curl_url_strerror()
1478
1479 Add curl_url_strerror() to convert CURLUcode into readable string and
1480 facilitate easier troubleshooting in programs using URL API.
1481 Extend CURLUcode with CURLU_LAST for iteration in unit tests.
1482 Update man pages with a mention of new function.
1483 Update example code and tests with new functionality where it fits.
1484
1485 Closes #7605
1486
1487- RELEASE-NOTES: synced
1488
1489- [Mats Lindestam brought this change]
1490
1491 libssh2: add SHA256 fingerprint support
1492
1493 Added support for SHA256 fingerprint in command line curl and in
1494 libcurl.
1495
1496 Closes #7646
1497
1498- libcurl.rc: switch out the copyright symbol for plain ASCII
1499
1500 Reported-by: Vitaly Varyvdin
1501 Assisted-by: Viktor Szakats
1502 Fixes #7765
1503 Closes #7776
1504
1505- [Jun-ya Kato brought this change]
1506
1507 ngtcp2: fix QUIC transport parameter version
1508
1509 fix inappropriate version setting for QUIC transport parameters.
1510 this patch keeps curl with ngtcp2 uses QUIC draft version (h3-29).
1511
1512 Closes #7771
1513
1514- examples/imap-append: fix end-of-data check
1515
1516 Reported-by: Alexander Chuykov
1517 Fixes #7774
1518 Closes #7775
1519
1520Michael Kaufmann (24 Sep 2021)
1521- vtls: Fix a memory leak if an SSL session cannot be added to the cache
1522
1523 On connection shutdown, a new TLS session ticket may arrive after the
1524 SSL session cache has already been destructed. In this case, the new
1525 SSL session cannot be added to the SSL session cache.
1526
1527 The callers of Curl_ssl_addsessionid() need to know whether the SSL
1528 session has been added to the cache. If it has not been added, the
1529 reference counter of the SSL session must not be incremented, or memory
1530 used by the SSL session must be freed. This is now possible with the new
1531 output parameter "added" of Curl_ssl_addsessionid().
1532
1533 Fixes #7683
1534 Closes #7752
1535
1536Daniel Stenberg (24 Sep 2021)
1537- [Momoka Yamamoto brought this change]
1538
1539 HTTP3.md: use 'autoreconf -fi' instead of buildconf
1540
1541 buildconf is not used since #5853
1542
1543 Closes #7746
1544
1545- GIT-INFO: rephrase to adapt to s/buildconf/autoreconf
1546
1547- [h1zzz brought this change]
1548
1549 llist: remove redundant code, branch will not be executed
1550
1551 Closes #7770
1552
1553- [tlahn brought this change]
1554
1555 HTTP-COOKIES.md: remove duplicate 'each'
1556
1557 Closes #7772
1558
1559Jay Satiro (24 Sep 2021)
1560- [Joel Depooter brought this change]
1561
1562 libssh2: Get the version at runtime if possible
1563
1564 Previously this code used a compile time constant, meaning that libcurl
1565 always reported the libssh2 version that libcurl was built with. This
1566 could differ from the libssh2 version actually being used. The new code
1567 uses the CURL_LIBSSH2_VERSION macro, which is defined in ssh.h. The
1568 macro calls the libssh2_version function if it is available, otherwise
1569 it falls back to the compile time version.
1570
1571 Closes https://github.com/curl/curl/pull/7768
1572
1573- [Joel Depooter brought this change]
1574
1575 schannel: fix typo
1576
1577 Closes https://github.com/curl/curl/pull/7769
1578
1579Daniel Stenberg (23 Sep 2021)
1580- cmake: with OpenSSL, define OPENSSL_SUPPRESS_DEPRECATED
1581
1582 To avoid the "... is deprecated" warnings brought by OpenSSL v3.
1583 (We need to address the underlying code at some point of course.)
1584
1585 Assisted-by: Jakub Zakrzewski
1586 Closes #7767
1587
1588- curl-openssl: pass argument to sed single-quoted
1589
1590 ... instead of using an escaped double-quote. This is an attempt to make
1591 this work better with ksh that otherwise would insist on a double
1592 escape!
1593
1594 Reported-by: Randall S. Becker
1595 Fixes #7758
1596 Closes #7764
1597
1598- RELEASE-NOTES: synced
1599
1600 Bumped curlver to 7.80.0-dev
1601
1602- [a1346054 brought this change]
1603
1604 misc: fix typos in docs and comments
1605
1606 No user facing output from curl/libcurl is changed by this, just
1607 comments.
1608
1609 Closes #7747
1610
1611- [Thomas M. DuBuisson brought this change]
1612
1613 ci: update Lift config to match requirements of curl build
1614
1615 Also renamed Muse -> Lift, the new tool name.
1616
1617 Closes #7761
1618
1619- [Rikard Falkeborn brought this change]
1620
1621 cleanup: constify unmodified static structs
1622
1623 Constify a number of static structs that are never modified. Make them
1624 const to show this.
1625
1626 Closes #7759
1627
1628Version 7.79.1 (22 Sep 2021)
1629
1630Daniel Stenberg (22 Sep 2021)
1631- RELEASE-NOTES: synced
1632
1633 curl 7.79.1 release
1634
1635- THANKS: added names from the 7.79.1 release
1636
1637- test897: verify delivery of IMAP post-body header content
1638
1639 The "content" is delivered as "body" by curl, but the envelope continues
1640 after the body and the rest of it should be delivered as header.
1641
1642 The IMAP server can now get 'POSTFETCH' set to include more data to
1643 include after the body and test 897 is done to verify that such "extra"
1644 header data is in fact delivered by curl as header.
1645
1646 Ref: #7284 but fails to reproduce the issue
1647
1648 Closes #7748
1649
1650- KNOWN_BUGS: connection migration doesn't work
1651
1652 Closes #7695
1653
1654- RELEASE-NOTES: synced
1655
1656- http: fix the broken >3 digit response code detection
1657
1658 When the "reason phrase" in the HTTP status line starts with a digit,
1659 that was treated as the forth response code digit and curl would claim
1660 the response to be non-compliant.
1661
1662 Added test 1466 to verify this case.
1663
1664 Regression brought by 5dc594e44f73b17
1665 Reported-by: Glenn de boer
1666 Fixes #7738
1667 Closes #7739
1668
1669Jay Satiro (17 Sep 2021)
1670- strerror: use sys_errlist instead of strerror on Windows
1671
1672 - Change Curl_strerror to use sys_errlist[errnum] instead of strerror to
1673 retrieve the error message on Windows.
1674
1675 Windows' strerror writes to a static buffer and is not thread-safe.
1676
1677 Follow-up to 2f0bb86 which removed most instances of strerror in favor
1678 of calling Curl_strerror (which calls strerror_r for other platforms).
1679
1680 Ref: https://github.com/curl/curl/pull/7685
1681 Ref: https://github.com/curl/curl/commit/2f0bb86
1682
1683 Closes https://github.com/curl/curl/pull/7735
1684
1685Daniel Stenberg (16 Sep 2021)
1686- dist: provide lib/.checksrc in the tarball
1687
1688 So that debug builds work (checksrc really)
1689
1690 Reported-by: Marcel Raad
1691 Reported-by: tawmoto on github
1692 Fixes #7733
1693 Closes #7734
1694
1695- TODO: Improve documentation about fork safety
1696
1697 Closes #6968
1698
1699- hsts: CURLSTS_FAIL from hsts read callback should fail transfer
1700
1701 ... and have CURLE_ABORTED_BY_CALLBACK returned.
1702
1703 Extended test 1915 to verify.
1704
1705 Reported-by: Jonathan Cardoso
1706 Fixes #7726
1707 Closes #7729
1708
1709- test1184: disable
1710
1711 The test should be fine and it works for me repeated when run manually,
1712 but clearly it causes CI failures and it needs more research.
1713
1714 Reported-by: RiderALT on github
1715 Fixes #7725
1716 Closes #7732
1717
1718- Curl_http2_setup: don't change connection data on repeat invokes
1719
1720 Regression from 3cb8a748670ab88c (releasde in 7.79.0). That change moved
1721 transfer oriented inits to before the check but also erroneously moved a
1722 few connection oriented ones, which causes problems.
1723
1724 Reported-by: Evangelos Foutras
1725 Fixes #7730
1726 Closes #7731
1727
1728- RELEASE-NOTES: synced
1729
1730 and bump to 7.79.1
1731
1732Kamil Dudka (16 Sep 2021)
1733- tests/sshserver.pl: make it work with openssh-8.7p1
1734
1735 ... by not using options with no argument where an argument is required:
1736
1737 === Start of file tests/log/ssh_server.log
1738 curl_sshd_config line 6: no argument after keyword "DenyGroups"
1739 curl_sshd_config line 7: no argument after keyword "AllowGroups"
1740 curl_sshd_config line 10: Deprecated option AuthorizedKeysFile2
1741 curl_sshd_config line 29: Deprecated option KeyRegenerationInterval
1742 curl_sshd_config line 39: Deprecated option RhostsRSAAuthentication
1743 curl_sshd_config line 40: Deprecated option RSAAuthentication
1744 curl_sshd_config line 41: Deprecated option ServerKeyBits
1745 curl_sshd_config line 45: Deprecated option UseLogin
1746 curl_sshd_config line 56: no argument after keyword "AcceptEnv"
1747 curl_sshd_config: terminating, 3 bad configuration options
1748 === End of file tests/log/ssh_server.log
1749
1750 === Start of file log/sftp_server.log
1751 curl_sftp_config line 33: Unsupported option "rhostsrsaauthentication"
1752 curl_sftp_config line 34: Unsupported option "rsaauthentication"
1753 curl_sftp_config line 52: no argument after keyword "sendenv"
1754 curl_sftp_config: terminating, 1 bad configuration options
1755 Connection closed.
1756 Connection closed
1757 === End of file log/sftp_server.log
1758
1759 Closes #7724
1760
1761Daniel Stenberg (15 Sep 2021)
1762- hsts: handle unlimited expiry
1763
1764 When setting a blank expire string, meaning unlimited, curl would pass
1765 TIME_T_MAX to getime_r() when creating the output, while on 64 bit
1766 systems such a large value cannot be convetered to a tm struct making
1767 curl to exit the loop with an error instead. It can't be converted
1768 because the year it would represent doesn't fit in the 'int tm_year'
1769 field!
1770
1771 Starting now, unlimited expiry is instead handled differently by using a
1772 human readable expiry date spelled out as "unlimited" instead of trying
1773 to use a distant actual date.
1774
1775 Test 1660 and 1915 have been updated to help verify this change.
1776
1777 Reported-by: Jonathan Cardoso
1778 Fixes #7720
1779 Closes #7721
1780
1781- curl_multi_fdset: make FD_SET() not operate on sockets out of range
1782
1783 The VALID_SOCK() macro was made to only check for FD_SETSIZE if curl was
1784 built to use select(), even though the curl_multi_fdset() function
1785 always and unconditionally uses FD_SET and needs the check.
1786
1787 Reported-by: 0xee on github
1788 Fixes #7718
1789 Closes #7719
1790
1791- FAQ: add GOPHERS + curl works on data, not files
1792
1793Version 7.79.0 (14 Sep 2021)
1794
1795Daniel Stenberg (14 Sep 2021)
1796- RELEASE-NOTES: synced
1797
1798 For the 7.79.0 release
1799
1800- THANKS: add contributors from 7.79.0 release cycle
1801
1802- FAQ: add two dev related questions
1803
1804 8.1 Why does curl use C89?
1805 8.2 Will curl be rewritten?
1806
1807 Spell-checked-by: Paul Johnson
1808 Closes #7715
1809
1810- zuul.d/jobs: disable three tests for *-openssl-disable-proxy
1811
1812 ... as they mysteriously seem to permfail without being related to
1813 proxy.
1814
1815 Closes #7714
1816
1817- [Patrick Monnerat brought this change]
1818
1819 ftp,imap,pop3,smtp: reject STARTTLS server response pipelining
1820
1821 If a server pipelines future responses within the STARTTLS response, the
1822 former are preserved in the pingpong cache across TLS negotiation and
1823 used as responses to the encrypted commands.
1824
1825 This fix detects pipelined STARTTLS responses and rejects them with an
1826 error.
1827
1828 CVE-2021-22947
1829
1830 Bug: https://curl.se/docs/CVE-2021-22947.html
1831
1832- [Patrick Monnerat brought this change]
1833
1834 ftp,imap,pop3: do not ignore --ssl-reqd
1835
1836 In imap and pop3, check if TLS is required even when capabilities
1837 request has failed.
1838
1839 In ftp, ignore preauthentication (230 status of server greeting) if TLS
1840 is required.
1841
1842 Bug: https://curl.se/docs/CVE-2021-22946.html
1843
1844 CVE-2021-22946
1845
1846- [z2_ on hackerone brought this change]
1847
1848 mqtt: clear the leftovers pointer when sending succeeds
1849
1850 CVE-2021-22945
1851
1852 Bug: https://curl.se/docs/CVE-2021-22945.html
1853
1854- zuul: bump the rustls job to use v0.7.2
1855
1856 ... and add -lm when using a rust library.
1857
1858 Closes #7701
1859
1860- RELEASE-PROCEDURE: add release dates from now to 8.0.0 in 2023
1861
1862- SECURITY-PROCESS: tweak a little to match current practices
1863
1864 Closes #7713
1865
1866- http_proxy: fix the User-Agent inclusion in CONNECT
1867
1868 It should not refer to the uagent string that is allocated and created
1869 for the end server http request, as that pointer may be cleared on
1870 subsequent CONNECT requests.
1871
1872 Added test case 1184 to verify.
1873
1874 Reported-by: T200proX7 on github
1875 Fixes #7705
1876 Closes #7707
1877
1878- Curl_hsts_loadcb: don't attempt to load if hsts wasn't inited
1879
1880 Reported-by: Jonathan Cardoso
1881 Fixes #7710
1882 Closes #7711
1883
1884- [Tatsuhiro Tsujikawa brought this change]
1885
1886 ngtcp2: fix build with ngtcp2 and nghttp3
1887
1888 ngtcp2_conn_client_new and nghttp3_conn_client_new are now macros.
1889 Check the wrapped functions instead.
1890
1891 ngtcp2_stream_close callback now takes flags parameter.
1892
1893 Closes #7709
1894
1895- write-out.d: clarify size_download/upload
1896
1897 They show the number of "body" bytes transfered.
1898 Fixes #7702
1899 Closes #7706
1900
1901- http2: Curl_http2_setup needs to init stream data in all invokes
1902
1903 Thus function was written to avoid doing multiple connection data
1904 initializations, which is fine, but since it also initiates stream
1905 related data it is crucial that it doesn't skip those even if called
1906 again for the same connection. Solved by moving the stream
1907 initializations before the "doing-it-again" check.
1908
1909 Reported-by: Inho Oh
1910 Fixes #7630
1911 Closes #7692
1912
1913- url: fix compiler warning in no-verbose builds
1914
1915 Follow-up from 2f0bb864c12
1916
1917 Closes #7700
1918
1919- non-ascii: fix build errors from strerror fix
1920
1921 Follow-up to 2f0bb864c12
1922
1923 Closes #7697
1924
1925- parse_args: redo the warnings for --remote-header-name combos
1926
1927 ... to avoid the memory leak risk pointed out by scan-build.
1928
1929 Follow-up from 7a3e981781d6c18a
1930
1931 Closes #7698
1932
1933- ngtcp2: adapt to new size defintions upstream
1934
1935 Reviewed-by: Tatsuhiro Tsujikawa
1936 Closes #7699
1937
1938- rustls: add strerror.h include
1939
1940 Follow-up to 2f0bb864c12
1941
1942- docs: the security list is reached at security at curl.se now
1943
1944 Also update the FAQ section a bit to encourage users to rather submit
1945 security issues on hackerone than sending email.
1946
1947 Closes #7689
1948
1949Marc Hoersken (9 Sep 2021)
1950- runtests: add option -u to error on server unexpectedly alive
1951
1952 Let's try to actually handle the server unexpectedly alive
1953 case by first making them visible on CI builds as failures.
1954
1955 This is needed to detect issues with killing of the test
1956 servers completely including nested process chains with
1957 multiple PIDs per test server (including bash and perl).
1958
1959 On Windows/cygwin platforms this is especially helpful with
1960 debugging PID mixups due to cygwin using its own PID space.
1961
1962 Reviewed-by: Daniel Stenberg
1963 Closes #7180
1964
1965Daniel Stenberg (9 Sep 2021)
1966- opts docs: unify phrasing in NAME header
1967
1968 - avoid writing "set ..." or "enable/disable ..." or "specify ..."
1969 *All* options for curl_easy_setopt() are about setting or enabling
1970 things and most of the existing options didn't use that way of
1971 description.
1972
1973 - start with lowercase letter, unless abbreviation. For consistency.
1974
1975 - Some additional touch-ups
1976
1977 Closes #7688
1978
1979- strerror.h: remove the #include from files not using it
1980
1981- lib: don't use strerror()
1982
1983 We have and provide Curl_strerror() internally for a reason: strerror()
1984 is not necessarily thread-safe so we should always try to avoid it.
1985
1986 Extended checksrc to warn for this, but feature the check disabled by
1987 default and only enable it in lib/
1988
1989 Closes #7685
1990
1991Daniel Gustafsson (8 Sep 2021)
1992- cirrus: Add FreeBSD 13.0 job and disable sanitizer build
1993
1994 As alluded to the in the now removed comment, a 13.0 image became
1995 available and is now ready to be used.
1996
1997 The sanitizer builds were running on the 12.1 image which since has
1998 been removed from the config, leaving the builds not running at all.
1999 When enabled it turns out that they don't actually work due to very
2000 long timeouts in executing the tests, so keep the disabled for now
2001 but a bit more controlled.
2002
2003 Closes #7592
2004
2005Daniel Stenberg (8 Sep 2021)
2006- copyrights: update copyright year ranges
2007
2008- RELEASE-NOTES: synced
2009
2010- INTERNALS: c-ares has a new home: c-ares.org
2011
2012- docs: remove experimental mentions from HSTS and MQTT
2013
2014 Reported-by: Jonathan Cardoso
2015 Bug: https://github.com/curl/curl/pull/6700#issuecomment-913792863
2016 Closes #7681
2017
2018- [Cao ZhenXiang brought this change]
2019
2020 curl: add warning for incompatible parameters usage
2021
2022 --continue-at - and --remote-header-name are known incompatible parameters
2023
2024 Closes #7674
2025
2026- [git-bruh brought this change]
2027
2028 examples/*hiperfifo.c: fix calloc arguments to match function proto
2029
2030 Closes #7678
2031
2032- INTERNALS: bump c-ares requirement to 1.16.0
2033
2034 Since ba904db0705c93 we use ares_getaddrinfo, added in c-ares 1.16.0
2035
2036- curl: stop retry if Retry-After: is longer than allowed
2037
2038 If Retry-After: specifies a period that is longer than what fits within
2039 --retry-max-time, then stop retrying immediately.
2040
2041 Added test 366 to verify.
2042
2043 Reported-by: Kari Pahula
2044 Fixes #7675
2045 Closes #7676
2046
2047- [Michał Antoniak brought this change]
2048
2049 mbedtls: avoid using a large buffer on the stack
2050
2051 Use dynamic memory allocation for the buffer used in checking "pinned
2052 public key". The PUB_DER_MAX_BYTES parameter with default settings is
2053 set to a value greater than 2kB.
2054
2055 Co-authored-by: Daniel Stenberg
2056 Closes #7586
2057
2058- configure: make --disable-hsts work
2059
2060 The AC_ARG_ENABLE() macro itself uses a variable called
2061 'enable_[option]', so when our script also used a variable with that
2062 name for the purpose of storing what the user wants, it also
2063 accidentally made it impossible to switch off the feature with
2064 --disable-hsts. Fix this by renaming our variable.
2065
2066 Reported-by: Michał Antoniak
2067 Fixes #7669
2068 Closes #7672
2069
2070Jay Satiro (5 Sep 2021)
2071- config.d: note that curlrc is used even when --config
2072
2073 Bug: https://github.com/curl/curl/pull/7666#issuecomment-912214751
2074 Reported-by: Viktor Szakats
2075
2076 Closes https://github.com/curl/curl/pull/7667
2077
2078Daniel Stenberg (4 Sep 2021)
2079- RELEASE-NOTES: synced
2080
2081- test1173: check references to libcurl options
2082
2083 ... that they refer to actual existing libcurl options.
2084
2085 Reviewed-by: Daniel Gustafsson
2086 Closes #7656
2087
2088- CURLOPT_UNIX_SOCKET_PATH.3: remove nginx reference, add see also
2089
2090 Closes #7656
2091
2092- opt-docs: verify man page sections + order
2093
2094 In every libcurl option man page there are now 8 mandatory sections that
2095 must use the right name in the correct order and test 1173 verifies
2096 this. Only 14 man pages needed adjustments.
2097
2098 The sections and the order is as follows:
2099
2100 - NAME
2101 - SYNOPSIS
2102 - DESCRIPTION
2103 - PROTOCOLS
2104 - EXAMPLE
2105 - AVAILABILITY
2106 - RETURN VALUE
2107 - SEE ALSO
2108
2109 Reviewed-by: Daniel Gustafsson
2110 Closes #7656
2111
2112- opt-docs: make sure all man pages have examples
2113
2114 Extended manpage-syntax.pl (run by test 1173) to check that every man
2115 page for a libcurl option has an EXAMPLE section that is more than two
2116 lines. Then fixed all errors it found and added examples.
2117
2118 Reviewed-by: Daniel Gustafsson
2119 Closes #7656
2120
2121- get.d: provide more useful examples
2122
2123 Closes #7668
2124
2125- page-header: add GOPHERS, simplify wording in the 1st para
2126
2127 Closes #7665
2128
2129- connect: get local port + ip also when reusing connections
2130
2131 Regression. In d6a37c23a3c (7.75.0) we removed the duplicated storage
2132 (connection + easy handle), so this info needs be extracted again even
2133 for re-used connections.
2134
2135 Add test 435 to verify
2136
2137 Reported-by: Max Dymond
2138 Fixes #7660
2139 Closes #7662
2140
2141Marcel Raad (2 Sep 2021)
2142- multi: fix compiler warning with `CURL_DISABLE_WAKEUP`
2143
2144 `use_wakeup` is unused in this case.
2145
2146 Closes https://github.com/curl/curl/pull/7661
2147
2148Daniel Stenberg (1 Sep 2021)
2149- tests: adjust the tftpd output to work with hyper mode
2150
2151 By making them look less like http headers, the hyper mode "tweak"
2152 doesn't interfere.
2153
2154 Enable test 2002 and 2003 in hyper builds (and 1280 which is unrelated
2155 but should be enabled).
2156
2157 Closes #7658
2158
2159Daniel Gustafsson (1 Sep 2021)
2160- [Gisle Vanem brought this change]
2161
2162 openssl: annotate SSL3_MT_SUPPLEMENTAL_DATA
2163
2164 This adds support for the previously unhandled supplemental data which
2165 in -v output was printed like:
2166
2167 TLSv1.2 (IN), TLS header, Unknown (23):
2168
2169 These will now be printed with proper annotation:
2170
2171 TLSv1.2 (OUT), TLS header, Supplemental data (23):
2172
2173 Closes #7652
2174 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2175
2176Daniel Stenberg (1 Sep 2021)
2177- curl.1: provide examples for each option
2178
2179 The file format for each option now features a "Example:" header that
2180 can provide one or more examples that get rendered appropriately in the
2181 output. All options MUST have at least one example or gen.pl complains
2182 at build-time.
2183
2184 This fix also does a few other minor format and consistency cleanups.
2185
2186 Closes #7654
2187
2188- progress: make trspeed avoid floats
2189
2190 and compiler warnings for data conversions.
2191
2192 Reported-by: Michał Antoniak
2193 Fixes #7645
2194 Closes #7653
2195
2196- test365: verify response with chunked AND Content-Length headers
2197
2198- http: ignore content-length if any transfer-encoding is used
2199
2200 Fixes #7643
2201 Closes #7649
2202
2203- RELEASE-NOTES: synced
2204
2205- Revert "http2: skip immediate parsing of payload following protocol switch"
2206
2207 This reverts commit 455a63c66f188598275e87d32de2c4e8e26b80cb.
2208
2209 Reported-by: Tk Xiong
2210 Fixes #7633
2211 Closes #7648
2212
2213- KNOWN_BUGS: HTTP/3 doesn't support client certs
2214
2215 Closes #7625
2216
2217- mailing lists: move from cool.haxx.se to lists.haxx.se
2218
2219- http_proxy: only wait for writable socket while sending request
2220
2221 Otherwise it would wait socket writability even after the entire CONNECT
2222 request has sent and make curl basically busy-loop while waiting for a
2223 response to come back.
2224
2225 The previous fix attempt in #7484 (c27a70a591a4) was inadequate.
2226
2227 Reported-by: zloi-user on github
2228 Reported-by: Oleguer Llopart
2229 Fixes #7589
2230 Closes #7647
2231
2232- http: disallow >3-digit response codes
2233
2234 Make the built-in HTTP parser behave similar to hyper and reject any
2235 HTTP response using more than 3 digits for the response code.
2236
2237 Updated test 1432 accordingly.
2238 Enabled test 1432 in the hyper builds.
2239
2240 Closes #7641
2241
2242- [Tatsuhiro Tsujikawa brought this change]
2243
2244 ngtcp2: stop buffering crypto data
2245
2246 Stop buffering crypto data because libngtcp2 now buffers submitted
2247 crypto data.
2248
2249 Closes #7637
2250
2251- test1280: CRLFify the response to please hyper
2252
2253 Closes #7639
2254
2255- tests: enable test 1129 for hyper builds
2256
2257 Closes #7638
2258
2259- curl: better error message when -O fails to get a good name
2260
2261 Due to how this currently works internally, it needs a working initial
2262 file name to store contents in, so it may still fail even with -J is
2263 used (and thus accepting a name from content-disposition:) if the file
2264 name part of the URL isn't "good enough".
2265
2266 Fixes #7628
2267 Closes #7635
2268
2269- curl_easy_setopt: tweak the string copy wording
2270
2271 Reported-by: Yaobin Wen
2272 Fixes #7632
2273 Closes #7634
2274
2275- RELEASE-NOTES: synced
2276
2277- [Don J Olmstead brought this change]
2278
2279 cmake: sync CURL_DISABLE options
2280
2281 Adds the full listing of CURL_DISABLE options to the CMake build. Moves
2282 all option code, except for CURL_DISABLE_OPENSSL_AUTO_LOA_CONFIG which
2283 resides near OpenSSL configuration, to the same block of code. Also
2284 sorts the options here and in the cmake config header.
2285
2286 Additionally sorted the CURL-DISABLE listing and fixed the
2287 CURL_DISABLE_POP3 option.
2288
2289 Closes #7624
2290
2291Jay Satiro (25 Aug 2021)
2292- KNOWN_BUGS: FTPS upload data loss with TLS 1.3
2293
2294 Bug: https://github.com/curl/curl/issues/6149
2295 Reported-by: Bylon2@users.noreply.github.com
2296
2297 Closes https://github.com/curl/curl/pull/7623
2298
2299Daniel Stenberg (24 Aug 2021)
2300- cmake: avoid poll() on macOS
2301
2302 ... like we do in configure builds. Since poll() on macOS is not
2303 reliable enough.
2304
2305 Reported-by: marc-groundctl
2306 Fixes #7595
2307 Closes #7619
2308
2309- c-hyper: handle HTTP/1.1 => HTTP/1.0 downgrade on reused connection
2310
2311 Enable test 1074
2312
2313 Closes #7617
2314
2315- c-hyper: deal with Expect: 100-continue combined with POSTFIELDS
2316
2317 Enable test 1130 and 1131
2318
2319 Closes #7616
2320
2321- [a1346054 brought this change]
2322
2323 tests: be explicit about using 'python3' instead of 'python'
2324
2325 This fixes running tests in virtualenvs (or on distros) that no longer
2326 have a symlink from python to python2 or python3.
2327
2328 Closes #7602
2329
2330- [a1346054 brought this change]
2331
2332 scripts: invoke interpreters through /usr/bin/env
2333
2334 Closes #7602
2335
2336- DISABLED: enable 11 more tests for hyper builds
2337
2338 Closes #7612
2339
2340- setopt: enable CURLOPT_IGNORE_CONTENT_LENGTH for hyper
2341
2342 Since this option is also used for FTP, it needs to work to set for
2343 applications even if hyper doesn't support it for HTTP. Verified by test
2344 1137.
2345
2346 Updated docs to specify that the option doesn't work for HTTP when using
2347 the hyper backend.
2348
2349 Closes #7614
2350
2351- test1138: remove trailing space to make work with hyper
2352
2353 Closes #7613
2354
2355- libcurl-errors.3: clarify two CURLUcode errors
2356
2357 CURLUE_BAD_HANDLE and CURLUE_BAD_PARTPOINTER should be for "bad" or
2358 wrong pointers in a generic sense, not just for NULL pointers.
2359
2360 Reviewed-by: Jay Satiro
2361
2362 Ref: #7605
2363 Closes #7611
2364
2365Jay Satiro (23 Aug 2021)
2366- symbols-in-versions: fix CURLSSLBACKEND_QSOSSL last used version
2367
2368 ... and also change the 'Removed' column name to 'Last' since that
2369 column is for the last version to contain the symbol.
2370
2371 Closes https://github.com/curl/curl/pull/7609
2372
2373Daniel Stenberg (23 Aug 2021)
2374- urlapi.c:seturl: assert URL instead of using if-check
2375
2376 There's no code flow possible where this can happen. The assert makes
2377 sure it also won't be introduced undetected in the future.
2378
2379 Closes #7610
2380
2381- curl-openssl.m4: show correct output for OpenSSL v3
2382
2383 Using 3.0.0 versions configure should now show this:
2384
2385 checking for OpenSSL headers version... 3.0.0 - 0x300
2386 checking for OpenSSL library version... 3.0.0
2387 checking for OpenSSL headers and library versions matching... yes
2388
2389 This output doesn't actually change what configure generates but is only
2390 "cosmetic".
2391
2392 Reported-by: Randall S. Becker
2393 Fixes #7606
2394 Closes #7608
2395
2396Jay Satiro (22 Aug 2021)
2397- mksymbolsmanpage.pl: Fix showing symbol's last used version
2398
2399 Prior to this change the symbol's deprecated version was erroneously
2400 shown as its last used version.
2401
2402 Bug: https://github.com/curl/curl/commit/4e53b94#commitcomment-55239509
2403 Reported-by: i-ky@users.noreply.github.com
2404
2405Daniel Stenberg (21 Aug 2021)
2406- mksymbolsmanpage.pl: match symbols case insenitively
2407
2408 Follow-up to 4e53b9430c750 which made this bug show.
2409
2410 Reported-by: i-ky
2411 Bug: https://github.com/curl/curl/commit/4e53b9430c7504de8984796e2a2091ec16f27136#commitcomment-55239253
2412 Closes #7607
2413
2414- asyn-ares: call ares_freeaddrinfo() to clean up addrinfo results
2415
2416 As this leaks memory otherwise
2417
2418 Follow-up to ba904db0705c931
2419
2420 Closes #7599
2421
2422- [Ehren Bendler brought this change]
2423
2424 wolfssl: clean up wolfcrypt error queue
2425
2426 If wolfSSL is built in certain ways (OPENSSL_EXTRA or Debug), the error
2427 queue gets added on to for each session and never freed. Fix it by
2428 calling ERR_clear_error() like in vtls/openssl when needed. This func is
2429 a no-op in wolfcrypt if the error queue is not enabled.
2430
2431 Closes #7594
2432
2433- man pages: remove trailing whitespaces
2434
2435 Extended test 1173 (via the manpage-syntax.pl script) to detect and warn
2436 for them.
2437
2438 Ref: #7602
2439 Reported-by: a1346054 on github
2440 Closes #7604
2441
2442- mailmap: add Gleb Ivanovsky
2443
2444- config.d: escape the backslash properly
2445
2446 Closes #7603
2447
2448- [Don J Olmstead brought this change]
2449
2450 curl_setup.h: sync values for HTTP_ONLY
2451
2452 The values for HTTP_ONLY differed between CMakeLists.txt and
2453 curl_setup.h. Sync them and sort the values in curl_setup.h to make it
2454 easier to spot differences.
2455
2456 Closes #7601
2457
2458Jay Satiro (21 Aug 2021)
2459- configure: set classic mingw minimum OS version to XP
2460
2461 - If the user has not specified a minimum OS version (via WINVER or
2462 _WIN32_WINNT macros) then set it to Windows XP.
2463
2464 Prior to this change classic MinGW defaulted the minimum OS version
2465 to Windows NT 4.0 which is way too old. At least Windows XP is needed
2466 for getaddrinfo (which resolves hostnames to IPv6 addresses).
2467
2468 Ref: https://github.com/curl/curl/issues/7483#issuecomment-891597034
2469
2470 Closes https://github.com/curl/curl/pull/7581
2471
2472- schannel: Work around typo in classic mingw macro
2473
2474 - Define ALG_CLASS_DHASH (the typo from the include) to ALG_CLASS_HASH.
2475
2476 Prior to this change there was an incomplete fix to ignore the
2477 CALG_TLS1PRF macro on those versions of MinGW where it uses the
2478 ALG_CLASS_DHASH typoed macro.
2479
2480 Ref: 48cf45c
2481 Ref: https://osdn.net/projects/mingw/ticket/38391
2482 Ref: https://github.com/curl/curl/issues/2924
2483
2484 Closes https://github.com/curl/curl/pull/7580
2485
2486Daniel Stenberg (20 Aug 2021)
2487- RELEASE-NOTES: synced
2488
2489- http_proxy: fix user-agent and custom headers for CONNECT with hyper
2490
2491 Enable test 287
2492
2493 Closes #7598
2494
2495- c-hyper: initial support for "dumping" 1xx HTTP responses
2496
2497 With the use hyper_request_on_informational()
2498
2499 Enable test 155 and 158
2500
2501 Closes #7597
2502
2503Marc Hoersken (18 Aug 2021)
2504- tests/*server.pl: flush output before executing subprocess
2505
2506 Also avoid shell processes staying around by using exec.
2507 This is necessary to avoid output data being buffering
2508 inside the process chain of Perl, Bash/Shell and our
2509 test server binaries. On non-Windows systems the exec
2510 will also make the subprocess replace the intermediate
2511 shell, but on Windows it will at least bind the processes
2512 together since there is no real fork or exec available.
2513
2514 See: https://cygwin.com/cygwin-ug-net/highlights.html
2515 and: https://docs.microsoft.com/cpp/c-runtime-library/exec-wexec-functions
2516 Ref: https://github.com/curl/curl/pull/7530#issuecomment-900949010
2517
2518 Reviewed-by: Daniel Stenberg
2519 Reviewed-by: Jay Satiro
2520 Closes #7530
2521
2522- CI: use GitHub Container Registry instead of Docker Hub
2523
2524 Avoid limits on Docker Hub and improve image pull/download speed.
2525
2526 Closes #7587
2527
2528Daniel Stenberg (18 Aug 2021)
2529- openssl: when creating a new context, there cannot be an old one
2530
2531 Remove the previous handling that would call SSL_CTX_free(), and instead
2532 add an assert that halts a debug build if there ever is a context
2533 already set at this point.
2534
2535 Closes #7585
2536
2537Jay Satiro (18 Aug 2021)
2538- KNOWN_BUGS: Renegotiate from server may cause hang for OpenSSL backend
2539
2540 Closes https://github.com/curl/curl/issues/6785
2541
2542Viktor Szakats (17 Aug 2021)
2543- docs/BINDINGS: URL update
2544
2545Marc Hoersken (17 Aug 2021)
2546- tests/server/*.c: align handling of portfile argument and file
2547
2548 1. Call the internal variable portname (like pidname) everywhere.
2549 2. Have a variable wroteportfile (like wrotepidfile) everywhere.
2550 3. Make sure the file is cleaned up on exit (like pidfile).
2551 4. Add parameter --portfile to usage outputs everywhere.
2552
2553 Reviewed-by: Daniel Stenberg
2554
2555 Replaces #7523
2556 Closes #7574
2557
2558Daniel Gustafsson (17 Aug 2021)
2559- KNOWN_BUGS: Fix a number of typos in KNOWN_BUGS
2560
2561 Fixes a set of typos found in section 11.3.
2562
2563Daniel Stenberg (17 Aug 2021)
2564- getparameter: fix the --local-port number parser
2565
2566 It could previously get tricked into parsing the uninitialized stack
2567 based buffer.
2568
2569 Reported-by: Brian Carpenter
2570 Closes #7582
2571
2572- KNOWN_BUGS: Can't use Secure Transport with Crypto Token Kit
2573
2574 Closes #7048
2575
2576- [Jan Verbeek brought this change]
2577
2578 curl: add warning for ignored data after quoted form parameter
2579
2580 In an argument like `-F 'x=@/etc/hostname;filename="foo"abc'` the `abc`
2581 is ignored. This adds a warning if the ignored data isn't all
2582 whitespace.
2583
2584 Closes #7394
2585
2586Jay Satiro (17 Aug 2021)
2587- codeql: fix error "Resource not accessible by integration"
2588
2589 - Enable codeql writing security-events.
2590
2591 GitHub set the default permissions to read, apparently since earlier
2592 this year.
2593
2594 Ref: https://github.com/github/codeql-action/issues/464
2595 Ref: https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token/
2596
2597 Fixes https://github.com/curl/curl/issues/7575
2598 Closes https://github.com/curl/curl/pull/7576
2599
2600- tool_operate: Fix --fail-early with parallel transfers
2601
2602 - Abort via progress callback to fail early during parallel transfers.
2603
2604 When a critical error occurs during a transfer (eg --fail-early
2605 constraint) then other running transfers will be aborted via progress
2606 callback and finish with error CURLE_ABORTED_BY_CALLBACK (42). In this
2607 case, the callback error does not become the most recent error and a
2608 custom error message is used for those transfers:
2609
2610 curld --fail --fail-early --parallel
2611 https://httpbin.org/status/404 https://httpbin.org/delay/10
2612
2613 curl: (22) The requested URL returned error: 404
2614 curl: (42) Transfer aborted due to critical error in another transfer
2615
2616 > echo %ERRORLEVEL%
2617 22
2618
2619 Fixes https://github.com/curl/curl/issues/6939
2620 Closes https://github.com/curl/curl/pull/6984
2621
2622Daniel Stenberg (17 Aug 2021)
2623- [Sergey Markelov brought this change]
2624
2625 sectransp: support CURLINFO_CERTINFO
2626
2627 Fixes #4130
2628 Closes #7372
2629
2630- ngtcp2: remove the acked_crypto_offset struct field init
2631
2632 ... as it is gone from the API upstream.
2633
2634 Closes #7578
2635
2636- misc: update incorrect copyright year ranges
2637
2638 Closes #7577
2639
2640- KNOWN_BUGS: HTTP/3 quiche upload large file fails
2641
2642 Closes #7532
2643
2644- KNOWN_BUGS: CMake build with MIT Kerberos does not work
2645
2646 Closes #6904
2647
2648- TODO: add asynch getaddrinfo support
2649
2650 Closes #6746
2651
2652- RELEASE-NOTES: synced
2653
2654- [Artur Sinila brought this change]
2655
2656 http2: revert call the handle-closed function correctly on closed stream
2657
2658 Reverts 252790c5335a221
2659
2660 Assisted-by: Gergely Nagy
2661 Fixes #7400
2662 Closes #7525
2663
2664- [Patrick Monnerat brought this change]
2665
2666 auth: do not append zero-terminator to authorisation id in kerberos
2667
2668 RFC4752 Section 3.1 states "The authorization identity is not terminated
2669 with a zero-valued (%x00) octet". Although a comment in code said it may
2670 be needed anyway, nothing confirms it. In addition, servers may consider
2671 it as part of the identity, causing a failure.
2672
2673 Closes #7008
2674
2675- [Patrick Monnerat brought this change]
2676
2677 auth: use sasl authzid option in kerberos
2678
2679 ... instead of deriving it from active ticket.
2680 Closes #7008
2681
2682- [Patrick Monnerat brought this change]
2683
2684 auth: we do not support a security layer after kerberos authentication
2685
2686 Closes #7008
2687
2688- [Patrick Monnerat brought this change]
2689
2690 auth: properly handle byte order in kerberos security message
2691
2692 Closes #7008
2693
2694- [z2_ brought this change]
2695
2696 x509asn1: fix heap over-read when parsing x509 certificates
2697
2698 Assisted-by: Patrick Monnerat
2699 Closes #7536
2700
2701- KNOWN_BUGS: Disconnects don't do verbose
2702
2703 Closes #6995
2704
2705- mailmap: fixup Michał Antoniak
2706
2707- [Michał Antoniak brought this change]
2708
2709 build: fix compiler warnings
2710
2711 For when CURL_DISABLE_VERBOSE_STRINGS and DEBUGBUILD flags are both
2712 active.
2713
2714 - socks.c : warning C4100: 'lineno': unreferenced formal parameter
2715 (co-authored by Daniel Stenberg)
2716
2717 - mbedtls.c: warning C4189: 'port': local variable is initialized but
2718 not referenced
2719
2720 - schannel.c: warning C4189: 'hostname': local variable is initialized
2721 but not referenced
2722
2723 Cloes #7528
2724
2725- [Gleb Ivanovsky brought this change]
2726
2727 CODE_STYLE-md: fix bold font style
2728
2729 Markdown gets confused with abundance of asterisks, so use underscores
2730 instead.
2731
2732 Reviewed-by: Daniel Gustafsson
2733 Closes #7569
2734
2735- [Gleb Ivanovsky brought this change]
2736
2737 CODE_STYLE-md: add missing comma
2738
2739 Reviewed-by: Daniel Gustafsson
2740 Closes #7570
2741
2742- [Daniel Gustafsson brought this change]
2743
2744 examples/ephiperfifo.c: simplify signal handler
2745
2746 The signal handler registered for SIGINT is only handling SIGINT
2747 so there isn't much need for inspecting the signo. While there,
2748 rename the handler to be more specific.
2749
2750 g_should_exit should really be of sig_atomic_t type, but relying
2751 on autoconf in the examples seems like a bad idea so keep that
2752 for now.
2753
2754 Reviewed-by: Daniel Stenberg
2755 Closes #7310
2756
2757- c-hyper: initial step for 100-continue support
2758
2759 Enabled test 154
2760
2761 Closes #7568
2762
2763- [Ikko Ashimine brought this change]
2764
2765 vtls: fix typo in schannel_verify.c
2766
2767 occurence -> occurrence
2768
2769 Closes #7566
2770
2771- [Emil Engler brought this change]
2772
2773 curl_url_get.3: clarify about path and query
2774
2775 The current man-page lacks some details regarding the obtained path and
2776 query.
2777
2778 Closes #7563
2779
2780- c-hyper: fix header value passed to debug callback
2781
2782 Closes #7567
2783
2784Viktor Szakats (12 Aug 2021)
2785- cleanup: URL updates
2786
2787 - replace broken URL with the one it was most probably pointing to
2788 when added (lib/tftp.c)
2789 - replace broken URL with archive.org link (lib/curl_ntlm_wb.c)
2790 - delete unnecessary protocol designator from archive.org URL
2791 (docs/BINDINGS.md)
2792
2793 Closes #7562
2794
2795Daniel Stenberg (12 Aug 2021)
2796- [April King brought this change]
2797
2798 DEPRECATE.md: linkify curl-library mailing list
2799
2800 Closes #7561
2801
2802- [Barry Pollard brought this change]
2803
2804 output.d: add method to suppress response bodies
2805
2806 Closes #7560
2807
2808- TODO: remove 'c-ares deviates on http://1346569778'
2809
2810 Fixed since 56a037cc0ad1b2 (7.77.0)
2811
2812- [Colin O'Dell brought this change]
2813
2814 BINDINGS.md: update links to use https where available
2815
2816 Closes #7558
2817
2818- asyn-ares.c: move all version number checks to the top
2819
2820 ... and use #ifdef [feature] in the code as per our guidelines.
2821
2822- ares: use ares_getaddrinfo()
2823
2824 ares_getaddrinfo() is the getaddrinfo() cloned provided by c-ares, introduced
2825 in version 1.16.0.
2826
2827 With older c-ares versions, curl invokes ares_gethostbyname() twice - once for
2828 IPv4 and once for IPv6 to resolve both addresses, and then combines the
2829 returned results.
2830
2831 Reported-by: jjandesmet
2832 Fixes #7364
2833 Closes #7552
2834
2835- [Tatsuhiro Tsujikawa brought this change]
2836
2837 ngtcp2: utilize crypto API functions to simplify
2838
2839 Closes #7551
2840
2841- [megatronking brought this change]
2842
2843 ngtcp2: reset the oustanding send buffer again when drained
2844
2845 Closes #7538
2846
2847Michael Kaufmann (10 Aug 2021)
2848- progress: fix a compile warning on some systems
2849
2850 lib/progress.c:380:40: warning: conversion to 'long double' from
2851 'curl_off_t {aka long long int}' may alter its value [-Wconversion]
2852
2853 Closes #7549
2854
2855Daniel Stenberg (10 Aug 2021)
2856- RELEASE-NOTES: synced
2857
2858- http: consider cookies over localhost to be secure
2859
2860 Updated test31.
2861 Added test 392 to verify secure cookies used for http://localhost
2862
2863 Reviewed-by: Daniel Gustafsson
2864 Fixes #6733
2865 Closes #7263
2866
2867- TODO: erase secrets from heap/stack after use
2868
2869 Closes #7268
2870
2871Jay Satiro (10 Aug 2021)
2872- hostip: Make Curl_ipv6works function independent of getaddrinfo
2873
2874 - Do not assume IPv6 is not working when getaddrinfo is not present.
2875
2876 The check to see if IPv6 actually works is now independent of whether
2877 there is any resolver that can potentially resolve a hostname to IPv6.
2878
2879 Prior to this change if getaddrinfo() was not found at compile time then
2880 Curl_ipv6works() would be defined as a macro that returns FALSE.
2881
2882 When getaddrinfo is not found then libcurl is built with CURLRES_IPV4
2883 defined instead of CURLRES_IPV6, meaning that it cannot do IPv6 lookups
2884 in the traditional way. With this commit if libcurl is built with IPv6
2885 support (ENABLE_IPV6) but without getaddrinfo (CURLRES_IPV6), and the
2886 IPv6 stack is actually working, then it is possible for libcurl to
2887 resolve IPv6 addresses by using DoH.
2888
2889 Ref: https://github.com/curl/curl/issues/7483#issuecomment-890765378
2890
2891 Closes https://github.com/curl/curl/pull/7529
2892
2893- test1565: fix windows build errors
2894
2895 - Use our wait_ms() instead of sleep() since Windows doesn't have the
2896 latter.
2897
2898 - Use a separate variable to keep track of whether the pthread_t thread
2899 id is valid.
2900
2901 On Windows pthread_t is not an integer type. pthread offers no macro for
2902 invalid pthread_t thread id, so validity is kept track of separately.
2903
2904 Closes https://github.com/curl/curl/pull/7527
2905
2906- [Jeremy Falcon brought this change]
2907
2908 winbuild/README.md: clarify GEN_PDB option
2909
2910 - Document that GEN_PDB option creates an external database.
2911
2912 Ref: https://github.com/curl/curl/issues/7502
2913
2914Daniel Stenberg (9 Aug 2021)
2915- [Tatsuhiro Tsujikawa brought this change]
2916
2917 ngtcp2: replace deprecated functions with nghttp3_conn_shutdown_stream_read
2918
2919 Closes #7546
2920
2921- [Tatsuhiro Tsujikawa brought this change]
2922
2923 ngtcp2: rework the return value handling of ngtcp2_conn_writev_stream
2924
2925 Rework the return value handling of ngtcp2_conn_writev_stream and treat
2926 NGTCP2_ERR_STREAM_SHUT_WR separately.
2927
2928 Closes #7546
2929
2930- configure: error out if both ngtcp2 and quiche are specified
2931
2932 Reported-by: Vincent Grande
2933 See #7539
2934 Closes #7545
2935
2936- [Jeff Mears brought this change]
2937
2938 easy: use a custom implementation of wcsdup on Windows
2939
2940 ... so that malloc/free overrides from curl_global_init are used for
2941 wcsdup correctly.
2942
2943 Closes #7540
2944
2945- zuul: add an mbedtls3 CI job
2946
2947 Closes #7544
2948
2949- [Benau brought this change]
2950
2951 mbedTLS: initial 3.0.0 support
2952
2953 Closes #7428
2954
2955- RELEASE-NOTES: synced
2956
2957- configure.ac: revert bad nghttp2 library detection improvements
2958
2959 This reverts commit b4b34db65f9f8, 673753344c5f and 29c7cf79e8b.
2960
2961 The logic is now back to assuming that the nghttp2 lib is called nghttp2 and
2962 nothing else.
2963
2964 Reported-by: Rui Pinheiro
2965 Reported-by: Alex Crichton
2966 Fixes #7514
2967 Closes #7515
2968
2969- happy-eyeballs-timeout-ms.d: polish the wording
2970
2971 Reported-by: Josh Soref
2972 Fixes #7433
2973 Closes #7542
2974
2975- [modbw brought this change]
2976
2977 mbedtls_threadlock: fix unused variable warning
2978
2979 Closes #7393
2980
2981- [Tatsuhiro Tsujikawa brought this change]
2982
2983 ngtcp2: compile with the latest ngtcp2 and nghttp3
2984
2985 Closes #7541
2986
2987Marc Hoersken (31 Jul 2021)
2988- CI/cirrus: reduce compile time with increased parallism
2989
2990 Cirrus CI VMs have 2 CPUs, let's use them also for Windows builds.
2991
2992 Reviewed-by: Daniel Stenberg
2993 Closes #7505
2994
2995Daniel Stenberg (30 Jul 2021)
2996- [Bin Lan brought this change]
2997
2998 tool/tests: fix potential year 2038 issues
2999
3000 The length of 'long' in a 32-bit system is 32 bits, which cannot be used
3001 to save timestamps after 2038. Most operating systems have extended
3002 time_t to 64 bits.
3003
3004 Remove the castings to long.
3005
3006 Closes #7466
3007
3008- compressed.d: it's a request, not an order
3009
3010 Clarified
3011
3012 Reported-by: Dan Jacobson
3013 Reviewed-by: Daniel Gustafsson
3014 Fixes #7516
3015 Closes #7517
3016
3017- [Bernhard M. Wiedemann brought this change]
3018
3019 tests: make three tests pass until 2037
3020
3021 after 2038 something in test1915 fails on 32-bit OSes
3022
3023 Closes #7512
3024
3025Daniel Gustafsson (30 Jul 2021)
3026- connect: remove superfluous conditional
3027
3028 Commit dbd16c3e2 cleaned up the logic for traversing the addrinfos,
3029 but the move left a conditional on ai which no longer is needed as
3030 the while loop reevaluation will cover it.
3031
3032 Closes #7511
3033 Reviewed-by: Carlo Marcelo Arenas Belón
3034 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3035
3036Daniel Stenberg (29 Jul 2021)
3037- RELEASE-NOTES: synced
3038
3039 and bump curlver to 7.79.0 for next release
3040
3041Marc Hoersken (29 Jul 2021)
3042- tests/*server.py: remove pidfile on server termination
3043
3044 Avoid pidfile leaking/laying around after server already exited.
3045
3046 Reviewed-by: Daniel Stenberg
3047 Closes #7506
3048
3049Daniel Gustafsson (27 Jul 2021)
3050- tool_main: fix typo in comment
3051
3052 The referred to library is NSPR, so fix the switched around characters.
3053
3054Daniel Stenberg (28 Jul 2021)
3055- [Aleksandr Krotov brought this change]
3056
3057 bearssl: support CURLOPT_CAINFO_BLOB
3058
3059 Closes #7468
3060
3061- curl.1: mention "global" flags
3062
3063 Mention options that are "global". A global command line option is one
3064 that doesn't get reset at --next uses and therefore don't need to be
3065 used again.
3066
3067 Reported-by: Josh Soref
3068
3069 Fixes #7457
3070 Closes #7510
3071
3072- CURLOPT_DOH_URL.3: CURLOPT_OPENSOCKETFUNCTION is not inherited
3073
3074 Reported-by: Daniel Woelfel
3075 Fixes #7441
3076 Closes #7509
3077
3078- KNOWN_BUGS: add more HTTP/3 problems
3079
3080 Closes #7351
3081 Closes #7339
3082 Closes #7125
3083
3084Marc Hoersken (27 Jul 2021)
3085- CI/azure: reduce compile time with increased parallism
3086
3087 Azure Pipelines CI VMs have 2 CPUs, let's use them.
3088
3089 Closes #7489
3090
3091Jay Satiro (27 Jul 2021)
3092- [Josh Soref brought this change]
3093
3094 docs: fix grammar
3095
3096 Fixes https://github.com/curl/curl/issues/7444
3097 Fixes https://github.com/curl/curl/issues/7451
3098 Fixes https://github.com/curl/curl/issues/7465
3099 Closes https://github.com/curl/curl/pull/7495
3100
3101- mail-rcpt.d: fix grammar
3102
3103 Remove confusing sentence that says to specify an e-mail address for
3104 mail transfer, since that's implied.
3105
3106 Reported-by: Josh Soref
3107
3108 Fixes https://github.com/curl/curl/issues/7452
3109 Closes https://github.com/curl/curl/pull/7495
3110
3111Daniel Stenberg (27 Jul 2021)
3112- c-hyper: remove the hyper_executor_poll() loop from Curl_http
3113
3114 1. it's superfluous
3115 2. it didn't work identically to the Curl_hyper_stream one which could
3116 cause problems like #7486
3117
3118 Pointed-out-by: David Cook
3119 Closes #7499
3120
3121- curl-openssl.m4: check lib64 for the pkg-config file
3122
3123 OpenSSL recently started putting the libs in $prefix/lib64 on 'make
3124 install', so we check that directory for pkg-config data if the 'lib'
3125 check fails.
3126
3127 Closes #7503
3128
3129- CURLOPT_SSL_CTX_*.3: tidy up the example
3130
3131 Use the proper code style. Don't store return codes that aren't read.
3132 Copy the same example into CURLOPT_SSL_CTX_FUNCTION.3 as well.
3133
3134 Closes #7500
3135
3136- example/cookie_interface: fix scan-build printf warning
3137
3138 Follow-up to 4b79c4fb565
3139
3140 Fixes #7497
3141 Closes #7498
3142
3143- [Josh Soref brought this change]
3144
3145 limit-rate.d: clarify base unit
3146
3147 Fixes #7439
3148 Closes #7494
3149
3150- [Carlo Marcelo Arenas Belón brought this change]
3151
3152 examples/cookie_interface: avoid printfing time_t directly
3153
3154 time_t representation is undefined and varies on bitsize and signedness,
3155 and as of C11 could be even non integer.
3156
3157 instead of casting to unsigned long (which would truncate in systems
3158 with a 32bit long after 2106) use difftime to get the elapsed time as a
3159 double and print that (without decimals) instead.
3160
3161 alternatively a cast to curl_off_t and its corresponding print
3162 formatting could have been used (at least in POSIX) but portability and
3163 curl agnostic code was prioritized.
3164
3165 Closes #7490
3166
3167Marc Hoersken (25 Jul 2021)
3168- tests/servers: remove obsolete pid variable
3169
3170 Variable is not used since pidfile handling moved to util.[ch]
3171
3172 Reviewed-by: Jay Satiro
3173 Closes #7482
3174
3175- tests/servers: use our platform-aware pid for server verification
3176
3177 The pid used for server verification is later stored as pid2 in
3178 the hash of running test servers and therefore used for shutdown.
3179
3180 The pid used for shutdown must be the platform-aware (Win32) pid
3181 to avoid leaking test servers while running them using Cygwin/msys.
3182
3183 Reviewed-by: Jay Satiro
3184 Closes #7481
3185
3186- tests/runtests.pl: cleanup copy&paste mistakes and unused code
3187
3188 Reviewed-by: Jay Satiro
3189 Part of #7481
3190
3191Daniel Stenberg (25 Jul 2021)
3192- RELEASE-NOTES: synced
3193
3194 bumped to 7.78.1 for next release
3195
3196- http_proxy: clear 'sending' when the outgoing request is sent
3197
3198 ... so that Curl_connect_getsock() will know how to wait for the socket
3199 to become readable and not writable after the entire CONNECT request has
3200 been issued.
3201
3202 Regression added in 7.77.0
3203
3204 Reported-by: zloi-user on github
3205 Assisted-by: Jay Satiro
3206 Fixes #7155
3207 Closes #7484
3208
3209Jay Satiro (25 Jul 2021)
3210- [Josh Soref brought this change]
3211
3212 openssl: fix grammar
3213
3214 Closes https://github.com/curl/curl/pull/7480
3215
3216- configure.ac: tweak nghttp2 library name fix again
3217
3218 - Change extraction to handle multiple library names returned by
3219 pkg-config (eg a possible scenario with pkg-config --static).
3220
3221 Ref: https://github.com/curl/curl/pull/7472
3222
3223 Closes https://github.com/curl/curl/pull/7485
3224
3225Dan Fandrich (23 Jul 2021)
3226- Get rid of the unused HAVE_SIG_ATOMIC_T et. al.
3227
3228 It was added in 2006 but I see no evidence it was ever used.
3229
3230Jay Satiro (23 Jul 2021)
3231- docs: change max-filesize caveat again
3232
3233 - Add protocols field to max-filesize.d.
3234
3235 - Revert wording on unknown file size caveat and do not discuss specific
3236 protocols in that section.
3237
3238 Partial revert of ecf0225. All max-filesize options now have the list of
3239 protocols and it's clearer just to have that list without discussing
3240 specific protocols in the caveat.
3241
3242 Reported-by: Josh Soref
3243
3244 Ref: https://github.com/curl/curl/issues/7453#issuecomment-884128762
3245
3246Daniel Stenberg (22 Jul 2021)
3247- [Christian Weisgerber brought this change]
3248
3249 configure: tweak nghttp2 library name fix
3250
3251 commit 29c7cf79e8b44cf (shipped in 7.78.0) introduced a problem by
3252 assuming that LIB_H2 does not have any leading whitespace. At least
3253 OpenBSD's native pkg-config can produce such whitespace, though:
3254
3255 $ pkg-config --libs-only-l libnghttp2
3256 -lnghttp2
3257
3258 As a result, the configure check for libnghttp2 will erroneously fail.
3259
3260 Bug: https://curl.se/mail/lib-2021-07/0050.html
3261 Closes #7472
3262
3263- [Bastian Krause brought this change]
3264
3265 docs/MQTT: update state of username/password support
3266
3267 PR #7243 implemented username/password support for MQTT, so let's drop
3268 these items from the caveats.
3269
3270 Signed-off-by: Bastian Krause <bst@pengutronix.de>
3271
3272 Closes #7474
3273
3274- [Oleg Pudeyev brought this change]
3275
3276 CURLMOPT_TIMERFUNCTION.3: remove misplaced "time"
3277
3278 Closes #7470
3279
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003280Version 7.78.0 (21 Jul 2021)
Haibo Huangb5a52b92020-10-28 22:18:23 -07003281
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003282Daniel Stenberg (21 Jul 2021)
Haibo Huangb5a52b92020-10-28 22:18:23 -07003283- RELEASE-NOTES: synced
3284
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003285 curl 7.78.0 release
Haibo Huangb5a52b92020-10-28 22:18:23 -07003286
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003287- winbuild/MakefileBuild.vc: bump copyright year
Haibo Huangb5a52b92020-10-28 22:18:23 -07003288
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003289Jay Satiro (21 Jul 2021)
3290- docs: mention max-filesize options also apply to MQTT transfers
Haibo Huangb5a52b92020-10-28 22:18:23 -07003291
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003292 Also make it clearer that the caveat 'if the file size is unknown it
3293 the option will have no effect' may apply to protocols other than FTP
3294 and HTTP.
Haibo Huangb5a52b92020-10-28 22:18:23 -07003295
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003296 Reported-by: Josh Soref
Haibo Huangb5a52b92020-10-28 22:18:23 -07003297
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003298 Fixes https://github.com/curl/curl/issues/7453
Haibo Huangb5a52b92020-10-28 22:18:23 -07003299
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003300- [Josh Soref brought this change]
Haibo Huangb5a52b92020-10-28 22:18:23 -07003301
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003302 docs/cmdline: fix grammar and typos
Haibo Huangb5a52b92020-10-28 22:18:23 -07003303
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003304- [Josh Soref brought this change]
Haibo Huangb5a52b92020-10-28 22:18:23 -07003305
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003306 dump-header.d: Drop suggestion to use for cookie storage
Haibo Huangb5a52b92020-10-28 22:18:23 -07003307
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003308 Since --cookie-jar is the preferred way to store cookies, no longer
3309 suggest using --dump-header to do so.
Haibo Huangb5a52b92020-10-28 22:18:23 -07003310
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003311 Co-authored-by: Daniel Stenberg
Haibo Huangb5a52b92020-10-28 22:18:23 -07003312
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003313 Closes https://github.com/curl/curl/issues/7414
Haibo Huangb5a52b92020-10-28 22:18:23 -07003314
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003315- [Josh Soref brought this change]
Haibo Huangb5a52b92020-10-28 22:18:23 -07003316
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003317 doc/cmdline: fix grammar and typos
Haibo Huangb5a52b92020-10-28 22:18:23 -07003318
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003319 Closes https://github.com/curl/curl/pull/7454
3320 Closes https://github.com/curl/curl/pull/7455
3321 Closes https://github.com/curl/curl/pull/7456
3322 Closes https://github.com/curl/curl/pull/7459
3323 Closes https://github.com/curl/curl/pull/7460
3324 Closes https://github.com/curl/curl/pull/7461
3325 Closes https://github.com/curl/curl/pull/7462
3326 Closes https://github.com/curl/curl/pull/7463
Haibo Huangb5a52b92020-10-28 22:18:23 -07003327
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003328Daniel Stenberg (20 Jul 2021)
3329- vtls: fix connection reuse checks for issuer cert and case sensitivity
Haibo Huangb5a52b92020-10-28 22:18:23 -07003330
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003331 CVE-2021-22924
Haibo Huangb5a52b92020-10-28 22:18:23 -07003332
3333 Reported-by: Harry Sintonen
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003334 Bug: https://curl.se/docs/CVE-2021-22924.html
Haibo Huangb5a52b92020-10-28 22:18:23 -07003335
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003336- sectransp: check for client certs by name first, then file
Haibo Huangb5a52b92020-10-28 22:18:23 -07003337
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003338 CVE-2021-22926
Haibo Huangb5a52b92020-10-28 22:18:23 -07003339
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003340 Bug: https://curl.se/docs/CVE-2021-22926.html
Haibo Huangb5a52b92020-10-28 22:18:23 -07003341
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003342 Assisted-by: Daniel Gustafsson
3343 Reported-by: Harry Sintonen
Haibo Huangb5a52b92020-10-28 22:18:23 -07003344
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003345- telnet: fix option parser to not send uninitialized contents
Haibo Huangb5a52b92020-10-28 22:18:23 -07003346
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003347 CVS-2021-22925
Haibo Huangb5a52b92020-10-28 22:18:23 -07003348
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003349 Reported-by: Red Hat Product Security
3350 Bug: https://curl.se/docs/CVE-2021-22925.html
Haibo Huangb5a52b92020-10-28 22:18:23 -07003351
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003352Jay Satiro (20 Jul 2021)
3353- connect: fix wrong format specifier in connect error string
Haibo Huangb5a52b92020-10-28 22:18:23 -07003354
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003355 0842175 (not in any release) used the wrong format specifier (long int)
3356 for timediff_t. On an OS such as Windows libcurl's timediff_t (usually
3357 64-bit) is bigger than long int (32-bit). In 32-bit Windows builds the
3358 upper 32-bits of the timediff_t were erroneously then used by the next
3359 format specifier. Usually since the timeout isn't larger than 32-bits
3360 this would result in null as a pointer to the string with the reason for
3361 the connection failing. On other OSes or maybe other compilers it could
3362 probably result in garbage values (ie crash on deref).
Haibo Huangb5a52b92020-10-28 22:18:23 -07003363
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003364 Before:
3365 Failed to connect to localhost port 12345 after 1201 ms: (nil)
Haibo Huangb5a52b92020-10-28 22:18:23 -07003366
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003367 After:
3368 Failed to connect to localhost port 12345 after 1203 ms: Connection refused
Haibo Huangb5a52b92020-10-28 22:18:23 -07003369
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003370 Closes https://github.com/curl/curl/pull/7449
Haibo Huangb5a52b92020-10-28 22:18:23 -07003371
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003372- winbuild: support alternate nghttp2 static lib name
Haibo Huangb5a52b92020-10-28 22:18:23 -07003373
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003374 - Support both nghttp2.lib and nghttp2_static.lib for static nghttp2.
Haibo Huangb5a52b92020-10-28 22:18:23 -07003375
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003376 nghttp2 briefly changed its static lib name to nghttp2_static, but then
3377 made the _static suffix optional.
Haibo Huangb5a52b92020-10-28 22:18:23 -07003378
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003379 Ref: https://github.com/nghttp2/nghttp2/pull/1394
3380 Ref: https://github.com/nghttp2/nghttp2/pull/1418
3381 Ref: https://github.com/nghttp2/nghttp2/issues/1466
Haibo Huangb5a52b92020-10-28 22:18:23 -07003382
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003383 Reported-by: Pierre Yager
Haibo Huangb5a52b92020-10-28 22:18:23 -07003384
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003385 Fixes https://github.com/curl/curl/issues/7446
3386 Closes https://github.com/curl/curl/pull/7447
Haibo Huangb5a52b92020-10-28 22:18:23 -07003387
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003388- [Josh Soref brought this change]
Haibo Huangb5a52b92020-10-28 22:18:23 -07003389
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003390 docs/cmdline: fix grammar and typos
Haibo Huangb5a52b92020-10-28 22:18:23 -07003391
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003392 Closes https://github.com/curl/curl/pull/7432
3393 Closes https://github.com/curl/curl/pull/7436
3394 Closes https://github.com/curl/curl/pull/7438
3395 Closes https://github.com/curl/curl/pull/7440
3396 Closes https://github.com/curl/curl/pull/7445
Haibo Huangb5a52b92020-10-28 22:18:23 -07003397
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003398- [Josh Soref brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003399
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003400 delegation.d: mention what happens when used multiple times
Haibo Huangc3c04f42020-08-19 13:00:07 -07003401
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003402 Closes https://github.com/curl/curl/pull/7408
Haibo Huangc3c04f42020-08-19 13:00:07 -07003403
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003404- [Josh Soref brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003405
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003406 create-file-mode.d: mention what happens when used multiple times
Haibo Huangc3c04f42020-08-19 13:00:07 -07003407
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003408 Closes https://github.com/curl/curl/pull/7407
Haibo Huangc3c04f42020-08-19 13:00:07 -07003409
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003410- [Josh Soref brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003411
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003412 config.d: split comments and option-per line
Haibo Huangc3c04f42020-08-19 13:00:07 -07003413
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003414 Closes https://github.com/curl/curl/pull/7405
Haibo Huangc3c04f42020-08-19 13:00:07 -07003415
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003416Daniel Stenberg (19 Jul 2021)
3417- misc: copyright year range updates
Haibo Huangc3c04f42020-08-19 13:00:07 -07003418
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003419- mailmap: add Tobias and Timur
Haibo Huangc3c04f42020-08-19 13:00:07 -07003420
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003421Daniel Gustafsson (18 Jul 2021)
3422- [Josh Soref brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003423
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003424 docs: spell out directories instead of dirs in create-dirs
Haibo Huangc3c04f42020-08-19 13:00:07 -07003425
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003426 Write out directories rather than using the dirs abbrevation. Also
3427 use plural form consistently, even if the code in the end might just
3428 create a single directory.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003429
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003430 Closes #7406
3431 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3432 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Haibo Huangc3c04f42020-08-19 13:00:07 -07003433
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003434- [Tobias Nyholm brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003435
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003436 docs: correct spelling errors and a broken link
Haibo Huangc3c04f42020-08-19 13:00:07 -07003437
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003438 Update grammar and spelling in docs and source code comments.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003439
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003440 Closes: #7427
Haibo Huangc3c04f42020-08-19 13:00:07 -07003441 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3442
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003443Marc Hoersken (18 Jul 2021)
3444- CI/cirrus: install impacket from PyPI instead of FreeBSD packages
Haibo Huangc3c04f42020-08-19 13:00:07 -07003445
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003446 Availability of impacket as FreeBSD package is too flaky.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003447
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003448 Stick to legacy version of cryptography which still
3449 supports OpenSSL version 1.0.2 due to FreeBSD 11.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003450
3451 Reviewed-by: Daniel Stenberg
3452
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003453 Closes #7418
Haibo Huangc3c04f42020-08-19 13:00:07 -07003454
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003455Daniel Stenberg (18 Jul 2021)
3456- [Josh Soref brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003457
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003458 docs/cmdline: mention what happens when used multiple times
3459
3460 For --dns-ipv4-addr, --dns-ipv6-addr and --dns-servers
3461
3462 Closes #7410
3463 Closes #7411
3464 Closes #7412
Haibo Huangc3c04f42020-08-19 13:00:07 -07003465
Elliott Hughesf344baa2021-12-07 09:12:34 -08003466- [Michał Antoniak brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003467
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003468 lib: fix compiler warnings with CURL_DISABLE_NETRC
Haibo Huangc3c04f42020-08-19 13:00:07 -07003469
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003470 warning C4189: 'netrc_user_changed': local variable is initialized but
3471 not referenced
3472
3473 warning C4189: 'netrc_passwd_changed': local variable is initialized but
3474 not referenced
3475
3476 Closes #7423
Haibo Huangc3c04f42020-08-19 13:00:07 -07003477
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003478- disable-epsv.d: remove duplicate "(FTP)"
3479
3480 ... since the tooling adds that to the output based on the "Protocols:"
3481 tag.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003482
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003483- [Max Zettlmeißl brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003484
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003485 docs: make the documentation for --etag-save match the program behaviour
Haibo Huangc3c04f42020-08-19 13:00:07 -07003486
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003487 When using curl with the option `--etag-save` I expected it to save the
3488 ETag without its surrounding quotes, as stated by the documentation in
3489 the repository and by the generated man pages.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003490
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003491 My first endeavour was to fix the program, but while investigating the
3492 history of the relevant parts, I discovered that curl once saved the
3493 ETag without the quotes. This was undone by Daniel Stenberg in commit
3494 `98c94596f5928840177b6bd3c7b0f0dd03a431af`, therefore I decided that in
3495 this case the documentation should be adjusted to match the behaviour of
3496 curl.
3497
3498 The changed save behaviour also made parts of the `--etag-compare`
3499 documentation wrong or superfluous, so I adjusted those accordingly.
3500
3501 Closes #7429
Haibo Huangc3c04f42020-08-19 13:00:07 -07003502
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003503- [Josh Soref brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003504
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003505 write-out.d: add missing periods
Haibo Huangc3c04f42020-08-19 13:00:07 -07003506
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003507 Closes #7404
Haibo Huangc3c04f42020-08-19 13:00:07 -07003508
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003509- [Josie Huddleston brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003510
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003511 easy: during upkeep, attach Curl_easy to connections in the cache
Haibo Huangc3c04f42020-08-19 13:00:07 -07003512
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003513 During the protocol-specific parts of connection upkeep, some code
3514 assumes that the data->conn pointer already is set correctly. However,
3515 there's currently no guarantee of that in the code.
3516
3517 This fix temporarily attaches each connection to the Curl_easy object
3518 before performing the protocol-specific connection check on it, in a
3519 similar manner to the connection checking in extract_if_dead().
3520
3521 Fixes #7386
3522 Closes #7387
3523 Reported-by: Josie Huddleston
Haibo Huangc3c04f42020-08-19 13:00:07 -07003524
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003525- [Josh Soref brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003526
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003527 cleanup: spell DoH with a lowercase o
Haibo Huangc3c04f42020-08-19 13:00:07 -07003528
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003529 Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
Haibo Huangc3c04f42020-08-19 13:00:07 -07003530
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003531 Closes #7413
Haibo Huangc3c04f42020-08-19 13:00:07 -07003532
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003533- [Josh Soref brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003534
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003535 TheArtOfHttpScripting: polish
Haibo Huangc3c04f42020-08-19 13:00:07 -07003536
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003537 - add missing backticks and comma
Haibo Huangc3c04f42020-08-19 13:00:07 -07003538
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003539 - fix proxy description:
3540
3541 * example proxy isn't local
3542 * locally doesn't really make sense
3543
3544 Closes #7416
3545
3546- [Josh Soref brought this change]
3547
3548 form.d: add examples of `,`/`;` for file[name]
3549
3550 Fixes #7415
3551 Closes #7417
3552
Elliott Hughesf344baa2021-12-07 09:12:34 -08003553- [Michał Antoniak brought this change]
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003554
3555 mbedtls: Remove unnecessary include
3556
3557 - curl_setup.h: all references to mbedtls_md4* functions and structures
3558 are in the md4.c. This file already includes the <mbedtls/md4.h> file
3559 along with the file existence control (defined (MBEDTLS_MD4_C))
3560
3561 - curl_ntlm_core.c: unnecessary include - repeated below
3562
3563 Closes #7419
Haibo Huangc3c04f42020-08-19 13:00:07 -07003564
3565- RELEASE-NOTES: synced
3566
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003567Jay Satiro (16 Jul 2021)
3568- [User Sg brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003569
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003570 multi: fix crash in curl_multi_wait / curl_multi_poll
Haibo Huangc3c04f42020-08-19 13:00:07 -07003571
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003572 Appears to have been caused by 51c0ebc (precedes 7.77.0) which added a
3573 VALID_SOCK check to one of the loops through the sockets but not the
3574 other.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003575
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003576 Reported-by: sylgal@users.noreply.github.com
3577 Authored-by: sylgal@users.noreply.github.com
3578
3579 Fixes https://github.com/curl/curl/issues/7379
3580 Closes https://github.com/curl/curl/pull/7389
Haibo Huangc3c04f42020-08-19 13:00:07 -07003581
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003582- [Daniel Gustafsson brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003583
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003584 tool_help: remove unused define
Haibo Huangc3c04f42020-08-19 13:00:07 -07003585
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003586 The PRINT_LINES_PAUSE macro is no longer used, and has been mostly
3587 cleaned out but one occurrence remained.
3588
3589 Closes https://github.com/curl/curl/pull/7380
Haibo Huangc3c04f42020-08-19 13:00:07 -07003590
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003591- [Sergey Markelov brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003592
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003593 build: fix compiler warnings when CURL_DISABLE_VERBOSE_STRINGS
3594
3595 fix compiler warnings about unused variables and parameters when
3596 built with --disable-verbose.
3597
3598 Closes https://github.com/curl/curl/pull/7377
Haibo Huangc3c04f42020-08-19 13:00:07 -07003599
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003600- [Andrea Pappacoda brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003601
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003602 build: fix IoctlSocket FIONBIO check
Haibo Huangc3c04f42020-08-19 13:00:07 -07003603
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003604 Prior to this change HAVE_IOCTLSOCKET_CAMEL_FIONBIO mistakenly checked
3605 for (lowercase) ioctlsocket when it should have checked for IoctlSocket.
3606
3607 Closes https://github.com/curl/curl/pull/7375
Haibo Huangc3c04f42020-08-19 13:00:07 -07003608
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003609- [Timur Artikov brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003610
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003611 configure: fix nghttp2 library name for static builds
Haibo Huangc3c04f42020-08-19 13:00:07 -07003612
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003613 Don't hardcode the nghttp2 library name,
3614 because it can vary, be "nghttp2_static" for example.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003615
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003616 Fixes https://github.com/curl/curl/issues/7367
3617 Closes https://github.com/curl/curl/pull/7368
Haibo Huangc3c04f42020-08-19 13:00:07 -07003618
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003619Gisle Vanem (16 Jul 2021)
3620- [PellesC] fix _lseeki64() macro
Haibo Huangc3c04f42020-08-19 13:00:07 -07003621
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003622- [SChannel] Use '_tcsncmp()' instead
Haibo Huangc3c04f42020-08-19 13:00:07 -07003623
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003624 Revert previous change for PellesC.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003625
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003626 Instead replace all use of `_tcsnccmp()` with `_tcsncmp()`.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003627
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003628- [PellesC] missing '_tcsnccmp'
Haibo Huangc3c04f42020-08-19 13:00:07 -07003629
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003630 PellesC compiler does not have this macro in it's `<tchar.h>`
Haibo Huangc3c04f42020-08-19 13:00:07 -07003631
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003632Daniel Gustafsson (14 Jul 2021)
3633- TODO: add mention of mbedTLS 3 incompatibilities
3634
3635 Wyatt OʼDay reported in #7385 that mbedTLS isn't backwards compatible
3636 and curl no longer builds with it. Document the need to fix our support
3637 until so has been done.
3638
3639 Closes #7390
3640 Fixes #7385
3641 Reported-by: Wyatt OʼDay
3642 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
Haibo Huangc3c04f42020-08-19 13:00:07 -07003643
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003644- docs: fix inconsistencies in EGDSOCKET documentation
Haibo Huangc3c04f42020-08-19 13:00:07 -07003645
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003646 Only the OpenSSL backend actually use the EGDSOCKET, and also use
3647 TLS consistently rather than mixing SSL and TLS. While there, also
3648 fix a minor spelling nit.
Haibo Huangc3c04f42020-08-19 13:00:07 -07003649
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003650 Closes: #7391
3651 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
Haibo Huangc3c04f42020-08-19 13:00:07 -07003652
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003653- [Борис Верховский brought this change]
Haibo Huangc3c04f42020-08-19 13:00:07 -07003654
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003655 docs: document missing arguments to commands
Haibo Huangca2a8022020-07-10 20:17:42 -07003656
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003657 This is a followup to commit f410b9e538129e77607fef1 fixing a few
3658 more commands which takes arguments.
Haibo Huangca2a8022020-07-10 20:17:42 -07003659
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003660 Closes #7382
3661 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Haibo Huangca2a8022020-07-10 20:17:42 -07003662
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003663- [Randolf J brought this change]
Haibo Huangca2a8022020-07-10 20:17:42 -07003664
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003665 docs: fix incorrect argument name reference
3666
3667 The documentation for the read callback was erroneously referencing
3668 the nitems argument by nmemb. The error was introduced in commit
3669 ce0881edee3c7.
3670
3671 Closes #7383
3672 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Haibo Huangca2a8022020-07-10 20:17:42 -07003673
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003674- [Борис Верховский brought this change]
Haibo Huangca2a8022020-07-10 20:17:42 -07003675
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003676 tool_help: Document that --tlspassword takes a password
Haibo Huangca2a8022020-07-10 20:17:42 -07003677
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003678 Closes #7378
3679 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Haibo Huangca2a8022020-07-10 20:17:42 -07003680
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003681- scripts: Fix typo in release-notes instructions
Haibo Huangca2a8022020-07-10 20:17:42 -07003682
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003683 The command to run had a typo in the pathname which prevented copy
3684 pasting it to work, which has annoyed me enough to fix this now.
Haibo Huangca2a8022020-07-10 20:17:42 -07003685
3686- RELEASE-NOTES: synced
3687
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003688Jay Satiro (10 Jul 2021)
3689- write-out.d: Clarify urlnum is not unique for de-globbed URLs
Haibo Huangca2a8022020-07-10 20:17:42 -07003690
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003691 Reported-by: Коваленко Анатолий Викторович
Haibo Huangca2a8022020-07-10 20:17:42 -07003692
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003693 Fixes https://github.com/curl/curl/issues/7342
3694 Closes https://github.com/curl/curl/pull/7369
Haibo Huangca2a8022020-07-10 20:17:42 -07003695
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003696Daniel Gustafsson (3 Jul 2021)
3697- [William Desportes brought this change]
Haibo Huangca2a8022020-07-10 20:17:42 -07003698
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003699 docs: Fix typos
Haibo Huangca2a8022020-07-10 20:17:42 -07003700
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003701 Closes: #7370
3702 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Haibo Huangca2a8022020-07-10 20:17:42 -07003703
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003704Daniel Stenberg (8 Jul 2021)
3705- [Jonathan Wernberg brought this change]
Haibo Huangca2a8022020-07-10 20:17:42 -07003706
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003707 Revert "ftp: Expression 'ftpc->wait_data_conn' is always false"
Haibo Huangca2a8022020-07-10 20:17:42 -07003708
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003709 The reverted commit introduced a logic error in code that was
3710 correct.
3711
3712 The client using libcurl would notice the error since FTP file
3713 uploads in active transfer mode would somtimes complete with
3714 success despite no transfer having been performed and the
3715 "uploaded" file thus not being on the remote server afterwards.
3716
3717 The FTP server would notice the error because it receives a
3718 RST on the data connection it has established with the client
3719 before any data was transferred at all.
3720
3721 The logic error happens if the STOR response from the server have
3722 arrived by the time ftp_multi_statemach() in the affected code path
3723 is called, but the incoming data connection have not arrived yet.
3724 In that case, the processing of the STOR response will cause
3725 'ftpc->wait_data_conn' to be set to TRUE, contradicting the comment
3726 in the code. Since 'complete' will also be set, later logic would
3727 believe the transfer was done.
3728
3729 In most cases, the STOR response will not have arrived yet when
3730 the affected code path is executed, or the incoming connection will
3731 also have arrived, and thus the error would not express itself.
3732 But if the speed difference of the device using libcurl and the
3733 FTP server is exactly right, the error may happen as often as in
3734 one out of hundred file transfers.
3735
3736 This reverts commit 49f3117a238b6eac0e22a32f50699a9eddcb66ab.
3737
3738 Bug: https://curl.se/mail/lib-2021-07/0025.html
3739 Closes #7362
Haibo Huangca2a8022020-07-10 20:17:42 -07003740
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003741- msnprintf: return number of printed characters excluding null byte
Haibo Huangca2a8022020-07-10 20:17:42 -07003742
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003743 ... even when the output is "capped" by the maximum length argument.
Haibo Huangca2a8022020-07-10 20:17:42 -07003744
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003745 Clarified in the docs.
3746
3747 Closes #7361
Haibo Huangca2a8022020-07-10 20:17:42 -07003748
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003749- infof: remove newline from format strings, always append it
3750
3751 - the data needs to be "line-based" anyway since it's also passed to the
3752 debug callback/application
3753
3754 - it makes infof() work like failf() and consistency is good
3755
3756 - there's an assert that triggers on newlines in the format string
3757
3758 - Also removes a few instances of "..."
3759
3760 - Removes the code that would append "..." to the end of the data *iff*
3761 it was truncated in infof()
3762
3763 Closes #7357
Haibo Huangca2a8022020-07-10 20:17:42 -07003764
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003765- examples/multi-single: fix scan-build warning
Haibo Huangca2a8022020-07-10 20:17:42 -07003766
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003767 warning: Value stored to 'mc' during its initialization is never read
Haibo Huangca2a8022020-07-10 20:17:42 -07003768
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003769 Follow-up to ae8e11ed5fd2ce
Haibo Huangca2a8022020-07-10 20:17:42 -07003770
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003771 Closes #7360
Haibo Huangca2a8022020-07-10 20:17:42 -07003772
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003773- wolfssl: failing to set a session id is not reason to error out
Haibo Huangca2a8022020-07-10 20:17:42 -07003774
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003775 ... as it is *probably* just timed out.
3776
3777 Reported-by: Francisco Munoz
3778
3779 Closes #7358
Haibo Huangca2a8022020-07-10 20:17:42 -07003780
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003781- docs/examples: use curl_multi_poll() in multi examples
3782
3783 The API is soon two years old and deserves being shown as the primary
3784 way to drive multi code as it makes it much easier to write code.
3785
3786 multi-poll: removed
3787
3788 multi-legacy: add to show how we did multi API use before
3789 curl_multi_wait/poll.
3790
3791 Closes #7352
Haibo Huangca2a8022020-07-10 20:17:42 -07003792
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003793- KNOWN_BUGS: flaky Windows CI builds
Haibo Huangca2a8022020-07-10 20:17:42 -07003794
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003795 Closes #6972
Haibo Huangca2a8022020-07-10 20:17:42 -07003796
3797- RELEASE-NOTES: synced
3798
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003799- test1147: hyper doesn't allow "crazy" request headers like built-in
Haibo Huangca2a8022020-07-10 20:17:42 -07003800
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003801 ... so strip that from the test.
Haibo Huangca2a8022020-07-10 20:17:42 -07003802
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003803 Closes #7349
Haibo Huangca2a8022020-07-10 20:17:42 -07003804
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003805- c-hyper: bail on too long response headers
Haibo Huangca2a8022020-07-10 20:17:42 -07003806
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003807 To match with built-in behaviors. Makes test 1154 work.
Haibo Huangca2a8022020-07-10 20:17:42 -07003808
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003809 Closes #7350
Haibo Huangca2a8022020-07-10 20:17:42 -07003810
Elliott Hughes34dd5f42021-08-10 13:01:18 -07003811- test1151: added missing CRLF to work with hyper
3812
3813 Closes #7350
3814
3815- c-hyper: add support for transfer-encoding in the request
3816
3817 Closes #7348
3818
3819- [Andrea Pappacoda brought this change]
3820
3821 cmake: remove libssh2 feature checks
3822
3823 libssh2 features are detected based on version since commit
3824 9dbbba997608f7c3c5de1c627c77c8cd2aa85b73
3825
3826 Closes #7343
3827
3828- test1116: hyper doesn't pass through "surprise-trailers"
3829
3830 Closes #7344
3831
3832- socks4: scan for the IPv4 address in resolve results
3833
3834 Follow-up to 84d2839740 which changed the resolving to always resolve
3835 both address families, but since SOCKS4 only supports IPv4 it should
3836 scan for and use the first available IPv4 address.
3837
3838 Reported-by: shithappens2016 on github
3839 Fixes #7345
3840 Closes #7346
3841
3842Jay Satiro (5 Jul 2021)
3843- proto.d: fix formatting for paragraphs after margin changes
3844
3845 Closes https://github.com/curl/curl/pull/7341
3846
3847- pinnedpubkey.d: fix formatting for version support lists
3848
3849 Closes https://github.com/curl/curl/pull/7340
3850
3851Daniel Stenberg (2 Jul 2021)
3852- TODO: "Support in-memory certs/ca certs/keys" done
3853
3854 Has been suppored for a while now with the *BLOB options.
3855
3856- examples: safer and more proper read callback logic
3857
3858 The same callback code is used in:
3859
3860 imap-append.c
3861 smtp-authzid.c
3862 smtp-mail.c
3863 smtp-multi.c
3864 smtp-ssl.c
3865 smtp-tls.c
3866
3867 It should not assume that it can copy full lines into the buffer as it
3868 will encourage sloppy coding practices. Instead use byte-wise logic and
3869 check/acknowledge the buffer size appropriately.
3870
3871 Reported-by: Harry Sintonen
3872 Fixes #7330
3873 Closes #7331
3874
3875- test1519: adjusted to work with hyper
3876
3877 Closes #7333
3878
3879- test1518: adjusted to work with hyper
3880
3881 ... by making sure the stdout output doesn't look like HTTP headers.
3882
3883 Closes #7333
3884
3885- test1514: add a CRLF to the response to make it correct
3886
3887 Makes hyper accept it fine instead returning HYPERE_UNEXPECTED_EOF on
3888 us.
3889
3890 Closes #7334
3891
3892- formdata: avoid "Argument cannot be negative" warning
3893
3894 ... when converting a curl_off_t to size_t, by using
3895 CURL_ZERO_TERMINATED before passing the argument to the function.
3896
3897 Detected by Coverity CID 1486590.
3898
3899 Closes #7328
3900 Assisted-by: Daniel Gustafsson
3901
3902- lib: more %u for port and int for %*s fixes
3903
3904 Detected by Coverity
3905
3906 Closes #7329
3907
3908- doh: (void)-prefix call to curl_easy_setopt
3909
3910- lib: fix type of len passed to *printf's %*s
3911
3912 ... it needs to be 'int'. Detected by Coverity CID 1486611 (etc)
3913
3914 Closes #7326
3915
3916- lib: use %u instead of %ld for port number printf
3917
3918 Follow-up to 764c6bd3bf which changed the type of some port number
3919 fields. Detected by Coverity (CID 1486624) etc.
3920
3921 Closes #7325
3922
3923- version: turn version number functions into returning void
3924
3925 ... as we never use the return codes from them.
3926
3927 Reviewed-by: Daniel Gustafsson
3928 Closes #7319
3929
3930- mqtt: extend the error message for no topic
3931
3932 ... and mention that it needs URL encoding.
3933
3934 Reported-by: Peter Körner
3935 Fixes #7316
3936 Closes #7317
3937
3938- formdata: correct typecast in curl_mime_data call
3939
3940 Coverity pointed out it the mismatch. CID 1486590
3941
3942 Closes #7327
3943
3944- url: (void)-prefix a curl_url_get() call
3945
3946 Coverity (CID 1486645) pointed out a use of curl_url_get() in the
3947 parse_proxy function where the return code wasn't checked. A
3948 (void)-prefix makes the intention obvious.
3949
3950 Closes #7320
3951
3952- glob: pass an 'int' as len when using printf's %*s
3953
3954 Detected by Coverity CID 1486629.
3955
3956 Closes #7324
3957
3958- vtls: use free() not curl_free()
3959
3960 curl_free() is provided for users of the API to free returned data,
3961 there's no need to use it internally.
3962
3963 Closes #7318
3964
3965- zuul: use the new rustls directory name
3966
3967 Follow-up to 6d972c8b1cbb3 which missed updating this directory name.
3968
3969 Also no longer call it crustls in the docs and bump to rusttls-ffi 0.7.1
3970
3971 Closes #7311
3972
3973Jay Satiro (29 Jun 2021)
3974- http: fix crash in rate-limited upload
3975
3976 - Don't set the size of the piece of data to send to the rate limit if
3977 that limit is larger than the buffer size that will hold the piece.
3978
3979 Prior to this change if CURLOPT_MAX_SEND_SPEED_LARGE
3980 (curl tool: --limit-rate) was set then it was possible that a temporary
3981 buffer used for uploading could be written to out of bounds. A likely
3982 scenario for this would be a non-trivial amount of post data combined
3983 with a rate limit larger than CURLOPT_UPLOAD_BUFFERSIZE (default 64k).
3984
3985 The bug was introduced in 24e469f which is in releases since 7.76.0.
3986
3987 perl -e "print '0' x 200000" > tmp
3988 curl --limit-rate 128k -d @tmp httpbin.org/post
3989
3990 Reported-by: Richard Marion
3991
3992 Fixes https://github.com/curl/curl/issues/7308
3993 Closes https://github.com/curl/curl/pull/7315
3994
3995Daniel Stenberg (29 Jun 2021)
3996- copyright: add boiler-plate headers to CI config files
3997
3998 And whitelist .zuul.ignore
3999
4000 Closes #7314
4001
4002- CI: remove travis details
4003
4004 Rename still used leftovers to "zuul" as that's now the CI using them.
4005
4006 Closes #7313
4007
4008- RELEASE-NOTES: synced
4009
4010- openssl: avoid static variable for seed flag
4011
4012 Avoid the race condition risk by instead storing the "seeded" flag in
4013 the multi handle. Modern OpenSSL versions handle the seeding itself so
4014 doing the seeding once per multi-handle instead of once per process is
4015 less of an issue.
4016
4017 Reported-by: Gerrit Renker
4018 Fixes #7296
4019 Closes #7306
4020
4021- configure: inhibit the implicit-fallthrough warning on gcc-12
4022
4023 ... since it no longer acknowledges the comment markup we use for that
4024 purpose.
4025
4026 Reported-by: Younes El-karama
4027 Fixes #7295
4028 Closes #7307
4029
4030Daniel Gustafsson (28 Jun 2021)
4031- [Andrei Rybak brought this change]
4032
4033 misc: fix typos in comments which repeat a word
4034
4035 Fix typos in code comments which repeat various words. In trivial
4036 cases, just delete the repeated word. Reword the affected sentence in
4037 "lib/url.c" for it to make sense.
4038
4039 Closes #7303
4040 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
4041
4042Daniel Stenberg (27 Jun 2021)
4043- lib677: make it survive torture testing
4044
4045 Follow-up to a5ab72d5edd7
4046
4047 Closes #7300
4048
4049- [Tommy Chiang brought this change]
4050
4051 docs/BINDINGS: fix outdated links
4052
4053 * luacurl page is now not accessible, fix it with wayback machine page
4054 * Scheme one seems not providing https now, change it back to http one
4055
4056 Closes #7301
4057
4058- [Jacob Hoffman-Andrews brought this change]
4059
4060 curstls: bump crustls version and use new URL
4061
4062 crustls moved to https://github.com/rustls/rustls-ffi. This also bumps
4063 the expected version to 0.7.0.
4064
4065 Closes #7297
4066
4067- RELEASE-NOTES: synced
4068
4069- examples: length-limit two sscanf() uses of %s
4070
4071 Reported-by: Jishan Shaikh
4072 Fixes #7293
4073 Closes #7294
4074
4075- [Richard Whitehouse brought this change]
4076
4077 multi: alter transfer timeout ordering
4078
4079 - Check whether a connection has succeded before checking whether it's
4080 timed out.
4081
4082 This means if we've connected quickly, but subsequently been
4083 descheduled, we allow the connection to succeed. Note, if we timeout,
4084 but between checking the timeout, and connecting to the server the
4085 connection succeeds, we will allow it to go ahead. This is viewed as
4086 an acceptable trade off.
4087
4088 - Add additional failf logging around failed connection attempts to
4089 propogate the cause up to the caller.
4090
4091 Co-Authored-by: Martin Howarth
4092 Closes #7178
4093
4094- test677: IMAP CONNECT_ONLY, custom command and then exit
4095
4096 Adjusted ftpserver.pl to add support for the IMAP IDLE command
4097
4098 Adjusted test 660 to sync with the fix
4099
4100- multi: do not switch off connect_only flag when closing
4101
4102 ... as it made protocol specific disconnect commands wrongly get used.
4103
4104 Bug: https://curl.se/mail/lib-2021-06/0024.html
4105 Reported-by: Aleksander Mazur
4106 Closes #7288
4107
4108- http: make the haproxy support work with unix domain sockets
4109
4110 ... it should then pass on "PROXY UNKNOWN" since it doesn't know the
4111 involved IP addresses.
4112
4113 Reported-by: Valentín Gutiérrez
4114 Fixes #7290
4115 Closes #7291
4116
4117- [Xiang Xiao brought this change]
4118
4119 curl.h: include sys/select.h for NuttX RTOS
4120
4121 Closes #7287
4122
4123- [Bin Meng brought this change]
4124
4125 curl.h: remove the execution bit
4126
4127 The execution bit of curl.h file was wrongly added:
4128
4129 commit 2621025d6f96 ("curl.h: <sys/select.h> is supported by VxWorks7")
4130
4131 and should be removed.
4132
4133 Follow-up to 2621025d6f96 ("curl.h: <sys/select.h> is supported by VxWorks7")
4134 Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4135 Closes #7286
4136
4137- [Bin Lan brought this change]
4138
4139 curl.h: <sys/select.h> is supported by VxWorks7
4140
4141 Closes #7285
4142
4143- [Bachue Zhou brought this change]
4144
4145 quiche: use send() instead of sendto() to avoid macOS issue
4146
4147 sendto() always returns "Socket is already connected" error on macos
4148
4149 Closes #7260
4150
4151- [Li Xinwei brought this change]
4152
4153 cmake: fix support for UnixSockets feature on Win32
4154
4155 Move the definition of sockaddr_un struct from config-win32.h to
4156 curl_setup.h, so that it could be shared by all build systems.
4157
4158 Add ADDRESS_FAMILY typedef for old mingw, now old mingw can also use
4159 unix sockets.
4160
4161 Also fix the build of tests/server/sws.c on Win32 when USE_UNIX_SOCKETS
4162 is defined.
4163
4164 Closes #7034
4165
4166- [Gregory Muchka brought this change]
4167
4168 hostip: (macOS) free returned memory of SCDynamicStoreCopyProxies
4169
4170 From Apples documentation on SCDynamicStoreCopyProxies, "Return Value: A
4171 dictionary of key-value pairs that represent the current internet proxy
4172 settings, or NULL if no proxy settings have been defined or if an error
4173 occurred. You must release the returned value."
4174
4175 Failure to release the returned value of SCDynamicStoreCopyProxies can
4176 result in a memory leak.
4177
4178 Source: https://developer.apple.com/documentation/systemconfiguration/1517088-scdynamicstorecopyproxies
4179
4180 Closes #7265
4181
4182- RELEASE-NOTES: synced
4183
4184Jay Satiro (21 Jun 2021)
4185- vtls: fix warning due to function prototype mismatch
4186
4187 b09c8ee changed the function prototype. Caught by Visual Studio.
4188
4189- curl_multibyte: Remove local encoding fallbacks
4190
4191 - If the UTF-8 to UTF-16 conversion fails in Windows Unicode builds then
4192 no longer fall back to assuming the string is in a local encoding.
Haibo Huangca2a8022020-07-10 20:17:42 -07004193
4194 Background:
4195
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004196 Some functions in Windows Unicode builds must convert UTF-8 to UTF-16 to
4197 pass to the Windows CRT API wide-character functions since in Windows
4198 UTF-8 is not a valid locale (or at least 99% of the time right now).
Haibo Huangca2a8022020-07-10 20:17:42 -07004199
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004200 Prior to this change if the Unicode encoding conversion failed then
4201 libcurl would assume, for backwards compatibility with applications that
4202 may have written their code for non-Unicode builds, attempt to convert
4203 the string from local encoding to UTF-16.
Haibo Huangca2a8022020-07-10 20:17:42 -07004204
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004205 That type of "best effort" could theoretically cause some type of
4206 security or other problem if a string that was locally encoded was also
4207 valid UTF-8, and therefore an unexpected UTF-8 to UTF-16 conversion
4208 could occur.
Haibo Huangca2a8022020-07-10 20:17:42 -07004209
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004210 Ref: https://github.com/curl/curl/pull/7246
Haibo Huangca2a8022020-07-10 20:17:42 -07004211
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004212 Closes https://github.com/curl/curl/pull/7257
Haibo Huangca2a8022020-07-10 20:17:42 -07004213
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004214Daniel Stenberg (20 Jun 2021)
4215- curl_endian: remove the unused Curl_write64_le function
Haibo Huangca2a8022020-07-10 20:17:42 -07004216
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004217 The last usage was removed in cca455a36
Haibo Huangca2a8022020-07-10 20:17:42 -07004218
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004219 Closes #7280
Haibo Huangca2a8022020-07-10 20:17:42 -07004220
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004221- vtls: only store TIMER_APPCONNECT for non-proxy connect
Haibo Huangca2a8022020-07-10 20:17:42 -07004222
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004223 Introducing a 'isproxy' argument to the connect function so that it
4224 knows wether to store the time stamp or not.
Haibo Huangca2a8022020-07-10 20:17:42 -07004225
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004226 Reported-by: Yongkang Huang
4227 Fixes #7274
4228 Closes #7274
4229
4230- gnutls: set the preferred TLS versions in correct order
4231
4232 Regression since 781864bedbc57 (curl 7.77.0)
4233
4234 Reported-by: civodul on github
4235 Assisted-by: Nikos Mavrogiannopoulos
4236 Fixes #7277
4237 Closes #7278
4238
4239- [Gergely Nagy brought this change]
4240
4241 configure/cmake: remove checks for unused gethostbyaddr and gethostbyaddr_r
4242
4243 Closes #7276
4244
4245- [Gergely Nagy brought this change]
4246
4247 configure/cmake: remove checks for unused inet_ntoa and inet_ntoa_r
4248
4249 Closes #7276
4250
4251- [Gergely Nagy brought this change]
4252
4253 configure/cmake: remove unused define HAVE_PERROR
4254
4255 Closes #7276
4256
4257- [Gergely Nagy brought this change]
4258
4259 configure: remove unused check for gai_strerror
4260
4261 Closes #7276
4262
4263- [Gergely Nagy brought this change]
4264
4265 configure/cmake: remove unused define HAVE_FREEIFADDRS
4266
4267 Closes #7276
4268
4269- [Gergely Nagy brought this change]
4270
4271 configure/cmake: remove unused define HAVE_FORK
4272
4273 Closes #7276
4274
4275- [Gergely Nagy brought this change]
4276
4277 configure/cmake: remove unused define HAVE_FDOPEN
4278
4279 Closes #7276
4280
4281- [Gergely Nagy brought this change]
4282
4283 configure/cmake: remove checks for unused sgtty.h
4284
4285 Closes #7276
4286
4287- [Gergely Nagy brought this change]
4288
4289 configure/cmake: remove remaining checks for rsa.h
4290
4291 Closes #7276
4292
4293- [Gergely Nagy brought this change]
4294
4295 configure/cmake: remove remaining checks for err.h
4296
4297 Closes #7276
4298
4299- [Gergely Nagy brought this change]
4300
4301 configure/cmake: remove remaining checks for crypto.h
4302
4303 Closes #7276
4304
4305- [Gergely Nagy brought this change]
4306
4307 configure/cmake: remove checks for unused getservbyport_r
4308
4309 Closes #7276
4310
4311- --socks4[a]: clarify where the host name is resolved
4312
4313 Closes #7273
4314
4315- libcurl-security.3: mention file descriptors and forks
4316
4317 ... and move the security report section last.
4318
4319 Reported-by: Harry Sintonen
4320 Closes #7270
4321
4322- [Alex Xu (Hello71) brought this change]
4323
4324 configure.ac: make non-executable
4325
4326 it needs to be processed by autoconf or autoreconf, and doesn't have a
4327 suitable shebang to be directly executed. other projects normally set
4328 configure.ac -x.
4329
4330 Closes #7272
4331
4332- configure: do not strip out debug flags
4333
4334 To allow users to set them when invoking configure without using
4335 --with-debug.
4336
4337 Reported-by: Alex Xu
4338 Fixes #7216
4339 Closes #7267
4340
4341- libssh2: limit time a disconnect can take to 1 second
4342
4343 Closes #7271
4344
4345- TLS: prevent shutdown loops to get stuck
4346
4347 ... by making sure the loops are only allowed to read the shutdown
4348 traffic a limited number of times.
4349
4350 Reported-by: Harry Sintonen
4351 Closes #7271
4352
4353- hyper: propagate errors back up from read callbacks
4354
4355 Makes test 513 work with hyper
4356
4357 Closes #7266
4358
4359- KNOWN_BUGS: Negotiate on Windows fails
4360
4361 Closes #5881
4362
4363- KNOWN_BUGS: renames instead of locking for atomic operations
4364
4365 Closes #6882
4366 Closes #6884
4367
4368- zuul: add two missing CI jobs
4369
4370 ... that were configured, just not run
4371
4372 Closes #7261
4373
4374Viktor Szakats (15 Jun 2021)
4375- idn: fix libidn2 with windows unicode builds
4376
4377 Unicode Windows builds use UTF-8 strings internally in libcurl,
4378 so make sure to call the UTF-8 flavour of the libidn2 API. Also
4379 document that Windows builds with libidn2 and UNICODE do expect
4380 CURLOPT_URL as an UTF-8 string.
4381
4382 Reported-by: dEajL3kA on github
4383 Assisted-by: Jay Satiro
Haibo Huangca2a8022020-07-10 20:17:42 -07004384 Reviewed-by: Marcel Raad
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004385 Closes #7246
4386 Fixes #7228
Haibo Huangca2a8022020-07-10 20:17:42 -07004387
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004388Daniel Stenberg (15 Jun 2021)
4389- curl_url_set: reject spaces in URLs w/o CURLU_ALLOW_SPACE
Haibo Huangca2a8022020-07-10 20:17:42 -07004390
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004391 They were never officially allowed and slipped in only due to sloppy
4392 parsing. Spaces (ascii 32) should be correctly encoded (to %20) before
4393 being part of a URL.
Haibo Huangca2a8022020-07-10 20:17:42 -07004394
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004395 The new flag bit CURLU_ALLOW_SPACE when a full URL is set, makes libcurl
4396 allow spaces.
Haibo Huangca2a8022020-07-10 20:17:42 -07004397
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004398 Updated test 1560 to verify.
Haibo Huangca2a8022020-07-10 20:17:42 -07004399
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004400 Closes #7073
Haibo Huangca2a8022020-07-10 20:17:42 -07004401
4402- RELEASE-NOTES: synced
4403
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004404 ... and bump to version 7.78.0 for the next planned release.
Haibo Huangca2a8022020-07-10 20:17:42 -07004405
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004406Jay Satiro (15 Jun 2021)
4407- docs: Remove outdated curl tool limitation
Haibo Huangca2a8022020-07-10 20:17:42 -07004408
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004409 - Document that HTTP/2 multiplexing is supported by the curl tool when
4410 parallel transfers are used.
Haibo Huangca2a8022020-07-10 20:17:42 -07004411
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004412 Supported since 7.66.0 via --parallel, but the doc wasn't updated.
Haibo Huangca2a8022020-07-10 20:17:42 -07004413
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004414 Closes https://github.com/curl/curl/pull/7259
Haibo Huangca2a8022020-07-10 20:17:42 -07004415
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004416- http2: Clarify 'Using HTTP2' verbose message
4417
4418 - Change phrasing from multi-use to multiplexing since the former may
4419 not be as well understood.
4420
4421 Before: * Using HTTP2, server supports multi-use
4422
4423 After: * Using HTTP2, server supports multiplexing
4424
4425 Bug: https://github.com/curl/curl/discussions/7255
4426 Reported-by: David Hu
4427
4428 Closes https://github.com/curl/curl/pull/7258
Haibo Huangca2a8022020-07-10 20:17:42 -07004429
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004430Daniel Stenberg (14 Jun 2021)
4431- winbuild/README: VC should be set to 6 'or larger'
4432
4433 Previously it listed all versions up to 15 (missing 16) but this new
4434 phrasing is more open ended.
4435
4436 Reported-by: Hugh Macdonald
4437 Fixes #7253
4438 Closes #7254
Haibo Huangca2a8022020-07-10 20:17:42 -07004439
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004440- [Jacob Hoffman-Andrews brought this change]
Haibo Huangca2a8022020-07-10 20:17:42 -07004441
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004442 rustls: remove native_roots fallback
4443
4444 For the commandline tool, we expect to be passed
4445 SSL_CONN_CONFIG(CAfile); for library use, the use should pass a set of
4446 trusted roots (like in other TLS backends).
4447
4448 This also removes a dependency on Security.framework when building on
4449 macOS.
4450
4451 Closes #7250
Haibo Huangca2a8022020-07-10 20:17:42 -07004452
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004453- [Albin Vass brought this change]
Haibo Huangca2a8022020-07-10 20:17:42 -07004454
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004455 travis: remove jobs that have migrated to zuul
Haibo Huangca2a8022020-07-10 20:17:42 -07004456
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004457 Closes #7245
Haibo Huangca2a8022020-07-10 20:17:42 -07004458
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004459- [Mohammed Naser brought this change]
4460
4461 CI: add jobs using Zuul
4462
4463 It also includes a few changes to get the builds going:
4464 - Added autoconf to common dependencies
4465 - Added automake to common dependencies
4466 - Added libtool to common dependencies
4467 - Added libssl-dev to common dependencies
4468
4469 Co-authored-by: Albin Vass
4470
4471 Closes #7245
4472
4473- netrc: skip 'macdef' definitions
4474
4475 Add test 494 to verify
4476
4477 Reported-by: Harry Sintonen
4478 Fixes #7238
4479 Closes #7244
4480
4481- multi: add scan-build-6 work-around in curl_multi_fdset
4482
4483 scan-build-6 otherwise warns, saying: warning: The left operand of '>='
4484 is a garbage value otherwise, which is false.
4485
4486 Later scan-builds don't claim this on the same code.
4487
4488 Closes #7248
4489
4490- asyn-ares: remove check for 'data' in Curl_resolver_cancel
4491
4492 It implied it would survive a NULL in there which it won't. Instead do
4493 an assert.
4494
4495 Pointed out by scan-build.
4496
4497 Closes #7248
4498
4499- url.c: remove two variable assigns that are never read
4500
4501 Pointed out by scan-build
4502
4503 Closes #7248
4504
4505- [Gealber Morales brought this change]
4506
4507 mqtt: add support for username and password
4508
4509 Minor-edits-by: Daniel Stenberg
4510 Added test 2200 to 2205
4511
4512 Closes #7243
4513
4514- travis: remove the arm job
4515
4516 We do it on circle CI instead
4517
4518- CI: add .circleci/config.yml
4519
4520 Assisted-by: Gabriel Simmer
4521
4522 Closes #7239
Haibo Huangca2a8022020-07-10 20:17:42 -07004523
4524- RELEASE-NOTES: synced
4525
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004526- runtests: init $VERSION to avoid warnings when using -l
Haibo Huangca2a8022020-07-10 20:17:42 -07004527
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004528- openssl: don't remove session id entry in disassociate
Haibo Huangca2a8022020-07-10 20:17:42 -07004529
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004530 When a connection is disassociated from a transfer, the Session ID entry
4531 should remain.
4532
4533 Regression since 7f4a9a9 (shipped in libcurl 7.77.0)
4534 Reported-by: Gergely Nagy
4535 Reported-by: Paul Groke
4536
4537 Fixes #7222
4538 Closes #7230
Haibo Huangca2a8022020-07-10 20:17:42 -07004539
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004540- single_transfer: ignore blank --output-dir
Haibo Huangca2a8022020-07-10 20:17:42 -07004541
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004542 ... as otherwise it creates a rather unexpected target directory with a
4543 leading slash.
Haibo Huangca2a8022020-07-10 20:17:42 -07004544
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004545 Reported-by: Harry Sintonen
4546 Fixes #7218
4547 Closes #7233
Haibo Huangca2a8022020-07-10 20:17:42 -07004548
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004549- tests: update README about servers and port numbers
Haibo Huangca2a8022020-07-10 20:17:42 -07004550
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004551 Closes #7242
Haibo Huangca2a8022020-07-10 20:17:42 -07004552
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004553- conn_shutdown: if closed during CONNECT cleanup properly
4554
4555 Reported-by: Alex Xu
4556 Reported-by: Phil E. Taylor
4557
4558 Fixes #7236
4559 Closes #7237
Haibo Huangca2a8022020-07-10 20:17:42 -07004560
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004561- [Christian Weisgerber brought this change]
Haibo Huangca2a8022020-07-10 20:17:42 -07004562
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004563 sws: malloc request struct instead of using stack
4564
4565 ... 2MB requests is otherwise just too big for some systems.
4566
4567 (The allocations are not freed properly.)
4568
4569 Bug: https://curl.se/mail/lib-2021-06/0018.html
4570
4571 Closes #7235
Haibo Huangca2a8022020-07-10 20:17:42 -07004572
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004573- [Mark Swaanenburg brought this change]
Haibo Huangca2a8022020-07-10 20:17:42 -07004574
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004575 lib: don't compare fd to FD_SETSIZE when using poll
Haibo Huangca2a8022020-07-10 20:17:42 -07004576
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004577 FD_SETSIZE is irrelevant when using poll. So ensuring that the file
4578 descriptor is smaller than FD_SETSIZE in VALID_SOCK, can cause
4579 multi_wait to ignore perfectly valid file descriptors and simply wait
4580 for 1s to avoid hammering the CPU in a busy loop.
4581
4582 Fixes #7240
4583 Closes #7241
Haibo Huangca2a8022020-07-10 20:17:42 -07004584
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004585- [zhangxiuhua brought this change]
Haibo Huangca2a8022020-07-10 20:17:42 -07004586
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004587 doh: fix wrong DEBUGASSERT for doh private_data
Haibo Huangca2a8022020-07-10 20:17:42 -07004588
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004589 Closes #7227
Haibo Huangca2a8022020-07-10 20:17:42 -07004590
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004591- [yb999 brought this change]
Haibo Huangca2a8022020-07-10 20:17:42 -07004592
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004593 tests: update README.md with a missing single quote
Haibo Huangca2a8022020-07-10 20:17:42 -07004594
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004595 Closes #7231
Haibo Huangca2a8022020-07-10 20:17:42 -07004596
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004597- GHA: run all tests for hyper too
Haibo Huangca2a8022020-07-10 20:17:42 -07004598
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004599 As it lists disabled ones in DISABLED now
Haibo Huangca2a8022020-07-10 20:17:42 -07004600
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004601 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004602
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004603- tests/data/DISABLED: add tests not working with hyper
Haibo Huangca2a8022020-07-10 20:17:42 -07004604
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004605 The goal is to remove them all from here over time.
Haibo Huangca2a8022020-07-10 20:17:42 -07004606
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004607 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004608
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004609- runtests: also find the last test in Makefile.inc
Haibo Huangca2a8022020-07-10 20:17:42 -07004610
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004611 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004612
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004613- test3010: work with hyper mode
4614
4615 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004616
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004617- configure: disable RTSP when hyper is selected
Haibo Huangca2a8022020-07-10 20:17:42 -07004618
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004619 Makes test 1013 work
4620
4621 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004622
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004623- test1594/1595/1596: fix to work in hyper mode
Haibo Huangca2a8022020-07-10 20:17:42 -07004624
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004625 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004626
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004627- test1438/1457: add HTTP keyword to make hyper mode work
Haibo Huangca2a8022020-07-10 20:17:42 -07004628
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004629 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004630
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004631- test1340/1341: adjusted for hyper mode
Haibo Huangca2a8022020-07-10 20:17:42 -07004632
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004633 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004634
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004635- test1218: adjusted for hyper mode
Haibo Huangca2a8022020-07-10 20:17:42 -07004636
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004637 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004638
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004639- test1216: adjusted for hyper mode
Haibo Huangca2a8022020-07-10 20:17:42 -07004640
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004641 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004642
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004643- test1230: adjust to work in hyper mode
Haibo Huangca2a8022020-07-10 20:17:42 -07004644
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004645 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004646
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004647- c-hyper: abort CONNECT response reading early on non 2xx responses
Haibo Huangca2a8022020-07-10 20:17:42 -07004648
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004649 Fixes test 493
Haibo Huangca2a8022020-07-10 20:17:42 -07004650
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004651 Closes #7209
Haibo Huangca2a8022020-07-10 20:17:42 -07004652
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004653- test434: add HTTP keyword
4654
4655 Closes #7209
4656
4657- test599: adjusted to work in hyper mode
4658
4659 Closes #7209
4660
4661- c-hyper: fix the uploaded field in progress callbacks
4662
4663 Makes test 578 work
4664
4665 Closes #7209
4666
4667- test566: adjust to work with hyper mode
4668
4669 Closes #7209
4670
4671- [Fawad Mirza brought this change]
4672
4673 CURLOPT_WRITEFUNCTION.3: minor update of the example
4674
4675 Safely avoid chunk.size garbage value if declared non globally.
4676
4677 Closes #7219
4678
4679- [Bastian Krause brought this change]
4680
4681 configure: rename get-easy-option configure option to get-easy-options
4682
4683 "get-easy-options" is the configure option advertised by the help text
4684 anyway, so use that.
4685
4686 Fixes #7211
4687 Closes #7213
4688
4689 Follow-up to ad691b191 ("configure: added --disable-get-easy-options")
4690 Suggested-by: Daniel Stenberg <daniel@haxx.se>
4691 Signed-off-by: Bastian Krause <bst@pengutronix.de>
4692
4693- runtests: skip disabled tests unless -f is used
4694
4695 To make it easier to write ranges like '115 to 229' without that
4696 explicitly enabling tests that are listed in DISABLED, this makes
4697 runtests always skip disabled tests unless the -f command line option is
4698 used.
4699
4700 Previously the code attempted to not run such tests, but didn't do it
4701 correctly.
4702
4703 Closes #7212
4704
4705- [Jun-ya Kato brought this change]
4706
4707 ngtcp2: disable TLSv1.3 compatible mode when using GnuTLS
4708
4709 The latest GnuTLS-3.7.2 implements disable switch for TLSv1.3 compatible
4710 mode for middle box but it is enabled by default, which is unnecessary
4711 for QUIC.
4712
4713 Fixes #6896
4714 Closes #7202
4715
4716- test644: remove as duplicate of test 587
4717
4718 Closes #7208
4719
4720Daniel Gustafsson (8 Jun 2021)
Haibo Huangca2a8022020-07-10 20:17:42 -07004721- RELEASE-NOTES: synced
4722
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004723- cookies: track expiration in jar to optimize removals
Haibo Huangca2a8022020-07-10 20:17:42 -07004724
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004725 Removing expired cookies needs to be a fast operation since we want to
4726 be able to perform it often and speculatively. By tracking the timestamp
4727 of the next known expiration we can exit early in case the timestamp is
4728 in the future.
Haibo Huangca2a8022020-07-10 20:17:42 -07004729
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004730 Closes: #7172
4731 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Haibo Huangca2a8022020-07-10 20:17:42 -07004732
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004733Daniel Stenberg (7 Jun 2021)
4734- GHA: add several libcurl tests to the hyper job
4735
4736 500 to 512
Haibo Huangca2a8022020-07-10 20:17:42 -07004737
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004738- test500: adjust to work with hyper mode
Haibo Huangca2a8022020-07-10 20:17:42 -07004739
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004740- c-hyper: support CURLINFO_STARTTRANSFER_TIME
Haibo Huangca2a8022020-07-10 20:17:42 -07004741
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004742 Closes #7204
Haibo Huangca2a8022020-07-10 20:17:42 -07004743
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004744- c-hyper: support CURLOPT_HEADER
4745
4746 When enabled, the headers are passed to the body write callback as well.
4747
4748 Like in test 500
4749
4750 Closes #7204
Haibo Huangca2a8022020-07-10 20:17:42 -07004751
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004752- GHA: run the newly fixed tests with hyper
Haibo Huangca2a8022020-07-10 20:17:42 -07004753
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004754 Closes #7205
Haibo Huangca2a8022020-07-10 20:17:42 -07004755
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004756- test433: adjust for hyper mode
4757
4758 Closes #7205
Haibo Huangca2a8022020-07-10 20:17:42 -07004759
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004760- test395: hyper cannot work around > 64 bit content-lengths like built-in
Haibo Huangca2a8022020-07-10 20:17:42 -07004761
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004762 Closes #7205
Haibo Huangca2a8022020-07-10 20:17:42 -07004763
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004764- test394: hyper returns a different error
Haibo Huangca2a8022020-07-10 20:17:42 -07004765
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004766 Closes #7205
Haibo Huangca2a8022020-07-10 20:17:42 -07004767
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004768- test393: make Content-Length fit within 64 bit for hyper
4769
4770 Closes #7205
Haibo Huangca2a8022020-07-10 20:17:42 -07004771
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004772- test347: CRLFify to work in hyper mode
Haibo Huangca2a8022020-07-10 20:17:42 -07004773
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004774 Closes #7205
Haibo Huangca2a8022020-07-10 20:17:42 -07004775
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004776- test339: CRLFify better to work in hyper mode
Haibo Huangca2a8022020-07-10 20:17:42 -07004777
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004778 Closes #7205
Haibo Huangca2a8022020-07-10 20:17:42 -07004779
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004780- travis: remove the hyper build
Haibo Huangca2a8022020-07-10 20:17:42 -07004781
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004782- GHA: add a linux-hyper job
4783
4784 Closes #7206
Haibo Huangca2a8022020-07-10 20:17:42 -07004785
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004786- test328: avoid a header-looking body to make hyper mode work
Haibo Huangca2a8022020-07-10 20:17:42 -07004787
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004788 The test still works the same, just modified two bytes in the content.
4789
4790 Closes #7203
Haibo Huangca2a8022020-07-10 20:17:42 -07004791
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004792- release-notes.pl: also spot common 'closes' typo
Haibo Huangca2a8022020-07-10 20:17:42 -07004793
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004794- metalink: remove
Haibo Huangca2a8022020-07-10 20:17:42 -07004795
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004796 Warning: this will make existing curl command lines that use metalink to
4797 stop working.
Haibo Huangca2a8022020-07-10 20:17:42 -07004798
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004799 Reasons for removal:
4800
4801 1. We've found several security problems and issues involving the
4802 metalink support in curl. The issues are not detailed here. When
4803 working on those, it become apparent to the team that several of the
4804 problems are due to the system design, metalink library API and what
4805 the metalink RFC says. They are very hard to fix on the curl side
4806 only.
4807
4808 2. The metalink usage with curl was only very briefly documented and was
4809 not following the "normal" curl usage pattern in several ways, making
4810 it surprising and non-intuitive which could lead to further security
4811 issues.
4812
4813 3. The metalink library was last updated 6 years ago and wasn't so
4814 active the years before that either. An unmaintained library means
4815 there's a security problem waiting to happen. This is probably reason
4816 enough.
4817
4818 4. Metalink requires an XML parsing library, which is complex code (even
4819 the smaller alternatives) and to this day often gets security
4820 updates.
4821
4822 5. Metalink is not a widely used curl feature. In the 2020 curl user
4823 survey, only 1.4% of the responders said that they'd are using it. In
4824 2021 that number was 1.2%. Searching the web also show very few
4825 traces of it being used, even with other tools.
4826
4827 6. The torrent format and associated technology clearly won for
4828 downloading large files from multiple sources in parallel.
4829
4830 Cloes #7176
Haibo Huangca2a8022020-07-10 20:17:42 -07004831
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004832- docs/INSTALL: remove mentions of configure --with-darwin-ssl
Haibo Huangca2a8022020-07-10 20:17:42 -07004833
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004834 ... as it isn't supported since a while back.
Haibo Huangca2a8022020-07-10 20:17:42 -07004835
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004836 Make configure fail with a warning if used.
Haibo Huangca2a8022020-07-10 20:17:42 -07004837
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004838 Reported-by: Vadim Grinshpun
4839 Bug: https://curl.se/mail/lib-2021-06/0008.html
4840 Closes #7200
Haibo Huang24c77a12020-04-29 13:49:57 -07004841
4842- RELEASE-NOTES: synced
4843
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004844- [Gregor Jasny brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07004845
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004846 cmake: Avoid leaking absolute paths into exported config
Haibo Huang24c77a12020-04-29 13:49:57 -07004847
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004848 The `find_libarary` command resolves the library or framework
4849 into an absolute path. In case of system frameworks which are
4850 located within an Xcode-provided SDK this results in the Xcode
4851 path and SDK version being part of the library path.
Haibo Huang24c77a12020-04-29 13:49:57 -07004852
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004853 Because those library paths end up in the exported CMake config
4854 importing curl will fail once the Xcode location or SDK version
4855 changes:
Haibo Huang24c77a12020-04-29 13:49:57 -07004856
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004857 ```cmake
4858 set_target_properties(CURL::libcurl PROPERTIES
4859 INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
4860 INTERFACE_LINK_LIBRARIES "lber;ldap;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/System/Library/Frameworks/SystemConfiguration.framework;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB"
4861 )
4862 ```
Haibo Huang24c77a12020-04-29 13:49:57 -07004863
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004864 A work-around is to link against system-level frameworks with
4865 `-framework XYZ`. In case of `SystemConfiguration` we might be able
4866 to omit the lookup-check because we could assume the framework is
4867 always present.
Haibo Huang24c77a12020-04-29 13:49:57 -07004868
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004869 Closes #7152
Haibo Huang24c77a12020-04-29 13:49:57 -07004870
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004871- [Shikha Sharma brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07004872
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004873 http2_connisdead: handle trailing GOAWAY better
Haibo Huang24c77a12020-04-29 13:49:57 -07004874
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004875 When checking the connection the input processing returns error
4876 immediately, we now consider that a dead connnection.
Haibo Huang24c77a12020-04-29 13:49:57 -07004877
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004878 Bug: https://curl.se/mail/lib-2021-06/0001.html
4879 Closes #7192
Haibo Huang24c77a12020-04-29 13:49:57 -07004880
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004881- [Dmitry Karpov brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07004882
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004883 ares: always store IPv6 addresses first
Haibo Huang24c77a12020-04-29 13:49:57 -07004884
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004885 Trying dual-stack on some embedded platform, I noticed that quite
4886 frequently (20%) libCurl starts from IPv4 regardless the Happy Eyeballs
4887 timeout value. After debugging this issue, I noticed that this happens
4888 if c-ares resolver response for IPv6 family comes before IPv4 (which was
4889 randomly happening in my tests).
Haibo Huang24c77a12020-04-29 13:49:57 -07004890
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004891 In such cases, because libCurl puts the last resolver response on top of
4892 the address list, when IPv4 resolver response comes after IPv6 one - the
4893 IPv4 family starts the connection phase instead of IPv6 family.
Haibo Huang24c77a12020-04-29 13:49:57 -07004894
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004895 The solution for this issue is to always put IPv6 addresses on top of
4896 the address list, regardless the order of resolver responses.
Haibo Huang24c77a12020-04-29 13:49:57 -07004897
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004898 Bug: https://curl.se/mail/lib-2021-06/0003.html
Haibo Huang24c77a12020-04-29 13:49:57 -07004899
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004900 Closes #7188
Haibo Huang24c77a12020-04-29 13:49:57 -07004901
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004902- Revert "Revert "socketpair: fix potential hangs""
Haibo Huang24c77a12020-04-29 13:49:57 -07004903
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004904 This reverts commit 3e70c3430a370a31eff2c1d8fea29edaca8f1127.
Haibo Huang24c77a12020-04-29 13:49:57 -07004905
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004906 Thus brings back the change from #7144 as was originally landed in
4907 c769d1eab4de8b
Haibo Huang24c77a12020-04-29 13:49:57 -07004908
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004909 Closes #7144 (again)
Haibo Huang24c77a12020-04-29 13:49:57 -07004910
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004911- [Ebe Janchivdorj brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07004912
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004913 schannel: move code out of SChannel_connect_step1
Haibo Huang24c77a12020-04-29 13:49:57 -07004914
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004915 Reviewed-by: Marc Hoersken
4916 Closes #7168
Haibo Huang24c77a12020-04-29 13:49:57 -07004917
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004918- tests/data/Makefile.inc: error: trailing backslash on last line
Haibo Huang24c77a12020-04-29 13:49:57 -07004919
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004920 Follow-up to d8dcb399b8009d
Haibo Huang24c77a12020-04-29 13:49:57 -07004921
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004922- TODO: Support rate-limiting for MQTT
Haibo Huang24c77a12020-04-29 13:49:57 -07004923
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004924- [Dmitry Kostjuchenko brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07004925
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004926 warnless: simplify type size handling
Haibo Huang24c77a12020-04-29 13:49:57 -07004927
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004928 By using sizeof(T), existing defines and relying on the compiler to
4929 define the required signed/unsigned mask.
Haibo Huang24c77a12020-04-29 13:49:57 -07004930
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004931 Closes #7181
Haibo Huang24c77a12020-04-29 13:49:57 -07004932
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004933Gisle Vanem (4 Jun 2021)
4934- [Win32] Fix for USE_WATT32
Haibo Huang24c77a12020-04-29 13:49:57 -07004935
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004936 My Watt-32 tcp/ip stack works on Windows but it does not have `WSAIoctl()`
Haibo Huang24c77a12020-04-29 13:49:57 -07004937
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004938Daniel Stenberg (4 Jun 2021)
4939- [Alexis Vachette brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07004940
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004941 url: bad CURLOPT_CONNECT_TO syntax now returns error
Haibo Huang24c77a12020-04-29 13:49:57 -07004942
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004943 Added test 3020 to verify
Haibo Huang24c77a12020-04-29 13:49:57 -07004944
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004945 Closes #7183
Haibo Huang24c77a12020-04-29 13:49:57 -07004946
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004947- github: remove the cmake macOS gcc-8 jobs
Haibo Huang24c77a12020-04-29 13:49:57 -07004948
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004949 They're too similar to the gcc-9 ones to be useful (and seems to not
4950 work anymore).
Haibo Huang24c77a12020-04-29 13:49:57 -07004951
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004952 Closes #7187
Haibo Huang24c77a12020-04-29 13:49:57 -07004953
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004954- test269: disable for hyper
Haibo Huang24c77a12020-04-29 13:49:57 -07004955
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004956 --ignore-content-length / CURLOPT_IGNORE_CONTENT_LENGTH doesn't work
4957 with hyper.
Haibo Huang24c77a12020-04-29 13:49:57 -07004958
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004959 Closes #7184
Haibo Huang24c77a12020-04-29 13:49:57 -07004960
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004961- runtests: enable 'hyper mode' only for HTTP tests
Haibo Huang24c77a12020-04-29 13:49:57 -07004962
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004963 The 'hyper mode' makes line-ending checks work in the test suite for
4964 when hyper is used. Now it also requires that HTTP or HTTPS are
4965 mentioned as keywords to be enabled so that it doesn't wrongly adjusts
4966 tests for other protocols.
Haibo Huang24c77a12020-04-29 13:49:57 -07004967
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004968 This makes test 271 (TFTP) work again in hyper enabled builds.
Haibo Huang24c77a12020-04-29 13:49:57 -07004969
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004970 Closes #7185
Haibo Huang24c77a12020-04-29 13:49:57 -07004971
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004972- [Alexis Vachette brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07004973
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004974 hostip: bad CURLOPT_RESOLVE syntax now returns error
Haibo Huang24c77a12020-04-29 13:49:57 -07004975
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004976 Added test 3019
4977 Fixes #7170
4978 Closes #7174
Haibo Huang24c77a12020-04-29 13:49:57 -07004979
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004980Daniel Gustafsson (3 Jun 2021)
4981- cookies: fix typo and expand comment
Haibo Huang24c77a12020-04-29 13:49:57 -07004982
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004983 Fix a typo in the sorting comment, and while in there elaborate slightly
4984 on why creationtime can be used as a tiebreaker.
Haibo Huang24c77a12020-04-29 13:49:57 -07004985
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004986- cookies: remove unused header
Haibo Huang24c77a12020-04-29 13:49:57 -07004987
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004988 Commit 1c1d9f1affbd3367bcb24062e261d0ea5d185e3a removed the last use
4989 for the inet_pton.h headerfile, this removes the inclusion of the
4990 header.
Haibo Huang24c77a12020-04-29 13:49:57 -07004991
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004992 Closes: #7182
4993 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Haibo Huang24c77a12020-04-29 13:49:57 -07004994
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004995Daniel Stenberg (3 Jun 2021)
4996- Revert "socketpair: fix potential hangs"
Haibo Huang24c77a12020-04-29 13:49:57 -07004997
Elliott Hughes34dd5f42021-08-10 13:01:18 -07004998 This reverts commit c769d1eab4de8b9f1bd84d992c63692fdc43c5be.
Haibo Huang24c77a12020-04-29 13:49:57 -07004999
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005000 See #7144 for details
Haibo Huang24c77a12020-04-29 13:49:57 -07005001
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005002- [Paul Groke brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07005003
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005004 socketpair: fix potential hangs
Haibo Huang24c77a12020-04-29 13:49:57 -07005005
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005006 Fixes potential hang in accept by using select + non-blocking accept.
Haibo Huang24c77a12020-04-29 13:49:57 -07005007
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005008 Fixes potential hang in peer check by replacing the send/recv check with
5009 a getsockname/getpeername check.
Haibo Huang24c77a12020-04-29 13:49:57 -07005010
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005011 Adds length check for returned sockaddr data.
Haibo Huang24c77a12020-04-29 13:49:57 -07005012
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005013 Closes #7144
Haibo Huang24c77a12020-04-29 13:49:57 -07005014
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005015- runtests: parse data/Makefile.inc instead of using make
Haibo Huang24c77a12020-04-29 13:49:57 -07005016
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005017 The warning about missing entries in that file then doesn't require that
5018 the Makefile has been regenerated which was confusing.
Haibo Huang24c77a12020-04-29 13:49:57 -07005019
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005020 The scan for the test num is a little more error prone than before
5021 (since now it doesn't actually verify that it is legitimate Makefile
5022 syntax), but I think it is good enough.
Haibo Huang24c77a12020-04-29 13:49:57 -07005023
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005024 Closes #7177
Haibo Huang24c77a12020-04-29 13:49:57 -07005025
5026- [Harry Sintonen brought this change]
5027
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005028 filecheck: quietly remove test-place/*~
Haibo Huang24c77a12020-04-29 13:49:57 -07005029
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005030 Closes #7179
Haibo Huang24c77a12020-04-29 13:49:57 -07005031
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005032- CURLE_SETOPT_OPTION_SYNTAX: new error name for wrong setopt syntax
Haibo Huang24c77a12020-04-29 13:49:57 -07005033
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005034 For options that pass in lists or strings that are subsequently parsed
5035 and must be correct. This broadens the scope for the option previously
5036 known as CURLE_TELNET_OPTION_SYNTAX but the old name is of course still
5037 provided as a #define for existing applications.
5038
5039 Closes #7175
Haibo Huang24c77a12020-04-29 13:49:57 -07005040
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005041- tests: fix Accept-Encoding strips to work with Hyper builds
Haibo Huang24c77a12020-04-29 13:49:57 -07005042
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005043 The previous strip also removed the CR which turned problematic.
5044
5045 valgrind.supp: add zstd suppression using hyper
5046
5047 Reported-and-analyzed-by: Kevin Burke
5048 Fixes #7169
5049 Closes #7171
Haibo Huang24c77a12020-04-29 13:49:57 -07005050
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005051- github: timeout jobs on macOS after 90 minutes
Haibo Huang24c77a12020-04-29 13:49:57 -07005052
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005053 Assisted-by: Marc Hoersken
5054 Closes #7173
Haibo Huang24c77a12020-04-29 13:49:57 -07005055
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005056- [Harry Sintonen brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07005057
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005058 mqtt: detect illegal and too large file size
Haibo Huang24c77a12020-04-29 13:49:57 -07005059
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005060 Add test 3017 and 3018 to verify.
5061 Closes #7166
Haibo Huang24c77a12020-04-29 13:49:57 -07005062
Elliott Hughesf344baa2021-12-07 09:12:34 -08005063- [Abhinav Singh brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07005064
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005065 cmake: add CURL_DISABLE_NTLM option
Haibo Huang24c77a12020-04-29 13:49:57 -07005066
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005067 Closes #7028
Haibo Huang24c77a12020-04-29 13:49:57 -07005068
Elliott Hughesf344baa2021-12-07 09:12:34 -08005069- [Abhinav Singh brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07005070
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005071 configure: add --disable-ntlm option
Haibo Huang24c77a12020-04-29 13:49:57 -07005072
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005073 Closes #7028
Haibo Huang24c77a12020-04-29 13:49:57 -07005074
Elliott Hughesf344baa2021-12-07 09:12:34 -08005075- [Abhinav Singh brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07005076
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005077 define: re-add CURL_DISABLE_NTLM and corresponding ifdefs
Haibo Huang24c77a12020-04-29 13:49:57 -07005078
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005079 This flag will be further exposed by adding build options.
Haibo Huang24c77a12020-04-29 13:49:57 -07005080
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005081 Reverts #6809
5082 Closes #7028
Haibo Huang24c77a12020-04-29 13:49:57 -07005083
5084- RELEASE-NOTES: synced
5085
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005086Viktor Szakats (1 Jun 2021)
5087- travis: delete --enable-hsts option (it is the default now) [ci skip]
Haibo Huang24c77a12020-04-29 13:49:57 -07005088
5089 Reviewed-by: Daniel Stenberg
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005090 Closes #7167
Haibo Huang24c77a12020-04-29 13:49:57 -07005091
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005092Daniel Stenberg (1 Jun 2021)
5093- hostip: fix 3 coverity complaints
Haibo Huang24c77a12020-04-29 13:49:57 -07005094
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005095 Follow-up to 1a0ebf6632f889eed
Haibo Huang24c77a12020-04-29 13:49:57 -07005096
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005097 - Check the return code to Curl_inet_pton() in two instances, even
5098 though we know the input is valid so the functions won't fail.
5099
5100 - Clear the 'struct sockaddr_in' struct before use so that the
5101 'sin_zero' field isn't left uninitialized.
5102
5103 Detected by Coverity.
5104 Assisted-by: Harry Sintonen
5105 Closes #7163
Haibo Huang24c77a12020-04-29 13:49:57 -07005106
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005107- c-hyper: fix NTLM on closed connection tested with test159
Haibo Huang24c77a12020-04-29 13:49:57 -07005108
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005109 Closes #7154
Haibo Huang24c77a12020-04-29 13:49:57 -07005110
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005111- conncache: lowercase the hash key for better match
Haibo Huang24c77a12020-04-29 13:49:57 -07005112
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005113 As host names are case insensitive, the use of case sensitive hashing
5114 caused unnecesary cache misses and therefore lost performance. This
5115 lowercases the hash key.
5116
5117 Reported-by: Harry Sintonen
5118 Fixes #7159
5119 Closes #7161
Haibo Huang24c77a12020-04-29 13:49:57 -07005120
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005121- mbedtls: make mbedtls_strerror always work
5122
5123 If the function doesn't exist, provide a macro that just clears the
5124 error message. Removes #ifdef uses from the code.
5125
5126 Closes #7162
Haibo Huang24c77a12020-04-29 13:49:57 -07005127
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005128- vtls: exit addsessionid if no cache is inited
Haibo Huang24c77a12020-04-29 13:49:57 -07005129
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005130 Follow-up to b249592d29ae0
Haibo Huang24c77a12020-04-29 13:49:57 -07005131
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005132 Avoids NULL pointer derefs.
5133
5134 Closes #7165
5135
5136- [Harry Sintonen brought this change]
5137
5138 Curl_ntlm_core_mk_nt_hash: fix OOM in error path
5139
5140 Closes #7164
5141
5142Michael Kaufmann (1 Jun 2021)
5143- ssl: read pending close notify alert before closing the connection
5144
5145 This avoids a TCP reset (RST) if the server initiates a connection
5146 shutdown by sending an SSL close notify alert and then closes the TCP
5147 connection.
5148
5149 For SSL connections, usually the server announces that it will close the
5150 connection with an SSL close notify alert. curl should read this alert.
5151 If curl does not read this alert and just closes the connection, some
5152 operating systems close the TCP connection with an RST flag.
5153
5154 See RFC 1122, section 4.2.2.13
5155
5156 If curl reads the close notify alert, the TCP connection is closed
5157 normally with a FIN flag.
5158
5159 The new code is similar to existing code in the "SSL shutdown" function:
5160 try to read an alert (non-blocking), and ignore any read errors.
5161
5162 Closes #7095
5163
5164Daniel Stenberg (1 Jun 2021)
5165- [Laurent Dufresne brought this change]
5166
5167 setopt: fix incorrect comments
5168
5169 Closes #7157
5170
5171- [Laurent Dufresne brought this change]
5172
5173 mbedtls: add support for cert and key blob options
5174
5175 CURLOPT_SSLCERT_BLOB and CURLOPT_SSLKEY_BLOB weren't usable with
5176 mbedtls backend, so the support was added.
5177
5178 Closes #7157
5179
5180- [Gregor Jasny brought this change]
5181
5182 cmake: try well-known send/recv signature for Apple
5183
5184 The CMake `try_compile` command is especially slow for
5185 the Xcode generator. With this patch applied it first tests
5186 for the currently used (and Open Group specified) send/recv
5187 signature. In case this fails testing falls-back to the
5188 permutations.
5189
5190 speed-up:
5191
5192 ```
5193 time cmake .. -GNinja -DCMAKE_USE_SECTRANSP=ON -DHTTP_ONLY=ON -DCMAKE_USE_LIBSSH2=OFF
5194 before: 11.64s user 11.09s system 55% cpu 40.754 total
5195 after: 7.84s user 6.57s system 51% cpu 28.074 total
5196 ```
5197
5198 ```
5199 time cmake .. -GXcode -DCMAKE_USE_SECTRANSP=ON -DHTTP_ONLY=ON -DCMAKE_USE_LIBSSH2=OFF
5200 before: 217.07s user 104.15s system 60% cpu 8:51.79 total
5201 after: 108.76s user 51.80s system 58% cpu 4:32.58 total
5202 ```
5203
5204 Closes #7158
5205
5206- http2: init recvbuf struct for pushed streams
5207
5208 Debug builds would warn that these structs were not initialized properly
5209 for pushed streams.
5210
5211 Ref: #7148
5212 Closes #7153
5213
5214- Curl_ssl_getsessionid: fail if no session cache exists
5215
5216 This function might get called for an easy handle for which the session
5217 cache hasn't been setup. It now just returns a "miss" in that case.
5218
5219 Reported-by: Christoph M. Becker
5220 Fixes #7148
5221 Closes #7153
5222
5223- GOVERNANCE: add 'user', 'committer' and 'contributor'
5224
5225 As those are commonly used terms in the project.
5226
5227 Closes #7151
5228
5229- URL-SYNTAX.md: document the new 'localhost' treatment
5230
5231- hostip: make 'localhost' return fixed values
5232
5233 Resolving the case insensitive host name 'localhost' now returns the
5234 addresses 127.0.0.1 and (if IPv6 is enabled) ::1 without using any
5235 resolver.
5236
5237 This removes the risk that users accidentally resolves 'localhost' to
5238 something else. By making sure 'localhost' is always local, we can
5239 assume a "secure context" for such transfers (for cookies etc).
5240
5241 Closes #7039
5242
5243Daniel Gustafsson (31 May 2021)
5244- docs: fix typos
5245
5246Daniel Stenberg (30 May 2021)
5247- hsts: ignore numberical IP address hosts
5248
5249 Also, use a single function library-wide for detecting if a given hostname is
5250 a numerical IP address.
5251
5252 Reported-by: Harry Sintonen
5253 Fixes #7146
5254 Closes #7149
5255
5256- test178: adjust for hyper
5257
5258 Hyper returns the same error for wrong HTTP version as for negative
5259 content-length. Test 178 verifies that negative content-length is
5260 rejected but the hyper backend will return a different error for it (and
5261 without any helpful message telling why the message was bad). It will
5262 also not return any headers at all for the response, not even the ones
5263 that arrived before the error.
5264
5265 Closes #7147
5266
5267- HYPER: remove mentions of deprecated development branch
5268
5269- c-hyper: handle NULL from hyper_buf_copy()
5270
5271 Closes #7143
5272
5273- HSTS: not experimental anymore
5274
5275- [Douglas R. Reno brought this change]
5276
5277 INSTALL: use correct extension for CURL-DISABLE.md
5278
5279 In INSTALL.MD, it's currently set to CURL-DISABLE-md instead of
5280 CURL-DISABLE.md. This generates a 404 on the cURL website as well as
5281 when viewing the docs through Github.
5282
5283 Closes #7142
5284
5285- travis: run tests 1 - 153 with hyper
5286
5287- c-hyper: convert HYPERE_INVALID_PEER_MESSAGE to CURLE_UNSUPPORTED_PROTOCOL
5288
5289 Makes test 129 work (HTTP/1.2 response).
5290
5291 Closes #7141
5292
5293- http_proxy: deal with non-200 CONNECT response with Hyper
5294
5295 Makes test 94 and 95 work
5296
5297 Closes #7141
5298
5299- c-hyper: clear NTLM auth buffer when request is issued
5300
5301 To prevent previous ones to get reused on subsequent requests. Matches
5302 how the built-in HTTP code works. Makes test 90 to 93 work.
5303
5304 Add test 90 to 93 in travis.
5305
5306 Closes #7139
5307
5308- [Joel Depooter brought this change]
5309
5310 schannel: set ALPN length correctly for HTTP/2
5311
5312 In a3268eca792f1 this code was changed to use the ALPN_H2 constant
5313 instead of the NGHTTP2_PROTO_ALPN constant. However, these constants are
5314 not the same. The nghttp2 constant included the length of the string,
5315 like this: "\x2h2". The ALPN_H2 constant is just "h2". Therefore we need
5316 to re-add the length of the string to the ALPN buffer.
5317
5318 Closes #7138
5319
5320- travis: run tests 1-89 in the hyper build
5321
5322 Closes #7137
5323
5324- Revert "c-hyper: handle body on HYPER_TASK_EMPTY"
5325
5326 This reverts commit c3eefa95c31f55657f0af422e8268d738f689066.
5327
5328 Reported-by: Kevin Burke
5329 Fixes #7122
5330 Closes #7136
5331
5332- [Jon Rumsey brought this change]
5333
5334 ccsidcurl: fix the compile errors
5335
5336 Looks like the declaration of cpp shoule be const char ** and return
5337 null if convert_version_info_string fails.
5338
5339 Fixes #7134
5340 Closes #7135
5341
5342- [Viktor Szakats brought this change]
5343
5344 docs: use --max-redirs instead of --max-redir
5345
5346 For consistency.
5347
5348 Closes #7130
Haibo Huang24c77a12020-04-29 13:49:57 -07005349
5350- RELEASE-NOTES: synced
Elliott Hughes34dd5f42021-08-10 13:01:18 -07005351
5352 ... and bump to 7.77.1
5353
5354- [Michael Forney brought this change]
5355
5356 travis: add bearssl build
5357
5358 Closes #7133
5359
5360- [Michael Forney brought this change]
5361
5362 bearssl: explicitly initialize all fields of Curl_ssl
5363
5364 Also, add comments like the other vtls backends.
5365
5366 Closes #7133
5367
5368- [Michael Forney brought this change]
5369
5370 bearssl: remove incorrect const on variable that is modified
5371
5372 hostname may be set to NULL later on in this function if it is an
5373 IP address.
5374
5375 Closes #7133
5376
5377Version 7.77.0 (26 May 2021)
5378
5379Daniel Stenberg (26 May 2021)
5380- RELEASE-NOTES: synced
5381
5382- THANKS: added contributors from 7.77.0 cycle
5383
5384- copyright: update copyright year ranges to 2021
5385
5386- [Radek Zajic brought this change]
5387
5388 hostip: fix broken macOS/CMake/GCC builds
5389
5390 Follow-up to 31f631a142d855f06
5391
5392 Fixes #7128
5393 Closes #7129
5394
5395- TODO: netrc caching and sharing
5396
5397 URL: https://curl.se/mail/archive-2021-05/0018.html
5398
5399- [Orgad Shaneh brought this change]
5400
5401 setopt: streamline ssl option code
5402
5403 Make it use the same style as the code next to it
5404
5405 Closes #7123
5406
5407- [Radek Zajic brought this change]
5408
5409 lib/hostip6.c: make NAT64 address synthesis on macOS work
5410
5411 Closes #7121
5412
5413- [ejanchivdorj brought this change]
5414
5415 sectransp: fix EXC_BAD_ACCESS caused by uninitialized buffer
5416
5417 When the SecCertificateCopyCommonName function fails, it leaves
5418 common_name in a invalid state so CFStringCompare uses the invalid
5419 result, causing EXC_BAD_ACCESS.
5420
5421 The fix is to check the return value of the function before using the
5422 name.
5423
5424 Closes #7126
5425
5426- [Paweł Wegner brought this change]
5427
5428 CMake: add CURL_ENABLE_EXPORT_TARGET option
5429
5430 install(EXPORT ...) causes trouble when embedding curl dependencies
5431 which don't provide install(EXPORT ...) targets (e.g libressl and
5432 nghttp2) with cmake's add_subdirectory.
5433
5434 Reviewed-by: Jakub Zakrzewski
5435 Closes #7060
5436
5437- [Alessandro Ghedini brought this change]
5438
5439 quiche: update for network path aware API
5440
5441 Latest version of quiche requires the application to pass the peer
5442 address of received packets, and it provides the address for outgoing
5443 packets back.
5444
5445 Closes #7120
5446
5447- [Jacob Hoffman-Andrews brought this change]
5448
5449 rustls: switch read_tls and write_tls to callbacks
5450
5451 And update to 0.6.0, including a rename from session to connection for
5452 many fields.
5453
5454 Closes #7071
5455
5456- [Koichi Shiraishi brought this change]
5457
5458 sectransp: fix 7f4a9a9b2a49 commit about missing comma
5459
5460 Follow-up to 7f4a9a9b2a495
5461
5462 Closes #7119
5463
5464- [Harry Sintonen brought this change]
5465
5466 openssl: associate/detach the transfer from connection
5467
5468 CVE-2021-22901
5469
5470 Bug: https://curl.se/docs/CVE-2021-22901.html
5471
5472- [Harry Sintonen brought this change]
5473
5474 telnet: check sscanf() for correct number of matches
5475
5476 CVE-2021-22898
5477
5478 Bug: https://curl.se/docs/CVE-2021-22898.html
5479
5480- schannel: don't use static to store selected ciphers
5481
5482 CVE-2021-22897
5483
5484 Bug: https://curl.se/docs/CVE-2021-22897.html
5485
5486- docs/tests: remove freenode references
5487
5488- RELEASE-NOTES: synced
5489
5490- [Sergey Markelov brought this change]
5491
5492 NSS: make colons, commas and spaces valid separators in cipher list
5493
5494 Fixes #7110
5495 Closes #7115
5496
5497- curl: include libmetalink version in --version output
5498
5499 Closes #7112
5500
5501Jay Satiro (21 May 2021)
5502- [Matias N. Goldberg brought this change]
5503
5504 cmake: Use multithreaded compilation on VS 2008+
5505
5506 Multithreaded compilation has been supported since at least VS 2005 and
5507 been robustly stable since at least VS 2008
5508
5509 Closes https://github.com/curl/curl/pull/7109
5510
5511Daniel Stenberg (21 May 2021)
5512- [Matias N. Goldberg brought this change]
5513
5514 cmake: fix two invokes result in different curl_config.h
5515
5516 Fixes #7100
5517 Closes #7101
5518
5519 Reviewed-by: Jakub Zakrzewski
5520 Signed-off-by: Matias N. Goldberg <dark_sylinc@yahoo.com.ar>
5521
5522- [Peng-Yu Chen brought this change]
5523
5524 cmake: detect CURL_SA_FAMILY_T
5525
5526 Fixes #7049
5527 Closes #7065
5528
5529- [Lucas Clemente Vella brought this change]
5530
5531 CURLOPT_IPRESOLVE: preventing wrong IP version from being used
5532
5533 In some situations, it was possible that a transfer was setup to
5534 use an specific IP version, but due do DNS caching or connection
5535 reuse, it ended up using a different IP version from requested.
5536
5537 This commit changes the effect of CURLOPT_IPRESOLVE from simply
5538 restricting address resolution to preventing the wrong connection
5539 type being used, when choosing a connection from the pool, and
5540 to restricting what addresses could be used when establishing
5541 a new connection.
5542
5543 It is important that all addresses versions are resolved, even if
5544 not used in that transfer in particular, because the result is
5545 cached, and could be useful for a different transfer with a
5546 different CURLOPT_IPRESOLVE setting.
5547
5548 Closes #6853
5549
5550- [Oliver Urbann brought this change]
5551
5552 AmigaOS: add functions definitions for SHA256
5553
5554 AmiSSL replaces many functions with macros. Curl requires pointer
5555 to some of these functions. Thus, we have to encapsulate these macros:
5556 SHA256_Init, SHA256_Update, SHA256_Final, X509_INFO_free.
5557
5558 Bug: https://github.com/jens-maus/amissl/issues/15
5559 Co-authored-by: Daniel Stenberg <daniel@haxx.se>
5560
5561 Closes #7099
5562
5563- test2100: make it run with and require IPv6
5564
5565 Closes #7083
5566
5567- tests/getpart: generate output URL encoded for better diffs
5568
5569 Closes #7083
5570
5571- [Ryan Beck-Buysse brought this change]
5572
5573 docs/TheArtOfHttpScripting: fix markdown links
5574
5575 extra parens cause the links to be incorrectly formatted
5576 and inconsistent with the rest of the document.
5577
5578 Signed-off-by: Ryan Beck-Buysse <rbuysse@gmail.com>
5579 Closes #7097
5580
5581- RELEASE-NOTES: synced
5582
5583- [Emil Engler brought this change]
5584
5585 docs: replace dots with dashes in markdown enums
5586
5587 We use dashes instead of dots nearly everywhere except for those few
5588 cases. This commit addresses this issues and brings more coherency into
5589 it.
5590
5591 Closes #7093
5592
5593- [Emil Engler brought this change]
5594
5595 docs: improve INTERNALS.md regarding getsock cb
5596
5597 This adds the I/O prefix to indicate that those "actions" are kind-of
5598 related to those found in select(2) or poll(2) (reading/writing).
5599
5600 It also adds a note where the prototypes of those functions can be found
5601 in the source code.
5602
5603 Closes #7092
5604
5605- [Emil Engler brought this change]
5606
5607 docs: document attach in INTERNALS.md
5608
5609 The new field in the Curl_handler struct still lacks documentation. This
5610 adds it it from the information extracted from lib/urldata.h:797
5611
5612 Closes #7091
5613
5614- [Marc Aldorasi brought this change]
5615
5616 config: remove now-unused macros
5617
5618 Closes #7094
5619
5620- [Marc Aldorasi brought this change]
5621
5622 hostip.h: remove declaration of unimplemented function
5623
5624 Closes #7094
5625
5626- h3: add 'attach' callback to protocol handlers
5627
5628 Follow-up to 0c55fbab45be
5629
5630 Reviewed-by: Emil Engler
5631 Closes #7090
5632
5633- wolfssl: remove SSLv3 support leftovers
5634
5635 Closes #7088
5636
5637- curl-wolfssl.m4: without custom include path, assume /usr/include
5638
5639 ... so that we can point out the root of the OpenSSL emulation headers.
5640 Previously this used the '$includedir' variable which is wrong since
5641 that defaults to the dir where the current configure invoke will install
5642 the built libcurl headers: /usr/local by default.
5643
5644 Fixes #7085
5645 Reported-by: Joel Jakobsson
5646 Closes #7087
5647
5648- [Joel Depooter brought this change]
5649
5650 data_pending: check only SECONDARY socket for FTP(S) transfers
5651
5652 Check the FIRST for all other protocols.
5653
5654 This fixes a timeout in an ftps download. The server sends a TLS
5655 close_notify message in the same packet as the file data. The
5656 close_notify seems to not be handled in the schannel_recv function, so
5657 libcurl is not aware that the server has closed the connection. Thus
5658 libcurl ends up waiting for action on the socket until a timeout is
5659 reached. With the secondary socket check added to the data_pending
5660 function, the close_notify is properly handled, and the ftps transfer
5661 terminates as expected.
5662
5663 Fixes #7068
5664 Closes #7069
5665
5666- github: inhibit deprecated declarations for clang on macOS
5667
5668 ... as they otherwise cause ldap build errors in the CI.
5669
5670 Fixes #7081
5671 Closes #7082
5672
5673- conn: add 'attach' to protocol handler, make libssh2 use it
5674
5675 The libssh2 backend has SSH session associated with the connection but
5676 the callback context is the easy handle, so when a connection gets
5677 attached to a transfer, the protocol handler now allows for a custom
5678 function to get used to set things up correctly.
5679
5680 Reported-by: Michael O'Farrell
5681 Fixes #6898
5682 Closes #7078
5683
5684- http2: make sure pause is done on HTTP
5685
5686 Since the function is called for any protocol, we can't assume that the
5687 HTTP struct is there without first making sure it is HTTP.
5688
5689 Reported-by: Denis Goleshchikhin
5690 Fixes #7079
5691 Closes #7080
5692
5693- docs: cookies from HTTP headers need domain set
5694
5695 ... or the cookies won't get sent. Push users to using the "Netscape"
5696 format instead, which curl uses when saving a cookie "jar".
5697
5698 Reported-by: Martin Dorey
5699 Reviewed-by: Daniel Gustafsson
5700 Fixes #6723
5701 Closes #7077
5702
5703- RELEASE-NOTES: synced
5704
5705- github: add a workflow with libssh2 on macOS using cmake
5706
5707 Closes #7047
5708
5709- sws: allow HTTP requests up to 2MB in size
5710
5711 To allow tests with slightly larger payloads. Like #7071 ...
5712
5713 Closes #7075
5714
5715Marc Hoersken (16 May 2021)
5716- CI/azure: increase verbosity and fix outdated task names
5717
5718 Closes #7063
5719
5720- CI/cirrus: add shared and static Windows release builds
5721
5722 Azure Pipelines is currently being used for debug builds,
5723 let's also run some non-debug (release) Windows builds and
5724 make use of previously underutilized Cirrus CI for that.
5725
5726 Reviewed-by: Marcel Raad
5727
5728 Closes #6991
5729
5730Daniel Stenberg (16 May 2021)
5731- CURLOPT_CAPATH.3: defaults to a path, not NULL
5732
5733 Reported-by: Andrew Barnert
5734
5735 Closes #7062
5736
5737- [Jacob Hoffman-Andrews brought this change]
5738
5739 c-hyper: handle body on HYPER_TASK_EMPTY
5740
5741 Some of the time, we get a HYPER_TASK_EMPTY response before the status
5742 line, headers, and body have been read. Previously, that would cause us
5743 to poll again, leading to a 1 second timeout.
5744
5745 The HYPER_TASK_EMPTY docs say:
5746
5747 The value of this task is null (does not imply an error).
5748
5749 So, if we receive a HYPER_TASK_EMPTY, continue on with processing the
5750 response.
5751
5752 Reported-by: Kevin Burke
5753 Fixes #7064
5754 Closes #7070
5755
5756- [Ikko Ashimine brought this change]
5757
5758 tool_getparam: fix comment typo in tool_getparam.c
5759
5760 enfore -> enforce
5761
5762 Closes #7074
5763
5764- mem-include-scan.pl: require a non-word letter before memory funcs
5765
5766 ... so that ldap_memfree() for example doesn't match the scan for free.
5767
5768 Closes #7061
5769
5770- version: free the openldap info correctly
5771
5772 ... to avoid memory leaks.
5773
5774 Follow-up to: bf0feae7768d9
5775 Closes #7061
5776
5777- dupset: remove totally off comment
5778
5779 Closes #7067
5780
5781- configure: if asked for, fail if ldap is not found
5782
5783 Reported-by: Jakub Zakrzewski
5784 Fixes #7053
5785 Closes #7055
5786
5787- version: add OpenLDAP version in the output
5788
5789 Assisted-by: Howard Chu
5790 Closes #7054
5791
5792Jay Satiro (13 May 2021)
5793- [Joel Depooter brought this change]
5794
5795 schannel: Ensure the security context request flags are always set
5796
5797 As of commit 54e7475, these flags would only be set when using a new
5798 credential handle. When re-using an existing credential handle, the
5799 flags would not be set.
5800
5801 Closes https://github.com/curl/curl/pull/7051
5802
5803Dan Fandrich (12 May 2021)
5804- tests: Fix some tag matching issues in a number of tests
5805
5806Daniel Stenberg (12 May 2021)
5807- sasl: use 'unsigned short' to store mechanism
5808
5809 ... saves a few bytes of struct size in memory and it only uses
5810 10 bits anyway.
5811
5812 Closes #7045
5813
5814- hostip: remove the debug code for LocalHost
5815
5816 The Curl_resolv() had special code (when built in debug mode) for when
5817 resolving the host name "LocalHost" (using that exact casing). It would
5818 then get the host name from the --interface option instead.
5819
5820 This development-only feature was not used by anything (anymore) and we
5821 have the --resolve feature if we want to play similar tricks properly
5822 going forward.
5823
5824 Closes #7044
5825
5826- progress: reset limit_size variables at transfer start
5827
5828 Otherwise the old value would linger from a previous use and would mess
5829 up the network speed cap logic.
5830
5831 Reported-by: Ymir1711 on github
5832
5833 Fixes #7042
5834 Closes #7043
5835
5836- RELEASE-NOTES: synced
5837
5838- [Daniel Gustafsson brought this change]
5839
5840 cookies: use CURLcode for cookie_output reporting
5841
5842 Writing the cookie file has multiple error conditions, and was using an
5843 int with magic numbers to report the different error (which in turn were
5844 disregarded anyways). This moves reporting to use a CURLcode value.
5845
5846 Lightly-touched-by: Daniel Stenberg
5847
5848 Closes #7037
5849 Closes #6749
5850
5851- [Daniel Gustafsson brought this change]
5852
5853 cookies: make use of string duplication function
5854
5855 strstore() is defined as a strdup which ensures to free the target
5856 pointer before duping the source char * into it. Make use of it in
5857 two more cases where it can simplify the code.
5858
5859- [Daniel Gustafsson brought this change]
5860
5861 cookies: refactor comments
5862
5863 Comments in the cookie code were a bit all over the place in terms of
5864 style and wording. This takes a stab at cleaning them up by keeping to
5865 a single style and overall shape. Some comments are moved a little and
5866 some removed alltogether due to being redundant. No functional changes
5867 have been made,
5868
5869- [Peng-Yu Chen brought this change]
5870
5871 http2: skip immediate parsing of payload following protocol switch
5872
5873 This is considered not harmful as a following http2_recv shall be
5874 called very soon.
5875
5876 This is considered helpful in the specific situation where some
5877 servers (e.g. nghttpx v1.43.0) may fulfill stream 1 immediately
5878 following the return of HTTP status 101, other than waiting for
5879 the client-side connection preface to arrive.
5880
5881 Fixes #7036
5882 Closes #7040
5883
5884- [Peng-Yu Chen brought this change]
5885
5886 http2: use nghttp2_session_upgrade2 instead of nghttp2_session_upgrade
5887
5888 Following the upstream deprecation of nghttp2_session_upgrade.
5889
5890 Also provides further checks for requests with the HEAD method.
5891
5892 Closes #7041
5893
5894- progress/trspeed: use a local convenient pointer to beautify code
5895
5896 The function becomes easier to read and understand with less repetition.
5897
5898- trspeed: use long double for transfer speed calculation
5899
5900- progress: move transfer speed calc into function
5901
5902 This silences two scan-build-11 warnings: "The result of the '/'
5903 expression is undefined"
5904
5905 Bug: https://curl.se/mail/lib-2021-05/0022.html
5906 Closes #7035
5907
5908- [Cameron Cawley brought this change]
5909
5910 openssl: remove unneeded cast for CertOpenSystemStore()
5911
5912 Closes #7025
5913
5914- travis: disable the libssh build
5915
5916 It can't run on focal and causes warnings on bionic. Since the focal
5917 failure started rather suddenly a while ago, we can suspect it might be
5918 temporary.
5919
5920 Added "bring back the build" to the TODO document.
5921
5922 Fixes #7011
5923 Closes #7012
5924
5925- [Peng-Yu Chen brought this change]
5926
5927 http: use calculated offsets inst of integer literals for header parsing
5928
5929 Assumed to be a minor coding style improvement with no behavior change.
5930
5931 A modern compiler is expected to have the calculation optimized during
5932 compilation. It may be deemed okay even if that's not the case, since
5933 the added overhead is considered very low.
5934
5935 Closes #7032
5936
5937- [Peng-Yu Chen brought this change]
5938
5939 GIT-INFO: suggest using autoreconf instead of buildconf
5940
5941 Follow-up to 85868537d
5942
5943 Closes #7033
5944
5945- http: deal with partial CONNECT sends
5946
5947 Also added 'CURL_SMALLSENDS' to make Curl_write() send short packets,
5948 which helped verifying this even more.
5949
5950 Add test 363 to verify.
5951
5952 Reported-by: ustcqidi on github
5953 Fixes #6950
5954 Closes #7024
5955
5956- HTTP3: make the ngtcp2 build use the quictls fork
5957
5958 ... as ngtcp2 itself documents the build this way.
5959
5960 Closes #7031
5961
5962- http: limit the initial send amount to used upload buffer size
5963
5964 Previously this logic would cap the send to CURL_MAX_WRITE_SIZE bytes,
5965 but for the situations where a larger upload buffer has been set, this
5966 function can benefit from sending more bytes. With default size used,
5967 this does the same as before.
5968
5969 Also changed the storage of the size to an 'unsigned int' as it is not
5970 allowed to be set larger than 2M.
5971
5972 Also added cautions to the man pages about changing buffer sizes in
5973 run-time.
5974
5975 Closes #7022
5976
5977- RELEASE-NOTES: synced
5978
5979- ngtcp2: fix the cb_acked_stream_data_offset proto
5980
5981 The 'datalen' value should be 64 bit, not size_t!
5982
5983 Reported-by: Dmitry Karpov
5984 Bug: https://curl.se/mail/lib-2021-05/0019.html
5985 Closes #7027
5986
5987- progress: when possible, calculate transfer speeds with microseconds
5988
5989 ... this improves precision, especially for transfers in the few or even
5990 sub millisecond range.
5991
5992 Reported-by: J. Bromley
5993 Fixes #7017
5994 Closes #7020
5995
5996- http: reset the header buffer when sending the request
5997
5998 A reused transfer handle could otherwise reuse the previous leftover
5999 buffer and havoc would ensue.
6000
6001 Reported-by: sergio-nsk on github
6002 Fixes #7018
6003 Closes #7021
6004
6005- curl_mprintf.3: add description
6006
6007 These functions have existed in the API since the dawn of time. It is
6008 about time we describe how they work, even if we discourage users from
6009 using them.
6010
6011 Closes #7010
6012
6013- [Timothy Gu brought this change]
6014
6015 URL-SYNTAX: update IDNA section for WHATWG spec changes
6016
6017 WHATWG URL has dictated the use of Nontransitional Processing (IDNA
6018 2008) for several years now. Chrome (and derivatives) still use
6019 Transitional Processing, but Firefox and Safari have both switched.
6020
6021 Also document the fact that winidn functions differently from libidn2
6022 here.
6023
6024 Closes #7026
Haibo Huang24c77a12020-04-29 13:49:57 -07006025
6026- [Calvin Buckley brought this change]
6027
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006028 INSTALL: add IBM i specific quirks
Haibo Huang24c77a12020-04-29 13:49:57 -07006029
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006030 Fixes #6830
6031 Closes #7013
Haibo Huang24c77a12020-04-29 13:49:57 -07006032
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006033- libcurl.3: mention the URL API
Haibo Huang24c77a12020-04-29 13:49:57 -07006034
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006035 To make it easier to find. Also a minor polish of libcurl-url.3
Haibo Huang24c77a12020-04-29 13:49:57 -07006036
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006037 Closes #7009
Haibo Huang24c77a12020-04-29 13:49:57 -07006038
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006039- GnuTLS: don't allow TLS 1.3 for versions that don't support it
6040
6041 Follow-up to 781864bedbc5
6042
6043 ... as they don't understand it and will return error at us!
6044
6045 Closes #7014
Haibo Huang24c77a12020-04-29 13:49:57 -07006046
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006047Kamil Dudka (6 May 2021)
6048- tool_getparam: handle failure of curlx_convert_tchar_to_UTF8()
Haibo Huang24c77a12020-04-29 13:49:57 -07006049
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006050 Reported by GCC analyzer:
6051
6052 Error: GCC_ANALYZER_WARNING (CWE-476):
6053 src/tool_getparam.c: scope_hint: In function 'parse_args'
6054 src/tool_getparam.c:2318:38: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL 'orig_opt'
6055 lib/curlx.h:56: included_from: Included from here.
6056 src/tool_getparam.c:28: included_from: Included from here.
6057 lib/curl_multibyte.h:70:51: note: in definition of macro 'curlx_convert_tchar_to_UTF8'
6058 src/tool_getparam.c:2316:16: note: in expansion of macro 'curlx_convert_tchar_to_UTF8'
6059
6060 Reviewed-by: Marcel Raad
6061 Reviewed-by: Daniel Stenberg
6062 Closes #7023
Haibo Huang24c77a12020-04-29 13:49:57 -07006063
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006064Daniel Stenberg (6 May 2021)
6065- scripts/delta: also show total number of days
Haibo Huang24c77a12020-04-29 13:49:57 -07006066
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006067Marc Hoersken (5 May 2021)
6068- sockfilt: fix invalid increment of handles index variable nfd
Haibo Huang24c77a12020-04-29 13:49:57 -07006069
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006070 Only increment the array index if we actually stored a handle.
Haibo Huang24c77a12020-04-29 13:49:57 -07006071
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006072 Follow up to e917492048f4b85a0fd58a033d10072fc7666c3b
6073 Closes #6992
Haibo Huang24c77a12020-04-29 13:49:57 -07006074
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006075- sockfilt: avoid getting stuck waiting for writable socket
Haibo Huang24c77a12020-04-29 13:49:57 -07006076
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006077 Reset FD_WRITE event using the same approach as in multi.c
Haibo Huang24c77a12020-04-29 13:49:57 -07006078
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006079 Follow up to b36442b24305f3cda7c13cc64b46838995a4985b
6080 Closes #6992
Haibo Huang24c77a12020-04-29 13:49:57 -07006081
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006082Jay Satiro (5 May 2021)
6083- test678: Fix for Windows multibyte builds
6084
6085 Follow-up to 77fc385 from yesterday.
6086
6087 Bug: https://github.com/curl/curl/pull/6662#issuecomment-832966557
6088 Reported-by: Marc Hörsken
Haibo Huang24c77a12020-04-29 13:49:57 -07006089
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006090- [Dmitry Kostjuchenko brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07006091
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006092 build: fix compilation for Windows UWP platform
Haibo Huang24c77a12020-04-29 13:49:57 -07006093
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006094 - Include afunix.h which is necessary for sockaddr_un when
6095 USE_UNIX_SOCKETS is defined on Windows.
Haibo Huang24c77a12020-04-29 13:49:57 -07006096
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006097 Closes https://github.com/curl/curl/pull/7006
Haibo Huang24c77a12020-04-29 13:49:57 -07006098
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006099Daniel Stenberg (5 May 2021)
6100- gnutls: make setting only the MAX TLS allowed version work
Haibo Huang24c77a12020-04-29 13:49:57 -07006101
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006102 Previously, settting only the max allowed TLS version, leaving the
6103 minimum one at default, didn't actually set it and left it to default
6104 (TLS 1.3) too!
Haibo Huang24c77a12020-04-29 13:49:57 -07006105
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006106 As a bonus, this change also removes the dead code handling of SSLv3
6107 since that version can't be set anymore (since eff614fb0242cb).
Haibo Huang24c77a12020-04-29 13:49:57 -07006108
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006109 Reported-by: Daniel Carpenter
6110 Fixes #6998
6111 Closes #7000
Haibo Huang24c77a12020-04-29 13:49:57 -07006112
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006113- openldap: replace ldap_ prefix on private functions
Haibo Huang24c77a12020-04-29 13:49:57 -07006114
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006115 Since openldap itself uses that prefix and with OpenĹDAP 2.5.4 (at
6116 least) there's a symbol collision because of that.
Haibo Huang24c77a12020-04-29 13:49:57 -07006117
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006118 The private functions now use the 'oldap_' prefix where it previously
6119 used 'ldap_'.
Haibo Huang24c77a12020-04-29 13:49:57 -07006120
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006121 Reported-by: 3eka on github
6122 Fixes #7004
6123 Closes #7005
Haibo Huang24c77a12020-04-29 13:49:57 -07006124
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006125Jay Satiro (5 May 2021)
6126- http2: fix potentially uninitialized variable
Haibo Huang24c77a12020-04-29 13:49:57 -07006127
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006128 introduced several days ago in 3193170. caught by visual studio linker.
Haibo Huang24c77a12020-04-29 13:49:57 -07006129
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006130- [Gilles Vollant brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07006131
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006132 SSL: support in-memory CA certs for some backends
Haibo Huang24c77a12020-04-29 13:49:57 -07006133
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006134 - New options CURLOPT_CAINFO_BLOB and CURLOPT_PROXY_CAINFO_BLOB to
6135 specify in-memory PEM certificates for OpenSSL, Schannel (Windows)
6136 and Secure Transport (Apple) SSL backends.
Haibo Huang24c77a12020-04-29 13:49:57 -07006137
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006138 Prior to this change PEM certificates could only be imported from a file
6139 and not from memory.
Haibo Huang24c77a12020-04-29 13:49:57 -07006140
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006141 Co-authored-by: moparisthebest@users.noreply.github.com
Haibo Huang24c77a12020-04-29 13:49:57 -07006142
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006143 Ref: https://github.com/curl/curl/pull/4679
6144 Ref: https://github.com/curl/curl/pull/5677
6145 Ref: https://github.com/curl/curl/pull/6109
6146
6147 Closes https://github.com/curl/curl/pull/6662
Haibo Huang24c77a12020-04-29 13:49:57 -07006148
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006149Daniel Stenberg (4 May 2021)
6150- [David Cook brought this change]
6151
6152 tests: ignore case of chunked hex numbers in tests
Haibo Huang24c77a12020-04-29 13:49:57 -07006153
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006154 When hyper is used, it emits uppercase hexadecimal numbers for chunked
6155 encoding lengths. Without hyper, lowercase hexadecimal numbers are used.
6156 This change adds preprocessor statements to tests where this is an
6157 issue, and adapts the fixtures to match.
Haibo Huang24c77a12020-04-29 13:49:57 -07006158
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006159 Closes #6987
6160
6161- cmake: check for getppid and utimes
Haibo Huang24c77a12020-04-29 13:49:57 -07006162
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006163 ... as they're checked for in the configure script and are used by
6164 source code.
Haibo Huang24c77a12020-04-29 13:49:57 -07006165
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006166 Removed checks for perror, setvbuf and strlcat since those defines are
6167 not checked for in source code.
6168
6169 Bonus: removed HAVE_STRLCPY from a few config-*.h files since that
6170 symbol is not used in source code.
6171
6172 Closes #6997
6173
6174- libtest: remove lib530.c
6175
6176 Follow up from e50a877df when test 530 was removed. Since then this
6177 source file has not been used/needed.
6178
6179 Closes #6999
6180
6181- FILEFORMAT: mention sectransp as a feature
6182
6183 Been supported since at least 40259ca65
6184
6185 Closes #7001
6186
6187- RELEASE-NOTES: synced
6188
6189- libssh2: ignore timeout during disconnect
6190
6191 ... to avoid memory leaks!
6192
6193 libssh2 is tricky as we have to deal with the non-blockiness even in
6194 close and shutdown cases. In the cases when we shutdown after a timeout
6195 already expired, it is crucial that curl doen't let the timeout abort
6196 the shutdown process as that then leaks memory!
6197
6198 Reported-by: Benjamin Riefenstahl
6199 Fixes #6990
6200
6201- KNOWN_BUGS: add two HTTP/2 bugs
6202
6203- KNOWN_BUGS: add three HTTP/3 issues
6204
6205 ... and moved the HTTP/2 issues to its own section
6206
6207 Closes #6606
6208 Closes #6510
6209 Closes #6494
6210
6211- [ejanchivdorj brought this change]
6212
6213 CURLcode: add CURLE_SSL_CLIENTCERT
6214
6215 When a TLS server requests a client certificate during handshake and
6216 none can be provided, libcurl now returns this new error code
6217 CURLE_SSL_CLIENTCERT
6218
6219 Only supported by Secure Transport and OpenSSL for TLS 1.3 so far.
6220
6221 Closes #6721
6222
6223- [Tobias Gabriel brought this change]
6224
6225 .github/FUNDING: add link to GitHub sponsors
6226
6227 Closes #6985
6228
6229- [Harry Sintonen brought this change]
6230
6231 krb5/name_to_level: replace checkprefix with curl_strequal
6232
6233 Closes #6993
6234
6235- [Harry Sintonen brought this change]
6236
6237 Curl_input_digest: require space after Digest
6238
6239 Closes #6993
6240
6241- [Harry Sintonen brought this change]
6242
6243 Curl_http_header: check for colon when matching Persistent-Auth
6244
6245 Closes #6993
6246
6247- [Harry Sintonen brought this change]
6248
6249 Curl_http_input_auth: require valid separator after negotiation type
6250
6251 Closes #6993
6252
6253- http: fix the check for 'Authorization' with Bearer
6254
6255 The code would wrongly check for it using an additional colon.
6256
6257 Reported-by: Blake Burkhart
6258 Closes #6988
6259
6260- [Kamil Dudka brought this change]
6261
6262 http2: fix a resource leak in push_promise()
6263
6264 ... detected by Coverity:
6265
6266 Error: RESOURCE_LEAK (CWE-772):
6267 lib/http2.c:532: alloc_fn: Storage is returned from allocation function "duphandle".
6268 lib/http2.c:532: var_assign: Assigning: "newhandle" = storage returned from "duphandle(data)".
6269 lib/http2.c:552: noescape: Resource "newhandle" is not freed or pointed-to in "set_transfer_url".
6270 lib/http2.c:555: leaked_storage: Variable "newhandle" going out of scope leaks the storage it points to.
6271
6272 Closes #6986
6273
6274- [Kamil Dudka brought this change]
6275
6276 http2: fix resource leaks in set_transfer_url()
6277
6278 ... detected by Coverity:
6279
6280 Error: RESOURCE_LEAK (CWE-772):
6281 lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.]
6282 lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()".
6283 lib/http2.c:486: noescape: Resource "u" is not freed or pointed-to in "curl_url_set". [Note: The source code implementation of the function has been overridden by a builtin model.]
6284 lib/http2.c:488: leaked_storage: Variable "u" going out of scope leaks the storage it points to.
6285
6286 Error: RESOURCE_LEAK (CWE-772):
6287 lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.]
6288 lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()".
6289 lib/http2.c:493: noescape: Resource "u" is not freed or pointed-to in "curl_url_set". [Note: The source code implementation of the function has been overridden by a builtin model.]
6290 lib/http2.c:495: leaked_storage: Variable "u" going out of scope leaks the storage it points to.
6291
6292 Error: RESOURCE_LEAK (CWE-772):
6293 lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.]
6294 lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()".
6295 lib/http2.c:500: noescape: Resource "u" is not freed or pointed-to in "curl_url_set". [Note: The source code implementation of the function has been overridden by a builtin model.]
6296 lib/http2.c:502: leaked_storage: Variable "u" going out of scope leaks the storage it points to.
6297
6298 Error: RESOURCE_LEAK (CWE-772):
6299 lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.]
6300 lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()".
6301 lib/http2.c:505: noescape: Resource "u" is not freed or pointed-to in "curl_url_get". [Note: The source code implementation of the function has been overridden by a builtin model.]
6302 lib/http2.c:507: leaked_storage: Variable "u" going out of scope leaks the storage it points to.
6303
6304 Closes #6986
6305
6306- [Jacob Hoffman-Andrews brought this change]
6307
6308 rustls: use ALPN
6309
6310 Update required rustls to 0.5.0
6311
6312 Closes #6960
6313
Elliott Hughesf344baa2021-12-07 09:12:34 -08006314- [Michał Antoniak brought this change]
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006315
6316 gskit: fix CURL_DISABLE_PROXY build
6317
6318 Removed localfd and remotefd from ssl_backend_data (ued only with proxy
6319 connection). Function pipe_ssloverssl return always 0, when proxy is not
6320 used.
6321
6322 Closes #6981
6323
Elliott Hughesf344baa2021-12-07 09:12:34 -08006324- [Michał Antoniak brought this change]
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006325
6326 gskit: fix undefined reference to 'conn'
6327
6328 Closes #6980
6329
6330- [Jacob Hoffman-Andrews brought this change]
6331
6332 tls: add USE_HTTP2 define
6333
6334 This abstracts across the two HTTP/2 backends: nghttp2 and Hyper.
6335
6336 Add our own define for the "h2" ALPN protocol, so TLS backends can use
6337 it without depending on a specific HTTP backend.
6338
6339 Closes #6959
6340
6341- [Jacob Hoffman-Andrews brought this change]
6342
6343 lib: fix 0-length Curl_client_write calls
6344
6345 Closes #6954
6346
6347- [Jacob Hoffman-Andrews brought this change]
6348
6349 lib: remove strlen call from Curl_client_write
6350
6351 At all call sites with an explicit 0 len, pass an appropriate nonzero
6352 len.
6353
6354 Closes #6954
6355
6356- [Ayushman Singh Chauhan brought this change]
6357
6358 docs: camelcase it like GitHub everywhere
6359
6360 Closes #6979
6361
6362Jay Satiro (27 Apr 2021)
6363- [Lucas Servén Marín brought this change]
6364
6365 docs: fix typo in fail-with-body doc
6366
6367 This commit fixes a small typo in the documentation for the
6368 --fail-with-body flag.
6369
6370 Closes https://github.com/curl/curl/pull/6977
6371
6372- lib: fix some misuse of curlx_convert_UTF8_to_tchar
6373
6374 curlx_convert_UTF8_to_tchar must be freed by curlx_unicodefree, but
6375 prior to this change some uses mistakenly called free.
6376
6377 I've reviewed all other uses of curlx_convert_UTF8_to_tchar and
6378 curlx_convert_tchar_to_UTF8.
6379
6380 Bug: https://github.com/curl/curl/pull/6602#issuecomment-825236763
6381 Reported-by: sergio-nsk@users.noreply.github.com
6382
6383 Closes https://github.com/curl/curl/pull/6938
6384
6385Daniel Stenberg (27 Apr 2021)
6386- ntlm: precaution against super huge type2 offsets
6387
6388 ... which otherwise caused an integer overflow and circumvented the if()
6389 conditional size check.
6390
6391 Detected by OSS-Fuzz
6392 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33720
6393 Assisted-by: Max Dymond
6394 Closes #6975
6395
6396- c-hyper: fix unused variable ‘wrote’
6397
6398- libcurl-security.3: be careful of setuid
6399
6400 Reported-by: Harry Sintonen
6401 Closes #6970
6402
6403- [Kevin Burke brought this change]
6404
6405 c-hyper: don't write to set.writeheader if null
6406
6407 Previously if a caller set CURLOPT_WRITEFUNCTION but did not set a
6408 CURLOPT_HEADERDATA buffer, Hyper would still attempt to write headers to
6409 the data->set.writeheader header buffer, even though it is null. This
6410 led to NPE segfaults attempting to use libcurl+Hyper with Git, for
6411 example.
6412
6413 Instead, process the client write for the status line using the same
6414 logic we use to process the client write for the later HTTP headers,
6415 which contains the appropriate guard logic. As a side benefit,
6416 data->set.writeheader is now only read in one file instead of two.
6417
6418 Fixes #6619
6419 Fixes abetterinternet/crustls#49
6420 Fixes hyperium/hyper#2438
6421 Closes #6971
6422
6423- wolfssl: handle SSL_write() returns 0 for error
6424
6425 Reported-by: Timo Lange
6426
6427 Closes #6967
6428
6429- easy: ignore sigpipe in curl_easy_send
6430
6431 Closes #6965
6432
6433- sigpipe: ignore SIGPIPE when using wolfSSL as well
6434
6435 Closes #6966
6436
6437- libcurl-security.3: don't try to filter IPv4 hosts based on the URL
6438
6439 Closes #6942
6440
6441- [Harry Sintonen brought this change]
6442
6443 nss_set_blocking: avoid static for sock_opt
6444
6445 Reviewed-by: Kamil Dudka
6446 Closes #6945
6447
6448- RELEASE-NOTES: synced
6449
6450- [Yusuke Nakamura brought this change]
6451
6452 docs/HTTP3.md: fix nghttp2's HTTP/3 server port
6453
6454 Port 8443 does not work now.
6455 Correct origin is in the quicwg's wiki.
6456 https://github.com/quicwg/base-drafts/wiki/Implementations#ngtcp2
6457
6458 Closes #6964
6459
6460- krb5: don't use 'static' to store PBSZ size response
6461
6462 ... because it makes the knowledge and usage cross-transfer in funny and
6463 unexpected ways.
6464
6465 Reported-by: Harry Sintonen
6466 Closes #6963
6467
6468- [Kevin Burke brought this change]
6469
6470 m4: add security frameworks on Mac when compiling rustls
6471
6472 Previously compiling rustls on Mac would only complete if you also
6473 compiled the SecureTransport TLS backend, which curl would prefer to
6474 the Rust backend.
6475
6476 Appending these flags to LDFLAGS makes it possible to compile the
6477 Rustls backend on Mac without the SecureTransport backend, which means
6478 this patch will make it possible for Mac users to use the Rustls
6479 backend for TLS.
6480
6481 Reviewed-by: Jacob Hoffman-Andrews
6482
6483 Fixes #6955
6484 Cloes #6956
6485
6486- krb5: remove the unused 'overhead' function
6487
6488 Closes #6947
6489
6490- [Johann150 brought this change]
6491
6492 curl_url_set.3: add memory management information
6493
6494 wording taken from man page for CURLOPT_URL.3
6495
6496 As far as I can see, the URL part is either malloc'ed before due to
6497 encoding or it is strdup'ed.
6498
6499 Closes #6953
6500
6501- [Jacob Hoffman-Andrews brought this change]
6502
6503 c-hpyer: fix handling of zero-byte chunk from hyper
6504
6505 Closes #6951
6506
6507- CURLOPT_POSTFIELDS.3: clarify how it gets the size of the data
6508
6509 Ref: https://curl.se/mail/lib-2021-04/0085.html
6510 Closes #6943
6511
6512- [Ralph Langendam brought this change]
6513
6514 cmake: make libcurl output filename configurable
6515
6516 Reviewed-by: Jakub Zakrzewski
6517 Closes #6933
6518
6519- [Patrick Monnerat brought this change]
6520
6521 vtls: reset ssl use flag upon negotiation failure
6522
6523 Fixes the segfault in ldaps disconnect.
6524
6525 Reported-by: Illarion Taev
6526 Fixes #6934
6527 Closes #6937
6528
6529- configure: fix typo in TLS error message
6530
6531 Reported-by: Pontus Lundkvist
6532
6533- README: link to the commercial support option
6534
6535Jay Satiro (22 Apr 2021)
6536- [Martin Halle brought this change]
6537
6538 version: add gsasl_version to curl_version_info_data
6539
6540 - Add gsasl_version string and bump to CURLVERSION_TENTH.
6541
6542 Ref: https://curl.se/mail/lib-2021-04/0003.html
6543
6544 Closes https://github.com/curl/curl/pull/6843
6545
6546- [Morten Minde Neergaard brought this change]
6547
6548 schannel: Support strong crypto option
6549
6550 - Support enabling strong crypto via optional user cipher list when
6551 USE_STRONG_CRYPTO or SCH_USE_STRONG_CRYPTO is in the list.
6552
6553 MSDN says SCH_USE_STRONG_CRYPTO "Instructs Schannel to disable known
6554 weak cryptographic algorithms, cipher suites, and SSL/TLS protocol
6555 versions that may be otherwise enabled for better interoperability."
6556
6557 Ref: https://curl.se/mail/lib-2021-02/0066.html
6558 Ref: https://curl.se/docs/manpage.html#--ciphers
6559 Ref: https://curl.se/libcurl/c/CURLOPT_SSL_CIPHER_LIST.html
6560 Ref: https://docs.microsoft.com/en-us/windows/win32/api/schannel/ns-schannel-schannel_cred
6561
6562 Closes https://github.com/curl/curl/pull/6734
6563
6564Daniel Stenberg (22 Apr 2021)
6565- RELEASE-NOTES: synced
6566
6567- ci: adapt to configure requiring an explicit TLS choice
6568
6569- configure: split out each TLS library detector into its own function
6570
6571 ... and put those functions in separate m4 files per TLS library.
6572
6573- configure: make the TLS library choice(s) explicit
6574
6575 configure no longer tries to find a TLS library by default, but all
6576 libraries are now equal: the user needs to explicitly ask what TLS
6577 library or libraries to use.
6578
6579 If no TLS library is selected, configure will error out unless
6580 --without-ssl is explicitly used to request a built without TLS (as that
6581 is very rare these days).
6582
6583 Removes: --with-winssl, --with-darwinssl and all --without-* options for
6584 TLS libraries.
6585
6586 Closes #6897
6587
6588- tests/disable-scan.pl: also scan all m4 files
6589
6590 Fixes test 1165 when functions are moved from configure.ac to files in
6591 m4/
6592
6593Jay Satiro (22 Apr 2021)
6594- schannel: Disable auto credentials; add an option to enable it
6595
6596 - Disable auto credentials by default. This is a breaking change
6597 for clients that are using it, wittingly or not.
6598
6599 - New libcurl ssl option value CURLSSLOPT_AUTO_CLIENT_CERT tells libcurl
6600 to automatically locate and use a client certificate for
6601 authentication, when requested by the server.
6602
6603 - New curl tool options --ssl-auto-client-cert and
6604 --proxy-ssl-auto-client-cert map to CURLSSLOPT_AUTO_CLIENT_CERT.
6605
6606 This option is only supported for Schannel (the native Windows SSL
6607 library). Prior to this change Schannel would, with no notification to
6608 the client, attempt to locate a client certificate and send it to the
6609 server, when requested by the server. Since the server can request any
6610 certificate that supports client authentication in the OS certificate
6611 store it could be a privacy violation and unexpected.
6612
6613 Fixes https://github.com/curl/curl/issues/2262
6614 Reported-by: Jeroen Ooms
6615 Assisted-by: Wes Hinsley
6616 Assisted-by: Rich FitzJohn
6617
6618 Ref: https://curl.se/mail/lib-2021-02/0066.html
6619 Reported-by: Morten Minde Neergaard
6620
6621 Closes https://github.com/curl/curl/pull/6673
6622
6623Daniel Stenberg (22 Apr 2021)
6624- [Michał Antoniak brought this change]
6625
6626 vtls: deduplicate some DISABLE_PROXY ifdefs
6627
6628 continue from #5735
6629
6630 - using SSL_HOST_NAME, SSL_HOST_DISPNAME, SSL_PINNED_PUB_KEY for other
6631 tls backend
6632
6633 - create SSL_HOST_PORT
6634
6635 Closes #6660
6636
6637Jay Satiro (22 Apr 2021)
6638- OS400: fix typo
6639
6640 CURLVERSION_HEIGHTH -> CURLVERSION_EIGHTH
6641
6642Daniel Stenberg (22 Apr 2021)
6643- checksrc: complain on == NULL or != 0 checks in conditions
6644
6645 ... to make them all consistenly use if(!var) and if(var)
6646
6647 Also added a few missing warnings to the documentation.
6648
6649 Closes #6912
6650
6651- tidy-up: make conditional checks more consistent
6652
6653 ... remove '== NULL' and '!= 0'
6654
6655 Closes #6912
6656
6657- [Patrick Monnerat brought this change]
6658
6659 vauth: factor base64 conversions out of authentication procedures
6660
6661 Input challenges and returned messages are now in binary.
6662 Conversions from/to base64 are performed by callers (currently curl_sasl.c
6663 and http_ntlm.c).
6664
6665 Closes #6654
6666
6667- [Patrick Monnerat brought this change]
6668
6669 bufref: buffer reference support
6670
6671 A struct bufref holds a buffer pointer, a data size and a destructor.
6672 When freed or its contents are changed, the previous buffer is implicitly
6673 released by the associated destructor. The data size, although not used
6674 internally, allows binary data support.
6675
6676 A unit test checks its handling methods: test 1661
6677
6678 Closes #6654
6679
6680- [Patrick Monnerat brought this change]
6681
6682 os400: additional support for options metadata
6683
6684 New functions curl_easy_option_by_name_ccsid() and
6685 curl_easy_option_get_name_ccsid() allows accessing metadata in alternate
6686 character encoding.
6687
6688 This commit also updates curl_version_info_ccsid() to handle info version 9
6689 and adds recent definitions to the ILE/RPG include file.
6690
6691 Documentation updated accordingly.
6692
6693 Reviewed-by: Jon Rumsey
6694 Closes #6574
6695
6696- [Patrick Monnerat brought this change]
6697
6698 test server: take care of siginterrupt() deprecation
6699
6700 Closes #6529
6701
6702Marc Hoersken (21 Apr 2021)
6703- lib1564.c: enable last wakeup test part on Windows
6704
6705 Suggested-by: Gergely Nagy
6706 Reviewed-by: Jay Satiro
Haibo Huang24c77a12020-04-29 13:49:57 -07006707 Reviewed-by: Marcel Raad
6708
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006709 Closes #6245
Haibo Huang24c77a12020-04-29 13:49:57 -07006710
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006711- multi: fix slow write/upload performance on Windows
Haibo Huang24c77a12020-04-29 13:49:57 -07006712
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006713 Reset FD_WRITE by sending zero bytes which is permissible
6714 and will be treated by implementations as successful send.
Haibo Huang24c77a12020-04-29 13:49:57 -07006715
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006716 Without this we won't be notified in case a socket is still
6717 writable if we already received such a notification and did
6718 not send any data afterwards on the socket. This would lead
6719 to waiting forever on a writable socket being writable again.
6720
6721 Assisted-by: Tommy Odom
6722 Reviewed-by: Jay Satiro
6723 Reviewed-by: Marcel Raad
6724 Tested-by: tmkk on github
6725
6726 Bug: #6146
6727 Closes #6245
6728
6729- multi: reduce Win32 API calls to improve performance
6730
6731 1. Consolidate pre-checks into a single Curl_poll call:
6732
6733 This is an attempt to restructure the code in Curl_multi_wait
6734 in such a way that less syscalls are made by removing individual
6735 calls to Curl_socket_check via SOCKET_READABLE/SOCKET_WRITABLE.
6736
6737 2. Avoid resetting the WinSock event multiple times:
6738
6739 We finally call WSAResetEvent anyway, so specifying it as
6740 an optional parameter to WSAEnumNetworkEvents is redundant.
6741
6742 3. Wakeup directly in case no sockets are being monitoring:
6743
6744 Fix the WinSock based implementation to skip extra waiting by
6745 not sleeping in case no sockets are to be waited on and just
6746 the WinSock event is being monitored for wakeup functionality.
6747
6748 Assisted-by: Tommy Odom
6749 Reviewed-by: Jay Satiro
6750 Reviewed-by: Marcel Raad
6751
6752 Bug: #6146
6753 Closes #6245
6754
6755- Revert "Revert 'multi: implement wait using winsock events'"
6756
6757 This reverts commit 2260e0ebe6d45529495231b3e37a0c58fb92a6a2,
6758 also restoring previous follow up changes which were reverted.
6759
6760 Authored-by: rcombs on github
6761 Authored-by: Marc Hörsken
6762 Reviewed-by: Jay Satiro
6763 Reviewed-by: Marcel Raad
6764
6765 Restores #5634
6766 Reverts #6281
6767 Part of #6245
6768
6769Daniel Stenberg (21 Apr 2021)
6770- Revert "cmake: make libcurl library output name configurable"
6771
6772 This reverts commit 1cba36d2166c396f987eea587cf92671b27acb92.
6773
6774 CMake provides properties that can be set on a target to rename the
6775 output artifact without changing the name of a target.
6776
6777 Ref: #6899
6778
6779- [Michael Kolechkin brought this change]
6780
6781 sectransp: allow cipher name to be specified
6782
6783 Add parser for CURLOPT_SSL_CIPHER_LIST option for Secure Transport (ST)
6784 back-end. Similar to NSS and GSKit back-ends, new code parses string
6785 value and configures ST library to use those ciphers for communication.
6786 Create cipher spec data structure and initialize the array of specs with
6787 cipher number, name, alias, and 'weak' flag.
6788
6789 Mark triple-DES ciphers as 'weak', and exclude them from the default
6790 ciphers list.
6791
6792 Closes #6464
6793
6794- [Michael Kolechkin brought this change]
6795
6796 NSS: add ciphers to map
6797
6798 Add cipher names to the `cipherlist` map, based on the list of ciphers
6799 implemented by the NSS in the source code file
6800 https://github.com/nss-dev/nss/blob/master/lib/ssl/sslenum.c
6801
6802 Closes #6670
6803
6804- http2: remove DEBUG_HTTP2
6805
6806 Accidentally committed in 605e84235
6807
6808- [Ralph Langendam brought this change]
6809
6810 cmake: make libcurl library output name configurable
6811
6812 Closes #6899
6813
6814- sws: #ifdef S_IFSOCK use
6815
6816 SCO OpenServer 5.0.7 does not define S_IFSOCK.
6817
6818 Reported-by: Kevin R. Bulgrien
6819 Bug: https://curl.se/mail/lib-2021-04/0074.html
6820 Closes #6926
6821
6822- curl_setup: provide the shutdown flags wider
6823
6824 By using #ifdef on the symbol names to work on anything that don't
6825 provide them. SCO OpenServer 5.0.7, sys/socket.h does not define either
6826 SHUT_RDWR, SHUT_RD, and SHUT_WR.
6827
6828 Reported-by: Kevin R. Bulgrien
6829 Bug: https://curl.se/mail/lib-2021-04/0073.html
6830 Closes #6925
6831
6832- connect: use CURL_SA_FAMILY_T for portability
6833
6834 Reported-by: Kevin R. Bulgrien
6835 Bug: https://curl.se/mail/lib-2021-04/0071.html
6836
6837 Closes #6918
6838
6839- urlapi: make sure no +/- signs are accepted in IPv4 numericals
6840
6841 Follow-up to 56a037cc0ad1b2. Extends test 1560 to verify.
6842
6843 Reported-by: Tuomas Siipola
6844 Fixes #6916
6845 Closes #6917
6846
6847- ConnectionExists: respect requests for h1 connections better
6848
6849 ... for situations when multiplexing isn't enabled on the h2 connection
6850 and h1 is explicitly requested for the transfer.
6851
6852 Assisted-by: Gergely Nagy
6853
6854- multi: don't close connection HTTP_1_1_REQUIRED
6855
6856 The ConnectionExists() function will note that the new transfer wants
6857 less then h2 and that it can't multiplex it and therefor opt to open a
6858 new connection instead.
6859
6860- http2: move the stream error field to the per-transfer storage
6861
6862 Storing a stream error in the per-connection struct was an error that lead to
6863 race conditions as subsequent stream handling could overwrite the error code
6864 before it was used for the stream with the actual problem.
6865
6866 Closes #6910
6867
6868- http2: call the handle-closed function correctly on closed stream
6869
6870 This was this one condition where the stream could be closed due to an
6871 error and the function would still wrongly just return 0 for it.
6872
6873 Reported-by: Gergely Nagy
6874 Fixes #6862
6875 Closes #6910
6876
6877- test1660: check the created HSTS file as text mode
6878
6879 Closes #6922
Haibo Huang24c77a12020-04-29 13:49:57 -07006880
6881- RELEASE-NOTES: synced
Haibo Huang24c77a12020-04-29 13:49:57 -07006882
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006883- test 493: require https in curl to run
Haibo Huang24c77a12020-04-29 13:49:57 -07006884
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006885 Closes #6927
Haibo Huang24c77a12020-04-29 13:49:57 -07006886
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006887Jay Satiro (20 Apr 2021)
6888- tool_operate: don't discard failed parallel transfer result
Haibo Huang24c77a12020-04-29 13:49:57 -07006889
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006890 - Save a parallel transfer's result code only when it fails and the
6891 transfer is not being retried.
6892
6893 Prior to this change the result code was always set which meant that a
6894 failed result could be erroneously discarded if a different transfer
6895 later had a successful result (CURLE_OK).
Haibo Huang24c77a12020-04-29 13:49:57 -07006896
6897 Before:
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006898
6899 > curl --fail -Z https://httpbin.org/status/404 https://httpbin.org/delay/10
6900 > echo %ERRORLEVEL%
6901 0
Haibo Huang24c77a12020-04-29 13:49:57 -07006902
6903 After:
Haibo Huang24c77a12020-04-29 13:49:57 -07006904
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006905 > curl --fail -Z https://httpbin.org/status/404 https://httpbin.org/delay/10
6906 > echo %ERRORLEVEL%
6907 22
6908
6909 Closes #xxxx
Haibo Huang24c77a12020-04-29 13:49:57 -07006910
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006911- [Georeth Zhou brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07006912
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006913 openssl: fix build error with OpenSSL < 1.0.2
6914
6915 Closes https://github.com/curl/curl/pull/6920
Haibo Huang24c77a12020-04-29 13:49:57 -07006916
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006917Viktor Szakats (19 Apr 2021)
6918- README.md: delete Codacy UTM parameters & follow permanent redirect [ci skip]
Haibo Huang24c77a12020-04-29 13:49:57 -07006919
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006920 UTM parameters leak referrer and various marketing/tracking information
6921 even if these would normally be stripped by website or client policy.
6922 This link also works fine without them. Also took the opportunity to
6923 update the URL to the one pointed to by the previous one via permanent
6924 redirect.
Haibo Huang24c77a12020-04-29 13:49:57 -07006925
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006926 Reviewed-by: Daniel Stenberg
6927 Closes #6919
Haibo Huang24c77a12020-04-29 13:49:57 -07006928
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006929Daniel Stenberg (19 Apr 2021)
6930- urlapi: "normalize" numerical IPv4 host names
Haibo Huang24c77a12020-04-29 13:49:57 -07006931
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006932 When the host name in a URL is given as an IPv4 numerical address, the
6933 address can be specified with dotted numericals in four different ways:
6934 a32, a.b24, a.b.c16 or a.b.c.d and each part can be specified in
6935 decimal, octal (0-prefixed) or hexadecimal (0x-prefixed).
Haibo Huang24c77a12020-04-29 13:49:57 -07006936
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006937 Instead of passing on the name as-is and leaving the handling to the
6938 underlying name functions, which made them not work with c-ares but work
6939 with getaddrinfo, this change now makes the curl URL API itself detect
6940 and "normalize" host names specified as IPv4 numericals.
Haibo Huang24c77a12020-04-29 13:49:57 -07006941
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006942 The WHATWG URL Spec says this is an okay way to specify a host name in a
6943 URL. RFC 3896 does not allow them, but curl didn't prevent them before
6944 and it seems other RFC 3896-using tools have not either. Host names used
6945 like this are widely supported by other tools as well due to the
6946 handling being done by getaddrinfo and friends.
6947
6948 I decided to add the functionality into the URL API itself so that all
6949 users of these functions get the benefits, when for example wanting to
6950 compare two URLs. Also, it makes curl built to use c-ares now support
6951 them as well and make curl builds more consistent.
6952
6953 The normalization makes HTTPS and virtual hosted HTTP work fine even
6954 when curl gets the address specified using one of the "obscure" formats.
6955
6956 Test 1560 is extended to verify.
6957
6958 Fixes #6863
6959 Closes #6871
Haibo Huang24c77a12020-04-29 13:49:57 -07006960
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006961- libssh: fix "empty expression statement has no effect" warnings
Haibo Huang24c77a12020-04-29 13:49:57 -07006962
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006963 ... by fixing macros to do-while constructs and moving out the calls to
6964 "break" outside of the actual macro. It also fixes the problem where the
6965 macro was used witin a loop and the break didn't do right.
6966
6967 Reported-by: Emil Engler
6968 Fixes #6847
6969 Closes #6909
Haibo Huang24c77a12020-04-29 13:49:57 -07006970
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006971- hsts: enable by default
Haibo Huang24c77a12020-04-29 13:49:57 -07006972
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006973 No longer considered experimental.
6974
6975 Closes #6700
Haibo Huang24c77a12020-04-29 13:49:57 -07006976
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006977- vtls: refuse setting any SSL version
Haibo Huang24c77a12020-04-29 13:49:57 -07006978
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006979 ... previously they were supported if a TLS library would (unexpectedly)
6980 still support them, but from this change they will be refused already in
6981 curl_easy_setopt(). SSLv2 and SSLv3 have been known to be insecure for
6982 many years now.
Haibo Huang24c77a12020-04-29 13:49:57 -07006983
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006984 Closes #6773
Haibo Huang24c77a12020-04-29 13:49:57 -07006985
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006986- curl: ignore options asking for SSLv2 or SSLv3
6987
6988 Instead output a warning about it and continue with the defaults.
6989
6990 These SSL versions are typically not supported by the TLS libraries since a
6991 long time back already since they are inherently insecure and broken. Asking
6992 for them to be used will just cause an error to be returned slightly later.
6993
6994 In the unlikely event that a user's TLS library actually still supports these
6995 protocol versions, this change might make the request a little less insecure.
6996
6997 Closes #6772
Haibo Huang24c77a12020-04-29 13:49:57 -07006998
Elliott Hughes34dd5f42021-08-10 13:01:18 -07006999- test972: verify the json output with jsonlint
Haibo Huang24c77a12020-04-29 13:49:57 -07007000
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007001 Make sure one of the azure jobs has jsonlint installed so that the test
7002 runs there.
Haibo Huang24c77a12020-04-29 13:49:57 -07007003
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007004 Ref: #6905
Haibo Huang24c77a12020-04-29 13:49:57 -07007005
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007006- [Jay Satiro brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07007007
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007008 tool_writeout: fix the HTTP_CODE json output
Haibo Huang24c77a12020-04-29 13:49:57 -07007009
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007010 Update test 970 accordingly.
Haibo Huang24c77a12020-04-29 13:49:57 -07007011
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007012 Reported-by: Michal Rus
7013 Fixes #6905
7014 Closes #6906
Haibo Huang24c77a12020-04-29 13:49:57 -07007015
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007016- openldap: protect SSL-specific code with proper #ifdef
Haibo Huang24c77a12020-04-29 13:49:57 -07007017
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007018 Closes #6901
Haibo Huang24c77a12020-04-29 13:49:57 -07007019
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007020- libssh2: fix Value stored to 'sshp' is never read
Haibo Huang24c77a12020-04-29 13:49:57 -07007021
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007022 Pointed out by scan-build
Haibo Huang24c77a12020-04-29 13:49:57 -07007023
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007024 Closes #6900
Haibo Huang24c77a12020-04-29 13:49:57 -07007025
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007026- [Victor Vieux brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07007027
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007028 tool_getparam: replace (in-place) '%20' by '+' according to RFC1866
Haibo Huang24c77a12020-04-29 13:49:57 -07007029
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007030 Signed-off-by: Victor Vieux <victorvieux@gmail.com>
Haibo Huang24c77a12020-04-29 13:49:57 -07007031
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007032 Closes #6895
Haibo Huang24c77a12020-04-29 13:49:57 -07007033
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007034- configure: provide --with-openssl, deprecate --with-ssl
Haibo Huang24c77a12020-04-29 13:49:57 -07007035
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007036 Makes the option more explicit.
7037
7038 Closes #6887
Haibo Huang24c77a12020-04-29 13:49:57 -07007039
Haibo Huang24c77a12020-04-29 13:49:57 -07007040- RELEASE-NOTES: synced
7041
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007042 and bumped curlver to 7.77.0
Haibo Huang24c77a12020-04-29 13:49:57 -07007043
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007044- [Javier Blazquez brought this change]
Haibo Huang24c77a12020-04-29 13:49:57 -07007045
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007046 rustls: only return CURLE_AGAIN when TLS session is fully drained
7047
7048 The code in cr_recv was returning prematurely as soon as the socket
7049 reported no more data to read. However, this could be leaving some
7050 unread plaintext data in the rustls session from a previous call,
7051 causing causing the transfer to hang if the socket never receives
7052 further data.
7053
7054 We need to ensure that the session is fully drained of plaintext data
7055 before returning CURLE_AGAIN to the caller.
7056
7057 Reviewed-by: Jacob Hoffman-Andrews
7058 Closes #6894
Haibo Huang24c77a12020-04-29 13:49:57 -07007059
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007060- cookie: CURLOPT_COOKIEFILE set to NULL switches off cookies
Haibo Huang24c77a12020-04-29 13:49:57 -07007061
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007062 Add test 676 to verify that setting CURLOPT_COOKIEFILE to NULL again clears
7063 the cookiejar from memory.
Haibo Huang24c77a12020-04-29 13:49:57 -07007064
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007065 Reported-by: Stefan Karpinski
7066 Fixes #6889
7067 Closes #6891
Haibo Huang24c77a12020-04-29 13:49:57 -07007068
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007069Version 7.76.1 (14 Apr 2021)
Haibo Huang24c77a12020-04-29 13:49:57 -07007070
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007071Daniel Stenberg (14 Apr 2021)
7072- RELEASE-NOTES: synced
Haibo Huang24c77a12020-04-29 13:49:57 -07007073
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007074 curl 7.76.1 release
Haibo Huang24c77a12020-04-29 13:49:57 -07007075
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007076- THANKS: add names from 7.76.1
7077
7078- misc: update copyright year ranges to match latest updates
7079
7080- [Tatsuhiro Tsujikawa brought this change]
7081
7082 ngtcp2: Use ALPN h3-29 for now
Haibo Huang24c77a12020-04-29 13:49:57 -07007083
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007084 Fixes #6864
7085 Cloes #6886
7086
7087Jay Satiro (11 Apr 2021)
7088- TODO: remove 18.22 --fail-with-body
Haibo Huang24c77a12020-04-29 13:49:57 -07007089
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007090 --fail-with-body was added in 8a964cb (precedes curl-7_76_0).
Haibo Huang24c77a12020-04-29 13:49:57 -07007091
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007092Daniel Stenberg (10 Apr 2021)
7093- [Jürgen Gmach brought this change]
Haibo Huangee03b1a2020-03-11 01:33:32 -07007094
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007095 src/tool_vms.c: remove duplicated word in comment
7096
7097 Closes #6881
Haibo Huangee03b1a2020-03-11 01:33:32 -07007098
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007099- configure: fix CURL_DARWIN_CFLAGS use
7100
7101 The macro name change was not completely done.
7102
7103 Follow-up to 5d2c384452543c
7104 Bug: https://github.com/curl/curl/commit/5d2c384452543c7b6c9fb02eaa0afc84fd5ab941#commitcomment-49315187
7105 Reported-by: Marcel Raad
7106 Closes #6878
7107
7108- [Anthony Shaw brought this change]
7109
7110 github/workflow: add "security-extended" to codeql-analysis.yml
7111
7112 Extends the CodeQL code scan.
7113
7114 Closes #6815
7115
7116- [Jochem Broekhoff brought this change]
7117
7118 examples/hiperfifo.c: check event_initialized before delete
7119
7120 If event_del is called with the event struct (still) zeroed out, a
7121 segmentation fault may occur. event_initialized checks whether the
7122 event struct is nonzero.
7123
7124 Closes #6876
7125
7126- [Patrick Monnerat brought this change]
7127
7128 ntlm: fix negotiated flags usage
7129
7130 According to Microsoft document MS-NLMP, current flags usage is not
7131 accurate: flag NTLMFLAG_NEGOTIATE_NTLM2_KEY controls the use of
7132 extended security in an NTLM authentication message and NTLM version 2
7133 cannot be negotiated within the protocol.
7134
7135 The solution implemented here is: if the extended security flag is set,
7136 prefer using NTLM version 2 (as a server featuring extended security
7137 should also support version 2). If version 2 has been disabled at
7138 compile time, use extended security.
7139
7140 Tests involving NTLM are adjusted to this new behavior.
7141
7142 Fixes #6813
7143 Closes #6849
7144
7145- [Patrick Monnerat brought this change]
7146
7147 ntlm: support version 2 on 32-bit platforms
7148
7149 Closes #6849
7150
7151- [Patrick Monnerat brought this change]
7152
7153 curl_ntlm_core.h: simplify conditionals for USE_NTLM2SESSION
7154
7155 ... as !defined(CURL_DISABLE_CRYPTO_AUTH) is a prerequisite for the
7156 whole NTLM.
7157
7158 Closes #6849
7159
7160- lib: remove unused HAVE_INET_NTOA_R* defines
7161
7162 Closes #6867
7163
7164- [Michael Forney brought this change]
7165
7166 configure: include <time.h> unconditionally
7167
7168 In 2682e5f5, several instances of AC_HEADER_TIME were removed since
7169 it is a deprecated autoconf macro. However, this was the macro that
7170 defined TIME_WITH_SYS_TIME, which was used to indicate that <time.h>
7171 can be included alongside <sys/time.h>. TIME_WITH_SYS_TIME is still
7172 used in the configure test body and since it is no longer defined,
7173 <time.h> is *not* included on systems that have <sys/time.h>.
7174
7175 In particular, at least on musl libc and glibc, <sys/time.h> does
7176 not implicitly include <time.h> and does not declare clock_gettime,
7177 gmtime_r, or localtime_r. This causes configure to fail to detect
7178 those functions.
7179
7180 The AC_HEADER_TIME macro deprecation text says
7181
7182 > All current systems provide time.h; it need not be checked for.
7183 > Not all systems provide sys/time.h, but those that do, all allow
7184 > you to include it and time.h simultaneously.
7185
7186 So, to fix this issue, simply include <time.h> unconditionally when
7187 testing for time-related functions and in libcurl, and don't bother
7188 checking for it.
7189
7190 Closes #6859
7191
7192- [Michael Forney brought this change]
7193
7194 configure: remove use of RETSIGTYPE
7195
7196 This was previously defined by the obsolete AC_TYPE_SIGNAL macro,
7197 which was removed in 2682e5f5. The deprecation text says
7198
7199 > Your code may safely assume C89 semantics that RETSIGTYPE is void.
7200
7201 So, remove it and just use void instead.
7202
7203 Closes #6861
7204
7205- [Muhammed Yavuz Nuzumlalı brought this change]
7206
7207 install: add instructions for Apple Darwin platforms
7208
7209 Closes #6860
7210
7211- [Muhammed Yavuz Nuzumlalı brought this change]
7212
7213 configure: disable min version set for Darwin
7214
7215 Fixes #6838
7216 Closes #6860
7217
7218- [David Hu brought this change]
7219
7220 docs/HTTP3.md: update the build instruction using gnutls
7221
7222 In ngtcp2 the `with-gnutls` option is disabled by default, which will
7223 cause `curl` unable to be `make` because of lacking the libraries
7224 needed.
7225
7226 Closes #6857
7227
7228- RELEASE-NOTES: synced
7229
7230- typecheck-gcc: make the ssl-ctx-cb check use SSL_CTX pointers
7231
7232 ... and not values.
7233
7234 Reported-by: locpyl-tidnyd on github
7235 Fixes #6818
7236 Closes #6819
7237
7238- ngtcp2+gnutls: clear credentials when freed
7239
7240 ... to avoid double-free.
7241
7242 Reported-by: Kenneth Davidson
7243 Fixes #6824
7244 Closes #6856
7245
7246Jay Satiro (5 Apr 2021)
7247- [Cherish98 brought this change]
7248
7249 tool_progress: Fix progress meter in parallel mode
7250
7251 Make sure the total amount of DL/UL bytes are counted before the
7252 transfer finalizes. Otherwise if a transfer finishes too quick, its
7253 total numbers are not added, and results in a DL%/UL% that goes above
7254 100%.
7255
7256 Detail:
7257
7258 progress_meter() is called periodically, and it may not catch a
7259 transfer's total bytes if the value was unknown during the last call,
7260 and the transfer is finished and deleted (i.e., lost) during the next
7261 call.
7262
7263 Closes https://github.com/curl/curl/pull/6840
7264
7265- [Emil Engler brought this change]
7266
7267 libssh: get rid of PATH_MAX
7268
7269 This removes the last occurrence of PATH_MAX inside our libssh
7270 implementation by calculating the path length from the string length of
7271 the two components.
7272
7273 Closes #6829
7274
7275Daniel Stenberg (5 Apr 2021)
7276- http_proxy: only loop on 407 + close if we have credentials
7277
7278 ... to fix the retry-loop.
7279
7280 Add test 718 to verify.
7281
7282 Reported-by: Daniel Kurečka
7283 Fixes #6828
7284 Closes #6850
7285
7286- h2: allow 100 streams by default
7287
7288 instead of 13, before the server has told how many streams it
7289 accepts. The server can always reject new streams anyway if we go above
7290 what it accepts.
7291
7292 Ref: #6826
7293 Closes #6852
7294
7295- [Luke Granger-Brown brought this change]
7296
7297 file: support GETing directories again
7298
7299 After 957bc1881e686f9714c4e6a01bf33535091f0e21, we no longer compute an
7300 expected_size for directories. This has the upshot that when we compare
7301 even an empty Range with the available size, we fail.
7302
7303 This brings back the previous behaviour, which was to succeed, but with
7304 empty content. This also removes the "Accept-ranges: bytes" header,
7305 which is nonsensical on directories.
7306
7307 Adds test 3016
7308 Fixes #6845
7309 Closes #6846
7310
7311- RELEASE-NOTES: synced
7312
7313 and bumped to 7.76.1
7314
7315- TLS: fix HTTP/2 selection
7316
7317 for GnuTLS, BearSSL, mbedTLS, NSS, SChannnel, Secure Transport and
7318 wolfSSL...
7319
7320 Regression since 88dd1a8a115b1f5ece (shipped in 7.76.0)
7321 Reported-by: Kenneth Davidson
7322 Reported-by: romamik om github
7323 Fixes #6825
7324 Closes #6827
7325
7326Jay Satiro (2 Apr 2021)
7327- hostip: Fix for builds that disable all asynchronous DNS
7328
7329 - Define Curl_resolver_error function only when USE_CURL_ASYNC.
7330
7331 Prior to this change building curl without an asynchronous resolver
7332 backend (c-ares or threaded) and without DoH (DNS-over-HTTPS, which is
7333 also asynchronous but independent of resolver backend) would cause a
7334 build error since Curl_resolver_error is called by and evaluates
7335 variables only available in asynchronous builds.
7336
7337 Reported-by: Benbuck Nason
7338
7339 Fixes https://github.com/curl/curl/issues/6831
7340 Closes https://github.com/curl/curl/pull/6832
7341
7342Daniel Stenberg (31 Mar 2021)
7343- [Gilles Vollant brought this change]
7344
7345 openssl: Fix CURLOPT_SSLCERT_BLOB without CURLOPT_SSLCERT_KEY
7346
7347 Reported-by: Christian Schmitz
7348 Fixes #6816
7349 Closes #6820
7350
7351Version 7.76.0 (31 Mar 2021)
7352
7353Daniel Stenberg (31 Mar 2021)
7354- RELEASE-NOTES: synced
7355
7356 curl 7.76.0 release
7357
7358- THANKS: added names from 7.76.0
7359
7360- CURLOPT_AUTOREFERER.3: clarify that it sets the full URL
7361
7362 ... some users may not want that!
7363
7364- define: remove CURL_DISABLE_NTLM ifdefs
7365
7366 It was never defined anywhere. Fixed disable-scan (test 1165) to also
7367 scan headers, which found this issue.
7368
7369 Closes #6809
7370
7371- vtls: fix addsessionid for non-proxy builds
7372
7373 Follow-up to b09c8ee15771c61
7374 Fixes #6812
7375 Closes #6811
7376
7377- [Li Xinwei brought this change]
7378
7379 cmake: support WinIDN
7380
7381 Closes #6807
7382
7383- transfer: clear 'referer' in declaration
7384
7385 To silence (false positive) compiler warnings about it.
7386
7387 Follow-up to 7214288898f5625
7388
7389 Reviewed-by: Marcel Raad
7390 Closes #6810
Haibo Huangee03b1a2020-03-11 01:33:32 -07007391
7392- [Marc Hoersken brought this change]
7393
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007394 config: fix SSPI enabling NTLM if crypto auth is disabled
Haibo Huangee03b1a2020-03-11 01:33:32 -07007395
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007396 Avoid enabling NTLM feature based upon Windows SSPI
7397 being enabled in case that crypto auth is disabled.
Haibo Huangee03b1a2020-03-11 01:33:32 -07007398
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007399 Reported-by: Marcel Raad
Haibo Huangee03b1a2020-03-11 01:33:32 -07007400
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007401 Follow-up to #6277
7402 Fixes #6803
7403 Closes #6808
Haibo Huangee03b1a2020-03-11 01:33:32 -07007404
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007405- HISTORY: add two 2021 events
7406
7407- vtls: add 'isproxy' argument to Curl_ssl_get/addsessionid()
Haibo Huangee03b1a2020-03-11 01:33:32 -07007408
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007409 To make sure we set and extract the correct session.
Haibo Huangee03b1a2020-03-11 01:33:32 -07007410
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007411 Reported-by: Mingtao Yang
7412 Bug: https://curl.se/docs/CVE-2021-22890.html
Haibo Huangee03b1a2020-03-11 01:33:32 -07007413
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007414 CVE-2021-22890
7415
7416- [Viktor Szakats brought this change]
7417
7418 transfer: strip credentials from the auto-referer header field
7419
7420 Added test 2081 to verify.
7421
7422 CVE-2021-22876
7423
7424 Bug: https://curl.se/docs/CVE-2021-22876.html
7425
7426- curl_sasl: fix compiler error with --disable-crypto-auth
7427
7428 ... if libgsasl was found.
7429
7430 Closes #6806
7431
7432- [Patrick Monnerat brought this change]
7433
7434 ldap: only set the callback ptr for TLS context when TLS is used
7435
7436 Follow-up to a5eee22e594c2460f
7437 Fixes #6804
7438 Closes #6805
7439
7440- copyright: update copyright year ranges to 2021
7441
7442 Reviewed-by: Emil Engler
7443 Closes #6802
7444
7445- send_speed: simplify the checks for if a speed limit is set
7446
7447 ... as we know the value cannot be set to negative: enforced by
7448 setopt()
7449
7450- http: cap body data amount during send speed limiting
7451
7452 By making sure never to send off more than the allowed number of bytes
7453 per second the speed limit logic is given more room to actually work.
7454
7455 Reported-by: Fabian Keil
7456 Bug: https://curl.se/mail/lib-2021-03/0042.html
7457 Closes #6797
7458
7459- urldata: merge "struct DynamicStatic" into "struct UrlState"
7460
7461 Both were used for the same purposes and there was no logical separation
7462 between them. Combined, this also saves 16 bytes in less holes in my
7463 test build.
7464
7465 Closes #6798
7466
7467- tests/README.md: mentioned that en_US.UTF-8 is required
7468
7469 Reported-by: Oumph on github
7470 Fixes #6768
7471
7472- HISTORY: fixed the Mac OS X 10.1 release date
7473
7474 Based on what Wikipedia says
7475
7476Jay Satiro (26 Mar 2021)
7477- examples: Remove threaded-shared-conn.c due to bug
7478
7479 Known bug 11.11 is the shared object's connection cache is not thread
7480 safe, so we should not have an example for it.
7481
7482 Ref: https://github.com/curl/curl/issues/4915
7483 Ref: https://curl.se/docs/knownbugs.html#A_shared_connection_cache_is_not
7484
7485 Closes https://github.com/curl/curl/pull/6795
7486
7487- KNOWN_BUGS: Update 11.9 - DoH option inheritance
7488
7489 - Add description: Explain that some options aren't inherited because
7490 they are not relevant for the DoH SSL connections or may result in
7491 unexpected behavior.
7492
7493 - Remove the reference to #4578 (SSL verify options not inherited) since
7494 that was fixed by #6597 (separate DoH-specific options for verify).
7495
7496 - Explain that DoH-specific options (those created by #6597) are
7497 available: CURLOPT_DOH_SSL_VERIFYHOST, CURLOPT_DOH_SSL_VERIFYPEER and
7498 CURLOPT_DOH_SSL_VERIFYSTATUS.
7499
7500 - Add a reference to #6605 and explain that the user's debug function is
7501 not inherited because it would be unexpected to pass internal handles
7502 (ie DoH handles) to the user's callback.
7503
7504 Closes https://github.com/curl/curl/issues/6605
7505
7506Daniel Stenberg (26 Mar 2021)
7507- curl_easy_setopt.3: add curl_easy_option* functions to SEE ALSO
7508
7509- [Jean-Philippe Menil brought this change]
7510
7511 openssl: ensure to check SSL_CTX_set_alpn_protos return values
7512
7513 SSL_CTX_set_alpn_protos() return 0 on success, and non-0 on failure
7514
7515 Signed-off-by: Jean-Philippe Menil <jpmenil@gmail.com>
7516
7517 Closes #6794
7518
7519- multi: close the connection when h2=>h1 downgrading
7520
7521 Otherwise libcurl is likely to reuse the connection again in the next
7522 attempt since the connection reuse logic doesn't take downgrades into
7523 account.
7524
7525 Reported-by: Anthony Ramine
7526 Fixes #6788
7527 Closes #6793
7528
7529- openssl: set the transfer pointer for logging early
7530
7531 Otherwise, the transfer will be NULL in the trace function when the
7532 early handshake details arrive and then curl won't show them.
7533
7534 Regresssion in 7.75.0
7535
7536 Reported-by: David Hu
7537 Fixes #6783
7538 Closes #6792
Haibo Huangee03b1a2020-03-11 01:33:32 -07007539
7540- RELEASE-NOTES: synced
7541
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007542- TODO: Custom progress meter update interval
Haibo Huangee03b1a2020-03-11 01:33:32 -07007543
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007544 Ref: https://stackoverflow.com/q/66789977/93747
Haibo Huangee03b1a2020-03-11 01:33:32 -07007545
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007546- docs/ABI: tighten up the language
7547
7548 Make the promises more firm
7549
7550 Closes #6786
Haibo Huangee03b1a2020-03-11 01:33:32 -07007551
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007552- openldap: disconnect better
Haibo Huangee03b1a2020-03-11 01:33:32 -07007553
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007554 Instead of clearing the callback argument in disconnect, set it to the
7555 (new) transfer to make sure the correct data is passed to the callbacks.
Haibo Huangee03b1a2020-03-11 01:33:32 -07007556
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007557 Follow-up to e467ea3bd937f38
7558 Assisted-by: Patrick Monnerat
7559 Closes #6787
Haibo Huangee03b1a2020-03-11 01:33:32 -07007560
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007561- libssh2: kdb_callback: get the right struct pointer
7562
7563 After the recent conn/data refactor in this source file, this function
7564 was mistakenly still getting the old struct pointer which would lead to
7565 crash on servers with keyboard-interactive auth enabled.
7566
7567 Follow-up to a304051620b92e12b (shipped in 7.75.0)
7568
7569 Reported-by: Christian Schmitz
7570 Fixes #6691
7571 Closes #6782
Haibo Huangee03b1a2020-03-11 01:33:32 -07007572
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007573- tftp: remove unused struct fields
Haibo Huangee03b1a2020-03-11 01:33:32 -07007574
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007575 Follow-up to d3d90ad9c00530d
7576
7577 Closes #6781
Haibo Huangee03b1a2020-03-11 01:33:32 -07007578
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007579- openldap: avoid NULL pointer dereferences
7580
7581 Follow-up to a59c33ceffb8f78
7582 Reported-by: Patrick Monnerat
7583 Fixes #6676
7584 Closes #6780
Haibo Huangee03b1a2020-03-11 01:33:32 -07007585
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007586- http: strip default port from URL sent to proxy
Haibo Huangee03b1a2020-03-11 01:33:32 -07007587
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007588 To make sure the Host: header and the URL provide the same authority
7589 portion when sent to the proxy, strip the default port number from the
7590 URL if one was provided.
Haibo Huangee03b1a2020-03-11 01:33:32 -07007591
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007592 Reported-by: Michael Brown
7593 Fixes #6769
7594 Closes #6778
Haibo Huangee03b1a2020-03-11 01:33:32 -07007595
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007596- azure: disable test 433 on azure-ubuntu
Haibo Huangee03b1a2020-03-11 01:33:32 -07007597
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007598 Something in that environment sets XDG_CONFIG_HOME for us in a way that
7599 breaks the test.
7600
7601 Reported-by: Marc Hörsken
7602 Fixes #6739
7603 Closes #6777
Haibo Huangee03b1a2020-03-11 01:33:32 -07007604
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007605- tftp: remove the 3600 second default timeout
7606
7607 ... it was never meant to be there.
7608
7609 Reported-by: Tomas Berger
7610 Fixes #6774
7611 Closes #6776
Haibo Huangee03b1a2020-03-11 01:33:32 -07007612
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007613- docs: make gen.pl support *italic* and **bold**
Haibo Huangee03b1a2020-03-11 01:33:32 -07007614
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007615 Remove some nroffisms from the cmdline doc files to simplify editing,
7616 and instead support this markdown style.
Haibo Huangee03b1a2020-03-11 01:33:32 -07007617
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007618 Closes #6771
Haibo Huangee03b1a2020-03-11 01:33:32 -07007619
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007620- ngtcp2: sync with recent API updates
Haibo Huangee03b1a2020-03-11 01:33:32 -07007621
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007622 Closes #6770
Haibo Huangee03b1a2020-03-11 01:33:32 -07007623
7624- RELEASE-NOTES: synced
7625
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007626- libssh2:ssh_connect: clear session pointer after free
Haibo Huangee03b1a2020-03-11 01:33:32 -07007627
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007628 If libssh2_knownhost_init() returns NULL, like in an OOM situation, the
7629 ssh session was freed but the pointer wasn't cleared which made libcurl
7630 later call libssh2 to cleanup using the stale pointer.
7631
7632 Fixes #6764
7633 Closes #6766
Haibo Huangee03b1a2020-03-11 01:33:32 -07007634
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007635- [Jacob Hoffman-Andrews brought this change]
Haibo Huangee03b1a2020-03-11 01:33:32 -07007636
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007637 docs: document version of crustls dependency
Haibo Huangee03b1a2020-03-11 01:33:32 -07007638
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007639 This also pins a specific release in the Travis test so future
7640 API-breaking changins in crustls won't break curl builds.
7641
7642 Add RUSTLS documentation to release tarball.
7643
7644 Enable running tests for rustls, minus FTP tests (require
7645 connect_blocking, which rustls doesn't implement) and 313 (requires CRL
7646 handling).
7647
7648 Closes #6763
Haibo Huangee03b1a2020-03-11 01:33:32 -07007649
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007650- [Jacob Hoffman-Andrews brought this change]
Haibo Huangee03b1a2020-03-11 01:33:32 -07007651
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007652 rustls: Handle close_notify.
7653
7654 If we get a close_notify, treat that as EOF. If we get an EOF from the
7655 TCP stream, treat that as an error (because we should have ended the
7656 connection earlier, when we got a close_notify).
7657
7658 Closes #6763
Haibo Huangee03b1a2020-03-11 01:33:32 -07007659
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007660- docs: clarify timeouts for queued transfers in multi API
Haibo Huangee03b1a2020-03-11 01:33:32 -07007661
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007662 Closes #6758
Haibo Huangee03b1a2020-03-11 01:33:32 -07007663
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007664- ftpserver: only load the preprocessed test file
Haibo Huangee03b1a2020-03-11 01:33:32 -07007665
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007666 We always preprocess and tests are no longer sensible to load "raw"
7667
7668 Closes #6738
Haibo Huangee03b1a2020-03-11 01:33:32 -07007669
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007670- tests: use %TESTNUMBER instead of fixed number
Haibo Huangee03b1a2020-03-11 01:33:32 -07007671
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007672 This makes the tests easier to copy and relocate to other test numbers
7673 without having to update content.
Haibo Huangee03b1a2020-03-11 01:33:32 -07007674
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007675 Closes #6738
Haibo Huangee03b1a2020-03-11 01:33:32 -07007676
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007677- KNOWN_BUGS: CURLOPT_OPENSOCKETPAIRFUNCTION is missing
Haibo Huangee03b1a2020-03-11 01:33:32 -07007678
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007679 Closes #5747
Haibo Huangee03b1a2020-03-11 01:33:32 -07007680
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007681- TODO: provide timing info for each redirect
Haibo Huangee03b1a2020-03-11 01:33:32 -07007682
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007683 Closes #6743
Haibo Huangee03b1a2020-03-11 01:33:32 -07007684
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007685Jay Satiro (17 Mar 2021)
7686- docs: Add SSL backend names to CURL_SSL_BACKEND
Haibo Huangee03b1a2020-03-11 01:33:32 -07007687
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007688 - Document the names that can be used with CURL_SSL_BACKEND:
7689 bearssl, gnutls, gskit, mbedtls, mesalink, nss, openssl, rustls,
7690 schannel, secure-transport, wolfssl
7691
7692 Ref: https://github.com/curl/curl/issues/2209#issuecomment-360623286
7693 Ref: https://github.com/curl/curl/issues/6717#issuecomment-800745201
7694
7695 Closes https://github.com/curl/curl/pull/6755
Haibo Huangee03b1a2020-03-11 01:33:32 -07007696
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007697- docs: Explain DOH transfers inherit some SSL settings
Haibo Huangee03b1a2020-03-11 01:33:32 -07007698
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007699 - Document in DOH that some SSL settings are inherited but DOH hostname
7700 and peer verification are not and are controlled separately.
Haibo Huangee03b1a2020-03-11 01:33:32 -07007701
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007702 - Document that CURLOPT_SSL_CTX_FUNCTION is inherited by DOH handles but
7703 we're considering changing behavior to no longer inherit it. Request
7704 feedback.
Haibo Huangee03b1a2020-03-11 01:33:32 -07007705
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007706 Closes https://github.com/curl/curl/pull/6688
Haibo Huangee03b1a2020-03-11 01:33:32 -07007707
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007708Daniel Stenberg (17 Mar 2021)
7709- http: make 416 not fail with resume + CURLOPT_FAILONERRROR
Haibo Huangee03b1a2020-03-11 01:33:32 -07007710
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007711 When asked to resume a download, libcurl will convert that to HTTP logic
7712 and if then the entire file is already transferred it will result in a
7713 416 response from the HTTP server. With CURLOPT_FAILONERRROR set in that
7714 scenario, it should *not* lead to an error return.
Haibo Huangee03b1a2020-03-11 01:33:32 -07007715
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007716 Updated test 1156, added test 1273
Haibo Huangee03b1a2020-03-11 01:33:32 -07007717
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007718 Reported-by: Jonathan Watt
7719 Fixes #6740
7720 Closes #6753
Haibo Huangee03b1a2020-03-11 01:33:32 -07007721
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007722- Curl_timeleft: check both timeouts during connect
7723
7724 The duration of a connect and the total transfer are calculated from two
7725 different time-stamps. It can end up with the total timeout triggering
7726 before the connect timeout expires and we should make sure to
7727 acknowledge whichever timeout that is reached first.
7728
7729 This is especially notable when a transfer first sits in PENDING, as
7730 that time is counted in the total time but the connect timeout is based
7731 on the time since the handle changed to the CONNECT state.
7732
7733 The CONNECTTIMEOUT is per connect attempt. The TIMEOUT is for the entire
7734 operation.
7735
7736 Fixes #6744
7737 Closes #6745
7738 Reported-by: Andrei Bica
7739 Assisted-by: Jay Satiro
Haibo Huangee03b1a2020-03-11 01:33:32 -07007740
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007741- configure: remove use of deprecated macros
Haibo Huangee03b1a2020-03-11 01:33:32 -07007742
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007743 AC_HEADER_TIME, AC_HEADER_STDC and AC_TYPE_SIGNAL
Haibo Huangee03b1a2020-03-11 01:33:32 -07007744
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007745- configure: make AC_TRY_* into AC_*_IFELSE
Haibo Huangee03b1a2020-03-11 01:33:32 -07007746
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007747 ... as the former versions are deprecated.
7748
7749- configure: s/AC_HELP_STRING/AS_HELP_STRING
Haibo Huangee03b1a2020-03-11 01:33:32 -07007750
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007751 AC_HELP_STRING is deprecated in 2.70+ and I believe AS_HELP_STRING works
7752 already since 2.59 so bump the minimum required version to that.
Haibo Huangee03b1a2020-03-11 01:33:32 -07007753
Elliott Hughes34dd5f42021-08-10 13:01:18 -07007754 Reported-by: Emil Engler
7755 Fixes #6647
7756 Closes #6748
7757
7758- RELEASE-NOTES: synced
7759
7760- travis: use ubuntu nghttp2 package instead of build our own
7761
7762 Closes #6751
7763
7764- travis: bump wolfssl to 4.7.0
7765
7766- travis: only build wolfssl when needed
7767
7768 Closes #6751
7769
7770- [Jacob Hoffman-Andrews brought this change]
7771
7772 rustls: allocate a buffer for TLS data.
7773
7774 Previously, rustls was using an on-stack array for TLS data. However,
7775 crustls has an (unusual) requirement that buffers it deals with are
7776 initialized before writing to them. By using calloc, we can ensure the
7777 buffer is initialized once and then reuse it across calls.
7778
7779 Closes #6742
7780
7781- travis: add a rustls build
7782
7783 ... that doesn't run any tests (yet)
7784
7785 Closes #6750
7786
7787- HTTP2: remove the outdated remark about multiplexing for the tool
7788
7789- [Robert Ronto brought this change]
7790
7791 http2: don't set KEEP_SEND when there's no more data to be sent
7792
7793 this should fix an issue where curl sometimes doesn't send out a request
7794 with authorization info after a 401 is received over http2
7795
7796 Closes #6747
7797
7798Marc Hoersken (15 Mar 2021)
7799- config: fix building SMB with configure using Win32 Crypto
7800
7801 Align conditions for NTLM features between CMake and configure
7802 builds by differentiating between USE_NTLM and USE_CURL_NTLM_CORE,
7803 just like curl_setup.h does internally to detect support of:
7804
7805 - USE_NTLM: required for NTLM crypto authentication feature
7806 - USE_CURL_NTLM_CORE: required for SMB protocol
7807
7808 Implement USE_WIN32_CRYPTO detection by checking for Crypt functions
7809 in wincrypt.h which are not available in the Windows App environment.
7810
7811 Link advapi32 and crypt32 for Crypto API and Schannel SSL backend.
7812 Fix condition of Schannel SSL backend in CMake build accordingly.
7813
7814 Reviewed-by: Marcel Raad
7815
7816 Closes #6277
7817
7818- config: fix detection of restricted Windows App environment
7819
7820 Move the detection of the restricted Windows App environment
7821 in curl_setup.h before the definition of USE_WIN32_CRYPTO
7822 via included config-win32.h in case no build system is used.
7823
7824 Reviewed-by: Marcel Raad
7825
7826 Part of #6277
7827
7828Daniel Stenberg (15 Mar 2021)
7829- HISTORY: curl 7.7.2 was the first version used in Mac OS X 10.1
7830
7831- gen.pl: quote "bare" minuses in the nroff curl.1
7832
7833 Reported-by: Alejandro Colomar
7834 Fixes #6698
7835 Closes #6722
7836
7837Daniel Gustafsson (14 Mar 2021)
7838- hsts: remove unused defines
7839
7840 MAX_HSTS_SUBLEN and MAX_HSTS_SUBLENSTR were unused from the initial commit,
7841 and mostly likely leftovers from early development. Remove as they're not
7842 used for anything.
7843
7844 Closes #6741
7845 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
7846
7847Daniel Stenberg (12 Mar 2021)
7848- github: add torture-ftp for FTP-only torture testing
7849
7850 and at 20% to try to keep the run-time reasonable
7851
7852 Closes #6728
7853
7854- travis: split "torture" into a separate "events" build as well
7855
7856 Run torture without FTP and reducing coverage to 20%
7857
7858 For some reason the torture tests now run a lot slower on travis and run
7859 into the 50 minute limit all the time.
7860
7861 Closes #6728
7862
7863- ftp: fix memory leak in ftp_done
7864
7865 If after a transfer is complete Curl_GetFTPResponse() returns an error,
7866 curl would not free the ftp->pathalloc block.
7867
7868 Found by torture-testing test 576
7869
7870 Closes #6737
7871
7872- [oxalica brought this change]
7873
7874 http2: fail if connection terminated without END_STREAM
7875
7876 Closes #6736
7877
7878- RELEASE-NOTES: synced
7879
7880- [Jacob Hoffman-Andrews brought this change]
7881
7882 rustls: support CURLOPT_SSL_VERIFYPEER
7883
7884 This requires the latest main branch of crustls, which provides
7885 rustls_client_config_builder_dangerous_set_certificate_verifier and
7886 rustls_client_config_builder_set_enable_sni.
7887
7888 This refactors the session setup into its own function, and adds a new
7889 function cr_hostname_is_ip. Because crustls doesn't support verification
7890 of IP addresses, special handling is needed: We disable SNI and set a
7891 placeholder hostname (which never actually gets sent on the wire).
7892
7893 Closes #6719
7894
7895Daniel Gustafsson (12 Mar 2021)
7896- cookies: Fix potential NULL pointer deref with PSL
7897
7898 Curl_cookie_init can be called with data being NULL, and this can in turn
7899 be passed to Curl_cookie_add, meaning that both functions must be careful
7900 to only use data where it's checked for being a NULL pointer. The libpsl
7901 support code does however dereference data without checking, so if we are
7902 indeed having an unset data pointer we cannot PSL check the cookiedomain.
7903
7904 This is currently not a reachable dereference, as the only caller with a
7905 NULL data isn't passing a file to initialize cookies from, but since the
7906 API has this contract let's ensure we hold it.
7907
7908 Closes #6731
7909 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
7910
7911Daniel Stenberg (12 Mar 2021)
7912- [Michael Hordijk brought this change]
7913
7914 configure: only add OpenSSL paths if they are defined
7915
7916 Add paths for OpenSSL compiling and linking only if they have been
7917 defined. If they haven't been defined, we'll assume that the paths are
7918 already available to the toolchain.
7919
7920 Closes #6730
7921
7922Jay Satiro (12 Mar 2021)
7923- retry.d: Clarify transient 5xx HTTP response codes
7924
7925 - Clarify the only 5xx response codes that are treated as transient are
7926 500, 502, 503 and 504.
7927
7928 Prior to this change it said it treated all 5xx as transient, but the
7929 code says otherwise.
7930
7931 Ref: https://github.com/curl/curl/blob/curl-7_75_0/src/tool_operate.c#L462-L495
7932
7933 Closes https://github.com/curl/curl/pull/6724
7934
7935- retry-all-errors.d: Explain curl errors versus HTTP response errors
7936
7937 - Add a paragraph explaining that curl does not consider HTTP response
7938 errors as curl errors, and how that behavior can be modified by using
7939 --retry and --fail.
7940
7941 The --retry-all-errors doc says "Retry on any error" which some users
7942 may find misleading without the added explanation.
7943
7944 Ref: https://curl.se/docs/faq.html#Why_do_I_get_downloaded_data_eve
7945 Ref: https://curl.se/docs/faq.html#curl_doesn_t_return_error_for_HT
7946
7947 Reported-by: Lawrence Gripper
7948
7949 Fixes https://github.com/curl/curl/issues/6712
7950 Closes https://github.com/curl/curl/pull/6720
7951
7952Daniel Stenberg (11 Mar 2021)
7953- travis: switch ngtcp2 build over to quictls
7954
7955 The ngtcp2 project switched over to using the quictls OpenSSL fork
7956 instead of their own patched OpenSSL. We follow suit.
7957
7958 Closes #6729
7959
7960- test220/314: adjust to run with Hyper
7961
7962- c-hyper: support automatic content-encoding
7963
7964 Closes #6727
7965
7966- http: remove superfluous NULL assign
7967
7968 Closes #6727
7969
7970- tool_operate: bail if set CURLOPT_HTTP09_ALLOWED returns error
7971
7972 Closes #6727
7973
7974- setopt: error on CURLOPT_HTTP09_ALLOWED set true with Hyper
7975
7976 Not supported.
7977
7978 Closes #6727
7979
7980- test306: make it not run with Hyper
7981
7982 ... as it tests HTTP/0.9 which Hyper doesn't support.
7983
7984- test304: header CRLF cleanup to work with Hyper
7985
7986- FTP: allow SIZE to fail when doing (resumed) upload
7987
7988 Added test 362 to verify.
7989
7990 Reported-by: Jordan Brown
7991 Regression since 7ea2e1d0c5a7f (7.73.0)
7992 Fixes #6715
7993 Closes #6725
7994
7995- configure: provide Largefile feature for curl-config
7996
7997 ... as cmake now does it correctly, and make test1014 check for it
7998
7999 Closes #6702
8000
8001- config: remove CURL_SIZEOF_CURL_OFF_T use only SIZEOF_CURL_OFF_T
8002
8003 Make the code consistently use a single name for the size of the
8004 "curl_off_t" type.
8005
8006 Closes #6702
8007
8008Jay Satiro (10 Mar 2021)
8009- [Jun-ya Kato brought this change]
8010
8011 ngtcp2: Fix build error due to change in ngtcp2_addr_init
8012
8013 ngtcp2/ngtcp2@b8d90a9 changed the function prototype.
8014
8015 Closes https://github.com/curl/curl/pull/6716
8016
8017Daniel Stenberg (10 Mar 2021)
8018- [ejanchivdorj brought this change]
8019
8020 multi: update pending list when removing handle
8021
8022 when removing a handle, most of the lists are updated but pending list
8023 is not updated. Updating now.
8024
8025 Closes #6713
8026
8027- [kokke brought this change]
8028
8029 lib1536: check ptr against NULL before dereferencing it
8030
8031 Closes #6710
8032
8033- [kokke brought this change]
8034
8035 lib1537: check ptr against NULL before dereferencing it
8036
8037 Fixes #6707
8038 Closes #6708
8039
8040- travis: make torture tests skip TLS-SRP tests
8041
8042 ... as it seems to often hang.
8043
8044 Also: skip the "normal" tests as they're already run by many other
8045 builds.
8046
8047 Closes #6705
8048
8049- openssl: adapt to v3's new const for a few API calls
8050
8051 Closes #6703
8052
8053- quiche: fix crash when failing to connect
8054
8055 Reported-by: ウさん
8056 Fixes #6664
8057 Closes #6701
Haibo Huangee03b1a2020-03-11 01:33:32 -07008058
8059- RELEASE-NOTES: synced
8060
Elliott Hughes34dd5f42021-08-10 13:01:18 -07008061 Fixed the release counter and added a missing contributor
Haibo Huangee03b1a2020-03-11 01:33:32 -07008062
Elliott Hughes34dd5f42021-08-10 13:01:18 -07008063- RELEASE-NOTES: synced
8064
8065- dynbuf: bump the max HTTP request to 1MB
Haibo Huangee03b1a2020-03-11 01:33:32 -07008066
Elliott Hughes34dd5f42021-08-10 13:01:18 -07008067 Raised from 128KB to allow longer request headers.
Haibo Huangee03b1a2020-03-11 01:33:32 -07008068
Elliott Hughes34dd5f42021-08-10 13:01:18 -07008069 Reported-by: Carl Zogheib
8070 Fixes #6681
8071 Closes #6685
Haibo Huangee03b1a2020-03-11 01:33:32 -07008072
Elliott Hughes34dd5f42021-08-10 13:01:18 -07008073Jay Satiro (6 Mar 2021)
8074- schannel: Evaluate CURLOPT_SSL_OPTIONS via SSL_SET_OPTION macro
8075
8076 - Change use of those options from CURLOPT_SSL_OPTIONS that are not
8077 already evaluated via SSL_SET_OPTION in schannel and secure transport
8078 to use that instead of data->set.ssl.optname.
8079
8080 Example:
8081
8082 Evaluate SSL_SET_OPTION(no_revoke) instead of data->set.ssl.no_revoke.
8083
8084 This change is because options set via CURLOPT_SSL_OPTIONS
8085 (data->set.ssl.optname) are separate from those set for HTTPS proxy via
8086 CURLOPT_PROXY_SSL_OPTIONS (data->set.proxy_ssl.optname). The
8087 SSL_SET_OPTION macro determines whether the connection is for HTTPS
8088 proxy and based on that which option to evaluate.
8089
8090 Since neither Schannel nor Secure Transport backends currently support
8091 HTTPS proxy in libcurl, this change is for posterity and has no other
8092 effect.
8093
8094 Closes https://github.com/curl/curl/pull/6690
8095
8096- [kokke brought this change]
8097
8098 c-hyper: Remove superfluous pointer check
8099
8100 `n` pointer is never NULL once set. Found by static analysis.
8101
8102 Ref: https://github.com/curl/curl/issues/6696
8103
8104 Closes https://github.com/curl/curl/pull/6697
8105
8106- version.d: Add missing features to the features list
8107
8108 - Add missing entries for gsasl, Kerberos, NTLM_WB, TrackMemory,
8109 Unicode and zstd.
8110
8111 - Remove krb4 since it's no longer a feature.
8112
8113 Reported-by: Ádler Jonas Gross
8114
8115 Fixes https://github.com/curl/curl/issues/6677
8116 Closes https://github.com/curl/curl/pull/6687
8117
8118- [Vladimir Varlamov brought this change]
8119
8120 docs: add missing Arg tag to --stderr
8121
8122 Prior to this change the required argument was not shown.
8123
8124 curl.1 before: --stderr
8125 curl.1 after: --stderr <file>
8126
8127 curl --help before:
8128 --stderr Where to redirect stderr
8129
8130 curl --help after:
8131 --stderr <file> Where to redirect stderr
8132
8133 Closes https://github.com/curl/curl/pull/6692
8134
8135- projects: Update VS projects for OpenSSL 1.1.x
8136
8137 - Update VS project templates to use the OpenSSL lib names and include
8138 directories for OpenSSL 1.1.x.
8139
8140 This change means the VS project files will now build only with OpenSSL
8141 1.1.x when an OpenSSL configuration is chosen. Prior to this change the
8142 project files built only with OpenSSL 1.0.x (end-of-life) when an
8143 OpenSSL configuration was chosen.
8144
8145 The template changes in this commit were made by script:
8146
8147 libeay32.lib => libcrypto.lib
8148 ssleay32.lib => libssl.lib
8149 ..\..\..\..\..\openssl\inc32 => ..\..\..\..\..\openssl\include
8150
8151 And since the output directory now contains the includes it's prepended:
8152 ..\..\..\..\..\openssl\build\Win{32,64}\VC{6..15}\{DLL,LIB}
8153 {Debug,Release}\include
8154
8155 - Change build-openssl.bat to copy the build's include directory to the
8156 output directory (as seen above).
8157
8158 Each build has its own opensslconf.h which is different so we can't just
8159 include the source include directory any longer.
8160
8161 Note the include directory in the output directory is a full copy from
8162 the build so technically we don't need to include the OpenSSL source
8163 include directory in the template. However, I left it last in case the
8164 user made a custom OpenSSL build using the old method which would put
8165 opensslconf in the OpenSSL source include directory.
8166
8167 - Change build-openssl.bat to use a temporary install directory that is
8168 different from the temporary build directory.
8169
8170 For OpenSSL 1.1.x the temporary paths must be separate not a descendant
8171 of the other, otherwise pdb files will be lost between builds.
8172
8173 Ref: https://curl.se/mail/lib-2018-10/0049.html
8174 Ref: https://gist.github.com/jay/125191c35bbeb894444eff827651f755
8175 Ref; https://github.com/openssl/openssl/issues/10005
8176
8177 Fixes https://github.com/curl/curl/issues/984
8178 Closes https://github.com/curl/curl/pull/6675
8179
8180- doh: Inherit CURLOPT_STDERR from user's easy handle
8181
8182 Prior to this change if the user set their easy handle's error stream
8183 to something other than stderr it was not inherited by the doh handles,
8184 which meant that they would still write to the default standard error
8185 stream (stderr) for verbose output.
8186
8187 Bug: https://github.com/curl/curl/issues/6605
8188 Reported-by: arvids-kokins-bidstack@users.noreply.github.com
8189
8190 Closes https://github.com/curl/curl/pull/6661
8191
8192Marc Hoersken (1 Mar 2021)
8193- CI/azure: replace python-impacket with python3-impacket
8194
8195 As of this month Azure DevOps uses Ubuntu 20.04 LTS which
8196 no longer supports Python 2 and instead ships Python 3.
8197
8198 Closes #6678
8199
8200- runtests.pl: kill processes locking test log files
8201
8202 Introduce a new runtests.pl command option: -rm
8203
8204 For now only required and implemented for Windows.
8205 Ignore stunnel logs due to long running processes.
8206
8207 Requires Sysinternals handle[64].exe to be on PATH.
8208
8209 Reviewed-by: Jay Satiro
8210
8211 Ref: #6058
8212 Closes #6179
8213
8214- pathhelp.pm: fix use of pwd -L in Msys environment
8215
8216 While Msys2 has a pwd binary which supports -L,
8217 Msys1 only has a shell built-in with that feature.
8218
8219 Reviewed-by: Jay Satiro
8220
8221 Part of #6179
8222
8223Daniel Gustafsson (1 Mar 2021)
8224- ldap: use correct memory free function
8225
8226 unescaped is coming from Curl_urldecode and not a unicode conversion
8227 function, so reclaiming its memory should be performed with a normal
8228 call to free rather than curlx_unicodefree. In reality, this is the
8229 same thing as curlx_unicodefree is implemented as a call to free but
8230 that's not guaranteed to always hold. Using the curlx macro present
8231 issues with memory debugging as well.
8232
8233 Closes #6671
8234 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
8235 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
8236
8237- url: fix typo in comment
8238
8239 Correct a small typo which snuck in with a304051620.
8240
8241Jay Satiro (28 Feb 2021)
8242- tool_help: Increase space between option and description
8243
8244 - Increase the minimum number of spaces between the option and the
8245 description from 1 to 2.
8246
8247 Before:
8248 ~~~
8249 -u, --user <user:password> Server user and password
8250 -A, --user-agent <name> Send User-Agent <name> to server
8251 -v, --verbose Make the operation more talkative
8252 -V, --version Show version number and quit
8253 -w, --write-out <format> Use output FORMAT after completion
8254 --xattr Store metadata in extended file attributes
8255 ~~~
8256
8257 After:
8258 ~~~
8259 -u, --user <user:password> Server user and password
8260 -A, --user-agent <name> Send User-Agent <name> to server
8261 -v, --verbose Make the operation more talkative
8262 -V, --version Show version number and quit
8263 -w, --write-out <format> Use output FORMAT after completion
8264 --xattr Store metadata in extended file attributes
8265 ~~~
8266
8267 Closes https://github.com/curl/curl/pull/6674
8268
8269Daniel Stenberg (27 Feb 2021)
8270- curl: set CURLOPT_NEW_FILE_PERMS if requested
8271
8272 The --create-file-mode code logic accepted the value but never actually
8273 passed it on to libcurl!
8274
8275 Follow-up to a7696c73436f (shipped in 7.75.0)
8276 Reported-by: Johannes Lesr
8277 Fixes #6657
8278 Closes #6666
8279
8280- tool_operate: check argc before accessing argv[1]
8281
8282 Follow-up to 09363500b
8283 Reported-by: Emil Engler
8284 Reviewed-by: Daniel Gustafsson
8285 Closes #6668
8286
8287Daniel Gustafsson (26 Feb 2021)
8288- [Jean-Philippe Menil brought this change]
8289
8290 openssl: remove get_ssl_version_txt in favor of SSL_get_version
8291
8292 openssl: use SSL_get_version to get connection protocol
8293
8294 Replace our bespoke get_ssl_version_txt in favor of SSL_get_version.
8295 We can get rid of few lines of code, since SSL_get_version achieve
8296 the exact same thing
8297
8298 Closes #6665
8299 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
8300 Signed-off-by: Jean-Philippe Menil <jpmenil@gmail.com>