Annotation of embedaddon/curl/CHANGES, revision 1.1.1.1
1.1 misho 1: _ _ ____ _
2: ___| | | | _ \| |
3: / __| | | | |_) | |
4: | (__| |_| | _ <| |___
5: \___|\___/|_| \_\_____|
6:
7: Changelog
8:
9: Version 7.70.0 (29 Apr 2020)
10:
11: Daniel Stenberg (29 Apr 2020)
12: - RELEASE-NOTES: 7.70.0
13:
14: - THANKS: synced with the 7.70.0 release
15:
16: - headers: copyright range fix
17:
18: - [Rikard Falkeborn brought this change]
19:
20: doh: Constify some input pointers
21:
22: Closes #5306
23:
24: - nss: check for PK11_CreateDigestContext() returning NULL
25:
26: ... to avoid crashes!
27:
28: Reported-by: Hao Wu
29: Fixes #5302
30: Closes #5303
31:
32: - travis: bump the wolfssl CI build to use 4.4.0
33:
34: Closes #5301
35:
36: - copyright updates: adjust year ranges
37:
38: Marc Hoersken (26 Apr 2020)
39: - CI: do not include */ci branches in PR builds
40:
41: Align Azure Pipelines with GitHub Actions.
42:
43: Daniel Stenberg (25 Apr 2020)
44: - runtests: check for the disabled tests relative srcdir
45:
46: To make it work correctly for out-of-tree builds.
47:
48: Follow-up to 75e8feb6fb08b
49:
50: Bug: https://github.com/curl/curl/pull/5288#issuecomment-619346389
51: Reported-by: Marcel Raad
52: Closes #5297
53:
54: - runtests: revert commenting out a line I did for debugging
55:
56: Follow-up to 11091cd4d. It was not meant to be pushed!
57:
58: - smtp: set auth correctly
59:
60: Regression since 7.69.0 and 68fb25fa3fcff.
61:
62: The code wrongly assigned 'from' instead of 'auth' which probably was a
63: copy and paste mistake from other code, leading to that auth could
64: remain NULL and later cause an error to be returned.
65:
66: Assisted-by: Eric Sauvageau
67: Fixes #5294
68: Closes #5295
69:
70: Marcel Raad (25 Apr 2020)
71: - lib: clean up whitespace
72:
73: This fixes CodeFactor warnings.
74:
75: Daniel Stenberg (25 Apr 2020)
76: - [Anderson Toshiyuki Sasaki brought this change]
77:
78: libssh: avoid options override by configuration files
79:
80: Previously, options set explicitly through command line options could be
81: overridden by the configuration files parsed automatically when
82: ssh_connect() was called.
83:
84: By calling ssh_options_parse_config() explicitly, the configuration
85: files are parsed before setting the options, avoiding the options
86: override. Once the configuration files are parsed, the automatic
87: configuration parsing is not executed.
88:
89: Fixes #4972
90: Closes #5283
91: Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
92:
93: - runtests: when <killserver> mentions http, kill http/2 too
94:
95: Since the http2 test server is a mere proxy that needs to know about the
96: dynamic port the HTTP server is using, it too needs to get restarted
97: when the http server is killed.
98:
99: A regression caused by 80d6515.
100:
101: Fixes #5289
102: Closes #5291
103:
104: - [Yuri Slobodyanyuk brought this change]
105:
106: docs: fix two typos
107:
108: Closes #5292
109:
110: - [Emil Engler brought this change]
111:
112: tests/git: ignore mqttd and port files
113:
114: Closes #5290
115:
116: - tests: make runtests check that disabled tests exists
117:
118: ... and error out if so. Removed '536' from DISABLED as there is no such
119: test file.
120:
121: Closes #5288
122:
123: - test1154: set a proper name
124:
125: - select: make Curl_socket_check take timediff_t timeout
126:
127: Coverity found CID 1461718:
128:
129: Integer handling issues (CONSTANT_EXPRESSION_RESULT) "timeout_ms >
130: 9223372036854775807L" is always false regardless of the values of its
131: operands. This occurs as the logical second operand of "||".
132:
133: Closes #5240
134:
135: - [i-ky brought this change]
136:
137: libcurl-multi.3: added missing full stop
138:
139: Closes #5285
140:
141: Jay Satiro (22 Apr 2020)
142: - transfer: Switch PUT to GET/HEAD on 303 redirect
143:
144: Prior to this change if there was a 303 reply to a PUT request then
145: the subsequent request to respond to that redirect would also be a PUT.
146: It was determined that was most likely incorrect based on the language
147: of the RFCs. Basically 303 means "see other" resource, which implies it
148: is most likely not the same resource, therefore we should not try to PUT
149: to that different resource.
150:
151: Refer to the discussions in #5237 and #5248 for more information.
152:
153: Fixes https://github.com/curl/curl/issues/5237
154: Closes https://github.com/curl/curl/pull/5248
155:
156: Daniel Stenberg (22 Apr 2020)
157: - lib/mk-ca-bundle: skip empty certs
158:
159: Reviewed-by: Emil Engler
160: Reported-by: Ashwin Metpalli
161: Fixes #5278
162: Closes #5280
163:
164: - version: skip idn2_check_version() check and add precaution
165:
166: A gcc-10's -fanalyze complaint made me spot and do these improvements.
167:
168: Closes #5281
169:
170: - RELEASE-NOTES: synced
171:
172: - [Brian Bergeron brought this change]
173:
174: curl.h: update comment typo
175:
176: "routines with be invoked" -> "routines will be invoked"
177:
178: Closes #5279
179:
180: - [Emil Engler brought this change]
181:
182: GnuTLS: Don't skip really long certificate fields
183:
184: Closes #5271
185:
186: - gnutls: bump lowest supported version to 3.1.10
187:
188: GnuTLS 3.1.10 added new functions we want to use. That version was
189: released on Mar 22, 2013. Removing support for older versions also
190: greatly simplifies the code.
191:
192: Ref: #5271
193: Closes #5276
194:
195: - mqtt: make NOSTATE get within the debug name array
196:
197: - tests: run the RTSP test server on a dynamic port number
198:
199: To avoid port collisions.
200:
201: Closes #5272
202:
203: - tests: add %NOLISTENPORT and use it
204:
205: The purpose with this variable is to provide a port number that is
206: reasonably likely to not have a listener on the local host so that tests
207: can try connect failures against it. It uses port 47 - "reserved"
208: according to IANA.
209:
210: Updated six tests to use it instead of the previous different ports.
211:
212: Assisted-by: Emil Engler
213: Closes #5270
214:
215: - mqtt: remove code with no purpose
216:
217: Detected by Coverity. CID 1462319.
218:
219: "The same code is executed when the condition result is true or false,
220: because the code in the if-then branch and after the if statement is
221: identical."
222:
223: Closes #5275
224:
225: - mqtt: fix Curl_read() error handling while reading remaining length
226:
227: Detected by Coverity. CID 1462320.
228:
229: Closes #5274
230:
231: - server/tftpd: fix compiler warning
232:
233: Follow-up from 369ce38ac1d
234: Reported-by: Marc Hörsken
235:
236: - http: free memory when Alt-Used header creation fails due to OOM
237:
238: Reported-by: James Fuller
239: Fixes #5268
240: Closes #5269
241:
242: Daniel Gustafsson (20 Apr 2020)
243: - lib: fix typos in comments and errormessages
244:
245: This fixes a few randomly spotted typos in recently merged code, most
246: notably one in a userfacing errormessage the schannel code.
247:
248: Daniel Stenberg (20 Apr 2020)
249: - tests: run the SOCKS test server on a dynamic port number
250:
251: Closes #5266
252:
253: - [Johannes Schindelin brought this change]
254:
255: multi-ssl: reset the SSL backend on `Curl_global_cleanup()`
256:
257: When cURL is compiled with support for multiple SSL backends, it is
258: possible to configure an SSL backend via `curl_global_sslset()`, but
259: only *before* `curl_global_init()` was called.
260:
261: If another SSL backend should be used after that, a user might be
262: tempted to call `curl_global_cleanup()` to start over. However, we did
263: not foresee that use case and forgot to reset the SSL backend in that
264: cleanup.
265:
266: Let's allow that use case.
267:
268: Fixes #5255
269: Closes #5257
270: Reported-by: davidedec on github
271: Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
272:
273: - tests: run the TFTP test server on a dynamic port number
274:
275: Picking a dynamic unused port is better than a fixed to avoid the
276: collision risk.
277:
278: Closes #5265
279:
280: - mqtt: improve the state machine
281:
282: To handle PUBLISH before SUBACK and more.
283:
284: Updated the existing tests and added three new ones.
285:
286: Reported-by: Christoph Krey
287: Bug: https://curl.haxx.se/mail/lib-2020-04/0021.html
288: Closes #5246
289:
290: - runtests: always put test number in servercmd file
291:
292: - RELEASE-NOTES: synced
293:
294: - release-notes.pl: fix parsing typo
295:
296: James Fuller (20 Apr 2020)
297: - [xquery brought this change]
298:
299: ensure all references to ports are replaced by vars
300:
301: - [xquery brought this change]
302:
303: add more alt-svc test coverage
304:
305: Daniel Stenberg (20 Apr 2020)
306: - test1247: use http server to get the port number set
307:
308: Follow-up to 0f5db7b263f
309:
310: - runtests: use a unix domain socket path with the pid in the name
311:
312: To make it impossible for test cases to access the file name without
313: using the proper variable for the purpose.
314:
315: Closes #5264
316:
317: Daniel Gustafsson (19 Apr 2020)
318: - [Tom brought this change]
319:
320: src: Remove C99 constructs to ensure C89 compliance
321:
322: This fixes the error: 'for' loop initial declaration used outside C99
323: mode by declaring the loop increment variable in the beginning of the
324: block instead of inside the for loop.
325:
326: Fixes #5254
327: Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
328:
329: Daniel Stenberg (19 Apr 2020)
330: - runtests: dummy init the ports variables to avoid warnings
331:
332: ... and generate something that can help debug test cases.
333:
334: - [Patrick Monnerat brought this change]
335:
336: mime: properly check Content-Type even if it has parameters
337:
338: New test 669 checks this fix is effective.
339:
340: Fixes #5256
341: Closes #5258
342: Reported-by: thanhchungbtc on github
343:
344: - tests/FILEFORMAT: converted to markdown and extended
345:
346: Closes #5261
347:
348: - test1245: make it work with dynamic FTP server port
349:
350: - test1055: make it work with dynamic FTP port
351:
352: - test1028: make it run on dynamic FTP server port
353:
354: - tests: move pingpong server to dynamic listening port
355:
356: FTP, IMAP, POP3, SMTP and their IPv6 versions are now all on dynamic
357: ports
358:
359: Test 842-845 are unfortunately a bit hard to move over to this concept
360: right now and require "default port" still...
361:
362: - test1056: work with dynamic HTTP ipv6 port
363:
364: - test1448: work with dynamic HTTP server port
365:
366: - tests: introduce preprocessed test cases
367:
368: The runtests script now always performs variable replacement on the
369: entire test source file before the test gets executed, and saves the
370: updated version in a temporary file (log/test[num]) so that all test
371: case readers/servers can use that version (if present) and thus enjoy
372: the powers of test case variable substitution.
373:
374: This is necessary to allow complete port number freedom.
375:
376: Test 309 is updated to work with a non-fixed port number thanks to this.
377:
378: - tests: make 2006-2010 handle different port number lengths
379:
380: - tests: run the sws server on "any port"
381:
382: Makes the test servers for HTTP and Gopher pop up on a currently unused
383: port and runtests adapts to that!
384:
385: Closes #5247
386:
387: Marc Hoersken (18 Apr 2020)
388: - sockfilt: tidy variable naming and data structure in select_ws
389:
390: This commit does not introduce any logical changes to the code.
391:
392: Reviewed-by: Jay Satiro and Marcel Raad
393: Closes #5238
394:
395: Daniel Stenberg (17 Apr 2020)
396: - [Anderson Toshiyuki Sasaki brought this change]
397:
398: libssh: Use new ECDSA key types to check known hosts
399:
400: From libssh 0.9.0, ssh_key_type() returns different key types for ECDSA
401: keys depending on the curve.
402:
403: Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
404: Fixes #5252
405: Closes #5253
406:
407: Marcel Raad (17 Apr 2020)
408: - appveyor: add Unicode winbuild jobs
409:
410: These are cheap as they don't build tests.
411:
412: Closes https://github.com/curl/curl/pull/5063
413:
414: Daniel Stenberg (16 Apr 2020)
415: - mqttd: s/errno/SOCKERRNO
416:
417: To behave proper on Windows
418: Reported-by: Gisle Vanem
419: Bug: https://github.com/curl/curl/commit/5e855bbd18f84a02c951be7cac6188276818cdac#r38507132
420: Closes #5241
421:
422: - buildconf: use find -execdir instead, remove -print and the ares files
423:
424: Follow-up to 1e41bec96a6e
425:
426: Suggested-by: Marc Hörsken
427:
428: - [Alexander V. Tikhonov brought this change]
429:
430: buildconf: avoid using tempfile when removing files
431:
432: Closes #5213
433:
434: - copyright: bump the copyright year range
435:
436: - scripts/release-notes.pl: accept colon after the Fixes/Closes keywords
437:
438: - [JP Mens brought this change]
439:
440: docs/MQTT: replace confusing 80 by 75
441:
442: I was a bit surprised by the `80`: first thought: what's HTTP doing
443: here? ;)
444:
445: Closes #5236
446:
447: - [Brad King brought this change]
448:
449: cmake: Avoid MSVC C4273 warnings in send/recv checks
450:
451: We use `check_c_source_compiles` to check possible send/recv signatures
452: by reproducing the forward declarations from system headers. On Windows
453: the `winsock2.h` header adds dll linkage settings to its forward
454: declaration. If ours does not match the compiler warns:
455:
456: warning C4273: 'recv': inconsistent dll linkage
457:
458: Add `WINSOCK_API_LINKAGE` to our test signatures when it is defined so
459: that our linkage is consistent with that from `winsock2.h`.
460:
461: Fixes #4764
462: Closes #5232
463:
464: Jay Satiro (14 Apr 2020)
465: - KNOWN_BUGS: Add entry 'Blocking socket operations'
466:
467: - Add threaded resolver cleanup and GSSAPI for FTP to the TODO list of
468: known blocking operations.
469:
470: - New known bugs entry 'Blocking socket operations in non-blocking API'
471: that directs to the TODO's list of known blocking operations.
472:
473: Ref: https://github.com/curl/curl/pull/5214#issuecomment-612488021
474:
475: Reported-by: Marc Hoersken
476:
477: Closes https://github.com/curl/curl/pull/5216
478:
479: Marc Hoersken (14 Apr 2020)
480: - test2043: use revoked.badssl.com instead of revoked.grc.com
481:
482: The certificate of revoked.grc.com has expired on 2020-04-13.
483:
484: Reviewed-by: Jay Satiro
485:
486: Closes #5233
487:
488: - sockfilt: fix broken pipe on Windows to be ready in select_ws
489:
490: Closes #5228
491:
492: Daniel Stenberg (14 Apr 2020)
493: - RELEASE-NOTES: synced
494:
495: - scripts/release-notes: fix duplicate output header
496:
497: - github/workflow: enable MQTT in the macOS debug build
498:
499: - azure: add mqtt support to one of the Windows builds
500:
501: - travis: add mqtt job on Linux
502:
503: - tests: add four MQTT tests 1190 - 1193
504:
505: - tests: add the mqtt test server mqttd
506:
507: - tests: support hex encoded data and mqtt server
508:
509: The mqtt server is started using a "random" port.
510:
511: - [Björn Stenberg brought this change]
512:
513: mqtt: add new experimental protocol
514:
515: Closes #5173
516:
517: - TODO: Consider convenience options for JSON and XML?
518:
519: Closes #5203
520:
521: - tool: do not declare functions with Curl_ prefix
522:
523: To avoid collision risks with private libcurl symbols when linked with
524: static versions (or just versions not hiding internal symbols).
525:
526: Reported-by: hydra3333 on github
527: Fixes #5219
528: Closes #5234
529:
530: - [Nathaniel R. Lewis brought this change]
531:
532: cmake: add aliases so exported target names are available in tree
533:
534: Reviewed-by: Brad King
535: Closes #5206
536:
537: - version: increase buffer space for ssl version output
538:
539: To avoid it getting truncated, especially when several SSL backends are
540: built-in.
541:
542: Reported-by: Gisle Vanem
543: Fixes #5222
544: Closes #5226
545:
546: Marc Hoersken (13 Apr 2020)
547: - cirrus: no longer ignore test 504 which is working again
548:
549: The test is working again, because TCP blackholing is disabled.
550:
551: - appveyor: completely disable tests that fail to timeout early
552:
553: The tests changed from ignored to disabled are tests that are
554: about connecting to non-listening socket. On AppVeyor these
555: tests are not reliable, because for some unknown reason the
556: connect is not timing out before the test time limit is reached.
557:
558: Daniel Stenberg (13 Apr 2020)
559: - test1908: avoid using fixed port number in test data
560:
561: Closes #5225
562:
563: Jay Satiro (12 Apr 2020)
564: - [Andrew Kurushin brought this change]
565:
566: schannel: Fix blocking timeout logic
567:
568: - Fix schannel_send for the case when no timeout was set.
569:
570: Prior to this change schannel would error if the socket was not ready
571: to send data and no timeout was set.
572:
573: This commit is similar to parent commit 89dc6e0 which recently made the
574: same change for SOCKS, for the same reason. Basically it was not well
575: understood that when Curl_timeleft returns 0 it is not a timeout of 0 ms
576: but actually means no timeout.
577:
578: Fixes https://github.com/curl/curl/issues/5177
579: Closes https://github.com/curl/curl/pull/5221
580:
581: - socks: Fix blocking timeout logic
582:
583: - Document in Curl_timeleft's comment block that returning 0 signals no
584: timeout (ie there's infinite time left).
585:
586: - Fix SOCKS' Curl_blockread_all for the case when no timeout was set.
587:
588: Prior to this change if the timeout had a value of 0 and that was passed
589: to SOCKET_READABLE it would return right away instead of blocking. That
590: was likely because it was not well understood that when Curl_timeleft
591: returns 0 it is not a timeout of 0 ms but actually means no timeout.
592:
593: Ref: https://github.com/curl/curl/pull/5214#issuecomment-612512360
594:
595: Closes https://github.com/curl/curl/pull/5220
596:
597: - [Marc Hoersken brought this change]
598:
599: gopher: check remaining time left during write busy loop
600:
601: Prior to this change gopher's blocking code would block forever,
602: ignoring any set timeout value.
603:
604: Assisted-by: Jay Satiro
605: Reviewed-by: Daniel Stenberg
606:
607: Similar to #5220 and #5221
608: Closes #5214
609:
610: Daniel Stenberg (13 Apr 2020)
611: - [Dirkjan Bussink brought this change]
612:
613: gnutls: ensure TLS 1.3 when SRP isn't requested
614:
615: When SRP is requested in the priority string, GnuTLS will disable
616: support for TLS 1.3. Before this change, curl would always add +SRP to
617: the priority list, effectively always disabling TLS 1.3 support.
618:
619: With this change, +SRP is only added to the priority list when SRP
620: authentication is also requested. This also allows updating the error
621: handling here to not have to retry without SRP. This is because SRP is
622: only added when requested and in that case a retry is not needed.
623:
624: Closes #5223
625:
626: Marc Hoersken (12 Apr 2020)
627: - tests/server: add hidden window to gracefully handle WM_CLOSE
628:
629: Forward Window events as signals to existing signal event handler.
630:
631: - tests/server: add CTRL event handler for Win32 consoles
632:
633: Forward CTRL events as signals to existing signal event handler.
634:
635: - tests/server: move all signal handling routines to util.[ch]
636:
637: Avoid code duplication to prepare for portability enhancements.
638:
639: Daniel Stenberg (12 Apr 2020)
640: - compressed.d: stress that the headers are not modified
641:
642: Suggested-by: Michael Osipov
643: Assisted-by: Jay Satiro
644: Bug: https://github.com/curl/curl/issues/5182#issuecomment-611638008
645: Closes #5217
646:
647: Marc Hoersken (11 Apr 2020)
648: - tests/server/util.c: use curl_off_t instead of long for pid
649:
650: Avoid potential overflow of huge PIDs on Windows.
651:
652: Related to #5188
653: Assisted-by: Marcel Raad
654:
655: - tests: use Cygwin/msys PIDs for stunnel and sshd on Windows
656:
657: Since the Windows versions of both programs would write Windows
658: PIDs to their pidfiles which we cannot handle, we need to use
659: our known perl.exe Cygwin/msys PID together with exec() in order
660: to tie the spawned processes to the existance of our perl.exe
661:
662: The perl.exe that is executing secureserver.pl and sshserver.pl
663: has a Cygwin/msys PID, because it is started inside Cygwin/msys.
664:
665: Related to #5188
666:
667: - tests: add Windows compatible pidwait like pidkill and pidterm
668:
669: Related to #5188
670:
671: - tests: fix conflict between Cygwin/msys and Windows PIDs
672:
673: Add 65536 to Windows PIDs to allow Windows specific treatment
674: by having disjunct ranges for Cygwin/msys and Windows PIDs.
675:
676: See also:
677: - https://cygwin.com/git/?p=newlib-cygwin.git;a=commit; ↵
678: h=b5e1003722cb14235c4f166be72c09acdffc62ea
679: - https://cygwin.com/git/?p=newlib-cygwin.git;a=commit; ↵
680: h=448cf5aa4b429d5a9cebf92a0da4ab4b5b6d23fe
681:
682: Replaces #5178
683: Closes #5188
684:
685: Daniel Stenberg (11 Apr 2020)
686: - RELEASE-NOTES: synced
687:
688: - release-notes.pl: detect the start of the references in cleanup mode
689:
690: - Revert "file: on Windows, refuse paths that start with \\"
691:
692: This reverts commit 1b71bc532bde8621fd3260843f8197182a467ff2.
693:
694: Reminded-by: Chris Roberts
695: Bug: https://curl.haxx.se/mail/archive-2020-04/0013.html
696:
697: Closes #5215
698:
699: Jay Satiro (11 Apr 2020)
700: - lib: fix conversion warnings for SOCKET_WRITABLE/READABLE
701:
702: - If loss of data may occur converting a timediff_t to time_t and
703: the time value is > TIME_T_MAX then treat it as TIME_T_MAX.
704:
705: This is a follow-up to 8843678 which removed the (time_t) typecast
706: from the macros so that conversion warnings could be identified.
707:
708: Closes https://github.com/curl/curl/pull/5199
709:
710: - test1148: tolerate progress updates better (again)
711:
712: - Ignore intermediate progress updates.
713:
714: - Support locales that use a character other than period as decimal
715: separator (eg 100,0%).
716:
717: test1148 checks that the progress finishes at 100% and has the right
718: bar width. Prior to this change the test assumed that the only progress
719: reported for such a quick transfer was 100%, however in rare instances
720: (like in the CI where transfer time can slow considerably) there may be
721: intermediate updates. For example, below is stderrlog1148 from a failed
722: CI run with explicit \r and \n added (it is one line; broken up so that
723: it's easier to understand).
724:
725: \r
726: \r################################## 48.3%
727: \r######################################################################## 100.0%
728: \n
729:
730: Closes https://github.com/curl/curl/pull/5194
731:
732: Marc Hoersken (10 Apr 2020)
733: - sshserver.pl: use cached Win32 environment check variable
734:
735: - appveyor: partially revert 3413a110 to keep build without proxy
736:
737: Ref: #5211 and #4526
738: Reported-by: Marcel Raad
739:
740: - appveyor: ignore failing 'connect to non-listening proxy' tests
741:
742: Closes #5211
743:
744: - CI/macos: convert CRLF to LF and align indentation
745:
746: Daniel Stenberg (9 Apr 2020)
747: - url: allow non-HTTPS altsvc-matching for debug builds
748:
749: This is already partly supported but this part was missing.
750: Reported-by: James Fuller
751:
752: Closes #5205
753:
754: - server/resolve: remove AI_CANONNAME to make macos tell the truth
755:
756: With this bit set, my mac successfully resolves "ip6-localhost" when in
757: fact there is no such host known to my machine! That in turn made test
758: 241 wrongly execute and fail.
759:
760: Closes #5202
761:
762: - runtests: fix warning about using an undefined variable
763:
764: Follow-up from 4d939ef6ceb2db1
765:
766: - release-notes: fix the initial reference list output
767:
768: - github actions: run when pushed to master or */ci + PRs
769:
770: Avoid double-builds when using "local" branches for PRs. For both macos
771: and fuzz jobs.
772:
773: Closes #5201
774:
775: - runtests: provide nicer errormsg when protocol "dump" file is empty
776:
777: - [Gilles Vollant brought this change]
778:
779: schannel: support .P12 or .PFX client certificates
780:
781: Used with curl command line option like this: --cert
782: <filename>:<password> --cert-type p12
783:
784: Closes #5193
785:
786: - tests: verify split initial HTTP requests with CURL_SMALLREQSEND
787:
788: test1294: "split request" being when the entire request isn't sent in
789: the first go, and the remainder is sent in the PERFORM state. A GET
790: request is otherwise not sending anything during PERFORM.
791:
792: test1295: same kind of split but with POST
793:
794: Closes #5197
795:
796: - http: don't consider upload done if the request isn't completely sent off
797:
798: Fixes #4919
799: Closes #5197
800:
801: - http: allow Curl_add_buffer_send() to do a short first send by force
802:
803: In a debug build, settting the environment variable "CURL_SMALLREQSEND"
804: will make the first HTTP request send not send more bytes than the set
805: amount, thus ending up verifying that the logic for handling a split
806: HTTP request send works correctly.
807:
808: - connect: store connection info for QUIC connections
809:
810: Restores the --head functionality to the curl utility which extracts
811: 'protocol' that is stored that way.
812:
813: Reported-by: James Fuller
814: Fixes #5196
815: Closes #5198
816:
817: - tests/README: update the port numbers list
818:
819: Since the pipelining server is long gone.
820: Reported-by: James Fuller
821:
822: - select: remove typecast from SOCKET_WRITABLE/READABLE macros
823:
824: So that they don't hide conversions-by-mistake
825:
826: Reviewed-by: Jay Satiro
827: Closes #5190
828:
829: - CURLOPT_WRITEFUNCTION.3: add inline example and new see-also
830:
831: Closes #5192
832:
833: - release-notes: output trailing references sorted numerically
834:
835: - cleanup: correct copyright year range on a few files
836:
837: - configure: remove use of -vec-report0 from CFLAGS with icc
838:
839: ... as it apparently isn't (always) supported.
840: Reported-by: Alain Miniussi
841: Fixes #5096
842: Closes #5191
843:
844: - warnless: remove code block for icc that didn't work
845:
846: Reported-by: Alain Miniussi
847: Fixes #5096
848:
849: Marc Hoersken (6 Apr 2020)
850: - dist: add missing setup-win32.h
851:
852: Follow up to d820224b8b
853:
854: Daniel Stenberg (6 Apr 2020)
855: - RELEASE-NOTES: synced
856:
857: - scripts/release-notes.pl: add helper script for RELEASE-NOTES maintenance
858:
859: This script helps putting entries in the RELEASE-NOTES using a coherent
860: style and sorting with a minimal human editing effort - as long as the
861: first line in the commit message is good enough! There's a short howto
862: at the top of the file.
863:
864: - [Dennis Felsing brought this change]
865:
866: configure: don't check for Security.framework when cross-compiling
867:
868: Since it checks for the local file, not the cross-compiled one.
869:
870: Closes #5189
871:
872: - TODO: Option to make -Z merge lined based outputs on stdout
873:
874: Closes #5175
875:
876: - lib: never define CURL_CA_BUNDLE with a getenv
877:
878: - it breaks the build (since 6de756c9b1de34b7a1)
879: - it's not documented and not consistent across platforms
880: - the curl tool does that getenv magic
881:
882: Bug: https://github.com/curl/curl/commit/6de756c#r38127030
883: Reported-by: Gisle Vanem
884:
885: Closes #5187
886:
887: Marc Hoersken (5 Apr 2020)
888: - lib670: use the same Win32 API check as all other lib tests
889:
890: - appveyor: use random test server ports based upon APPVEYOR_API_URL
891:
892: Avoid conflicts of test server ports with AppVeyor API on localhost.
893:
894: Closes #5034
895:
896: - appveyor: sort builds by type and add two new variants
897:
898: Related to #5034 and #5063
899:
900: - appveyor: show failed tests in log even if test is ignored
901:
902: And print API response with newline only if there is one
903:
904: - appveyor: turn disabled tests into ignored result tests
905:
906: Daniel Stenberg (5 Apr 2020)
907: - KNOWN_BUGS: fixed "USE_UNIX_SOCKETS on Windows"
908:
909: Fixed with #5170 (commit 23a870f2fd041278)
910:
911: - test1566: verify --etag-compare that gets a 304 back
912:
913: Verifies the fix in #5183
914:
915: Closes #5186
916:
917: - [Kwon-Young Choi brought this change]
918:
919: CURLINFO_CONDITION_UNMET: return true for 304 http status code
920:
921: In libcurl, CURLINFO_CONDITION_UNMET is used to avoid writing to the
922: output file if the server did not transfered a file based on time
923: condition. In the same manner, getting a 304 HTTP response back from the
924: server, for example after passing a custom If-Match-* header, also
925: fulfill this condition.
926:
927: Fixes #5181
928: Closes #5183
929:
930: - [Kwon-Young Choi brought this change]
931:
932: curl: allow both --etag-compare and --etag-save with same file name
933:
934: This change inverse the order of processing for the --etag-compare and
935: --etag-save option to process first --etag-compare. This in turn allows
936: to use the same file name to compare and save an etag.
937:
938: The original behavior of not failing if the etag file does not exists is
939: conserved.
940:
941: Fixes #5179
942: Closes #5180
943:
944: Viktor Szakats (4 Apr 2020)
945: - windows: enable UnixSockets with all build toolchains
946:
947: Extend existing unix socket support in Windows builds to be
948: enabled for all toolchain vendors or versions. (Previously
949: it was only supported with certain MSVC versions + more recent
950: Windows 10 SDKs)
951:
952: Ref: https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
953: Ref: https://github.com/curl/curl/issues/5162
954: Closes: https://github.com/curl/curl/pull/5170
955:
956: Daniel Stenberg (4 Apr 2020)
957: - KNOWN_BUGS: Store TLS context per transfer instead of per connection
958:
959: Closes #5102
960:
961: Marc Hoersken (3 Apr 2020)
962: - sockfilt: remove redundancy in timeout handling
963:
964: And update other logmsg output in select_ws on Windows.
965:
966: - sockfilt: fix handling of ready closed sockets on Windows
967:
968: Replace the incomplete workaround regarding FD_CLOSE
969: only signalling once by instead doing a pre-check with
970: standard select and storing the result for later use.
971:
972: select keeps triggering on closed sockets on Windows while
973: WSAEventSelect fires only once with data still available.
974: By doing the pre-check we do not run in a deadlock
975: due to waiting forever for another FD_CLOSE event.
976:
977: - sockfilt: fix race-condition of waiting threads and event handling
978:
979: Fix race-condition of waiting threads finishing while events are
980: already being processed which lead to invalid or skipped events.
981:
982: Use mutex to check for one event at a time or do post-processing.
983: In addition to mutex-based locking use specific event as signal.
984:
985: Closes #5156
986:
987: Daniel Stenberg (2 Apr 2020)
988: - [Leo Neat brought this change]
989:
990: CI-fuzz: increase fuzz time to 40 minutes
991:
992: Closes #5174
993:
994: Marc Hoersken (2 Apr 2020)
995: - CI: increase Azure Pipelines timeouts due to performance issues
996:
997: The current demand on Azure negatively impacts the CI performance.
998:
999: - runtests.pl: log host OS as detected by Perl environment
1000:
1001: - ftpserver.pl: log before and after data connection is closed
1002:
1003: Daniel Stenberg (1 Apr 2020)
1004: - RELEASE-NOTES: synced
1005:
1006: - RELEASE-PROCEDURE.md: run the copyright.pl script!
1007:
1008: - vquic/ngtcp2.h: update copyright year range
1009:
1010: Follow-up to 0736ee73d346a52
1011:
1012: - [Daiki Ueno brought this change]
1013:
1014: CI: add build with ngtcp2 + gnutls on Travis CI
1015:
1016: - [Daiki Ueno brought this change]
1017:
1018: vquic: add support for GnuTLS backend of ngtcp2
1019:
1020: Currently, the TLS backend used by vquic/ngtcp2.c is selected at compile
1021: time. Therefore OpenSSL support needs to be explicitly disabled.
1022:
1023: Signed-off-by: Daiki Ueno <dueno@redhat.com>
1024: Closes #5148
1025:
1026: - [Gisle Vanem brought this change]
1027:
1028: examples/sessioninfo.c: add include to fix compiler warning
1029:
1030: Fixes #5171
1031:
1032: - misc: copyright year updates
1033:
1034: Follow-up to 7a71965e9
1035:
1036: - [Harry Sintonen brought this change]
1037:
1038: build: fixed build for systems with select() in unistd.h
1039:
1040: Closes #5169
1041:
1042: - memdebug: don't log free(NULL)
1043:
1044: ... it serves no purpose and fills up the log.
1045:
1046: - cleanup: insert newline after if() conditions
1047:
1048: Our code style mandates we put the conditional block on a separate
1049: line. These mistakes are now detected by the updated checksrc.
1050:
1051: - checksrc: warn on obvious conditional blocks on the same line as if()
1052:
1053: Closes #5164
1054:
1055: - [Roger Orr brought this change]
1056:
1057: cmake: add CMAKE_MSVC_RUNTIME_LIBRARY
1058:
1059: Fixes #5165
1060: Closes #5167
1061:
1062: - [Daiki Ueno brought this change]
1063:
1064: ngtcp2: update to git master for the key installation API change
1065:
1066: This updates the ngtcp2 OpenSSL backend to follow the API change in
1067: commit 32e703164 of ngtcp2.
1068:
1069: Notable changes are:
1070: - ngtcp2_crypto_derive_and_install_{rx,tx}_key have been added to replace
1071: ngtcp2_crypto_derive_and_install_key
1072: - the 'side' argument of ngtcp2_crypto_derive_and_install_initial_key
1073: has been removed
1074:
1075: Fixes #5166
1076: Closes #5168
1077:
1078: - [Cyrus brought this change]
1079:
1080: SECURITY.md: minor rephrase
1081:
1082: Closes #5158
1083:
1084: - output.d: quote the URL when globbing
1085:
1086: Some shells do globbing of their own unless the URL is quoted, so maybe
1087: encourage this.
1088:
1089: Co-authored-by: Jay Satiro
1090: Closes #5160
1091:
1092: - dist: add tests/version-scan.pl to tarball
1093:
1094: ... used in test 1177.
1095:
1096: Follow-up to a97d826f6de3
1097:
1098: - test1177: verify that all the CURL_VERSION_ bits are documented
1099:
1100: - curl.h: remnove CURL_VERSION_ESNI. Never supported nor documented
1101:
1102: Considered experimental and therefore we can do this.
1103:
1104: Closes #5157
1105:
1106: - KNOWN_BUGS: DoH doesn't inherit all transfer options
1107:
1108: Closes #4578
1109: Closes #4579
1110:
1111: - KNOWN_BUGS: DoH leaks memory after followlocation
1112:
1113: Closes #4592
1114:
1115: - KNOWN_BUGS: "FTPS needs session reuse"
1116:
1117: Closes #4654
1118:
1119: - KNOWN_BUGS: "stick to same family over SOCKS pro" is presumed fixed
1120:
1121: - TODO: Set custom client ip when using haproxy protocol
1122:
1123: Closes #5125
1124:
1125: Michael Kaufmann (27 Mar 2020)
1126: - writeout_json: Fix data type issues
1127:
1128: Load long values correctly (e.g. for http_code).
1129:
1130: Use curl_off_t (not long) for:
1131: - size_download (CURLINFO_SIZE_DOWNLOAD_T)
1132: - size_upload (CURLINFO_SIZE_UPLOAD_T)
1133:
1134: The unit for these values is bytes/second, not microseconds:
1135: - speed_download (CURLINFO_SPEED_DOWNLOAD_T)
1136: - speed_upload (CURLINFO_SPEED_UPLOAD_T)
1137:
1138: Fixes #5131
1139: Closes #5152
1140:
1141: Daniel Stenberg (27 Mar 2020)
1142: - mailmap: fixup a few author names/fields
1143:
1144: Douglas Steinwand, Gökhan Şengün, Jessa Chandler, Julian Z and
1145: Svyatoslav Mishyn
1146:
1147: - version: add 'cainfo' and 'capath' to version info struct
1148:
1149: Suggested-by: Timothe Litt
1150: URL: https://curl.haxx.se/mail/lib-2020-03/0090.html
1151: Reviewed-by: Jay Satiro
1152:
1153: Closes #5150
1154:
1155: - RELEASE-NOTES: synced
1156:
1157: Jay Satiro (26 Mar 2020)
1158: - SSLCERTS.md: Fix example code for setting CA cert file
1159:
1160: Prior to this change the documentation erroneously said use
1161: CURLOPT_CAPATH to set a CA cert file.
1162:
1163: Bug: https://curl.haxx.se/mail/lib-2020-03/0121.html
1164: Reported-by: Timothe Litt
1165:
1166: Closes https://github.com/curl/curl/pull/5151
1167:
1168: Marc Hoersken (26 Mar 2020)
1169: - sockfilt: add logmsg output to select_ws_wait_thread on Windows
1170:
1171: Assisted-by: Jay Satiro
1172: Reviewed-by: Daniel Stenberg
1173:
1174: Closes #5086
1175:
1176: Daniel Stenberg (26 Mar 2020)
1177: - docs/make: generate curl.1 from listed files only
1178:
1179: Previously it rendered the page from files matching "*.d" in the correct
1180: directory, which worked fine in git builds when the files were added but
1181: made it easy to forget adding the files to the dist.
1182:
1183: Now, only man page sections listed in DPAGES in Makefile.inc will be
1184: used, thus "forcing" us to update this to get the man page right and get
1185: it included in the dist at the same time.
1186:
1187: Ref: #5146
1188: Closes #5149
1189:
1190: - openssl: adapt to functions marked as deprecated since version 3
1191:
1192: OpenSSL 3 deprecates SSL_CTX_load_verify_locations and the MD4, DES
1193: functions we use.
1194:
1195: Fix the MD4 and SSL_CTX_load_verify_locations warnings.
1196:
1197: In configure, detect OpenSSL v3 and if so, inhibit the deprecation
1198: warnings. OpenSSL v3 deprecates the DES functions we use for NTLM and
1199: until we rewrite the code to use non-deprecated functions we better
1200: ignore these warnings as they don't help us.
1201:
1202: Closes #5139
1203:
1204: - dist: add mail-rcpt-allowfails.d to the tarball
1205:
1206: Reported-by: Maksim Stsepanenka
1207: Reviewed-by: Jat Satiro
1208:
1209: Closes #5146
1210:
1211: - travis: update the ngtcp2 build to use the latest OpenSSL patch
1212:
1213: ... which also makes it OpenSSL 1.1.1d based and not v3.
1214:
1215: Marc Hoersken (24 Mar 2020)
1216: - CI: remove default Ubuntu build from GitHub Actions
1217:
1218: We are already running a very similar Ubuntu build on Travis CI.
1219: The macOS variant of this default build is kept on Github Actions.
1220:
1221: - CI: bring GitHub Actions fuzzing job in line with macOS jobs
1222:
1223: Update YAML formatting, job naming and triggers.
1224:
1225: - CI: migrate macOS jobs from Azure and Travis CI to GitHub Actions
1226:
1227: Reduce workload on Azure Pipelines and Travis CI while
1228: consolidating macOS jobs onto less utilized GitHub Actions.
1229:
1230: Reviewed-by: Daniel Stenberg
1231:
1232: Closes #5124
1233:
1234: Daniel Stenberg (24 Mar 2020)
1235: - config: remove all defines of HAVE_DES_H
1236:
1237: As there's no code using it.
1238:
1239: Closes #5144
1240:
1241: - copyright: fix out-of-date copyright ranges and missing headers
1242:
1243: Reported by the new script 'scripts/copyright.pl'. The script has a
1244: regex whitelist for the files that don't need copyright headers.
1245:
1246: Removed three (mostly usesless) README files from docs/
1247:
1248: Closes #5141
1249:
1250: - packages: add OS400/chkstrings.c to the dist
1251:
1252: Reported-by: Jon Rumsey
1253: Fixes #5142
1254: Closes #5143
1255:
1256: - [Clément Notin brought this change]
1257:
1258: nghttp2: 1.12.0 required
1259:
1260: since nghttp2_session_set_local_window_size is needed
1261:
1262: Closes #5140
1263:
1264: - RELEASE-NOTES: synced
1265:
1266: - [Calvin Buckley brought this change]
1267:
1268: OS400: Update strings for ccsid-ifier
1269:
1270: Fixes build.
1271:
1272: Closes #5132
1273:
1274: - cirrus: make freebsd ignore the tests instead of skipping
1275:
1276: To allow us to see in the CI logs how they actually behave
1277:
1278: Closes #5091
1279:
1280: - cirrus: move the sanitizer build from freebsd 13 to freebsd 12
1281:
1282: - Revert "cirrus-ci: disable the FreeBSD 13 builds"
1283:
1284: This reverts commit 691b71be930f0e285c8f7a76efd56bbe0576cda6.
1285:
1286: - getinfo: provide CURLINFO_HEADER_SIZE and CURLINFO_REQUEST_SIZE override
1287:
1288: To let debug-builds return fake values, like in test 970.
1289:
1290: Ref: #5131
1291: Closes #5136
1292:
1293: - test970: improve the test
1294:
1295: - send more data to make problems more obvious
1296: - don't start the data with minus, it makes diffs harder to read
1297: - skip the headers in the stdout comparison
1298: - save to a file name to also verify 'filename_effective'
1299:
1300: Ref: #5131
1301:
1302: - CURLINFO_NUM_CONNECTS: improve accuracy
1303:
1304: The counter was not bumped in all cases correctly.
1305:
1306: Reported-by: Marcel Raad
1307: Ref: #5131
1308: Closes #5135
1309:
1310: - TODO: Use "random" ports for the test servers
1311:
1312: - lib/curl_setup: adjust the copyright year range
1313:
1314: Follow-up from d820224b8
1315:
1316: Jay Satiro (21 Mar 2020)
1317: - curl_setup: define _WIN32_WINNT_[OS] symbols
1318:
1319: .. because not all Windows build systems have those symbols, and even
1320: those that do may be missing newer symbols (eg the Windows 7 SDK does
1321: not define _WIN32_WINNT_WIN10).
1322:
1323: Those symbols are used in build-time logic to decide which API to use
1324: and prior to this change if the symbols were missing it would have
1325: resulted in deprecated API being used when more recent functions were
1326: available (eg GetVersionEx used instead of VerifyVersionInfo).
1327:
1328: Reported-by: FuccDucc@users.noreply.github.com
1329:
1330: Probably fixes https://github.com/curl/curl/issues/4995
1331: Closes https://github.com/curl/curl/pull/5057
1332:
1333: - [Ross Burton brought this change]
1334:
1335: curl-functions.m4: remove inappropriate AC_REQUIRE
1336:
1337: AC_REQUIRE means "if this macro hasn't been executed already, execute
1338: it". So in a wrapper around AC_RUN_IFELSE, AC_REQUIRE(AC_RUN_IFELSE)
1339: isn't correct at that will execute AC_RUN_IFELSE without any arguments.
1340:
1341: With autoconf 2.69 this is basically a no-op, but with autoconf 2.70,
1342: AC_RUN_IFELSE without a default value when cross-compiling is fatal.
1343: The result is that curl with autoconf 2.70 cannot cross-compile.
1344:
1345: Fixes https://github.com/curl/curl/issues/5126
1346: Closes https://github.com/curl/curl/pull/5130
1347:
1348: Marc Hoersken (20 Mar 2020)
1349: - ci/tests: fix Azure Pipelines not running Windows containers
1350:
1351: Workaround posted here: microsoft/azure-pipelines-agent#2864
1352:
1353: Assisted-by: Simon Chalifoux
1354: Assisted-by: Tommy Petty
1355:
1356: Fixes #5117
1357: Closes #5129
1358:
1359: Daniel Stenberg (20 Mar 2020)
1360: - tests: add test 430, 431 and 432 to verify the --config fix
1361:
1362: Verify the fixes in 4e0b4fee4
1363:
1364: - [Rici Lake brought this change]
1365:
1366: cmdline: fix handling of OperationConfig linked list (--next)
1367:
1368: Ensures that -K/--config inserts new items at the end of the list
1369: instead of overwriting the second item, and that after a -K/--config
1370: option has been parsed, the option parser's view of the current config
1371: is update.
1372:
1373: Fixes #5120
1374: Closes #5123
1375:
1376: Marc Hoersken (20 Mar 2020)
1377: - test2100: fix static port instead of dynamic value being used
1378:
1379: - test970: fix static ip:port instead of dynamic values being used
1380:
1381: Daniel Stenberg (19 Mar 2020)
1382: - secure transport: remove the BACKEND define kludge
1383:
1384: Closes #5122
1385:
1386: - mbedtls: remove the BACKEND define kludge
1387:
1388: - bearssl: remove the BACKEND define kludge
1389:
1390: - wolfssl: remove the BACKEND define kludge
1391:
1392: - nss: remove the BACKEND define kludge
1393:
1394: - gnutls: remove the BACKEND define kludge
1395:
1396: - openssl: remove the BACKEND define kludge
1397:
1398: Use a proper variable instead to make it easier to use a debugger and
1399: read the code.
1400:
1401: Marc Hoersken (19 Mar 2020)
1402: - tests: make Python-based servers compatible with Python 2 and 3
1403:
1404: Update smbserver.py and negtelnetserver.py to be compatible with
1405: Python 3 while staying backwards-compatible to support Python 2.
1406:
1407: Fix string encoding and handling of echoed and transferred data.
1408:
1409: Tested with both Python 2.7.17 and Python 3.7.7
1410:
1411: Reported-by: Daniel Stenberg
1412: Assisted-by: Kamil Dudka
1413: Reviewed-by: Marcel Raad
1414:
1415: Fixes #5104
1416: Closes #5110
1417:
1418: Daniel Stenberg (18 Mar 2020)
1419: - writeout_json: use curl_off_t printf() option for the time output
1420:
1421: Follow-up to: 04c03416e68fd635a15
1422:
1423: Closes #5115
1424:
1425: - RELEASE-NOTES: synced
1426:
1427: Uh, I missed this in 1a46b218db
1428:
1429: - RELEASE-NOTES: synced
1430:
1431: ... and bumped curlver.h to 7.70.0
1432:
1433: Jay Satiro (18 Mar 2020)
1434: - http2: Fix erroneous debug message that h2 connection closed
1435:
1436: Prior to this change in libcurl debug builds http2 stream closure was
1437: erroneously referred to as connection closure.
1438:
1439: Before:
1440: * nread <= 0, server closed connection, bailing
1441:
1442: After:
1443: * nread == 0, stream closed, bailing
1444:
1445: Closes https://github.com/curl/curl/pull/5118
1446:
1447: Daniel Stenberg (18 Mar 2020)
1448: - tool_setopt: correct the copyright year range
1449:
1450: Follow-up to 5450428491
1451:
1452: Jay Satiro (18 Mar 2020)
1453: - [Johannes Schindelin brought this change]
1454:
1455: schannel: add "best effort" revocation check option
1456:
1457: - Implement new option CURLSSLOPT_REVOKE_BEST_EFFORT and
1458: --ssl-revoke-best-effort to allow a "best effort" revocation check.
1459:
1460: A best effort revocation check ignores errors that the revocation check
1461: was unable to take place. The reasoning is described in detail below and
1462: discussed further in the PR.
1463:
1464: ---
1465:
1466: When running e.g. with Fiddler, the schannel backend fails with an
1467: unhelpful error message:
1468:
1469: Unknown error (0x80092012) - The revocation function was unable
1470: to check revocation for the certificate.
1471:
1472: Sadly, many enterprise users who are stuck behind MITM proxies suffer
1473: the very same problem.
1474:
1475: This has been discussed in plenty of issues:
1476: https://github.com/curl/curl/issues/3727,
1477: https://github.com/curl/curl/issues/264, for example.
1478:
1479: In the latter, a Microsoft Edge developer even made the case that the
1480: common behavior is to ignore issues when a certificate has no recorded
1481: distribution point for revocation lists, or when the server is offline.
1482: This is also known as "best effort" strategy and addresses the Fiddler
1483: issue.
1484:
1485: Unfortunately, this strategy was not chosen as the default for schannel
1486: (and is therefore a backend-specific behavior: OpenSSL seems to happily
1487: ignore the offline servers and missing distribution points).
1488:
1489: To maintain backward-compatibility, we therefore add a new flag
1490: (`CURLSSLOPT_REVOKE_BEST_EFFORT`) and a new option
1491: (`--ssl-revoke-best-effort`) to select the new behavior.
1492:
1493: Due to the many related issues Git for Windows and GitHub Desktop, the
1494: plan is to make this behavior the default in these software packages.
1495:
1496: The test 2070 was added to verify this behavior, adapted from 310.
1497:
1498: Based-on-work-by: georgeok <giorgos.n.oikonomou@gmail.com>
1499: Co-authored-by: Markus Olsson <j.markus.olsson@gmail.com>
1500: Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1501:
1502: Closes https://github.com/curl/curl/pull/4981
1503:
1504: - multi: Improve parameter check for curl_multi_remove_handle
1505:
1506: - If an easy handle is owned by a multi different from the one specified
1507: then return CURLM_BAD_EASY_HANDLE.
1508:
1509: Prior to this change I assume user error could cause corruption.
1510:
1511: Closes https://github.com/curl/curl/pull/5116
1512:
1513: Viktor Szakats (17 Mar 2020)
1514: - windows: suppress UI in all CryptAcquireContext() calls
1515:
1516: Ref: https://docs.microsoft.com/windows/win32/api/wincrypt/nf-wincrypt-cryptacquirecontexta#parameters
1517: Reviewed-by: Marc Hörsken
1518: Closes https://github.com/curl/curl/pull/5088
1519:
1520: Daniel Stenberg (17 Mar 2020)
1521: - writeout_json: add missing comma to fix the HTTP version
1522:
1523: Follow-up to 04c03416e68fd635a15
1524:
1525: - test 970: verify --write-out '%{json}'
1526:
1527: Makes curl_easy_getinfo() of "variable" numerical content instead return
1528: the number set in the env variable `CURL_TIME`.
1529:
1530: Makes curl_version() of "variable" textual content. This guarantees a
1531: stable version string which can be tested against. Environment variable
1532: `CURL_VERSION` defines the content.
1533:
1534: Assisted-by: Mathias Gumz
1535:
1536: - [Mathias Gumz brought this change]
1537:
1538: writeout: support to generate JSON output
1539:
1540: This commit adds support to generate JSON via the writeout feature:
1541:
1542: -w "%{json}"
1543:
1544: It leverages the existing infrastructure as much as possible. Thus,
1545: generating the JSON on STDERR is possible by:
1546:
1547: -w "%{stderr}%{json}"
1548:
1549: This implements a variant of
1550: https://github.com/curl/curl/wiki/JSON#--write-out-json.
1551:
1552: Closes #4870
1553:
1554: - CI: stop ignoring 323, it is disabled
1555:
1556: - DISABLED: disable test 323
1557:
1558: The test uses SRP to "a server not supporting it" but modern stunnel
1559: versions will silently accept it and remain happy. The test is therefore
1560: faulty.
1561:
1562: I haven't figured out how to make stunnel explicitly reject SRP-using
1563: connects.
1564:
1565: Reported-by: Marc Hörsken
1566: Fixes #5105
1567: Closes #5113
1568:
1569: Marc Hoersken (17 Mar 2020)
1570: - ci/tests: increase timeouts for torture builds on Azure Pipelines
1571:
1572: For some reason the torture builds have slowed down recently.
1573:
1574: Reported-by: Daniel Stenberg
1575:
1576: Daniel Stenberg (16 Mar 2020)
1577: - cmake: add support for building with wolfSSL
1578:
1579: My working build cmdline:
1580:
1581: $ cmake -DCMAKE_PREFIX_PATH=$HOME/build-wolfssl -DCMAKE_USE_WOLFSSL=ON .
1582:
1583: Assisted-by: Brad King
1584: Closes #5095
1585:
1586: - tool_operate: fix add_parallel_transfers when more are in queue
1587:
1588: Trying to return early from the function if no new transfers were added
1589: would break the "morep" argument and cause issues. This could lead to
1590: zero content "transfers" (within quotes since they would never be
1591: started) when parallel-max was reduced.
1592:
1593: Reported-by: Gavin Wong
1594: Analyzed-by: Jay Satiro
1595: Fixes #4937
1596: Closes #5112
1597:
1598: - vtls: free ssl_config leftovers on out-of-memory
1599:
1600: Torture testing 2034 and 2037 found this.
1601:
1602: Reported-by: Marc Hörsken
1603: Fixes #5108
1604: Closes #5109
1605:
1606: Marc Hoersken (16 Mar 2020)
1607: - ci/tests: fix Azure Pipelines not running for pull requests
1608:
1609: Closes #5111
1610:
1611: Daniel Stenberg (15 Mar 2020)
1612: - gskit: update the copyright year range
1613:
1614: Follow-up from 083603c63a3
1615:
1616: Marc Hoersken (15 Mar 2020)
1617: - gskit: use our internal select wrapper for portability
1618:
1619: Follow up to c52b342
1620: Closes #5106
1621:
1622: - tests: fix verification of stdout in test 1452 due to newline
1623:
1624: Fixes test1452:41:1: error: missing </stdout> tag before </verify>
1625:
1626: - ci/tests: install impacket for SMB tests on FreeBSD using CirrusCI
1627:
1628: Also force the package index/cache to be updated before installing.
1629:
1630: Closes #5103
1631:
1632: - tests/README: add note about manually installing python-impacket
1633:
1634: Follow up to 4be2560
1635:
1636: Daniel Stenberg (15 Mar 2020)
1637: - transfer: cap retries of "dead connections" to 5
1638:
1639: When libcurl retries a connection due to it being "seemingly dead" or by
1640: REFUSED_STREAM, it will now only do it up five times before giving up,
1641: to avoid never-ending loops.
1642:
1643: Reported-by: Dima Tisnek
1644: Bug: https://curl.haxx.se/mail/lib-2020-03/0044.html
1645: Closes #5074
1646:
1647: - TODO: TLS-PSK with OpenSSL
1648:
1649: Closes #5081
1650:
1651: Marc Hoersken (15 Mar 2020)
1652: - select: add 'timeout_ms' wrap-around precaution to Curl_select
1653:
1654: - select: fix 'pending_ms' is assigned a value that is never used
1655:
1656: Detected by Codacy
1657:
1658: - select: move duplicate select preparation code into Curl_select
1659:
1660: Reviewed by Daniel Stenberg
1661: Reviewed by Marcel Raad
1662: Closes #5078
1663:
1664: Daniel Stenberg (15 Mar 2020)
1665: - connect: happy eyeballs cleanup
1666:
1667: Make sure each separate index in connn->tempaddr[] is used for a fixed
1668: family (and only that family) during the connection process.
1669:
1670: If family one takes a long time and family two fails immediately, the
1671: previous logic could misbehave and retry the same family two address
1672: repeatedly.
1673:
1674: Reported-by: Paul Vixie
1675: Reported-by: Jay Satiro
1676: Fixes #5083
1677: Fixes #4954
1678: Closes #5089
1679:
1680: Marc Hoersken (15 Mar 2020)
1681: - ci/tests: fix and align setting TFLAGS for make test-nonflaky
1682:
1683: - ci/tests: install test suite dependencies stunnel and impacket
1684:
1685: - tests: remove python_dependencies for smbserver from our tree
1686:
1687: Users of the SMB tests will have to install impacket manually.
1688:
1689: Reasoning: our in-tree version of impacket was quite outdated
1690: and only compatible with Python 2 which is already end-of-life.
1691: Upgrading to Python 3 and a compatible impacket version would
1692: require to import additional Python-only and CPython-extension
1693: dependencies. This would have hindered portability enormously.
1694:
1695: Closes #5094
1696:
1697: Jay Satiro (14 Mar 2020)
1698: - Makefile.m32: Improve windres parameter compatibility
1699:
1700: - s/COFF/coff/
1701:
1702: Some versions of windres do not recognize uppercase COFF as a valid
1703: way to specify the COFF output format.
1704:
1705: Reported-by: Steven Penny
1706:
1707: Fixes https://github.com/curl/curl/issues/5099
1708: Closes https://github.com/curl/curl/pull/5101
1709:
1710: - easy: Fix curl_easy_duphandle for builds missing IPv6 that use c-ares
1711:
1712: - Ignore CURLE_NOT_BUILT_IN errors returned by c-ares functions in
1713: curl_easy_duphandle.
1714:
1715: Prior to this change if c-ares was used as the resolver backend and
1716: either it was too old or libcurl was built without IPv6 support then
1717: some of our resolver functions could return CURLE_NOT_BUILT_IN to
1718: curl_easy_duphandle causing it to fail.
1719:
1720: Caused by c8f086b which shipped in 7.69.1.
1721:
1722: Reported-by: Karl Chen
1723:
1724: Fixes https://github.com/curl/curl/issues/5097
1725: Closes https://github.com/curl/curl/pull/5100
1726:
1727: Daniel Stenberg (13 Mar 2020)
1728: - docs: add warnings about FILE: URLs on Windows
1729:
1730: - --url man page section
1731: - libcurl-security.3 gets the full text
1732: - CURLOPT_URL.3
1733:
1734: Reported-by: Tim Sedlmeyer
1735:
1736: - server/getpart: make the "XML-parser" stricter
1737:
1738: When extracting a <section> <part> and there's no </part> before
1739: </section>, this now outputs an error and returns a wrong string to
1740: make users spot the mistake.
1741:
1742: Ref: #5070
1743: Closes #5071
1744:
1745: Marc Hoersken (13 Mar 2020)
1746: - impacket: some more Python 3 code compatibility updates
1747:
1748: This makes smbserver load on Python 3, but still not work completely.
1749:
1750: - smbserver: pin Python version to 2 since we are not yet 3 compatible
1751:
1752: Even though the existing code can be fixed to run on Python 3, the
1753: tests will fail due to the Unicode transition the protocol is invalid.
1754:
1755: Follow up to ee63837
1756: Closes #5085
1757:
1758: Daniel Stenberg (12 Mar 2020)
1759: - [Viktor Szakats brought this change]
1760:
1761: cleanup: fix some text/comment typos
1762:
1763: Closes #5087
1764:
1765: Marc Hoersken (12 Mar 2020)
1766: - smbserver: fix Python version specific ConfigParser import
1767:
1768: Follow up to ee63837 and 8c7c4a6
1769: Fixes #5077
1770:
1771: Daniel Stenberg (11 Mar 2020)
1772: - RELEASE-NOTES: synced
1773:
1774: bumped to 7.69.2
1775:
1776: Dan Fandrich (11 Mar 2020)
1777: - tests/data: Fix some XML formatting issues in test cases
1778:
1779: This allows these test files to pass xmllint.
1780:
1781: Daniel Stenberg (11 Mar 2020)
1782: - [Muhammad Herdiansyah brought this change]
1783:
1784: Makefile: run the cd commands in a subshell
1785:
1786: In bmake, if the directory is changed (with cd or anything else), bmake
1787: won't return to the "root directory" on the next command (in the same
1788: Makefile rule). This commit runs the cd command in a subshell so it
1789: would work in bmake.
1790:
1791: Closes #5073
1792:
1793: - configure: convert -I to -isystem as a last step
1794:
1795: As all the -I uses in CFLAGS at that point are for system headers and
1796: third party libraries this helps us remove/ignore warnings on those!
1797:
1798: Closes #5060
1799:
1800: - configure: fix -pedantic-errors for GCC 5 and later
1801:
1802: If --enable-werror is used.
1803:
1804: Follow-up to d5c0351055d5709da which added it too early in the configure
1805: script before $compiler_num was set correctly and thus this option was
1806: never used.
1807:
1808: Reported-by: Stepan Efremov
1809: Fixes #5067
1810: Closes #5068
1811:
1812: - configure: document 'compiler_num' for gcc
1813:
1814: The CURL_CHECK_COMPILER_GNU_C function sets the number to MAJOR*100 +
1815: MINOR and ignores the patch version, and since gcc version 7 it only
1816: sets it to MAJOR*100.
1817:
1818: Reported-by: Stepan Efremov
1819: Ref: #5067
1820: Closes #5069
1821:
1822: Version 7.69.1 (11 Mar 2020)
1823:
1824: Daniel Stenberg (11 Mar 2020)
1825: - RELEASE-NOTES: 7.69.1
1826:
1827: - THANKS: from the 7.69.1 release
1828:
1829: - [Marc Hoersken brought this change]
1830:
1831: test1129: fix invalid case of closing XML-tag and Content-Length
1832:
1833: Fixes #5070
1834: Closes #5072
1835:
1836: Marc Hoersken (10 Mar 2020)
1837: - tests/data: fix static ip instead of dynamic value being used
1838:
1839: Follow up to 94ced8e
1840:
1841: - tests/data: fix static ip:port instead of dynamic values being used
1842:
1843: Closes #5065
1844:
1845: - tests/server: fix missing use of exe_ext helper function
1846:
1847: Follow up to 9819984 and 3dce984
1848: Reviewed-By: Daniel Stenberg
1849: Closes #5064
1850:
1851: - runtests: log minimal and maximal used port numbers
1852:
1853: Daniel Stenberg (9 Mar 2020)
1854: - [Jim Fuller brought this change]
1855:
1856: sftp: fix segfault regression introduced by #4747
1857:
1858: This fix adds a defensive check for the case where the char *name in
1859: struct libssh2_knownhost is NULL
1860:
1861: Fixes #5041
1862: Closes #5062
1863:
1864: - RELEASE-NOTES: synced
1865:
1866: - socks4: fix host resolve regression
1867:
1868: 1. The socks4 state machine was broken in the host resolving phase
1869:
1870: 2. The code now insists on IPv4-only when using SOCKS4 as the protocol
1871: only supports that.
1872:
1873: Regression from #4907 and 4a4b63d, shipped in 7.69.0
1874:
1875: Reported-by: amishmm on github
1876: Bug: https://github.com/curl/curl/issues/5053#issuecomment-596191594
1877: Closes #5061
1878:
1879: - [Patrick Monnerat brought this change]
1880:
1881: silly web server: silent a compilation warning
1882:
1883: Recent gcc warns when byte count of strncpy() equals the destination
1884: buffer size. Since the destination buffer is previously cleared and
1885: the source string is always shorter, reducing the byte count by one
1886: silents the warning without affecting the result.
1887:
1888: Closes #5059
1889:
1890: - [Patrick Monnerat brought this change]
1891:
1892: cookie: get_top_domain() sets zero length for null domains
1893:
1894: This silents a compilation warning with gcc -O3.
1895:
1896: - [Patrick Monnerat brought this change]
1897:
1898: test 1560: avoid valgrind false positives
1899:
1900: When using maximum code optimization level (-O3), valgrind wrongly
1901: detects uses of uninitialized values in strcmp().
1902:
1903: Preset buffers with all zeroes to avoid that.
1904:
1905: Steve Holme (8 Mar 2020)
1906: - sha256: Added WinCrypt implementation
1907:
1908: Closed #5030
1909:
1910: - sha256: Added SecureTransport implementation
1911:
1912: Daniel Stenberg (7 Mar 2020)
1913: - lib1564: reduce number of mid-wait wakeup calls
1914:
1915: This test does A LOT of *wakeup() calls and then calls curl_multi_poll()
1916: twice. The first *poll() is then expected to return early and the second
1917: not - as the first is supposed to drain the socketpair pipe.
1918:
1919: It turns out however that when given "excessive" amounts of writes to
1920: the pipe, some operating systems (the Solaris based are known) will
1921: return EAGAIN before the pipe is drained, which in our test case causes
1922: the second *poll() call to also abort early.
1923:
1924: This change attempts to avoid the OS-specific behaviors in the test by
1925: reducing the amount of wakeup calls from 1234567 to 10.
1926:
1927: Reported-by: Andy Fiddaman
1928: Fixes #5037
1929: Closes #5058
1930:
1931: - [Patrick Monnerat brought this change]
1932:
1933: mime: fix the binary encoder to handle large data properly
1934:
1935: New test 666 checks this is effective.
1936: As upload buffer size is significant in this kind of tests, shorten it
1937: in similar test 652.
1938:
1939: Fixes #4860
1940: Closes #4833
1941: Reported-by: RuurdBeerstra on github
1942:
1943: - [Patrick Monnerat brought this change]
1944:
1945: mime: do not perform more than one read in a row
1946:
1947: Input buffer filling may delay the data sending if data reads are slow.
1948: To overcome this problem, file and callback data reads do not accumulate
1949: in buffer anymore. All other data (memory data and mime framing) are
1950: considered as fast and still concatenated in buffer.
1951: As this may highly impact performance in terms of data overhead, an early
1952: end of part data check is added to spare a read call.
1953: When encoding a part's data, an encoder may require more bytes than made
1954: available by a single read. In this case, the above rule does not apply
1955: and reads are performed until the encoder is able to deliver some data.
1956:
1957: Tests 643, 644, 645, 650 and 654 have been adapted to the output data
1958: changes, with test data size reduced to avoid the boredom of long lists of
1959: 1-byte chunks in verification data.
1960: New test 667 checks mimepost using single-byte read callback with encoder.
1961: New test 668 checks the end of part data early detection.
1962:
1963: Fixes #4826
1964: Reported-by: MrdUkk on github
1965:
1966: - [Patrick Monnerat brought this change]
1967:
1968: mime: latch last read callback status.
1969:
1970: In case a read callback returns a status (pause, abort, eof,
1971: error) instead of a byte count, drain the bytes read so far but
1972: remember this status for further processing.
1973: Takes care of not losing data when pausing, and properly resume a
1974: paused mime structure when requested.
1975: New tests 670-673 check unpausing cases, with easy or multi
1976: interface and mime or form api.
1977:
1978: Fixes #4813
1979: Reported-by: MrdUkk on github
1980:
1981: Marc Hoersken (7 Mar 2020)
1982: - runtests: fix missing use of exe_ext helper function
1983:
1984: Daniel Stenberg (7 Mar 2020)
1985: - [Ernst Sjöstrand brought this change]
1986:
1987: ares: store dns parameters for duphandle
1988:
1989: With c-ares the dns parameters lives in ares_channel. Store them in the
1990: curl handle and set them again in easy_duphandle.
1991:
1992: Regression introduced in #3228 (6765e6d), shipped in curl 7.63.0.
1993:
1994: Fixes #4893
1995: Closes #5020
1996: Signed-off-by: Ernst Sjöstrand <ernst.sjostrand@verisure.com>
1997:
1998: - version: make curl_version* thread-safe without using global context
1999:
2000: Closes #5010
2001:
2002: - RELEASE-NOTES: synced
2003:
2004: Marc Hoersken (7 Mar 2020)
2005: - tests: use native Sleep function as fallback on Windows
2006:
2007: Reviewed-By: Daniel Stenberg
2008: Closes #5054
2009:
2010: - perl: align order and completeness of Windows OS checks
2011:
2012: Daniel Stenberg (7 Mar 2020)
2013: - tool_cb_see: set correct copyright year range
2014:
2015: Follow-up to a39e5bfb9
2016:
2017: Marc Hoersken (7 Mar 2020)
2018: - seek: fix fallback for missing ftruncate on Windows
2019:
2020: This fixes test 198 on versions of MinGW-w64 without ftruncate
2021:
2022: Reviewed-By: Daniel Stenberg
2023: Reviewed-By: Marcel Raad
2024: Closes #5055
2025:
2026: - config-win32: Windows does not have ftruncate
2027:
2028: Daniel Stenberg (7 Mar 2020)
2029: - pause: force a connection (re-)check after unpausing
2030:
2031: There might be data available that was already read off the socket, for
2032: example in the TLS layer.
2033:
2034: Reported-by: Anders Berg
2035: Fixes #4966
2036: Closes #5049
2037:
2038: - socks5: switch state properly when the resolve is done
2039:
2040: Regression from 4a4b63d (and #4907)
2041: Reported-by: vitaha85 on github
2042: Fixes #5053
2043: Closes #5056
2044:
2045: Jay Satiro (7 Mar 2020)
2046: - libssh: Fix matching user-specified MD5 hex key
2047:
2048: Prior to this change a match would never be successful because it
2049: was mistakenly coded to compare binary data from libssh to a
2050: user-specified hex string (ie CURLOPT_SSH_HOST_PUBLIC_KEY_MD5).
2051:
2052: Reported-by: fds242@users.noreply.github.com
2053:
2054: Fixes https://github.com/curl/curl/issues/4971
2055: Closes https://github.com/curl/curl/pull/4974
2056:
2057: Daniel Stenberg (6 Mar 2020)
2058: - pause: bail out on bad input
2059:
2060: A NULL easy handle or an easy handle without an associated connection
2061: cannot be paused or unpaused.
2062:
2063: Closes #5050
2064:
2065: Steve Holme (6 Mar 2020)
2066: - unit1612: fixed the inclusion and compilation of the HMAC unit test
2067:
2068: Follow up to 3f74e5e6 to fix:
2069:
2070: - A typo in Makefile.inc where unit1611 was used instead
2071: - Some compilation issues in unit1612.c
2072:
2073: Closes #5024
2074:
2075: Daniel Stenberg (6 Mar 2020)
2076: - pause: return early for calls that don't change pause state
2077:
2078: Reviewed-by: Patrick Monnerat
2079: Ref: #4833
2080: Closes #5026
2081:
2082: Jay Satiro (6 Mar 2020)
2083: - curl_share_setopt.3: Note sharing cookies doesn't enable the engine
2084:
2085: Follow-up to d0a7ee3 which fixed a bug in 7.66.0 that caused
2086: CURL_LOCK_DATA_COOKIE to enable the easy handle's cookie engine.
2087:
2088: Bug: https://curl.haxx.se/mail/lib-2020-03/0019.html
2089: Reported-by: Felipe Gasper
2090:
2091: Closes https://github.com/curl/curl/pull/5048
2092:
2093: - multi: skip EINTR check on wakeup socket if it was closed
2094:
2095: - Don't check errno on wakeup socket if sread returned 0 since sread
2096: doesn't set errno in that case.
2097:
2098: This is a follow-up to cf7760a from several days ago which fixed
2099: Curl_multi_wait to stop busy looping sread on the non-blocking wakeup
2100: socket if it was closed (ie sread returns 0). Due to a logic error it
2101: was still possible to busy loop in that case if errno == EINTR.
2102:
2103: Closes https://github.com/curl/curl/pull/5047
2104:
2105: Daniel Stenberg (6 Mar 2020)
2106: - transfer: set correct copyright year range
2107:
2108: - urldata: remove the 'stream_was_rewound' connectdata struct member
2109:
2110: ... as it is never set anywhere.
2111:
2112: Follow-up to 2f44e94ef
2113: Closes #5046
2114:
2115: - Revert "pause: force-drain the transfer on unpause"
2116:
2117: This reverts commit fa0216b294af4c7113a9040ca65eefc7fc18ac1c (from #5000)
2118:
2119: Clearly that didn't solve the problem correctly.
2120:
2121: Reported-by: Christopher Reid
2122: Reopens #4966
2123: Fixes #5044
2124:
2125: - RELEASE-NOTES: synced
2126:
2127: and bumped curlver.h
2128:
2129: - MANUAL: update a dict-using command line
2130:
2131: The 'web1913' database is now invalid, use 'gcide' instead.
2132:
2133: - KNOWN_BUGS: configure --with-gssapi with Heimdal is ignored on macOS
2134:
2135: Closes #3841
2136:
2137: - polarssl: remove more references and mentions
2138:
2139: Assisted-by: Jay Satiro
2140: Follow-up to 6357a19ff29dac04
2141: Closes #5036
2142:
2143: Marc Hoersken (4 Mar 2020)
2144: - tests: wrap ignored test failures in braces
2145:
2146: - tests: align some Windows sleep defines with each other
2147:
2148: - tests: try to make sleeping portable by avoiding select
2149:
2150: select does not support just waiting on Windows:
2151: https://perldoc.perl.org/perlport.html#select
2152:
2153: Reviewed-By: Daniel Stenberg
2154: Closes #5035
2155:
2156: Daniel Stenberg (4 Mar 2020)
2157: - runtests.1: rephrase how to specify what tests to run
2158:
2159: Also mention the new tilde-prefixed way to ignore test results.
2160:
2161: Reviewed-By: Marc Hoersken
2162: Closes #5033
2163:
2164: - cirrus-ci: disable the FreeBSD 13 builds
2165:
2166: FreeBSD 13.0 is apparently close to a year away from a stable release
2167: and has proven to cause intermittent builds failures recently.
2168:
2169: Assisted-by: Dan Fandrich
2170: Assisted-by: Fedor Korotkov
2171: Fixes #5028
2172: Closes #5029
2173:
2174: Version 7.69.0 (4 Mar 2020)
2175:
2176: Daniel Stenberg (4 Mar 2020)
2177: - RELEASE-NOTES: 7.69.0
2178:
2179: - THANKS: from 7.69.0
2180:
2181: Now sorted case insensitive
2182:
2183: Marc Hoersken (3 Mar 2020)
2184: - ci/tests: fix escaping of testnames and disable proxy for CI APIs
2185:
2186: Follow up to ada581f and c0d8b96
2187: Closes #5031
2188:
2189: Jay Satiro (3 Mar 2020)
2190: - cmake: Show HTTPS-proxy in the features output
2191:
2192: - Show HTTPS-proxy in the features output for those backends that
2193: support it: OpenSSL, GnuTLS and NSS.
2194:
2195: Prior to this change HTTPS-proxy was missing from the cmake features
2196: output even if curl was built with it. Only cmake output was affected.
2197: Both the library and tool correctly reported the feature.
2198:
2199: Bug: https://curl.haxx.se/mail/lib-2020-03/0008.html
2200: Reported-by: David Lopes
2201:
2202: Closes https://github.com/curl/curl/pull/5025
2203:
2204: Marc Hoersken (3 Mar 2020)
2205: - ci/tests: Make it possible to still run but ignore failing tests
2206:
2207: This enables the development of a solution for the failing tests by
2208: running them on CI while ignoring their result for the overall status.
2209:
2210: Closes #4994
2211:
2212: - README.md: add Azure DevOps Pipelines build status badge
2213:
2214: - ci/tests: Move CI test result creation above environment setup
2215:
2216: This avoids using our test servers as proxy to the AppVeyor API.
2217:
2218: Closes #5022
2219:
2220: - ci/tests: Send test results to AppVeyor for status overview
2221:
2222: Closes #5021
2223:
2224: Daniel Stenberg (3 Mar 2020)
2225: - Revert "sha256: Added SecureTransport implementation"
2226:
2227: This reverts commit 4feb38deed33fed14ff7c370a6a9153c661dbb9c (from #4956)
2228:
2229: That commit broke test 1610 on macos builds without TLS.
2230:
2231: Closes #5027
2232:
2233: - dist: include tests/azure.pm in the tarball
2234:
2235: Bug: https://github.com/curl/curl/commit/ada581f2cc32f48c1629b729707ac19208435b27#commitcomment-37601589
2236: Reported-by: Marcel Raad
2237:
2238: Steve Holme (3 Mar 2020)
2239: - configure.ac: Disable metalink if mbedTLS is specified
2240:
2241: Follow up to cdcc9df1 and #5006. Even though I mentioned mbedTLS as
2242: being one of the backends that metalink needs to be disabled for, I
2243: seem to have included it in the list of allowed SSL/TLS backends in
2244: comnfigure.ac :(
2245:
2246: Closes #5013
2247:
2248: - sha256: Tidy up following recent changes
2249:
2250: Reviewed-by: Daniel Stenberg
2251: Closes #4956
2252:
2253: - sha256: Added WinCrypt implementation
2254:
2255: - sha256: Added SecureTransport implementation
2256:
2257: - sha256: Added mbedtls implementation
2258:
2259: - sha256: Added GNU TLS gcrypt implementation
2260:
2261: - sha256: Added GNU TLS Nettle implementation
2262:
2263: Jay Satiro (2 Mar 2020)
2264: - curl_escape.3: Add a link to curl_free
2265:
2266: Ref: https://github.com/curl/curl/pull/5016#issuecomment-593628582
2267:
2268: - curl_getenv.3: Fix the memory handling description
2269:
2270: - Tell the user to call curl_free() to free the pointer returned by
2271: curl_getenv().
2272:
2273: Prior to this change the user was directed to call free(), but that
2274: would not work in cases where the library and application use separate C
2275: runtimes and therefore have separate heap memory management.
2276:
2277: Closes https://github.com/curl/curl/pull/5016
2278:
2279: Daniel Stenberg (2 Mar 2020)
2280: - [Nick Zitzmann brought this change]
2281:
2282: md4: use init/update/final functions in Secure Transport
2283:
2284: We can use CC_MD4_Init/Update/Final without having to allocate memory
2285: directly.
2286:
2287: Closes #4979
2288:
2289: Marc Hoersken (2 Mar 2020)
2290: - ci/tests: some MacOS builds randomly take longer than 20min
2291:
2292: Daniel Stenberg (2 Mar 2020)
2293: - multi_wait: stop loop when sread() returns zero
2294:
2295: It's unclear why it would ever return zero here, but this change fixes
2296: Robert's problem and it shouldn't loop forever...
2297:
2298: Reported-by: Robert Dunaj
2299: Bug: https://curl.haxx.se/mail/archive-2020-02/0011.html
2300: Closes #5019
2301:
2302: - http: mark POSTs with no body as "upload done" from the start
2303:
2304: As we have logic that checks if we get a >= 400 reponse code back before
2305: the upload is done, which then got confused since it wasn't "done" but
2306: yet there was no data to send!
2307:
2308: Reported-by: IvanoG on github
2309: Fixes #4996
2310: Closes #5002
2311:
2312: - tests: disable 962, 963 and 964 on Windows
2313:
2314: These tests are also doing UTF-8 SMTP.
2315:
2316: Follow-up to df207d2dd93b9e73
2317:
2318: Marc Hoersken (2 Mar 2020)
2319: - ci/tests: fine-tune Azure Pipeline timeouts with a small puffer
2320:
2321: Daniel Stenberg (2 Mar 2020)
2322: - configure: bump the AC_COPYRIGHT year range
2323:
2324: - [Steve Holme brought this change]
2325:
2326: tests: disable SMTP UTF-8 tests on Windows
2327:
2328: Fixes #4988
2329: Closes #4992
2330:
2331: - formdata/mime: copyright year range update
2332:
2333: Due to the merge/revert cycle
2334:
2335: - Revert "mime: latch last read callback status."
2336:
2337: This reverts commit 87869e38d7afdec3ef1bb4965711458b088e254f.
2338:
2339: Fixes #5014
2340: Closes #5015
2341: Reopens #4833
2342:
2343: - Revert "mime: do not perform more than one read in a row"
2344:
2345: This reverts commit ed0f357f7d25566110d4302f33759f4ffb5a6f83.
2346:
2347: - Revert "mime: fix the binary encoder to handle large data properly"
2348:
2349: This reverts commit b2caaa0681f329eed317ffb6ae6927f4a539f0c1.
2350:
2351: - altsvc: both h3 backends now speak h3-27
2352:
2353: ... also updated the HTTP3 build description for ngtcp2 accordingly.
2354:
2355: - [Patrick Monnerat brought this change]
2356:
2357: mime: fix the binary encoder to handle large data properly
2358:
2359: New test 666 checks this is effective.
2360: As upload buffer size is significant in this kind of tests, shorten it
2361: in similar test 652.
2362:
2363: Fixes #4860
2364: Reported-by: RuurdBeerstra on github
2365:
2366: - [Patrick Monnerat brought this change]
2367:
2368: mime: do not perform more than one read in a row
2369:
2370: Input buffer filling may delay the data sending if data reads are slow.
2371: To overcome this problem, file and callback data reads do not accumulate
2372: in buffer anymore. All other data (memory data and mime framing) are
2373: considered as fast and still concatenated in buffer.
2374: As this may highly impact performance in terms of data overhead, an early
2375: end of part data check is added to spare a read call.
2376: When encoding a part's data, an encoder may require more bytes than made
2377: available by a single read. In this case, the above rule does not apply
2378: and reads are performed until the encoder is able to deliver some data.
2379:
2380: Tests 643, 644, 645, 650 and 654 have been adapted to the output data
2381: changes, with test data size reduced to avoid the boredom of long lists of
2382: 1-byte chunks in verification data.
2383: New test 664 checks mimepost using single-byte read callback with encoder.
2384: New test 665 checks the end of part data early detection.
2385:
2386: Fixes #4826
2387: Reported-by: MrdUkk on github
2388:
2389: - [Patrick Monnerat brought this change]
2390:
2391: mime: latch last read callback status.
2392:
2393: In case a read callback returns a status (pause, abort, eof,
2394: error) instead of a byte count, drain the bytes read so far but
2395: remember this status for further processing.
2396: Takes care of not losing data when pausing, and properly resume a
2397: paused mime structure when requested.
2398: New tests 670-673 check unpausing cases, with easy or multi
2399: interface and mime or form api.
2400:
2401: Fixes #4813
2402: Reported-by: MrdUkk on github
2403: Closes #4833
2404:
2405: Steve Holme (1 Mar 2020)
2406: - unit1651: Fixed conversion compilation warning
2407:
2408: 371:17: warning: conversion to 'unsigned char' from 'int' may alter its
2409: value [-Wconversion]
2410:
2411: Closes #5008
2412:
2413: - configure.ac: Disable metalink support if an incompatible SSL/TLS specified
2414:
2415: tool_metalink only supports cryptography from OpenSSL, GnuTLS, NSS,
2416: The Win32 Crypto library and Apple's Common Crypto library.
2417:
2418: If an TLS backend such as mbedTLS or WolfSSL is specified then the
2419: following error is given during compilation along, with a load of
2420: unresolved extern errors:
2421:
2422: Can't compile METALINK support without a crypto library.
2423:
2424: Reviewed-by: Daniel Stenberg
2425: Closes #5006
2426:
2427: Marc Hoersken (1 Mar 2020)
2428: - ci/tests: Update Azure DevOps pipeline job display names
2429:
2430: Make the configure step more descriptive and align others.
2431:
2432: - ci/tests: Fix typo in previous commit 597cf2
2433:
2434: - ci/tests: Make sure that the AZURE_ACCESS_TOKEN is available
2435:
2436: For security reasons the access token is not available to PR builds.
2437: Therefore we should not try to use the DevOps API with an empty token.
2438:
2439: Daniel Stenberg (1 Mar 2020)
2440: - build: remove all HAVE_OPENSSL_ENGINE_H defines
2441:
2442: ... as there's nothing in the code that actually uses the define! The
2443: last reference was removed in 38203f158.
2444:
2445: Closes #5007
2446:
2447: Jay Satiro (29 Feb 2020)
2448: - [Rolf Eike Beer brought this change]
2449:
2450: CMake: clean up and improve build procedures
2451:
2452: - remove check for unsupported old CMake versions
2453:
2454: - do not link to c-ares library twice
2455:
2456: - modernize custom Find modules
2457:
2458: - FindLibSSH2:
2459: - pass version to FPHSA to show it in the output
2460: - use LIBSSH2_VERSION define to extract the version number in
2461: one shot. This variable exists in the header for 10 years.
2462: - remove unneeded code
2463:
2464: - FindNGHTTP2.cmake:
2465: - drop needless FPHSA argument
2466: - mark found variables as advanced
2467:
2468: - FindNSS.cmake:
2469: - show version number
2470:
2471: - FindCARES.cmake:
2472: - drop default paths
2473: - use FPHSA instead of checking things by hand
2474:
2475: - remove needless explict variable dereference
2476:
2477: - simplify count_true()
2478:
2479: - allow all policies up to version 3.16 to be set to NEW
2480:
2481: - do not rerun check for -Wstrict-aliasing=3 every time
2482:
2483: In contrast to every other compiler flag this has a = in it, which CMake
2484: can't have in a variable name.
2485:
2486: - only read the interesting strings from curlver.h
2487:
2488: Reviewed-by: Peter Wu
2489:
2490: Closes https://github.com/curl/curl/pull/4975
2491:
2492: - runtests: fix output to command log
2493:
2494: - Record only the command of the most recently ran test in the command
2495: log.
2496:
2497: This is a follow-up to 02988b7 from several weeks ago which fixed
2498: writing to the command log, however it saved all commands for all tests
2499: instead of just the most recently ran test as we would now expect.
2500:
2501: Fixes https://github.com/curl/curl/commit/02988b7#commitcomment-37546876
2502: Closes https://github.com/curl/curl/pull/5001
2503:
2504: Steve Holme (1 Mar 2020)
2505: - polarssl: Additional removal
2506:
2507: Follow up to 6357a19f.
2508:
2509: Reviewed-by: Daniel Stenberg
2510: Closes #5004
2511:
2512: - [Jonathan Cardoso Machado brought this change]
2513:
2514: docs: fix typo on CURLINFO_RETRY_AFTER - alwaus -> always
2515:
2516: Reviewed-by: Steve Holme
2517: Closes #5005
2518:
2519: - md5: Added implementation for mbedTLS
2520:
2521: Reviewed-by: Jay Satiro
2522: Closes #4980
2523:
2524: - md5: Use pointer notation for array parameters in GnuTLS implementation
2525:
2526: - md4: Use non-deprecated functions in mbedTLS >= 2.7.0
2527:
2528: Closes #4983
2529:
2530: Marc Hoersken (29 Feb 2020)
2531: - ci/tests: Send test results to Azure DevOps for reporting
2532:
2533: Daniel Stenberg (29 Feb 2020)
2534: - pause: force-drain the transfer on unpause
2535:
2536: ... since the socket might not actually be readable anymore when for
2537: example the data is already buffered in the TLS layer.
2538:
2539: Fixes #4966
2540: Reported-by: Anders Berg
2541: Closes #5000
2542:
2543: - TODO: curl --proxycommand
2544:
2545: Suggested-by: Kristian Mide
2546: Closes #4941
2547:
2548: - smtp: overwriting 'from' leaks memory
2549:
2550: Detected by Coverity. CID 1418139.
2551:
2552: Also, make sure to return error if the new 'from' allocation fails.
2553:
2554: Closes #4997
2555:
2556: - CIfuzz: switch off 'dry_run' mode
2557:
2558: Follow-up from #4960: now make it fail if it detects problems.
2559:
2560: Closes #4998
2561:
2562: Marc Hoersken (28 Feb 2020)
2563: - ci/tests: Increase timeouts of Windows builds due to new tests
2564:
2565: Recently added tests increased their runtime above the limit of 60min.
2566:
2567: - ci/tests: align Azure Pipeline job names with each other
2568:
2569: - ci/tests: Add Windows builds via Azure Pipelines using Docker
2570:
2571: - tests: fix Python 3 compatibility of smbserver.py
2572:
2573: Daniel Stenberg (27 Feb 2020)
2574: - runtests: restore the command log
2575:
2576: The log file with all command lines for the invoked command lines is now
2577: called logs/commands.log
2578:
2579: Fixes #4911
2580: Closes #4989
2581:
2582: - smtp: fix memory leak on exit path
2583:
2584: Detected by Coverity. CID 1418139. "leaked_storage: Variable 'from'
2585: going out of scope leaks the storage it points to"
2586:
2587: Closes #4990
2588:
2589: Steve Holme (27 Feb 2020)
2590: - gtls: Fixed compilation when using GnuTLS < 3.5.0
2591:
2592: Reverts the functionality from 41fcb4f when compiling with GnuTLS older
2593: than 3.5.0.
2594:
2595: Reviewed-by: Daniel Stenberg
2596: Closes #4984
2597:
2598: - RELEASE-NOTES: Corrected the link to issue #4892
2599:
2600: Daniel Stenberg (27 Feb 2020)
2601: - Curl_is_ASCII_name: handle a NULL argument
2602:
2603: Make the function tolerate a NULL pointer input to avoid dereferencing
2604: that pointer.
2605:
2606: Follow-up to efce3ea5a85126d
2607: Detected by OSS-Fuzz
2608: Reviewed-By: Steve Holme
2609: Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20907
2610: Fixes #4985
2611: Closes #4986
2612:
2613: - RELEASE-NOTES: synced
2614:
2615: - http2: make pausing/unpausing set/clear local stream window
2616:
2617: This reduces the HTTP/2 window size to 32 MB since libcurl might have to
2618: buffer up to this amount of data in memory and yet we don't want it set
2619: lower to potentially impact tranfer performance on high speed networks.
2620:
2621: Requires nghttp2 commit b3f85e2daa629
2622: (https://github.com/nghttp2/nghttp2/pull/1444) to work properly, to end
2623: up in the next release after 1.40.0.
2624:
2625: Fixes #4939
2626: Closes #4940
2627:
2628: - [Anderson Toshiyuki Sasaki brought this change]
2629:
2630: libssh: improve known hosts handling
2631:
2632: Previously, it was not possible to get a known hosts file entry due to
2633: the lack of an API. ssh_session_get_known_hosts_entry(), introduced in
2634: libssh-0.9.0, allows libcurl to obtain such information and behave the
2635: same as when compiled with libssh2.
2636:
2637: This also tries to avoid the usage of deprecated functions when the
2638: replacements are available. The behaviour will not change if versions
2639: older than libssh-0.8.0 are used.
2640:
2641: Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
2642:
2643: Fixes #4953
2644: Closes #4962
2645:
2646: Steve Holme (27 Feb 2020)
2647: - tests: Automatically deduce the tool name from the test case for unit tests
2648:
2649: It is still possible to override the executable to run during the test,
2650: using the <tool> tag, but this patch removes the requirement that the
2651: tag must be present for unit tests.
2652:
2653: It also removes the possibility of human error when existing test cases
2654: are used as the basis for new tests, as recently witnessed in 81c37124.
2655:
2656: Reviewed-by: Daniel Stenberg
2657: Closes #4976
2658:
2659: - test1323: Added the missing 'unit test' feature requirement in the test case
2660:
2661: Daniel Stenberg (26 Feb 2020)
2662: - cookie: remove unnecessary check for 'out != 0'
2663:
2664: ... as it will always be non-NULL at this point.
2665:
2666: Detected by Coverity: CID 1459009
2667:
2668: - http: added 417 response treatment
2669:
2670: When doing a request with a body + Expect: 100-continue and the server
2671: responds with a 417, the same request will be retried immediately
2672: without the Expect: header.
2673:
2674: Added test 357 to verify.
2675:
2676: Also added a control instruction to tell the sws test server to not read
2677: the request body if Expect: is present, which the new test 357 uses.
2678:
2679: Reported-by: bramus on github
2680: Fixes #4949
2681: Closes #4964
2682:
2683: Steve Holme (26 Feb 2020)
2684: - smtp: Tidy up, following recent changes, to maintain the coding style
2685:
2686: Closes #4892
2687:
2688: - smtp: Support the SMTPUTF8 extension for the EXPN command
2689:
2690: Simply notify the server we support the SMTPUTF8 extension if it does.
2691:
2692: - smtp: Support the SMTPUTF8 extension in the VRFY command
2693:
2694: - smtp: Support the SMTPUTF8 extension in the RCPT TO command
2695:
2696: Note: The RCPT TO command isn't required to advertise to the server that
2697: it contains UTF-8 characters, instead the server is told that a mail may
2698: contain UTF-8 in any envelope command via the MAIL command.
2699:
2700: - smtp: Support the SMTPUTF8 extension in the MAIL command
2701:
2702: Support the SMTPUTF8 extension when sending mailbox information in the
2703: MAIL command (FROM and AUTH parameters). Non-ASCII domain names will
2704: be ACE encoded, if IDN is supported, whilst non-ASCII characters in
2705: the local address part are passed to the server.
2706:
2707: Reported-by: ygthien on github
2708: Fixes #4828
2709:
2710: - smtp: Detect server support for the UTF-8 extension as defined in RFC-6531
2711:
2712: - smtp: Support UTF-8 based host names in the VRFY command
2713:
2714: - smtp: Support UTF-8 based host names in the RCPT TO command
2715:
2716: - smtp: Support UTF-8 based host names in the MAIL command
2717:
2718: Non-ASCII host names will be ACE encoded if IDN is supported.
2719:
2720: - url: Make the IDN conversion functions available to others
2721:
2722: - smtp: Added UTF-8 mailbox tests to verify existing behaviour
2723:
2724: - ftpserver: Updated VRFY_smtp() so the response isn't necessary in the test case
2725:
2726: - ftpserver: Corrected the e-mail address regex in MAIL_smtp() and RCTP_smtp()
2727:
2728: The dot character between the host and the tld was not being escaped,
2729: which meant it specified a match of 'any' character rather than an
2730: explicit dot separator.
2731:
2732: Additionally removed the dot character from the host name as it allowed
2733: the following to be specified as a valid address in our test cases:
2734:
2735: <bad@example......com>
2736:
2737: Both are typos from 98f7ca7 and 8880f84 :(
2738:
2739: I can't remember whether my intention was to allow sub-domains to be
2740: specified in the host or not with these additional dots, but by placing
2741: it outside of the host means it can only be specified once per domain
2742: and by placing a + after the new grouping support for sub-domains is
2743: kept.
2744:
2745: Closes #4912
2746:
2747: - hmac: Added a unit test for the HMAC hash generation
2748:
2749: Closes #4973
2750:
2751: - ntlm: Moved the HMAC MD5 function into the HMAC module as a generic function
2752:
2753: - tests: Added a unit test for MD4 digest generation
2754:
2755: Closes #4970
2756:
2757: - md4: Use const for the length input parameter
2758:
2759: This keeps the interface the same as md5 and sha256.
2760:
2761: - test1610: Fixed the link to the unit test
2762:
2763: Typo from 81c37124.
2764:
2765: - ntlm: Removed the dependency on the TLS libaries when using MD5
2766:
2767: As we have our own MD5 implementation use the MD5 wrapper to remove the
2768: TLS dependency.
2769:
2770: Closes #4967
2771:
2772: - md5/sha256: Updated the functions to allow non-string data to be hashed
2773:
2774: - digest: Corrected the name of the local HTTP digest function
2775:
2776: Follow up to 2b5b37cb. Local static functions do not require the Curl
2777: prefix.
2778:
2779: - tests: Added a unit test for SHA256 digest generation
2780:
2781: Follow up to 2b5b37c.
2782:
2783: Closes #4968
2784:
2785: - md4: Fixed compilation issues when using GNU TLS gcrypt
2786:
2787: * Don't include 'struct' in the gcrypt MD4_CTX typedef
2788: * The call to gcry_md_read() should use a dereferenced ctx
2789: * The call to gcry_md_close() should use a dereferenced ctx
2790:
2791: Additional minor whitespace issue in the USE_WIN32_CRYPTO code.
2792:
2793: Closes #4959
2794:
2795: Daniel Stenberg (21 Feb 2020)
2796: - RELEASE-NOTES: synced
2797:
2798: - http2: now require nghttp2 >= 1.12.0
2799:
2800: To simplify our code and since earlier versions lack important function
2801: calls libcurl needs to function correctly.
2802:
2803: nghttp2 1.12.0 was relased on June 26, 2016.
2804:
2805: Closes #4961
2806:
2807: - gtls: fix the copyright year
2808:
2809: Follow-up from 41fcb4f609
2810:
2811: - [jethrogb brought this change]
2812:
2813: GnuTLS: Always send client cert
2814:
2815: TLS servers may request a certificate from the client. This request
2816: includes a list of 0 or more acceptable issuer DNs. The client may use
2817: this list to determine which certificate to send. GnuTLS's default
2818: behavior is to not send a client certificate if there is no
2819: match. However, OpenSSL's default behavior is to send the configured
2820: certificate. The `GNUTLS_FORCE_CLIENT_CERT` flag mimics OpenSSL
2821: behavior.
2822:
2823: Authored-by: jethrogb on github
2824: Fixes #1411
2825: Closes #4958
2826:
2827: - [Leo Neat brought this change]
2828:
2829: github action: add CIFuzz
2830:
2831: Closes #4960
2832:
2833: - cleanup: comment typos
2834:
2835: Spotted by 'codespell'
2836:
2837: Closes #4957
2838:
2839: Steve Holme (20 Feb 2020)
2840: - win32: USE_WIN32_CRYPTO to enable Win32 based MD4, MD5 and SHA256 functions
2841:
2842: Whilst lib\md4.c used this pre-processor, lib\md5.c and
2843: src\tool_metalink.c did not and simply relied on the WIN32
2844: pre-processor directive.
2845:
2846: Reviewed-by: Marcel Raad
2847: Closes #4955
2848:
2849: Daniel Stenberg (19 Feb 2020)
2850: - connect: remove some spurious infof() calls
2851:
2852: As they were added primarily for debugging, they provide little use for
2853: users.
2854:
2855: Closes #4951
2856:
2857: - HTTP-COOKIES: mention that a trailing newline is required
2858:
2859: ... so that we know we got the whole and not a partial line.
2860:
2861: Also, changed the formatting of the fields away from a table again since
2862: the table format requires a github-markdown tool version that we don't
2863: run on the web server atm.
2864:
2865: Reported-by: Sunny Bean
2866: Fixes #4946
2867: Closes #4947
2868:
2869: - nit: Copyright year out of date
2870:
2871: Follow-up to 1fc0617dcc
2872:
2873: Jay Satiro (18 Feb 2020)
2874: - tool_util: Improve Windows version of tvnow()
2875:
2876: - Change tool_util.c tvnow() for Windows to match more closely to
2877: timeval.c Curl_now().
2878:
2879: - Create a win32 init function for the tool, since some initialization
2880: is required for the tvnow() changes.
2881:
2882: Prior to this change the monotonic time function used by curl in Windows
2883: was determined at build-time and not runtime. That was a problem because
2884: when curl was built targeted for compatibility with old versions of
2885: Windows (eg _WIN32_WINNT < 0x0600) it would use GetTickCount which wraps
2886: every 49.7 days that Windows has been running.
2887:
2888: This change makes curl behave similar to libcurl's tvnow function, which
2889: determines at runtime whether the OS is Vista+ and if so calls
2890: QueryPerformanceCounter instead. (Note QueryPerformanceCounter is used
2891: because it has higher resolution than the more obvious candidate
2892: GetTickCount64). The changes to tvnow are basically a copy and paste but
2893: the types in some cases are different.
2894:
2895: Ref: https://github.com/curl/curl/issues/3309
2896:
2897: Closes https://github.com/curl/curl/pull/4847
2898:
2899: Daniel Stenberg (18 Feb 2020)
2900: - SOCKS: fix typo in printf formatting
2901:
2902: Follow-up to 4a4b63daa
2903:
2904: Reported-by: Peter Piekarski
2905: Bug: https://github.com/curl/curl/commit/4a4b63daaa01ef59b131d91e8e6e6dfe275c0f08#r37351330
2906:
2907: - CURLOPT_REDIR_PROTOCOLS.3: update the DEFAULT section
2908:
2909: to be in sync with the description above
2910:
2911: Reported-by: Joonas Kuorilehto
2912: Fixes #4943
2913: Closes #4945
2914:
2915: - docs/GOVERNANCE: refreshed + added "donations" and "commercial support"
2916:
2917: - altsvc: make saving the cache an atomic operation
2918:
2919: ... by writing the file to temp name then rename to the final when done.
2920:
2921: Assisted-by: Jay Satiro
2922: Fixes #4936
2923: Closes #4942
2924:
2925: - rename: a new file for Curl_rename()
2926:
2927: And make the cookie save function use it.
2928:
2929: - cookies: make saving atomic with a rename
2930:
2931: Saves the file as "[filename].[8 random hex digits].tmp" and renames
2932: away the extension when done.
2933:
2934: Co-authored-by: Jay Satiro
2935: Reported-by: Mike Frysinger
2936: Fixes #4914
2937: Closes #4926
2938:
2939: - RELEASE-NOTES: synced
2940:
2941: - socks: make the connect phase non-blocking
2942:
2943: Removes two entries from KNOWN_BUGS.
2944:
2945: Closes #4907
2946:
2947: - multi: if Curl_readwrite sets 'comeback' use expire, not loop
2948:
2949: Otherwise, a very fast single transfer ricks starving out other
2950: concurrent transfers.
2951:
2952: Closes #4927
2953:
2954: - ftp: convert 'sock_accepted' to a plain boolean
2955:
2956: This was an array indexed with sockindex but it was only ever used for
2957: the secondary socket.
2958:
2959: Closes #4929
2960:
2961: Jay Satiro (15 Feb 2020)
2962: - CURLINFO_COOKIELIST.3: Fix example
2963:
2964: Prior to this change the example would try to import cookies from stdin,
2965: which wasn't what was intended.
2966:
2967: Reported-by: 3dyd@users.noreply.github.com
2968:
2969: Fixes https://github.com/curl/curl/issues/4930
2970:
2971: Daniel Stenberg (14 Feb 2020)
2972: - TODO: Paged searches on LDAP server
2973:
2974: Closes #4452
2975:
2976: - TODO: CURLOPT_SSL_CTX_FUNCTION for LDAPS
2977:
2978: Closes #4108
2979:
2980: - azure: disable brotli on the macos debug-builds
2981:
2982: Because of:
2983:
2984: brotli/decode.h:204:33: error: variable length array used [-Werror,-Wvla]
2985: const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
2986:
2987: Closes #4925
2988:
2989: Steve Holme (13 Feb 2020)
2990: - tool_home: Fix the copyright year being out of date
2991:
2992: Follow up to 9dc350b6.
2993:
2994: Jay Satiro (12 Feb 2020)
2995: - tool_homedir: Change GetEnv() to use libcurl's curl_getenv()
2996:
2997: - Deduplicate GetEnv() code.
2998:
2999: - On Windows change ultimate call to use Windows API
3000: GetEnvironmentVariable() instead of C runtime getenv().
3001:
3002: Prior to this change both libcurl and the tool had their own GetEnv
3003: which over time diverged. Now the tool's GetEnv is a wrapper around
3004: curl_getenv (libcurl API function which is itself a wrapper around
3005: libcurl's GetEnv).
3006:
3007: Furthermore this change fixes a bug in that Windows API
3008: GetEnvironmentVariable() is called instead of C runtime getenv() to get
3009: the environment variable since some changes aren't always visible to the
3010: latter.
3011:
3012: Reported-by: Christoph M. Becker
3013:
3014: Fixes https://github.com/curl/curl/issues/4774
3015: Closes https://github.com/curl/curl/pull/4863
3016:
3017: Daniel Stenberg (12 Feb 2020)
3018: - strerror.h: Copyright year out of date
3019:
3020: Follow-up to 1c4fa67e8a8fcf6
3021:
3022: Jay Satiro (12 Feb 2020)
3023: - strerror: Increase STRERROR_LEN 128 -> 256
3024:
3025: STRERROR_LEN is the constant used throughout the library to set the size
3026: of the buffer on the stack that the curl strerror functions write to.
3027:
3028: Prior to this change some extended length Windows error messages could
3029: be truncated.
3030:
3031: Closes https://github.com/curl/curl/pull/4920
3032:
3033: - multi: fix outdated comment
3034:
3035: - Do not say that conn->data is "cleared" by multi_done().
3036:
3037: If the connection is in use then multi_done assigns another easy handle
3038: still using the connection to conn->data, therefore in that case it is
3039: not cleared.
3040:
3041: Closes https://github.com/curl/curl/pull/4901
3042:
3043: - easy: remove dead code
3044:
3045: multi is already assigned to data->multi by curl_multi_add_handle.
3046:
3047: Closes https://github.com/curl/curl/pull/4900
3048:
3049: Daniel Stenberg (12 Feb 2020)
3050: - create-dirs.d: mention the mode
3051:
3052: Reported-by: Dan Jacobson
3053: Fixes #4766
3054: Closes #4916
3055:
3056: - CURLOPT_ALTSVC_CTRL.3: fix the DEFAULT wording
3057:
3058: Assisted-by: Jay Satiro
3059: Reported-by: Craig Andrews
3060: Fixes #4909
3061: Closes #4910
3062:
3063: - RELEASE-NOTES: synced
3064:
3065: Steve Holme (9 Feb 2020)
3066: - smtp: Simplify the MAIL command and avoid a duplication of send strings
3067:
3068: This avoids the duplication of strings when the optional AUTH and SIZE
3069: parameters are required. It also assists with the modifications that
3070: are part of #4892.
3071:
3072: Closes #4903
3073:
3074: Daniel Stenberg (9 Feb 2020)
3075: - altsvc: keep a copy of the file name to survive handle reset
3076:
3077: The alt-svc cache survives a call to curl_easy_reset fine, but the file
3078: name to use for saving the cache was cleared. Now the alt-svc cache has
3079: a copy of the file name to survive handle resets.
3080:
3081: Added test 1908 to verify.
3082:
3083: Reported-by: Craig Andrews
3084: Fixes #4898
3085: Closes #4902
3086:
3087: Steve Holme (9 Feb 2020)
3088: - url: Include the failure reason when curl_win32_idn_to_ascii() fails
3089:
3090: Provide the failure reason in the failf() info just as we do for the
3091: libidn2 version of code.
3092:
3093: Closes #4899
3094:
3095: Jay Satiro (9 Feb 2020)
3096: - asyn-thread: remove dead code
3097:
3098: Daniel Stenberg (8 Feb 2020)
3099: - [Emil Engler brought this change]
3100:
3101: github: Instructions to post "uname -a" on Unix systems in issues
3102:
3103: Closes #4896
3104:
3105: - [Cristian Greco brought this change]
3106:
3107: configure.ac: fix comments about --with-quiche
3108:
3109: A simple s/nghttp3/quiche in some comments of --with-quiche.
3110: Looks like a copy-paste error from --with-nghttp3.
3111:
3112: Closes #4897
3113:
3114: Steve Holme (7 Feb 2020)
3115: - checksrc.bat: Fix not being able to run script from the main curl directory
3116:
3117: If the script was ran from the main curl directory rather then the
3118: projects directory then the script would simply exit without error:
3119:
3120: C:\url> projects\checksrc.bat
3121:
3122: The user would either need to change to the projects directory,
3123: explicitly specify the current working directory, or perform a
3124: oneline hacky workaround:
3125:
3126: C:\url> cd projects
3127: C:\url\projects> checksrc.bat
3128:
3129: C:\url> checksrc.bat %cd%
3130:
3131: C:\url> pushd projects & checksrc.bat & popd
3132:
3133: Closes #4894
3134:
3135: Daniel Stenberg (7 Feb 2020)
3136: - [Pierre-Yves Bigourdan brought this change]
3137:
3138: digest: Do not quote algorithm in HTTP authorisation
3139:
3140: RFC 7616 section 3.4 (The Authorization Header Field) states that "For
3141: historical reasons, a sender MUST NOT generate the quoted string syntax
3142: for the following parameters: algorithm, qop, and nc". This removes the
3143: quoting for the algorithm parameter.
3144:
3145: Reviewed-by: Steve Holme
3146: Closes #4890
3147:
3148: - ftp: remove the duplicated user/password struct fields
3149:
3150: Closes #4887
3151:
3152: - ftp: remove superfluous checking for crlf in user or pwd
3153:
3154: ... as this is already done much earlier in the URL parser.
3155:
3156: Also add test case 894 that verifies that pop3 with an encodedd CR in
3157: the user name is rejected.
3158:
3159: Closes #4887
3160:
3161: Steve Holme (6 Feb 2020)
3162: - ntlm_wb: Use Curl_socketpair() for greater portability
3163:
3164: Reported-by: Daniel Stenberg
3165: Closes #4886
3166:
3167: Daniel Stenberg (5 Feb 2020)
3168: - [Frank Gevaerts brought this change]
3169:
3170: contributors: Also include people who contributed to curl-www
3171:
3172: Closes #4884
3173:
3174: - [Frank Gevaerts brought this change]
3175:
3176: contrithanks: Use the most recent tag by default
3177:
3178: (similar to 5296abe)
3179:
3180: Closes #4883
3181:
3182: - scripts: use last set tag if none given
3183:
3184: Makes 'delta' and 'contributors.sh' easier to use.
3185:
3186: Make the delta script invoke contrithanks to get current number of
3187: contributors instead of counting THANKS, for accuracy.
3188:
3189: Closes #4881
3190:
3191: - ftp: shrink temp buffers used for PORT
3192:
3193: These two stack based buffers only need to be 46 + 66 bytes instead of
3194: 256 + 1024.
3195:
3196: Closes #4880
3197:
3198: - curl: error on --alt-svc use w/o support
3199:
3200: Make the tool check for alt-svc support at run-time and return error
3201: accordingly if not present when the option is used.
3202:
3203: Reported-by: Harry Sintonen
3204: Closes #4878
3205:
3206: - docs/HTTP3: add --enable-alt-svc to curl's configure
3207:
3208: - RELEASE-PROCEDURE: feature win is closed post-release a few days
3209:
3210: We've tried to uphold this already but let's make it official by
3211: publicly stating this is the way we do it.
3212:
3213: Closes #4877
3214:
3215: - altsvc: set h3 version at a common single spot
3216:
3217: ... and move the #ifdefs out of the functions. Addresses the fact they
3218: were different before this change.
3219:
3220: Reported-by: Harry Sintonen
3221: Closes #4876
3222:
3223: - [Harry Sintonen brought this change]
3224:
3225: altsvc: improved header parser
3226:
3227: - Fixed the flag parsing to apply to specific alternative entry only, as
3228: per RFC. The earlier code would also get totally confused by
3229: multiprotocol header, parsing flags from the wrong part of the header.
3230:
3231: - Fixed the parser terminating on unknown protocols, instead of skipping
3232: them.
3233:
3234: - Fixed a busyloop when protocol-id was present without an equal sign.
3235:
3236: Closes #4875
3237:
3238: - [Harry Sintonen brought this change]
3239:
3240: ngtcp2: fixed to only use AF_INET6 when ENABLE_IPV6
3241:
3242: - docs/HTTP3: update the OpenSSL branch to use for ngtcp2
3243:
3244: Reported-by: James Fuller
3245:
3246: Steve Holme (4 Feb 2020)
3247: - ntlm: Pass the Curl_easy structure to the private winbind functions
3248:
3249: ...rather than the full conndata structure.
3250:
3251: Daniel Stenberg (4 Feb 2020)
3252: - RELEASE-NOTES: synced
3253:
3254: - tool_operhlp: Copyright year out of date, should be 2020
3255:
3256: Follow-up from 2bc373740a3
3257:
3258: - [Orgad Shaneh brought this change]
3259:
3260: curl: avoid using strlen for testing if a string is empty
3261:
3262: Closes #4873
3263:
3264: Steve Holme (3 Feb 2020)
3265: - ntlm: Ensure the HTTP header data is not stored in the challenge/response
3266:
3267: Marcel Raad (3 Feb 2020)
3268: - openssl: remove redundant assignment
3269:
3270: Fixes a scan-build failure on Bionic.
3271:
3272: Closes https://github.com/curl/curl/pull/4872
3273:
3274: - travis: update non-OpenSSL Linux jobs to Bionic
3275:
3276: For the OpenSSL builds, test 323 [TLS-SRP to non-TLS-SRP server] is
3277: failing with "curl returned 52, when expecting 35".
3278:
3279: Closes https://github.com/curl/curl/pull/4872
3280:
3281: Dan Fandrich (3 Feb 2020)
3282: - cirrus: Add some missing semicolons
3283:
3284: Newlines aren't preserved in this section so they're needed to separate
3285: commands. The exports luckily worked anyway as a single long line, but
3286: erroneously exported a variable called "export"
3287: [skip ci]
3288:
3289: Daniel Gustafsson (2 Feb 2020)
3290: - [Pedro Monreal brought this change]
3291:
3292: cleanup: fix typos and wording in docs and comments
3293:
3294: Closes #4869
3295: Reviewed-by: Emil Engler and Daniel Gustafsson
3296:
3297: Steve Holme (2 Feb 2020)
3298: - ntlm: Move the winbind data into the NTLM data structure
3299:
3300: To assist with adding winbind support to the SASL NTLM authentication,
3301: move the winbind specific data out of conndata into ntlmdata.
3302:
3303: Daniel Stenberg (30 Jan 2020)
3304: - quiche: Copyright year out of date
3305:
3306: Follow-up to 7fc63d72333a
3307:
3308: - altsvc: use h3-25
3309:
3310: Closes #4868
3311:
3312: - [Alessandro Ghedini brought this change]
3313:
3314: quiche: update to draft-25
3315:
3316: Closes #4867
3317:
3318: - ngtcp2: update to git master and its draft-25 support
3319:
3320: Closes #4865
3321:
3322: - cookie: check __Secure- and __Host- case sensitively
3323:
3324: While most keywords in cookies are case insensitive, these prefixes are
3325: specified explicitly to get checked "with a case-sensitive match".
3326:
3327: (From the 6265bis document in progress)
3328:
3329: Ref: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-04
3330: Closes #4864
3331:
3332: - KNOWN_BUGS: Multiple methods in a single WWW-Authenticate: header
3333:
3334: - oauth2-bearer.d: works for HTTP too
3335:
3336: Reported-by: Mischa Salle
3337: Bug: https://curl.haxx.se/mail/lib-2020-01/0070.html
3338: Closes #4862
3339:
3340: - multi_done: if multiplexed, make conn->data point to another transfer
3341:
3342: ... since the current transfer is being killed. Setting to NULL is
3343: wrong, leaving it pointing to 'data' is wrong since that handle might be
3344: about to get freed.
3345:
3346: Fixes #4845
3347: Closes #4858
3348: Reported-by: dmitrmax on github
3349:
3350: - location.d: the method change is from POST to GET only
3351:
3352: Not from generic non-GET to GET.
3353:
3354: Reported-by: Andrius Merkys
3355: Ref: #4859
3356: Closes #4861
3357:
3358: - urlapi: guess scheme correct even with credentials given
3359:
3360: In the "scheme-less" parsing case, we need to strip off credentials
3361: first before we guess scheme based on the host name!
3362:
3363: Assisted-by: Jay Satiro
3364: Fixes #4856
3365: Closes #4857
3366:
3367: - global_init: move the IPv6 works status bool to multi handle
3368:
3369: Previously it was stored in a global state which contributed to
3370: curl_global_init's thread unsafety. This boolean is now instead figured
3371: out in curl_multi_init() and stored in the multi handle. Less effective,
3372: but thread safe.
3373:
3374: Closes #4851
3375:
3376: - [Jay Satiro brought this change]
3377:
3378: README: mention that the docs is in docs/
3379:
3380: Reported-by: Austin Green
3381: Fixes #4830
3382: Closes #4853
3383:
3384: - curl.h: define CURL_WIN32 on windows
3385:
3386: ... so that the subsequent logic below can use a single known define to know
3387: when built on Windows (as we don't define WIN32 anymore).
3388:
3389: Follow-up to 1adebe7886ddf20b
3390:
3391: Reported-by: crazydef on github
3392: Assisted-by: Marcel Raad
3393: Fixes #4854
3394: Closes #4855
3395:
3396: - RELEASE-NOTES: synced
3397:
3398: - [Jon Rumsey brought this change]
3399:
3400: urldata: do string enums without #ifdefs for build scripts
3401:
3402: ... and check for inconsistencies for OS400 at build time with the new
3403: chkstrings tool.
3404:
3405: Closes #4822
3406:
3407: - curl: make the -# spaceship bar not wrap the line
3408:
3409: The fixed-point math made us lose precision and thus a too high index
3410: value could be used for outputting the hashtags which could overwrite
3411: the newline.
3412:
3413: The fix increases the precision in the sine table (*100) and the
3414: associated position math.
3415:
3416: Reported-by: Andrew Potter
3417: Fixes #4849
3418: Closes #4850
3419:
3420: - global_init: assume the EINTR bit by default
3421:
3422: - Removed from global_init since it isn't thread-safe. The symbol will
3423: still remain to not break compiles, it just won't have any effect going
3424: forward.
3425:
3426: - make the internals NOT loop on EINTR (the opposite from previously).
3427: It only risks returning from the select/poll/wait functions early, and that
3428: should be risk-free.
3429:
3430: Closes #4840
3431:
3432: - [Peter Piekarski brought this change]
3433:
3434: conn: do not reuse connection if SOCKS proxy credentials differ
3435:
3436: Closes #4835
3437:
3438: - llist: removed unused Curl_llist_move()
3439:
3440: (and the corresponding unit test)
3441:
3442: Closes #4842
3443:
3444: - conncache: removed unused Curl_conncache_bundle_size()
3445:
3446: - strcase: turn Curl_raw_tolower into static
3447:
3448: Only ever used from within this file.
3449:
3450: - singleuse.pl: support new API functions, fix curl_dbg_ handling
3451:
3452: - wolfssh: make it init properly via Curl_ssh_init()
3453:
3454: Closes #4846
3455:
3456: - [Aron Rotteveel brought this change]
3457:
3458: form.d: fix two minor typos
3459:
3460: Closes #4843
3461:
3462: - openssl: make CURLINFO_CERTINFO not truncate x509v3 fields
3463:
3464: Avoid "reparsing" the content and instead deliver more exactly what is
3465: provided in the certificate and avoid truncating the data after 512
3466: bytes as done previously. This no longer removes embedded newlines.
3467:
3468: Fixes #4837
3469: Reported-by: bnfp on github
3470: Closes #4841
3471:
3472: Jay Satiro (23 Jan 2020)
3473: - CURLOPT_PROXY_SSL_OPTIONS.3: Sync with CURLOPT_SSL_OPTIONS.3
3474:
3475: - Copy CURLOPT_SSL_OPTIONS.3 description to CURLOPT_PROXY_SSL_OPTIONS.3.
3476:
3477: Prior to this change CURLSSLOPT_NO_PARTIALCHAIN was missing from the
3478: CURLOPT_PROXY_SSL_OPTIONS description.
3479:
3480: Daniel Stenberg (22 Jan 2020)
3481: - mk-ca-bundle: add support for CKA_NSS_SERVER_DISTRUST_AFTER
3482:
3483: For now, no cert in the bundle actually sets a date there...
3484:
3485: Co-Authored-by: Jay Satiro
3486: Reported-by: Christian Heimes
3487: Fixes #4834
3488: Closes #4836
3489:
3490: - RELEASE-NOTES: synced
3491:
3492: - [Pavel Volgarev brought this change]
3493:
3494: smtp: Allow RCPT TO command to fail for some recipients
3495:
3496: Introduces CURLOPT_MAIL_RCPT_ALLLOWFAILS.
3497:
3498: Verified with the new tests 3002-3007
3499:
3500: Closes #4816
3501:
3502: - copyright: fix year ranges
3503:
3504: follow-up from dea17b519d (one of these days I'll learn to check before
3505: I push)
3506:
3507: - [nao brought this change]
3508:
3509: http: move "oauth_bearer" from connectdata to Curl_easy
3510:
3511: Fixes the bug where oauth_bearer gets deallocated when we re-use a
3512: connection.
3513:
3514: Closes #4824
3515:
3516: - [Emil Engler brought this change]
3517:
3518: curl: Let -D merge headers in one file again
3519:
3520: Closes #4762
3521: Fixes #4753
3522:
3523: - data.d: remove "Multiple files can also be specified"
3524:
3525: It is superfluous and could even be misleading.
3526:
3527: Bug: https://curl.haxx.se/mail/archive-2020-01/0016.html
3528: Reported-by: Mike Norton
3529: Closes #4832
3530:
3531: Marcel Raad (20 Jan 2020)
3532: - CMake: support specifying the target Windows version
3533:
3534: Previously, it was only possible to set it to Windows Vista or XP by
3535: setting the option `ENABLE_INET_PTON` to `ON` resp. `OFF`.
3536: Use a new cache variable `CURL_TARGET_WINDOWS_VERSION` to be able to
3537: explicitly set the target Windows version. `ENABLE_INET_PTON` is
3538: ignored in this case.
3539:
3540: Ref: https://github.com/curl/curl/pull/1639#issuecomment-313039352
3541: Ref: https://github.com/curl/curl/pull/4607#issuecomment-557541456
3542: Closes https://github.com/curl/curl/pull/4815
3543:
3544: Daniel Stenberg (20 Jan 2020)
3545: - http.h: Copyright year out of date, should be 2020
3546:
3547: Follow-up to 7ff9222ced8c
3548:
3549: - [加藤郁之 brought this change]
3550:
3551: HTTP: increase EXPECT_100_THRESHOLD to 1Mb
3552:
3553: Mentioned: https://curl.haxx.se/mail/lib-2020-01/0050.html
3554:
3555: Closes #4814
3556:
3557: - ROADMAP: thread-safe `curl_global_init()`
3558:
3559: I'd like to see this happen.
3560:
3561: - RELEASE-NOTES: synced
3562:
3563: - wolfssl: use the wc-prefixed symbol alternatives
3564:
3565: The symbols without wc_ prefix are not always provided.
3566:
3567: Ref: https://github.com/wolfSSL/wolfssl/issues/2744
3568:
3569: Closes #4827
3570:
3571: - polarssl: removed
3572:
3573: As detailed in DEPRECATE.md, the polarssl support is now removed after
3574: having been disabled for 6 months and nobody has missed it.
3575:
3576: The threadlock files used by mbedtls are renamed to an 'mbedtls' prefix
3577: instead of the former 'polarssl' and the common functions that
3578: previously were shared between mbedtls and polarssl and contained the
3579: name 'polarssl' have now all been renamed to instead say 'mbedtls'.
3580:
3581: Closes #4825
3582:
3583: Marcel Raad (16 Jan 2020)
3584: - libssh2: fix variable type
3585:
3586: This led to a conversion warning on 64-bit MinGW, which has 32-bit
3587: `long` but 64-bit `size_t`.
3588:
3589: Closes https://github.com/curl/curl/pull/4823
3590:
3591: Daniel Stenberg (16 Jan 2020)
3592: - curl:progressbarinit: ignore column width from terminals < 20
3593:
3594: To avoid division by zero - or other issues.
3595:
3596: Reported-by: Daniel Marjamäki
3597: Closes #4818
3598:
3599: - wolfssh: set the password correctly for PASSWORD auth
3600:
3601: - wolfssh: remove fprintf() calls (and uses of __func__)
3602:
3603: Marcel Raad (14 Jan 2020)
3604: - CMake: use check_symbol_exists also for inet_pton
3605:
3606: It doesn't make much sense to only check if the function can be linked
3607: when it's not declared in any header and that is treated as an error.
3608: With the correct target Windows version set, the function is declared
3609: in ws2tcpip.h and the comment above the modified block is invalid.
3610:
3611: Also, move the definition of `_WIN32_WINNT` up to before all symbol
3612: availability checks so that we don't have to care which ones must be
3613: done after it.
3614:
3615: Tested with Visual Studio 2019 and current MinGW-w64.
3616:
3617: Closes https://github.com/curl/curl/pull/4808
3618:
3619: Jay Satiro (13 Jan 2020)
3620: - schannel_verify: Fix alt names manual verify for UNICODE builds
3621:
3622: Follow-up to 29e40a6 from two days ago, which added that feature for
3623: Windows 7 and earlier. The bug only occurred in same.
3624:
3625: Ref: https://github.com/curl/curl/pull/4761
3626:
3627: Daniel Stenberg (13 Jan 2020)
3628: - HTTP-COOKIES.md: describe the cookie file format
3629:
3630: ... and refer to that file from from CURLOPT_COOKIEFILE.3 and
3631: CURLOPT_COOKIELIST.3
3632:
3633: Assisted-by: Jay Satiro
3634: Reported-by: bsammon on github
3635: Fixes #4805
3636: Closes #4806
3637:
3638: - [Tobias Hieta brought this change]
3639:
3640: CMake: Add support for CMAKE_LTO option.
3641:
3642: This enables Link Time Optimization. LTO is a proven technique for
3643: optimizing across compilation units.
3644:
3645: Closes #4799
3646:
3647: - RELEASE-NOTES: synced
3648:
3649: - ConnectionExists: respect the max_concurrent_streams limits
3650:
3651: A regression made the code use 'multiplexed' as a boolean instead of the
3652: counter it is intended to be. This made curl try to "over-populate"
3653: connections with new streams.
3654:
3655: This regression came with 41fcdf71a1, shipped in curl 7.65.0.
3656:
3657: Also, respect the CURLMOPT_MAX_CONCURRENT_STREAMS value in the same
3658: check.
3659:
3660: Reported-by: Kunal Ekawde
3661: Fixes #4779
3662: Closes #4784
3663:
3664: - curl: make #0 not output the full URL
3665:
3666: It was not intended nor documented!
3667:
3668: Added test 1176 to verify.
3669:
3670: Reported-by: vshmuk on hackerone
3671:
3672: Closes #4812
3673:
3674: - wolfSSH: new SSH backend
3675:
3676: Adds support for SFTP (not SCP) using WolfSSH.
3677:
3678: Closes #4231
3679:
3680: - curl: remove 'config' field from OutStruct
3681:
3682: As it was just unnecessary duplicated information already stored in the
3683: 'per_transfer' struct and that's around mostly anyway.
3684:
3685: The duplicated pointer caused problems when the code flow was aborted
3686: before the dupe was filled in and could cause a NULL pointer access.
3687:
3688: Reported-by: Brian Carpenter
3689: Fixes #4807
3690: Closes #4810
3691:
3692: - misc: Copyright year out of date, should be 2020
3693:
3694: Follow-up to recent commits
3695:
3696: [skip ci]
3697:
3698: Jay Satiro (11 Jan 2020)
3699: - [Santino Keupp brought this change]
3700:
3701: libssh2: add support for forcing a hostkey type
3702:
3703: - Allow forcing the host's key type found in the known_hosts file.
3704:
3705: Currently, curl (with libssh2) does not take keys from your known_hosts
3706: file into account when talking to a server. With this patch the
3707: known_hosts file will be searched for an entry matching the hostname
3708: and, if found, libssh2 will be told to claim this key type from the
3709: server.
3710:
3711: Closes https://github.com/curl/curl/pull/4747
3712:
3713: - [Nicolas Guillier brought this change]
3714:
3715: cmake: Improve libssh2 check on Windows
3716:
3717: - Add "libssh2" name to FindLibSSH2 library search.
3718:
3719: On Windows systems, libSSH2 CMake installation may name the library
3720: "LibSSH2".
3721:
3722: Prior to this change cmake only checked for name "ssh2". On Linux that
3723: works fine because it will prepend the "lib", but it doesn't do that on
3724: Windows.
3725:
3726: Closes https://github.com/curl/curl/pull/4804
3727:
3728: - [Faizur Rahman brought this change]
3729:
3730: schannel: Make CURLOPT_CAINFO work better on Windows 7
3731:
3732: - Support hostname verification via alternative names (SAN) in the
3733: peer certificate when CURLOPT_CAINFO is used in Windows 7 and earlier.
3734:
3735: CERT_NAME_SEARCH_ALL_NAMES_FLAG doesn't exist before Windows 8. As a
3736: result CertGetNameString doesn't quite work on those versions of
3737: Windows. This change provides an alternative solution for
3738: CertGetNameString by iterating through CERT_ALT_NAME_INFO for earlier
3739: versions of Windows.
3740:
3741: Prior to this change many certificates failed the hostname validation
3742: when CURLOPT_CAINFO was used in Windows 7 and earlier. Most certificates
3743: now represent multiple hostnames and rely on the alternative names field
3744: exclusively to represent their hostnames.
3745:
3746: Reported-by: Jeroen Ooms
3747:
3748: Fixes https://github.com/curl/curl/issues/3711
3749: Closes https://github.com/curl/curl/pull/4761
3750:
3751: - [Emil Engler brought this change]
3752:
3753: ngtcp2: Add an error code for QUIC connection errors
3754:
3755: - Add new error code CURLE_QUIC_CONNECT_ERROR for QUIC connection
3756: errors.
3757:
3758: Prior to this change CURLE_FAILED_INIT was used, but that was not
3759: correct.
3760:
3761: Closes https://github.com/curl/curl/pull/4754
3762:
3763: - multi: Change curl_multi_wait/poll to error on negative timeout
3764:
3765: - Add new error CURLM_BAD_FUNCTION_ARGUMENT and return that error when
3766: curl_multi_wait/poll is passed timeout param < 0.
3767:
3768: Prior to this change passing a negative value to curl_multi_wait/poll
3769: such as -1 could cause the function to wait forever.
3770:
3771: Reported-by: hamstergene@users.noreply.github.com
3772:
3773: Fixes https://github.com/curl/curl/issues/4763
3774:
3775: Closes https://github.com/curl/curl/pull/4765
3776:
3777: - [Marc Aldorasi brought this change]
3778:
3779: cmake: Enable SMB for Windows builds
3780:
3781: - Define USE_WIN32_CRYPTO by default. This enables SMB.
3782:
3783: - Show whether SMB is enabled in the "Enabled features" output.
3784:
3785: - Fix mingw compiler warning for call to CryptHashData by casting away
3786: const param. mingw CryptHashData prototype is wrong.
3787:
3788: Closes https://github.com/curl/curl/pull/4717
3789:
3790: - vtls: Refactor Curl_multissl_version to make the code clearer
3791:
3792: Reported-by: Johannes Schindelin
3793:
3794: Ref: https://github.com/curl/curl/pull/3863#pullrequestreview-241395121
3795:
3796: Closes https://github.com/curl/curl/pull/4803
3797:
3798: Daniel Stenberg (10 Jan 2020)
3799: - fix: Copyright year out of date, should be 2020
3800:
3801: Follow-up to 875314ed0bf3b
3802:
3803: Marcel Raad (10 Jan 2020)
3804: - hostip: move code to resolve IP address literals to `Curl_resolv`
3805:
3806: The code was duplicated in the various resolver backends.
3807:
3808: Also, it was called after the call to `Curl_ipvalid`, which matters in
3809: case of `CURLRES_IPV4` when called from `connect.c:bindlocal`. This
3810: caused test 1048 to fail on classic MinGW.
3811:
3812: The code ignores `conn->ip_version` as done previously in the
3813: individual resolver backends.
3814:
3815: Move the call to the `resolver_start` callback up to appease test 655,
3816: which wants it to be called also for literal addresses.
3817:
3818: Closes https://github.com/curl/curl/pull/4798
3819:
3820: Daniel Stenberg (9 Jan 2020)
3821: - scripts/delta: adapt to new public header layout
3822:
3823: - test1167: verify global symbols in public headers are curl prefixed
3824:
3825: ... using the new badsymbols.pl perl script
3826:
3827: Fixes #4793
3828: Closes #4794
3829:
3830: - libtest/mk-lib1521: adapt to new public header layout
3831:
3832: - include: remove non-curl prefixed defines
3833:
3834: ...requires some rearranging of the setup of CURLOPT_ and CURLMOPT_
3835: enums.
3836:
3837: - curl.h: remove WIN32 define
3838:
3839: It isn't our job to define this in a public header - and it defines a
3840: name outside of our naming scope.
3841:
3842: - tool_dirhie.c: fix the copyright year range
3843:
3844: Follow-up to: 4027bd72d9
3845:
3846: - bump: work towards 7.69.0 is started
3847:
3848: Jay Satiro (9 Jan 2020)
3849: - tool_dirhie: Allow directory traversal during creation
3850:
3851: - When creating a directory hierarchy do not error when mkdir fails due
3852: to error EACCESS (13) "access denied".
3853:
3854: Some file systems allow for directory traversal; in this case that it
3855: should be possible to create child directories when permission to the
3856: parent directory is restricted.
3857:
3858: This is a regression caused by me in f16bed0 (precedes curl-7_61_1).
3859: Basically I had assumed that if a directory already existed it would
3860: fail only with error EEXIST, and not error EACCES. The latter may
3861: happen if the directory exists but has certain restricted permissions.
3862:
3863: Reported-by: mbeifuss@users.noreply.github.com
3864:
3865: Fixes https://github.com/curl/curl/issues/4796
3866: Closes https://github.com/curl/curl/pull/4797
3867:
3868: Daniel Stenberg (9 Jan 2020)
3869: - KNOWN_BUGS: AUTH PLAIN for SMTP is not working on all servers
3870:
3871: Closes #4080
3872:
3873: - docs/RELEASE-PROCEDURE.md: pushed some release dates
3874:
3875: Ref: https://curl.haxx.se/mail/lib-2020-01/0031.html
3876:
3877: - runtests: make random seed fixed for a month
3878:
3879: When using randomized features of runtests (-R and --shallow) it is
3880: useful to have a fixed random seed to make sure for example extra
3881: commits in a branch or a rebase won't change the seed that would make
3882: repeated runs work differently.
3883:
3884: As it is also useful to change seed sometimes, the default seed is now
3885: determined based on the current month (and first line curl -V
3886: output). When the month changes, so will the random seed.
3887:
3888: The specific seed is also shown in the standard test suite top header
3889: and it can be set explictly with the new --seed=[num] option so that the
3890: exact order of a previous run can be achieved.
3891:
3892: Closes #4734
3893:
3894: - RELEASE-PROCEDURE.md: fix next release date (Feb 26)
3895:
3896: [skip ci]
3897:
3898: Version 7.68.0 (8 Jan 2020)
3899:
3900: Daniel Stenberg (8 Jan 2020)
3901: - RELEASE-NOTES: 7.68.0
3902:
3903: - THANKS: updated with names from the 7.68.0 release
3904:
3905: - RELEASE-PROCEDURE: add four future release dates
3906:
3907: and remove four past release dates
3908:
3909: [skip ci]
3910:
3911: Marcel Raad (6 Jan 2020)
3912: - TrackMemory tests: always remove CR before LF
3913:
3914: It was removed for output containing ' =' via `s/ =.*//`. With classic
3915: MinGW, this made lines with `free()` end with CRLF, but lines with e.g.
3916: `malloc()` end with only LF. The tests expect LF only.
3917:
3918: Closes https://github.com/curl/curl/pull/4788
3919:
3920: Daniel Stenberg (6 Jan 2020)
3921: - multi.h: move INITIAL_MAX_CONCURRENT_STREAMS from public header
3922:
3923: ... to the private multihhandle.h. It is not for public use and it
3924: wasn't prefixed correctly anyway!
3925:
3926: Closes #4790
3927:
3928: - file: fix copyright year range
3929:
3930: Follow-up to 1b71bc532bd
3931:
3932: - curl -w: handle a blank input file correctly
3933:
3934: Previously it would end up with an uninitialized memory buffer that
3935: would lead to a crash or junk getting output.
3936:
3937: Added test 1271 to verify.
3938:
3939: Reported-by: Brian Carpenter
3940: Closes #4786
3941:
3942: - file: on Windows, refuse paths that start with \\
3943:
3944: ... as that might cause an unexpected SMB connection to a given host
3945: name.
3946:
3947: Reported-by: Fernando Muñoz
3948: CVE-2019-15601
3949: Bug: https://curl.haxx.se/docs/CVE-2019-15601.html
3950:
3951: Jay Satiro (6 Jan 2020)
3952: - CURLOPT_READFUNCTION.3: fix fopen params in example
3953:
3954: - CURLOPT_READFUNCTION.3: fix variable name in example
3955:
3956: Reported-by: Paul Joyce
3957:
3958: Fixes https://github.com/curl/curl/issues/4787
3959:
3960: Daniel Stenberg (5 Jan 2020)
3961: - curl:getparameter return error for --http3 if libcurl doesn't support
3962:
3963: Closes #4785
3964:
3965: - docs: mention CURL_MAX_INPUT_LENGTH restrictions
3966:
3967: ... for curl_easy_setopt() and curl_url_set().
3968:
3969: [skip ci]
3970:
3971: Closes #4783
3972:
3973: - curl: properly free mimepost data
3974:
3975: ... as it could otherwise leak memory when a transfer failed.
3976:
3977: Added test 1293 to verify.
3978:
3979: Reported-by: Brian Carpenter
3980: Fixes #4781
3981: Closes #4782
3982:
3983: - curl: cleanup multi handle on failure
3984:
3985: ... to fix memory leak in error path.
3986:
3987: Fixes #4772
3988: Closes #4780
3989: Reported-by: Brian Carpenter
3990:
3991: Marcel Raad (3 Jan 2020)
3992: - lib: fix compiler warnings with `CURL_DISABLE_VERBOSE_STRINGS`
3993:
3994: Closes https://github.com/curl/curl/pull/4775
3995:
3996: Daniel Stenberg (3 Jan 2020)
3997: - COPYING: it's 2020!
3998:
3999: [skip ci]
4000:
4001: Jay Satiro (3 Jan 2020)
4002: - [Marc Aldorasi brought this change]
4003:
4004: tests: Fix bounce requests with truncated writes
4005:
4006: Prior to this change the swsbounce check in service_connection could
4007: fail because prevtestno and prevpartno were not set, which would cause
4008: the wrong response data to be sent to some tests and cause them to fail.
4009:
4010: Ref: https://github.com/curl/curl/pull/4717#issuecomment-570240785
4011:
4012: Marcel Raad (31 Dec 2019)
4013: - tool: make a few char pointers point to const char instead
4014:
4015: These are read-only.
4016:
4017: Closes https://github.com/curl/curl/pull/4771
4018:
4019: Jay Satiro (31 Dec 2019)
4020: - tests: Change NTLM tests to require SSL
4021:
4022: Prior to this change tests that required NTLM feature did not require
4023: SSL feature.
4024:
4025: There are pending changes to cmake builds that will allow enabling NTLM
4026: in non-SSL builds in Windows. In that case the NTLM auth strings created
4027: are different from what is expected by the NTLM tests and they fail:
4028:
4029: "The issue with NTLM is that previous non-SSL builds would not enable
4030: NTLM and so the NTLM tests would be skipped."
4031:
4032: Assisted-by: marc-groundctl@users.noreply.github.com
4033:
4034: Ref: https://github.com/curl/curl/pull/4717#issuecomment-566218729
4035:
4036: Closes https://github.com/curl/curl/pull/4768
4037:
4038: - [Michael Forney brought this change]
4039:
4040: bearssl: Improve I/O handling
4041:
4042: Factor out common I/O loop as bearssl_run_until, which reads/writes TLS
4043: records until the desired engine state is reached. This is now used for
4044: the handshake, read, write, and close.
4045:
4046: Match OpenSSL SSL_write behavior, and don't return the number of bytes
4047: written until the corresponding records have been completely flushed
4048: across the socket. This involves keeping track of the length of data
4049: buffered into the TLS engine, and assumes that when CURLE_AGAIN is
4050: returned, the write function will be called again with the same data
4051: and length arguments. This is the same requirement of SSL_write.
4052:
4053: Handle TLS close notify as EOF when reading by returning 0.
4054:
4055: Closes https://github.com/curl/curl/pull/4748
4056:
4057: - travis: Fix error detection
4058:
4059: - Stop using inline shell scripts for before_script and script sections.
4060:
4061: Prior to this change Travis could ignore errors from commands in inline
4062: scripts. I don't understand how or why it happens. This is a workaround.
4063:
4064: Assisted-by: Simon Warta
4065:
4066: Ref: https://github.com/travis-ci/travis-ci/issues/1066
4067:
4068: Fixes https://github.com/curl/curl/issues/3730
4069: Closes https://github.com/curl/curl/pull/3755
4070:
4071: - tool_operate: fix mem leak when failed config parse
4072:
4073: Found by fuzzing the config file.
4074:
4075: Reported-by: Geeknik Labs
4076:
4077: Fixes https://github.com/curl/curl/issues/4767
4078:
4079: - [Xiang Xiao brought this change]
4080:
4081: lib: remove erroneous +x file permission on some c files
4082:
4083: Modified by commit eb9a604 accidentally.
4084:
4085: Closes https://github.com/curl/curl/pull/4756
4086:
4087: - [Xiang Xiao brought this change]
4088:
4089: lib: fix warnings found when porting to NuttX
4090:
4091: - Undefine DEBUGASSERT in curl_setup_once.h in case it was already
4092: defined as a system macro.
4093:
4094: - Don't compile write32_le in curl_endian unless
4095: CURL_SIZEOF_CURL_OFF_T > 4, since it's only used by Curl_write64_le.
4096:
4097: - Include <arpa/inet.h> in socketpair.c.
4098:
4099: Closes https://github.com/curl/curl/pull/4756
4100:
4101: - os400: Add missing CURLE error constants
4102:
4103: Bug: https://github.com/curl/curl/pull/4754#issuecomment-569126922
4104: Reported-by: Emil Engler
4105:
4106: - CURLOPT_HEADERFUNCTION.3: Document that size is always 1
4107:
4108: For compatibility with `fwrite`, the `CURLOPT_HEADERFUNCTION` callback
4109: is passed two `size_t` parameters which, when multiplied, designate the
4110: number of bytes of data passed in. In practice, CURL always sets the
4111: first parameter (`size`) to 1.
4112:
4113: This practice is also enshrined in documentation and cannot be changed
4114: in future. The documentation states that the default callback is
4115: `fwrite`, which means `fwrite` must be a suitable function for this
4116: purpose. However, the documentation also states that the callback must
4117: return the number of *bytes* it successfully handled, whereas ISO C
4118: `fwrite` returns the number of items (each of size `size`) which it
4119: wrote. The only way these numbers can be equal is if `size` is 1.
4120:
4121: Since `size` is 1 and can never be changed in future anyway, document
4122: that fact explicitly and let users rely on it.
4123:
4124: Reported-by: Frank Gevaerts
4125: Commit-message-by: Christopher Head
4126:
4127: Ref: https://github.com/curl/curl/pull/2787
4128:
4129: Fixes https://github.com/curl/curl/issues/4758
4130:
4131: - examples/postinmemory.c: Call curl_global_cleanup always
4132:
4133: Prior to this change curl_global_cleanup was not called if
4134: curl_easy_init failed.
4135:
4136: Reported-by: kouzhudong@users.noreply.github.com
4137:
4138: Fixes https://github.com/curl/curl/issues/4751
4139:
4140: Daniel Stenberg (21 Dec 2019)
4141: - url2file.c: fix copyright year
4142:
4143: Follow-up to 525787269599b5
4144:
4145: - [Rickard Hallerbäck brought this change]
4146:
4147: examples/url2file.c: corrected a comment
4148:
4149: The comment was confusing and suggested that setting CURLOPT_NOPROGRESS
4150: to 0L would both enable and disable debug output at the same time, like
4151: a Schrödinger's cat of CURLOPTs.
4152:
4153: Closes #4745
4154:
4155: - HISTORY: OSS-Fuzz started fuzzing libcurl in 2017
4156:
4157: - RELEASE-NOTES: synced
4158:
4159: Jay Satiro (20 Dec 2019)
4160: - ngtcp2: Support the latest update key callback type
4161:
4162: - Remove our cb_update_key in favor of ngtcp2's new
4163: ngtcp2_crypto_update_key_cb which does the same thing.
4164:
4165: Several days ago the ngtcp2_update_key callback function prototype was
4166: changed in ngtcp2/ngtcp2@42ce09c. Though it would be possible to
4167: fix up our cb_update_key for that change they also added
4168: ngtcp2_crypto_update_key_cb which does the same thing so we'll use that
4169: instead.
4170:
4171: Ref: https://github.com/ngtcp2/ngtcp2/commit/42ce09c
4172:
4173: Closes https://github.com/curl/curl/pull/4735
4174:
4175: Daniel Stenberg (19 Dec 2019)
4176: - sws: search for "Testno:" header uncondtionally if no testno
4177:
4178: Even if the initial request line wasn't found. With the fix to 1455, the
4179: test number is now detected correctly.
4180:
4181: (Problem found when running tests in random order.)
4182:
4183: Closes #4744
4184:
4185: - tests: set LC_ALL in more tests
4186:
4187: Follow-up to 23208e330ac0c21
4188:
4189: Closes #4743
4190:
4191: - test165: set LC_ALL=en_US.UTF-8 too
4192:
4193: On my current Debian Unstable with libidn2 2.2.0, I get an error if
4194: LC_ALL is set to blank. Then curl errors out with:
4195:
4196: curl: (3) Failed to convert www.åäö.se to ACE; could not convert string to UTF-8
4197:
4198: Closes #4738
4199:
4200: - curl.h: add two defines for the "pre ISO C" case
4201:
4202: Without this fix, this caused a compilation failure on AIX with IBM xlc
4203: 13.1.3 compiler.
4204:
4205: Reported-by: Ram Krushna Mishra
4206: Fixes #4739
4207: Closes #4740
4208:
4209: - create_conn: prefer multiplexing to using new connections
4210:
4211: ... as it would previously prefer new connections rather than
4212: multiplexing in most conditions! The (now removed) code was a leftover
4213: from the Pipelining code that was translated wrongly into a
4214: multiplex-only world.
4215:
4216: Reported-by: Kunal Ekawde
4217: Bug: https://curl.haxx.se/mail/lib-2019-12/0060.html
4218: Closes #4732
4219:
4220: - test1456: remove the use of a fixed local port
4221:
4222: Fixup the test to instead not compare the port number. It sometimes
4223: caused problems like this:
4224:
4225: "curl: (45) bind failed with errno 98: Address already in use"
4226:
4227: Closes #4733
4228:
4229: Jay Satiro (18 Dec 2019)
4230: - CURLOPT_QUOTE.3: fix typos
4231:
4232: Prior to this change the EXAMPLE in the QUOTE/PREQUOTE/POSTQUOTE man
4233: pages would not compile because a variable name was incorrect.
4234:
4235: Reported-by: Bylon2@users.noreply.github.com
4236:
4237: Fixes https://github.com/curl/curl/issues/4736
4238:
4239: - [Gisle Vanem brought this change]
4240:
4241: strerror: Fix compiler warning "empty expression"
4242:
4243: - Remove the final semi-colon in the SEC2TXT() macro definition.
4244:
4245: Before: #define SEC2TXT(sec) case sec: txt = #sec; break;
4246:
4247: After: #define SEC2TXT(sec) case sec: txt = #sec; break
4248:
4249: Prior to this change SEC2TXT(foo); would generate break;; which caused
4250: the empty expression warning.
4251:
4252: Ref: https://github.com/curl/curl/commit/5b22e1a#r36458547
4253:
4254: Daniel Stenberg (18 Dec 2019)
4255: - curl/parseconfig: use curl_free() to free memory allocated by libcurl
4256:
4257: Reported-by: bxac on github
4258: Fixes #4730
4259: Closes #4731
4260:
4261: - curl/parseconfig: fix mem-leak
4262:
4263: When looping, first trying '.curlrc' and then '_curlrc', the function
4264: would not free the first string.
4265:
4266: Closes #4731
4267:
4268: - CURLOPT_URL.3: "curl supports SMB version 1 (only)"
4269:
4270: [skip ci]
4271:
4272: - test1270: a basic -w redirect_url test
4273:
4274: Closes #4728
4275:
4276: - HISTORY: the SMB(S) support landed in 2014
4277:
4278: - define: remove HAVE_ENGINE_LOAD_BUILTIN_ENGINES, not used anymore
4279:
4280: It is covered by USE_OPENSSL_ENGINE now.
4281:
4282: Reported-by: Gisle Vanem
4283: Bug: https://github.com/curl/curl/commit/87b9337c8f76c21c57b204e88b68c6ecf3bd1ac0#commitcomment-36447951
4284:
4285: Closes #4725
4286:
4287: - lib: remove ASSIGNWITHINCONDITION exceptions, use our code style
4288:
4289: ... even for macros
4290:
4291: Reviewed-by: Daniel Gustafsson
4292: Reviewed-by: Jay Satiro
4293: Reported-by: Jay Satiro
4294: Fixes #4683
4295: Closes #4722
4296:
4297: - tests: make sure checksrc runs on header files too
4298:
4299: - Revert "checksrc: fix regexp for ASSIGNWITHINCONDITION"
4300:
4301: This reverts commit ba82673dac3e8d00a76aa5e3779a0cb80e7442af.
4302:
4303: Bug: #4683
4304:
4305: - KNOWN_BUGS: TLS session cache doesn't work with TFO
4306:
4307: [skip ci]
4308: Closes #4301
4309:
4310: - KNOWN_BUGS: Connection information when using TCP Fast Open
4311:
4312: Also point to #4296 for more details
4313: Closes #4296
4314:
4315: - KNOWN_BUGS: LDAP on Windows doesn't work
4316:
4317: Closes #4261
4318:
4319: - docs: TLS SRP doesn't work with TLS 1.3
4320:
4321: Reported-by: sayrer on github
4322: Closes #4262
4323: [skip ci]
4324:
4325: Dan Fandrich (16 Dec 2019)
4326: - cirrus: Switch to the FreeBSD 12.1 point release & enable more tests.
4327:
4328: A few tests are now passing on FreeBSD, so no longer skip them.
4329: [skip ci]
4330:
4331: Daniel Stenberg (16 Dec 2019)
4332: - azure: the macos cmake doesn't need to install cmake
4333:
4334: Error: cmake 3.15.5 is already installed
4335: To upgrade to 3.16.1, run `brew upgrade cmake`.
4336:
4337: Closes #4723
4338:
4339: Jay Satiro (15 Dec 2019)
4340: - winbuild: Document CURL_STATICLIB requirement for static libcurl
4341:
4342: A static libcurl (ie winbuild mode=static) requires that the user define
4343: CURL_STATICLIB when using it in their application. This is already
4344: covered in the FAQ and INSTALL.md, but is a pretty important point so
4345: now it's noted in the BUILD.WINDOWS.txt as well.
4346:
4347: Assisted-by: Michael Vittiglio
4348:
4349: Closes https://github.com/curl/curl/pull/4721
4350:
4351: Daniel Stenberg (15 Dec 2019)
4352: - [Santino Keupp brought this change]
4353:
4354: libssh2: add support for ECDSA and ed25519 knownhost keys
4355:
4356: ... if a new enough libssh2 version is present.
4357:
4358: Source: https://curl.haxx.se/mail/archive-2019-12/0023.html
4359: Co-Authored-by: Daniel Stenberg
4360: Closes #4714
4361:
4362: - lib1591: free memory properly on OOM, in the trailers callback
4363:
4364: Detected by torture tests.
4365:
4366: Closes #4720
4367:
4368: - runtests: --repeat=[num] to repeat tests
4369:
4370: Closes #4715
4371:
4372: - RELEASE-NOTES: synced
4373:
4374: - azure: add a torture test on mac
4375:
4376: Uses --shallow=25 to keep it small enough to get through in time.
4377:
4378: Closes #4712
4379:
4380: - multi: free sockhash on OOM
4381:
4382: This would otherwise leak memory in the error path.
4383:
4384: Detected by torture test 1540.
4385:
4386: Closes #4713
4387:
4388: Marcel Raad (13 Dec 2019)
4389: - tests: use DoH feature for DoH tests
4390:
4391: Previously, http/2 was used instead.
4392:
4393: Assisted-by: Jay Satiro
4394: Closes https://github.com/curl/curl/pull/4692
4395:
4396: - hostip: suppress compiler warning
4397:
4398: With `--disable-doh --disable-threaded-resolver`, the `dns` parameter
4399: is not used.
4400:
4401: Closes https://github.com/curl/curl/pull/4692
4402:
4403: - tests: fix build with `CURL_DISABLE_DOH`
4404:
4405: Closes https://github.com/curl/curl/pull/4692
4406:
4407: Daniel Stenberg (13 Dec 2019)
4408: - azure: add a torture test
4409:
4410: Skipping all FTP tests for speed reasons.
4411:
4412: Closes #4697
4413:
4414: - azure: make the default build use --enable-debug --enable-werror
4415:
4416: - ntlm_wb: fix double-free in OOM
4417:
4418: Detected by torture testing test 1310
4419:
4420: Closes #4710
4421:
4422: Dan Fandrich (13 Dec 2019)
4423: - cirrus: Drop the FreeBSD 10.4 build
4424:
4425: Upstream support for 10.4 ended a year ago, and it looks like the image
4426: is now gone, too.
4427: [skip ci]
4428:
4429: Daniel Stenberg (13 Dec 2019)
4430: - unit1620: fix bad free in OOM
4431:
4432: Closes #4709
4433:
4434: - unit1609: fix mem-leak in OOM
4435:
4436: Closes #4709
4437:
4438: - unit1607: fix mem-leak in OOM
4439:
4440: Closes #4709
4441:
4442: - lib1559: fix mem-leak in OOM
4443:
4444: Closes #4709
4445:
4446: - lib1557: fix mem-leak in OOM
4447:
4448: Closes #4709
4449:
4450: - altsvc: make the save function ignore NULL filenames
4451:
4452: It might happen in OOM situations. Detected bv torture tests.
4453:
4454: Closes #4707
4455:
4456: - curl: fix memory leak in OOM in etags logic
4457:
4458: Detected by torture tests
4459:
4460: Closes #4706
4461:
4462: - doh: make it behave when built without proxy support
4463:
4464: Reported-by: Marcel Raad
4465: Bug: https://github.com/curl/curl/pull/4692#issuecomment-564115734
4466:
4467: Closes #4704
4468:
4469: - curl: improved cleanup in upload error path
4470:
4471: Memory leak found by torture test 58
4472:
4473: Closes #4705
4474:
4475: - mailmap: fix Andrew Ishchuk
4476:
4477: - travis: make torture use --shallow=40
4478:
4479: As a first step to enable it to run over a more diverse set of tests in
4480: a reasonable time.
4481:
4482: - runtests: introduce --shallow to reduce huge torture tests
4483:
4484: When set, shallow mode limits runtests -t to make no more than NUM fails
4485: per test case. If more are found, it will randomly discard entries until
4486: the number is right. The random seed can also be set.
4487:
4488: This is particularly useful when running MANY tests as then most torture
4489: failures will already fail the same functions over and over and make the
4490: total operation painfully tedious.
4491:
4492: Closes #4699
4493:
4494: - conncache: CONNECT_ONLY connections assumed always in-use
4495:
4496: This makes them never to be considered "the oldest" to be discarded when
4497: reaching the connection cache limit. The reasoning here is that
4498: CONNECT_ONLY is primarily used in combination with using the
4499: connection's socket post connect and since that is used outside of
4500: curl's knowledge we must assume that it is in use until explicitly
4501: closed.
4502:
4503: Reported-by: Pavel Pavlov
4504: Reported-by: Pavel Löbl
4505: Fixes #4426
4506: Fixes #4369
4507: Closes #4696
4508:
4509: - [Gisle Vanem brought this change]
4510:
4511: vtls: make BearSSL possible to set with CURL_SSL_BACKEND
4512:
4513: Ref: https://github.com/curl/curl/commit/9b879160df01e7ddbb4770904391d3b74114302b#commitcomment-36355622
4514:
4515: Closes #4698
4516:
4517: - RELEASE-NOTES: synced
4518:
4519: - travis: remove "coverage", make it "torture"
4520:
4521: The coveralls service and test coverage numbers are just too unreliable.
4522: Removed badge from README.md as well.
4523:
4524: Fixes #4694
4525: Closes #4695
4526:
4527: - azure: add libssh2 and cmake macos builds
4528:
4529: Removed the macos libssh2 build from travis
4530:
4531: Closes #4686
4532:
4533: - curl: use errorf() better
4534:
4535: Change series of error outputs to use errorf().
4536:
4537: Only errors that are due to mistakes in command line option usage should
4538: use helpf(), other types of errors in the tool should rather use
4539: errorf().
4540:
4541: Closes #4691
4542:
4543: Jay Satiro (9 Dec 2019)
4544: - [Marc Hoersken brought this change]
4545:
4546: tests: make it possible to set executable extensions
4547:
4548: This enables the use of Windows Subsystem for Linux (WSL) to run the
4549: testsuite against Windows binaries while using Linux servers.
4550:
4551: This commit introduces the following environment variables:
4552: - CURL_TEST_EXE_EXT: set the executable extension for all components
4553: - CURL_TEST_EXE_EXT_TOOL: set it for the curl tool only
4554: - CURL_TEST_EXE_EXT_SSH: set it for the SSH tools only
4555:
4556: Later testcurl.pl could be adjusted to make use of those variables.
4557: - CURL_TEST_EXE_EXT_SRV: set it for the test servers only
4558:
4559: (This is one of several commits to support use of WSL for the tests.)
4560:
4561: Closes https://github.com/curl/curl/pull/3899
4562:
4563: - [Marc Hoersken brought this change]
4564:
4565: tests: fix permissions of ssh keys in WSL
4566:
4567: Keys created on Windows Subsystem for Linux (WSL) require it for some
4568: reason.
4569:
4570: (This is one of several commits to support use of WSL for the tests.)
4571:
4572: Ref: https://github.com/curl/curl/pull/3899
4573:
4574: - [Marc Hoersken brought this change]
4575:
4576: tests: use \r\n for log messages in WSL
4577:
4578: Bash in Windows Subsystem for Linux (WSL) requires it for some reason.
4579:
4580: (This is one of several commits to support use of WSL for the tests.)
4581:
4582: Ref: https://github.com/curl/curl/pull/3899
4583:
4584: - [Andrew Ishchuk brought this change]
4585:
4586: winbuild: Define CARES_STATICLIB when WITH_CARES=static
4587:
4588: When libcurl is built with MODE=static, c-ares is forced into static
4589: linkage too. That doesn't happen when MODE=dll so linker would break
4590: over undefined symbols.
4591:
4592: closes https://github.com/curl/curl/pull/4688
4593:
4594: Daniel Stenberg (9 Dec 2019)
4595: - conn: always set bits.close with connclose()
4596:
4597: Closes #4690
4598:
4599: - cirrus: enable clang sanitizers on freebsd 13
4600:
4601: - conncache: fix multi-thread use of shared connection cache
4602:
4603: It could accidentally let the connection get used by more than one
4604: thread, leading to double-free and more.
4605:
4606: Reported-by: Christopher Reid
4607: Fixes #4544
4608: Closes #4557
4609:
4610: - azure: add a vanilla macos build
4611:
4612: Closes #4685
4613:
4614: - curl: make the etag load logic work without fseek
4615:
4616: The fseek()s were unnecessary and caused Coverity warning CID 1456554
4617:
4618: Closes #4681
4619:
4620: - mailmap: Mohammad Hasbini
4621:
4622: - [Mohammad Hasbini brought this change]
4623:
4624: docs: fix some typos
4625:
4626: Closes #4680
4627:
4628: - RELEASE-NOTES: synced
4629:
4630: Jay Satiro (5 Dec 2019)
4631: - lib: fix some loose ends for recently added CURLSSLOPT_NO_PARTIALCHAIN
4632:
4633: Add support for CURLSSLOPT_NO_PARTIALCHAIN in CURLOPT_PROXY_SSL_OPTIONS
4634: and OS400 package spec.
4635:
4636: Also I added the option to the NameValue list in the tool even though it
4637: isn't exposed as a command-line option (...yet?). (NameValue stringizes
4638: the option name for the curl cmd -> libcurl source generator)
4639:
4640: Follow-up to 564d88a which added CURLSSLOPT_NO_PARTIALCHAIN.
4641:
4642: Ref: https://github.com/curl/curl/pull/4655
4643:
4644: - setopt: Fix ALPN / NPN user option when built without HTTP2
4645:
4646: - Stop treating lack of HTTP2 as an unknown option error result for
4647: CURLOPT_SSL_ENABLE_ALPN and CURLOPT_SSL_ENABLE_NPN.
4648:
4649: Prior to this change it was impossible to disable ALPN / NPN if libcurl
4650: was built without HTTP2. Setting either option would result in
4651: CURLE_UNKNOWN_OPTION and the respective internal option would not be
4652: set. That was incorrect since ALPN and NPN are used independent of
4653: HTTP2.
4654:
4655: Reported-by: Shailesh Kapse
4656:
4657: Fixes https://github.com/curl/curl/issues/4668
4658: Closes https://github.com/curl/curl/pull/4672
4659:
4660: Daniel Stenberg (5 Dec 2019)
4661: - etag: allow both --etag-compare and --etag-save in same cmdline
4662:
4663: Fixes #4669
4664: Closes #4678
4665:
4666: Marcel Raad (5 Dec 2019)
4667: - curl_setup: fix `CURLRES_IPV6` condition
4668:
4669: Move the definition of `CURLRES_IPV6` to before undefining
4670: `HAVE_GETADDRINFO`. Regression from commit 67a08dca27a which caused
4671: some tests to fail and others to be skipped with c-ares.
4672:
4673: Fixes https://github.com/curl/curl/issues/4673
4674: Closes https://github.com/curl/curl/pull/4677
4675:
4676: Daniel Stenberg (5 Dec 2019)
4677: - test342: make it return a 304 as the tag matches
4678:
4679: Peter Wu (4 Dec 2019)
4680: - CMake: add support for building with the NSS vtls backend
4681:
4682: Options are cross-checked with configure.ac and acinclude.m4.
4683: Tested on Arch Linux, untested on other platforms like Windows or macOS.
4684:
4685: Closes #4663
4686: Reviewed-by: Kamil Dudka
4687:
4688: Daniel Stenberg (4 Dec 2019)
4689: - azure: add more builds
4690:
4691: ... removed two from travis (that now runs on azure instead)
4692:
4693: Closes #4671
4694:
4695: - CURLOPT_VERBOSE.3: see also ERRORBUFFER
4696:
4697: - hostip4.c: bump copyright year range
4698:
4699: Marcel Raad (3 Dec 2019)
4700: - configure: enable IPv6 support without `getaddrinfo`
4701:
4702: This makes it possible to recognize and connect to literal IPv6
4703: addresses when `getaddrinfo` is not available, which is already the
4704: case for the CMake build. This affects e.g. classic MinGW because it
4705: still targets Windows 2000 by default, where `getaddrinfo` is not
4706: available, but general IPv6 support is.
4707:
4708: Instead of checking for `getaddrinfo`, check for `sockaddr_in6` as the
4709: CMake build does.
4710:
4711: Closes https://github.com/curl/curl/pull/4662
4712:
4713: - curl_setup: disable IPv6 resolver without `getaddrinfo`
4714:
4715: Also, use `CURLRES_IPV6` only for actual DNS resolution, not for IPv6
4716: address support. This makes it possible to connect to IPv6 literals by
4717: setting `ENABLE_IPV6` even without `getaddrinfo` support. It also fixes
4718: the CMake build when using the synchronous resolver without
4719: `getaddrinfo` support.
4720:
4721: Closes https://github.com/curl/curl/pull/4662
4722:
4723: Daniel Stenberg (3 Dec 2019)
4724: - github action/azure pipeline: run 'make test-nonflaky' for tests
4725:
4726: To match travis and give more info on failures.
4727:
4728: - openssl: CURLSSLOPT_NO_PARTIALCHAIN can disable partial cert chains
4729:
4730: Closes #4655
4731:
4732: - openssl: set X509_V_FLAG_PARTIAL_CHAIN
4733:
4734: Have intermediate certificates in the trust store be treated as
4735: trust-anchors, in the same way as self-signed root CA certificates
4736: are. This allows users to verify servers using the intermediate cert
4737: only, instead of needing the whole chain.
4738:
4739: Other TLS backends already accept partial chains.
4740:
4741: Reported-by: Jeffrey Walton
4742: Bug: https://curl.haxx.se/mail/lib-2019-11/0094.html
4743:
4744: - curl: show better error message when no homedir is found
4745:
4746: Reported-by: Vlastimil Ovčáčík
4747: Fixes #4644
4748: Closes #4665
4749:
4750: - OPENSOCKETFUNCTION.3: correct the purpose description
4751:
4752: Reported-by: Jeff Mears
4753: Bug: https://curl.haxx.se/mail/lib-2019-12/0007.html
4754:
4755: Closes #4667
4756:
4757: - [Peter Wu brought this change]
4758:
4759: travis: do not use OVERRIDE_CC or OVERRIDE_CXX if empty
4760:
4761: Fixes the macOS builds where OVERRIDE_CC and OVERRIDE_CXX are not set.
4762:
4763: Reported-by: Jay Satiro
4764: Fixes #4659
4765: Closes #4661
4766: Closes #4664
4767:
4768: - azure-pipelines: fix the test script
4769:
4770: - Azure Pipelines: initial CI setup
4771:
4772: [skip ci]
4773:
4774: - docs: add "added: 7.68.0" to the --etag-* docs
4775:
4776: - copyright: fix the year ranges for two files
4777:
4778: Follow-up to 9c1806ae
4779:
4780: Jay Satiro (1 Dec 2019)
4781: - build: Disable Visual Studio warning "conditional expression is constant"
4782:
4783: - Disable warning C4127 "conditional expression is constant" globally
4784: in curl_setup.h for when building with Microsoft's compiler.
4785:
4786: This mainly affects building with the Visual Studio project files found
4787: in the projects dir.
4788:
4789: Prior to this change the cmake and winbuild build systems already
4790: disabled 4127 globally for when building with Microsoft's compiler.
4791: Also, 4127 was already disabled for all build systems in the limited
4792: circumstance of the WHILE_FALSE macro which disabled the warning
4793: specifically for while(0). This commit removes the WHILE_FALSE macro and
4794: all other cruft in favor of disabling globally in curl_setup.
4795:
4796: Background:
4797:
4798: We have various macros that cause 0 or 1 to be evaluated, which would
4799: cause warning C4127 in Visual Studio. For example this causes it:
4800:
4801: #define Curl_resolver_asynch() 1
4802:
4803: Full behavior is not clearly defined and inconsistent across versions.
4804: However it is documented that since VS 2015 Update 3 Microsoft has
4805: addressed this somewhat but not entirely, not warning on while(true) for
4806: example.
4807:
4808: Prior to this change some C4127 warnings occurred when I built with
4809: Visual Studio using the generated projects in the projects dir.
4810:
4811: Closes https://github.com/curl/curl/pull/4658
4812:
4813: - openssl: retrieve reported LibreSSL version at runtime
4814:
4815: - Retrieve LibreSSL runtime version when supported (>= 2.7.1).
4816:
4817: For earlier versions we continue to use the compile-time version.
4818:
4819: Ref: https://man.openbsd.org/OPENSSL_VERSION_NUMBER.3
4820:
4821: Closes https://github.com/curl/curl/pull/2425
4822:
4823: - strerror: Add Curl_winapi_strerror for Win API specific errors
4824:
4825: - In all code call Curl_winapi_strerror instead of Curl_strerror when
4826: the error code is known to be from Windows GetLastError.
4827:
4828: Curl_strerror prefers CRT error codes (errno) over Windows API error
4829: codes (GetLastError) when the two overlap. When we know the error code
4830: is from GetLastError it is more accurate to prefer the Windows API error
4831: messages.
4832:
4833: Reported-by: Richard Alcock
4834:
4835: Fixes https://github.com/curl/curl/issues/4550
4836: Closes https://github.com/curl/curl/pull/4581
4837:
4838: Daniel Stenberg (2 Dec 2019)
4839: - global_init: undo the "intialized" bump in case of failure
4840:
4841: ... so that failures in the global init function don't count as a
4842: working init and it can then be called again.
4843:
4844: Reported-by: Paul Groke
4845: Fixes #4636
4846: Closes #4653
4847:
4848: - parsedate: offer a getdate_capped() alternative
4849:
4850: ... and use internally. This function will return TIME_T_MAX instead of
4851: failure if the parsed data is found to be larger than what can be
4852: represented. TIME_T_MAX being the largest value curl can represent.
4853:
4854: Reviewed-by: Daniel Gustafsson
4855: Reported-by: JanB on github
4856: Fixes #4152
4857: Closes #4651
4858:
4859: - docs: add more references to curl_multi_poll
4860:
4861: Fixes #4643
4862: Closes #4652
4863:
4864: - sha256: bump the copyright year range
4865:
4866: Follow-up from 66e21520f
4867:
4868: Daniel Gustafsson (28 Nov 2019)
4869: - curl_setup_once: consistently use WHILE_FALSE in macros
4870:
4871: The WHILE_FALSE construction is used to avoid compiler warnings in
4872: macro constructions. This fixes a few instances where it was not
4873: used in order to keep the code consistent.
4874:
4875: Closes #4649
4876: Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4877:
4878: Daniel Stenberg (28 Nov 2019)
4879: - [Steve Holme brought this change]
4880:
4881: http_ntlm: Remove duplicate NSS initialisation
4882:
4883: Given that this is performed by the NTLM code there is no need to
4884: perform the initialisation in the HTTP layer. This also keeps the
4885: initialisation the same as the SASL based protocols and also fixes a
4886: possible compilation issue if both NSS and SSPI were to be used as
4887: multiple SSL backends.
4888:
4889: Reviewed-by: Kamil Dudka
4890: Closes #3935
4891:
4892: Daniel Gustafsson (28 Nov 2019)
4893: - checksrc: fix regexp for ASSIGNWITHINCONDITION
4894:
4895: The regexp looking for assignments within conditions was too greedy
4896: and matched a too long string in the case of multiple conditionals
4897: on the same line. This is basically only a problem in single line
4898: macros, and the code which exemplified this was essentially:
4899:
4900: do { if((x) != NULL) { x = NULL; } } while(0)
4901:
4902: ..where the final parenthesis of while(0) matched the regexp, and
4903: the legal assignment in the block triggered the warning. Fix by
4904: making the regexp less greedy by matching for the tell-tale signs
4905: of the if statement ending.
4906:
4907: Also remove the one occurrence where the warning was disabled due
4908: to a construction like the above, where the warning didn't apply
4909: when fixed.
4910:
4911: Closes #4647
4912: Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4913:
4914: Daniel Stenberg (28 Nov 2019)
4915: - RELEASE-NOTES: synced
4916:
4917: - [Maros Priputen brought this change]
4918:
4919: curl: two new command line options for etags
4920:
4921: --etag-compare and --etag-save
4922:
4923: Suggested-by: Paul Hoffman
4924: Fixes #4277
4925: Closes #4543
4926:
4927: Daniel Gustafsson (28 Nov 2019)
4928: - docs: fix typos
4929:
4930: Daniel Stenberg (28 Nov 2019)
4931: - mailmap: Niall O'Reilly's name
4932:
4933: - [Niall O'Reilly brought this change]
4934:
4935: doh: use dedicated probe slots
4936:
4937: ... to easier allow additional DNS transactions.
4938:
4939: Closes #4629
4940:
4941: - travis: build ngtcp2 with --enable-lib-only
4942:
4943: ... makes it skip the examples and other stuff we don't neeed.
4944:
4945: Closes #4646
4946:
4947: - [David Benjamin brought this change]
4948:
4949: ngtcp2: fix thread-safety bug in error-handling
4950:
4951: ERR_error_string(NULL) should never be called. It places the error in a
4952: global buffer, which is not thread-safe. Use ERR_error_string_n with a
4953: local buffer instead.
4954:
4955: Closes #4645
4956:
4957: - travis: export the CC/CXX variables when set
4958:
4959: Suggested-by: Peter Wu
4960: Fixes #4637
4961: Closes #4640
4962:
4963: Marcel Raad (26 Nov 2019)
4964: - dist: add error-codes.pl
4965:
4966: Follow-up to commit 74f441c6d31.
4967: This should fix test 1175 when run via the daily source tarballs.
4968:
4969: Closes https://github.com/curl/curl/pull/4638
4970:
4971: Daniel Stenberg (26 Nov 2019)
4972: - [John Schroeder brought this change]
4973:
4974: curl: fix --upload-file . hangs if delay in STDIN
4975:
4976: Attempt to unpause a busy read in the CURLOPT_XFERINFOFUNCTION.
4977:
4978: When uploading from stdin in non-blocking mode, a delay in reading
4979: the stream (EAGAIN) causes curl to pause sending data
4980: (CURL_READFUNC_PAUSE). Prior to this change, a busy read was
4981: detected and unpaused only in the CURLOPT_WRITEFUNCTION handler.
4982: This change performs the same busy read handling in a
4983: CURLOPT_XFERINFOFUNCTION handler.
4984:
4985: Fixes #2051
4986: Closes #4599
4987: Reported-by: bdry on github
4988:
4989: - [John Schroeder brought this change]
4990:
4991: XFERINFOFUNCTION: support CURL_PROGRESSFUNC_CONTINUE
4992:
4993: (also for PROGRESSFUNCTION)
4994:
4995: By returning this value from the callback, the internal progress
4996: function call is still called afterward.
4997:
4998: Closes #4599
4999:
5000: - [Michael Forney brought this change]
5001:
5002: TLS: add BearSSL vtls implementation
5003:
5004: Closes #4597
5005:
5006: - curl_multi_wakeup.3: add example and AVAILABILITY
5007:
5008: Reviewed-by: Gergely Nagy
5009: Closes #4635
5010:
5011: - [Gergely Nagy brought this change]
5012:
5013: multi: add curl_multi_wakeup()
5014:
5015: This commit adds curl_multi_wakeup() which was previously in the TODO
5016: list under the curl_multi_unblock name.
5017:
5018: On some platforms and with some configurations this feature might not be
5019: available or can fail, in these cases a new error code
5020: (CURLM_WAKEUP_FAILURE) is returned from curl_multi_wakeup().
5021:
5022: Fixes #4418
5023: Closes #4608
5024:
5025: Jay Satiro (24 Nov 2019)
5026: - [Xiaoyin Liu brought this change]
5027:
5028: schannel: fix --tls-max for when min is --tlsv1 or default
5029:
5030: Prior to this change schannel ignored --tls-max (CURL_SSLVERSION_MAX_
5031: macros) when --tlsv1 (CURL_SSLVERSION_TLSv1) or default TLS
5032: (CURL_SSLVERSION_DEFAULT), using a max of TLS 1.2 always.
5033:
5034: Closes https://github.com/curl/curl/pull/4633
5035:
5036: - checksrc.bat: Add a check for vquic and vssh directories
5037:
5038: Ref: https://github.com/curl/curl/pull/4607
5039:
5040: - projects: Fix Visual Studio projects SSH builds
5041:
5042: - Generate VQUIC and VSSH filenames in Visual Studio project files.
5043:
5044: Prior to this change generated Visual Studio project configurations that
5045: enabled SSH did not build properly. Broken since SSH files were moved to
5046: lib/vssh 3 months ago in 5b2d703.
5047:
5048: Fixes https://github.com/curl/curl/issues/4492
5049: Fixes https://github.com/curl/curl/issues/4630
5050: Closes https://github.com/curl/curl/pull/4607
5051:
5052: Daniel Stenberg (23 Nov 2019)
5053: - RELEASE-NOTES: synced
5054:
5055: Jay Satiro (22 Nov 2019)
5056: - openssl: Revert to less sensitivity for SYSCALL errors
5057:
5058: - Disable the extra sensitivity except in debug builds (--enable-debug).
5059:
5060: - Improve SYSCALL error message logic in ossl_send and ossl_recv so that
5061: "No error" / "Success" socket error text isn't shown on SYSCALL error.
5062:
5063: Prior to this change 0ab38f5 (precedes 7.67.0) increased the sensitivity
5064: of OpenSSL's SSL_ERROR_SYSCALL error so that abrupt server closures were
5065: also considered errors. For example, a server that does not send a known
5066: protocol termination point (eg HTTP content length or chunked encoding)
5067: _and_ does not send a TLS termination point (close_notify alert) would
5068: cause an error if it closed the connection.
5069:
5070: To be clear that behavior made it into release build 7.67.0
5071: unintentionally. Several users have reported it as an issue.
5072:
5073: Ultimately the idea is a good one, since it can help prevent against a
5074: truncation attack. Other SSL backends may already behave similarly (such
5075: as Windows native OS SSL Schannel). However much more of our user base
5076: is using OpenSSL and there is a mass of legacy users in that space, so I
5077: think that behavior should be partially reverted and then rolled out
5078: slowly.
5079:
5080: This commit changes the behavior so that the increased sensitivity is
5081: disabled in all curl builds except curl debug builds (DEBUGBUILD). If
5082: after a period of time there are no major issues then it can be enabled
5083: in dev and release builds with the newest OpenSSL (1.1.1+), since users
5084: using the newest OpenSSL are the least likely to have legacy problems.
5085:
5086: Bug: https://github.com/curl/curl/issues/4409#issuecomment-555955794
5087: Reported-by: Bjoern Franke
5088:
5089: Fixes https://github.com/curl/curl/issues/4624
5090: Closes https://github.com/curl/curl/pull/4623
5091:
5092: - [Daniel Stenberg brought this change]
5093:
5094: openssl: improve error message for SYSCALL during connect
5095:
5096: Reported-by: Paulo Roberto Tomasi
5097: Bug: https://curl.haxx.se/mail/archive-2019-11/0005.html
5098:
5099: Closes https://github.com/curl/curl/pull/4593
5100:
5101: Daniel Stenberg (22 Nov 2019)
5102: - test1175: verify symbols-in-versions and libcurl-errors.3 in sync
5103:
5104: Closes #4628
5105:
5106: - include: make CURLE_HTTP3 use a new error code
5107:
5108: To avoid potential issues with error code reuse.
5109:
5110: Reported-by: Christoph M. Becker
5111: Assisted-by: Dan Fandrich
5112: Fixes #4601
5113: Closes #4627
5114:
5115: - bump: next release will be 7.68.0
5116:
5117: - curl: add --parallel-immediate
5118:
5119: Starting with this change when doing parallel transfers, without this
5120: option set, curl will prefer to create new transfers multiplexed on an
5121: existing connection rather than creating a brand new one.
5122:
5123: --parallel-immediate can be set to tell curl to prefer to use new
5124: connections rather than to wait and try to multiplex.
5125:
5126: libcurl-wise, this means that curl will set CURLOPT_PIPEWAIT by default
5127: on parallel transfers.
5128:
5129: Suggested-by: Tom van der Woerdt
5130: Closes #4500
5131:
5132: Daniel Gustafsson (20 Nov 2019)
5133: - [Victor Magierski brought this change]
5134:
5135: docs: fix typos
5136:
5137: Change 'experiemental' to 'experimental'.
5138:
5139: Closes #4618
5140: Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
5141:
5142: Jay Satiro (18 Nov 2019)
5143: - projects: Fix Visual Studio wolfSSL configurations
5144:
5145: - s/USE_CYASSL/USE_WOLFSSL/
5146:
5147: - Remove old compatibility macros.
5148:
5149: Follow-up to 1c6c59a from several months ago when CyaSSL named symbols
5150: were renamed to wolfSSL. The wolfSSL library was formerly named CyaSSL
5151: and we kept using their old name for compatibility reasons, until
5152: earlier this year.
5153:
5154: Daniel Stenberg (18 Nov 2019)
5155: - RELEASE-NOTES: synced
5156:
5157: - [Javier Blazquez brought this change]
5158:
5159: ngtcp2: use overflow buffer for extra HTTP/3 data
5160:
5161: Fixes #4525
5162: Closes #4603
5163:
5164: - altsvc: bump to h3-24
5165:
5166: ... as both ngtcp2 and quiche now support that in their master branches
5167:
5168: Closes #4604
5169:
5170: - ngtcp2: free used resources on disconnect
5171:
5172: Fixes #4614
5173: Closes #4615
5174:
5175: - ngtcp2: handle key updates as ngtcp2 master branch tells us
5176:
5177: Reviewed-by: Tatsuhiro Tsujikawa
5178:
5179: Fixes #4612
5180: Closes #4613
5181:
5182: Jay Satiro (17 Nov 2019)
5183: - [Gergely Nagy brought this change]
5184:
5185: multi: Fix curl_multi_poll wait when extra_fds && !extra_nfds
5186:
5187: Prior to this change:
5188:
5189: The check if an extra wait is necessary was based not on the
5190: number of extra fds but on the pointer.
5191:
5192: If a non-null pointer was given in extra_fds, but extra_nfds
5193: was zero, then the wait was skipped even though poll was not
5194: called.
5195:
5196: Closes https://github.com/curl/curl/pull/4610
5197:
5198: - lib: Move lib/ssh.h -> lib/vssh/ssh.h
5199:
5200: Follow-up to 5b2d703 which moved ssh source files to vssh.
5201:
5202: Closes https://github.com/curl/curl/pull/4609
5203:
5204: Daniel Stenberg (16 Nov 2019)
5205: - [Andreas Falkenhahn brought this change]
5206:
5207: INSTALL.md: provide Android build instructions
5208:
5209: Closes #4606
5210:
5211: - [Niall O'Reilly brought this change]
5212:
5213: doh: improced both encoding and decoding
5214:
5215: Improved estimation of expected_len and updated related comments;
5216: increased strictness of QNAME-encoding, adding error detection for empty
5217: labels and names longer than the overall limit; avoided treating DNAME
5218: as unexpected;
5219:
5220: updated unit test 1655 with more thorough set of proofs and tests
5221:
5222: Closes #4598
5223:
5224: - ngtcp2: increase QUIC window size when data is consumed
5225:
5226: Assisted-by: Javier Blazquez
5227: Ref #4525 (partial fix)
5228: Closes #4600
5229:
5230: - [Melissa Mears brought this change]
5231:
5232: config-win32: cpu-machine-OS for Windows on ARM
5233:
5234: Define the OS macro properly for Windows on ARM builds. Also, we might
5235: as well add the GCC-style IA-64 macro.
5236:
5237: Closes #4590
5238:
5239: - examples: add multi-poll.c
5240:
5241: Show how curl_multi_poll() makes it even easier to use the multi
5242: interface.
5243:
5244: Closes #4596
5245:
5246: - multi_poll: avoid busy-loop when called without easy handles attached
5247:
5248: Fixes #4594
5249: Closes #4595
5250: Reported-by: 3dyd on github
5251:
5252: - curl: fix -T globbing
5253:
5254: Regression from e59371a4936f8 (7.67.0)
5255:
5256: Added test 490, 491 and 492 to verify the functionality.
5257:
5258: Reported-by: Kamil Dudka
5259: Reported-by: Anderson Sasaki
5260:
5261: Fixes #4588
5262: Closes #4591
5263:
5264: - HISTORY: added cmake, HTTP/3 and parallel downloads with curl
5265:
5266: - quiche: reject headers in the wrong order
5267:
5268: Pseudo header MUST come before regular headers or cause an error.
5269:
5270: Reported-by: Cynthia Coan
5271: Fixes #4571
5272: Closes #4584
5273:
5274: - openssl: prevent recursive function calls from ctx callbacks
5275:
5276: Follow the pattern of many other callbacks.
5277:
5278: Ref: #4546
5279: Closes #4585
5280:
5281: - CURL-DISABLE: initial docs for the CURL_DISABLE_* defines
5282:
5283: The disable-scan script used in test 1165 is extended to also verify
5284: that the docs cover all used defines and all defines offered by
5285: configure.
5286:
5287: Reported-by: SLDiggie on github
5288: Fixes #4545
5289: Closes #4587
5290:
5291: - remove_handle: clear expire timers after multi_done()
5292:
5293: Since 59041f0, a new timer might be set in multi_done() so the clearing
5294: of the timers need to happen afterwards!
5295:
5296: Reported-by: Max Kellermann
5297: Fixes #4575
5298: Closes #4583
5299:
5300: Marcel Raad (10 Nov 2019)
5301: - test1558: use double slash after file:
5302:
5303: Classic MinGW / MSYS 1 doesn't support `MSYS2_ARG_CONV_EXCL`, so this
5304: test unnecessarily failed when using `file:/` instead of `file:///`.
5305:
5306: Closes https://github.com/curl/curl/pull/4554
5307:
5308: Daniel Stenberg (10 Nov 2019)
5309: - pause: avoid updating socket if done was already called
5310:
5311: ... avoids unnecesary recursive risk when the transfer is already done.
5312:
5313: Reported-by: Richard Bowker
5314: Fixes #4563
5315: Closes #4574
5316:
5317: Jay Satiro (9 Nov 2019)
5318: - strerror: Fix an error looking up some Windows error strings
5319:
5320: - Use FORMAT_MESSAGE_IGNORE_INSERTS to ignore format specifiers in
5321: Windows error strings.
5322:
5323: Since we are not in control of the error code we don't know what
5324: information may be needed by the error string's format specifiers.
5325:
5326: Prior to this change Windows API error strings which contain specifiers
5327: (think specifiers like similar to printf specifiers) would not be shown.
5328: The FormatMessage Windows API call which turns a Windows error code into
5329: a string could fail and set error ERROR_INVALID_PARAMETER if that error
5330: string contained a format specifier. FormatMessage expects a va_list for
5331: the specifiers, unless inserts are ignored in which case no substitution
5332: is attempted.
5333:
5334: Ref: https://devblogs.microsoft.com/oldnewthing/20071128-00/?p=24353
5335:
5336: - [r-a-sattarov brought this change]
5337:
5338: system.h: fix for MCST lcc compiler
5339:
5340: Fixed build by MCST lcc compiler on MCST Elbrus 2000 architecture and do
5341: some code cleanup.
5342:
5343: e2k (Elbrus 2000) - this is VLIW/EPIC architecture, like Intel Itanium
5344: architecture.
5345:
5346: Ref: https://en.wikipedia.org/wiki/Elbrus_2000
5347:
5348: Closes https://github.com/curl/curl/pull/4576
5349:
5350: Daniel Stenberg (8 Nov 2019)
5351: - TODO: curl_multi_unblock
5352:
5353: Closes #4418
5354:
5355: - TODO: Run web-platform-tests url tests
5356:
5357: Closes #4477
5358:
5359: - TODO: 1.4 alt-svc sharing
5360:
5361: Closes #4476
5362:
5363: - test1560: require IPv6 for IPv6 aware URL parsing
5364:
5365: The URL parser function can't reject a bad IPv6 address properly when
5366: curl was built without IPv6 support.
5367:
5368: Reported-by: Marcel Raad
5369: Fixes #4556
5370: Closes #4572
5371:
5372: - checksrc: repair the copyrightyear check
5373:
5374: - Consider a modified file to be committed this year.
5375:
5376: - Make the travis CHECKSRC also do COPYRIGHTYEAR scan in examples and
5377: includes
5378:
5379: - Ignore 0 parents when getting latest commit date of file.
5380:
5381: since in the CI we're dealing with a truncated repo of last 50 commits,
5382: the file's most recent commit may not be available. when this happens
5383: git log and rev-list show the initial commit (ie first commit not to be
5384: truncated) but that's incorrect so ignore it.
5385:
5386: Ref: https://github.com/curl/curl/pull/4547
5387:
5388: Closes https://github.com/curl/curl/pull/4549
5389:
5390: Co-authored-by: Jay Satiro
5391:
5392: - copyrights: fix copyright year range
5393:
5394: .. because checksrc's copyright year check stopped working.
5395:
5396: Ref: https://github.com/curl/curl/pull/4547
5397:
5398: Closes https://github.com/curl/curl/pull/4549
5399:
5400: - RELEASE-NOTES: synced
5401:
5402: - curlver: bump to 7.67.1
5403:
5404: - mailmap: fixup Massimiliano Fantuzzi
5405:
5406: - scripts/contributors: make committers get included too
5407:
5408: in addition to authors
5409:
5410: Jay Satiro (8 Nov 2019)
5411: - [Massimiliano Fantuzzi brought this change]
5412:
5413: configure: fix typo in help text
5414:
5415: Closes https://github.com/curl/curl/pull/4570
5416:
5417: Daniel Stenberg (7 Nov 2019)
5418: - [Christian Schmitz brought this change]
5419:
5420: ntlm: USE_WIN32_CRYPTO check removed to get USE_NTLM2SESSION set
5421:
5422: Closes #3704
5423:
5424: Jay Satiro (6 Nov 2019)
5425: - [Wyatt O'Day brought this change]
5426:
5427: build: fix for CURL_DISABLE_DOH
5428:
5429: Fixes https://github.com/curl/curl/issues/4565
5430: Closes https://github.com/curl/curl/pull/4566
5431:
5432: - [Leonardo Taccari brought this change]
5433:
5434: configure: avoid unportable `==' test(1) operator
5435:
5436: Closes https://github.com/curl/curl/pull/4567
5437:
5438: Version 7.67.0 (5 Nov 2019)
5439:
5440: Daniel Stenberg (5 Nov 2019)
5441: - RELEASE-NOTES: synced
5442:
5443: The 7.67.0 release
5444:
5445: - THANKS: add new names from 7.67.0
5446:
5447: - configure: only say ipv6 enabled when the variable is set
5448:
5449: Previously it could say "IPv6: enabled" at the end of the configure run
5450: but the define wasn't set because of a missing getaddrinfo().
5451:
5452: Reported-by: Marcel Raad
5453: Fixes #4555
5454: Closes #4560
5455:
5456: Marcel Raad (2 Nov 2019)
5457: - certs/Server-localhost-lastSAN-sv: regenerate with sha256
5458:
5459: All other certificates were regenerated in commit ba782baac30, but
5460: this one was missed.
5461: Fixes test3001 on modern systems.
5462:
5463: Closes https://github.com/curl/curl/pull/4551
5464:
5465: Daniel Stenberg (2 Nov 2019)
5466: - [Vilhelm Prytz brought this change]
5467:
5468: copyrights: update all copyright notices to 2019 on files changed this year
5469:
5470: Closes #4547
5471:
5472: - [Bastien Bouclet brought this change]
5473:
5474: mbedtls: add error message for cert validity starting in the future
5475:
5476: Closes #4552
5477:
5478: Jay Satiro (1 Nov 2019)
5479: - schannel_verify: Fix concurrent openings of CA file
5480:
5481: - Open the CA file using FILE_SHARE_READ mode so that others can read
5482: from it as well.
5483:
5484: Prior to this change our schannel code opened the CA file without
5485: sharing which meant concurrent openings (eg an attempt from another
5486: thread or process) would fail during the time it was open without
5487: sharing, which in curl's case would cause error:
5488: "schannel: failed to open CA file".
5489:
5490: Bug: https://curl.haxx.se/mail/lib-2019-10/0104.html
5491: Reported-by: Richard Alcock
5492:
5493: Daniel Stenberg (31 Oct 2019)
5494: - gtls: make gnutls_bye() not wait for response on shutdown
5495:
5496: ... as it can make it wait there for a long time for no good purpose.
5497:
5498: Patched-by: Jay Satiro
5499: Reported-by: Bylon2 on github
5500: Adviced-by: Nikos Mavrogiannopoulos
5501:
5502: Fixes #4487
5503: Closes #4541
5504:
5505: - [Michał Janiszewski brought this change]
5506:
5507: appveyor: publish artifacts on appveyor
5508:
5509: This allows obtaining upstream builds of curl directly from appveyor for
5510: all the available configurations
5511:
5512: Closes #4509
5513:
5514: - url: make Curl_close() NULLify the pointer too
5515:
5516: This is the common pattern used in the code and by a unified approach we
5517: avoid mistakes.
5518:
5519: Closes #4534
5520:
5521: - [Trivikram Kamat brought this change]
5522:
5523: INSTALL: add missing space for configure commands
5524:
5525: Closes #4539
5526:
5527: - url: Curl_free_request_state() should also free doh handles
5528:
5529: ... or risk DoH memory leaks.
5530:
5531: Reported-by: Paul Dreik
5532: Fixes #4463
5533: Closes #4527
5534:
5535: - examples: remove the "this exact code has not been verified"
5536:
5537: ... as really confuses the reader to not know what to believe!
5538:
5539: - [Trivikram Kamat brought this change]
5540:
5541: HTTP3: fix typo somehere1 > somewhere1
5542:
5543: Closes #4535
5544:
5545: Jay Satiro (28 Oct 2019)
5546: - [Javier Blazquez brought this change]
5547:
5548: HTTP3: fix invalid use of sendto for connected UDP socket
5549:
5550: On macOS/BSD, trying to call sendto on a connected UDP socket fails
5551: with a EISCONN error. Because the singleipconnect has already called
5552: connect on the socket when we're trying to use it for QUIC transfers
5553: we need to use plain send instead.
5554:
5555: Fixes #4529
5556: Closes https://github.com/curl/curl/pull/4533
5557:
5558: Daniel Stenberg (28 Oct 2019)
5559: - RELEASE-NOTES: synced
5560:
5561: - [Javier Blazquez brought this change]
5562:
5563: HTTP3: fix Windows build
5564:
5565: The ngtcp2 QUIC backend was using the MSG_DONTWAIT flag for send/recv
5566: in order to perform nonblocking operations. On Windows this flag does
5567: not exist. Instead, the socket must be set to nonblocking mode via
5568: ioctlsocket.
5569:
5570: This change sets the nonblocking flag on UDP sockets used for QUIC on
5571: all platforms so the use of MSG_DONTWAIT is not needed.
5572:
5573: Fixes #4531
5574: Closes #4532
5575:
5576: Marcel Raad (27 Oct 2019)
5577: - appveyor: add --disable-proxy autotools build
5578:
5579: This would have caught issue #3926.
5580:
5581: Also make formatting more consistent.
5582:
5583: Closes https://github.com/curl/curl/pull/4526
5584:
5585: Daniel Stenberg (25 Oct 2019)
5586: - appveyor: make winbuilds with DEBUG=no/yes and VS 2015/2017
5587:
5588: ... and invoke "curl -V" once done
5589:
5590: Co-Authored-By: Jay Satiro
5591:
5592: Closes #4523
5593:
5594: - [Francois Rivard brought this change]
5595:
5596: schannel: reverse the order of certinfo insertions
5597:
5598: Fixes #4518
5599: Closes #4519
5600:
5601: Marcel Raad (24 Oct 2019)
5602: - test1591: fix spelling of http feature
5603:
5604: The test never got run because the feature name is `http` in lowercase.
5605:
5606: Closes https://github.com/curl/curl/pull/4520
5607:
5608: Daniel Stenberg (23 Oct 2019)
5609: - [Michał Janiszewski brought this change]
5610:
5611: appveyor: Use two parallel compilation on appveyor with CMake
5612:
5613: Appveyor provides 2 CPUs for each builder[1], make sure to use parallel
5614: compilation, when running with CMake. CMake learned this new option in
5615: version 3.12[2] and the version provided by appveyor is fresh enough.
5616:
5617: Curl doesn't really take that long to build and it is using the slowest
5618: builder available, msbuild, so expect only a moderate improvement in
5619: build times.
5620:
5621: [1] https://www.appveyor.com/docs/build-environment/
5622: [2] https://cmake.org/cmake/help/v3.12/release/3.12.html
5623:
5624: Closes #4508
5625:
5626: - conn-reuse: requests wanting NTLM can reuse non-NTLM connections
5627:
5628: Added test case 338 to verify.
5629:
5630: Reported-by: Daniel Silverstone
5631: Fixes #4499
5632: Closes #4514
5633:
5634: Marcel Raad (23 Oct 2019)
5635: - tests: add missing proxy features
5636:
5637: Daniel Stenberg (22 Oct 2019)
5638: - RELEASE-NOTES: synced
5639:
5640: Marcel Raad (21 Oct 2019)
5641: - tests: use %FILE_PWD for file:// URLs
5642:
5643: This way, we always have exactly one slash after the host name, making
5644: the tests pass when curl is compiled with the MSYS GCC.
5645:
5646: Closes https://github.com/curl/curl/pull/4512
5647:
5648: - tests: add `connect to non-listen` keywords
5649:
5650: These tests try to connect to ports nothing is listening on.
5651:
5652: Closes https://github.com/curl/curl/pull/4511
5653:
5654: - runtests: get textaware info from curl instead of perl
5655:
5656: The MSYS system on Windows can run the test suite for curl built with
5657: any toolset. When built with the MSYS GCC, curl uses Unix line endings,
5658: while it uses Windows line endings when built with the MinGW GCC, and
5659: `^O` reports 'msys' in both cases. Use the curl executable itself to
5660: determine the line endings instead, which reports 'x86_64-pc-msys' when
5661: built with the MSYS GCC.
5662:
5663: Closes https://github.com/curl/curl/pull/4506
5664:
5665: Daniel Stenberg (20 Oct 2019)
5666: - [Michał Janiszewski brought this change]
5667:
5668: appveyor: Add MSVC ARM64 build
5669:
5670: Closes #4507
5671:
5672: - http2_recv: a closed stream trumps pause state
5673:
5674: ... and thus should return 0, not EAGAIN.
5675:
5676: Reported-by: Tom van der Woerdt
5677: Fixes #4496
5678: Closes #4505
5679:
5680: - http2: expire a timeout at end of stream
5681:
5682: To make sure that transfer is being dealt with. Streams without
5683: Content-Length need a final read to notice the end-of-stream state.
5684:
5685: Reported-by: Tom van der Woerdt
5686: Fixes #4496
5687:
5688: Dan Fandrich (18 Oct 2019)
5689: - travis: Add an ARM64 build
5690:
5691: Test 323 is failing for some reason, so disable it there for now.
5692:
5693: Marcel Raad (18 Oct 2019)
5694: - examples/sslbackend: fix -Wchar-subscripts warning
5695:
5696: With the `isdigit` implementation that comes with MSYS2, the argument
5697: is used as an array subscript, resulting in a -Wchar-subscripts
5698: warning. `isdigit`'s behavior is undefined if the argument is negative
5699: and not EOF [0]. As done in lib/curl_ctype.h, cast the `char` variable
5700: to `unsigned char` to avoid that.
5701:
5702: [0] https://en.cppreference.com/w/c/string/byte/isdigit
5703:
5704: Closes https://github.com/curl/curl/pull/4503
5705:
5706: Daniel Stenberg (18 Oct 2019)
5707: - configure: remove all cyassl references
5708:
5709: In particular, this removes the case where configure would find an old
5710: cyall installation rather than a wolfssl one if present. The library is
5711: named wolfssl in modern days so there's no real need to keep support for
5712: the former.
5713:
5714: Reported-by: Jacob Barthelmeh
5715: Closes #4502
5716:
5717: Marcel Raad (17 Oct 2019)
5718: - test1162: disable MSYS2's POSIX path conversion
5719:
5720: This avoids MSYS2 converting the backslasb in the URL to a slash,
5721: causing the test to fail.
5722:
5723: Daniel Stenberg (17 Oct 2019)
5724: - RELEASE-NOTES: synced
5725:
5726: Jay Satiro (16 Oct 2019)
5727: - CURLOPT_TIMEOUT.3: Clarify transfer timeout time includes queue time
5728:
5729: Prior to this change some users did not understand that the "request"
5730: starts when the handle is added to the multi handle, or probably they
5731: did not understand that some of those transfers may be queued and that
5732: time is included in timeout.
5733:
5734: Reported-by: Jeroen Ooms
5735:
5736: Fixes https://github.com/curl/curl/issues/4486
5737: Closes https://github.com/curl/curl/pull/4489
5738:
5739: - [Stian Soiland-Reyes brought this change]
5740:
5741: tool_operate: Fix retry sleep time shown to user when Retry-After
5742:
5743: - If server header Retry-After is being used for retry sleep time then
5744: show that value to the user instead of the normal retry sleep time.
5745:
5746: This is a follow-up to 640b973 (7.66.0) which changed curl tool so that
5747: the value from Retry-After header overrides other retry timing options.
5748:
5749: Closes https://github.com/curl/curl/pull/4498
5750:
5751: Daniel Stenberg (16 Oct 2019)
5752: - url: normalize CURLINFO_EFFECTIVE_URL
5753:
5754: The URL extracted with CURLINFO_EFFECTIVE_URL was returned as given as
5755: input in most cases, which made it not get a scheme prefixed like before
5756: if the URL was given without one, and it didn't remove dotdot sequences
5757: etc.
5758:
5759: Added test case 1907 to verify that this now works as intended and as
5760: before 7.62.0.
5761:
5762: Regression introduced in 7.62.0
5763:
5764: Reported-by: Christophe Dervieux
5765: Fixes #4491
5766: Closes #4493
5767:
5768: Marcel Raad (16 Oct 2019)
5769: - tests: line ending fixes for Windows
5770:
5771: Mark some files as text.
5772:
5773: Closes https://github.com/curl/curl/pull/4490
5774:
5775: - tests: use proxy feature
5776:
5777: This makes the tests succeed when using --disable-proxy.
5778:
5779: Closes https://github.com/curl/curl/pull/4488
5780:
5781: - smbserver: fix Python 3 compatibility
5782:
5783: Python 2's `ConfigParser` module is spelled `configparser` in Python 3.
5784:
5785: Closes https://github.com/curl/curl/pull/4484
5786:
5787: - security: silence conversion warning
5788:
5789: With MinGW-w64, `curl_socket_t` is is a 32 or 64 bit unsigned integer,
5790: while `read` expects a 32 bit signed integer.
5791: Use `sread` instead of `read` to use the correct parameter type.
5792:
5793: Closes https://github.com/curl/curl/pull/4483
5794:
5795: - connect: silence sign-compare warning
5796:
5797: With MinGW-w64 using WinSock, `curl_socklen_t` is signed, while the
5798: result of `sizeof` is unsigned.
5799:
5800: Closes https://github.com/curl/curl/pull/4483
5801:
5802: Daniel Stenberg (13 Oct 2019)
5803: - TODO: Handle growing SFTP files
5804:
5805: Closes #4344
5806:
5807: - KNOWN_BUGS: remove "CURLFORM_CONTENTLEN in an array"
5808:
5809: The curl_formadd() function is deprecated and shouldn't be used so the
5810: real fix for applications is to switch to the curl_mime_* API.
5811:
5812: - KNOWN_BUGS: "LDAP on Windows does authentication wrong"
5813:
5814: Closes #3116
5815:
5816: - appveyor: add a winbuild that uses VS2017
5817:
5818: Closes #4482
5819:
5820: - [Harry Sintonen brought this change]
5821:
5822: socketpair: fix include and define for older TCP header systems
5823:
5824: fixed build for systems that need netinet/in.h for IPPROTO_TCP and are
5825: missing INADDR_LOOPBACK
5826:
5827: Closes #4480
5828:
5829: - socketpair: fix double-close in error case
5830:
5831: Follow-up to bc2dbef0afc08
5832:
5833: - gskit: use the generic Curl_socketpair
5834:
5835: - asyn-thread: make use of Curl_socketpair() where available
5836:
5837: - socketpair: an implemention for Windows and more
5838:
5839: Curl_socketpair() is designed to be used and work everywhere if there's
5840: no native version or the native version isn't good enough.
5841:
5842: Closes #4466
5843:
5844: - RELEASE-NOTES: synced
5845:
5846: - connect: return CURLE_OPERATION_TIMEDOUT for errno == ETIMEDOUT
5847:
5848: Previosly all connect() failures would return CURLE_COULDNT_CONNECT, no
5849: matter what errno said.
5850:
5851: This makes for example --retry work on these transfer failures.
5852:
5853: Reported-by: Nathaniel J. Smith
5854: Fixes #4461
5855: Clsoes #4462
5856:
5857: - cirrus: switch off blackhole status on the freebsd CI machines
5858:
5859: - tests: use port 2 instead of 60000 for a safer non-listening port
5860:
5861: ... when the tests want "connection refused".
5862:
5863: - KNOWN_BUGS: IDN tests failing on Windows
5864:
5865: Closes #3747
5866:
5867: Dan Fandrich (9 Oct 2019)
5868: - cirrus: Increase the git clone depth.
5869:
5870: If more commits are submitted to master between the time of triggering
5871: the first Cirrus build and the time the final build gets started, the
5872: desired commit is no longer at HEAD and the build will error out.
5873: [skip ci]
5874:
5875: Daniel Stenberg (9 Oct 2019)
5876: - docs: make sure the --no-progress-meter docs file is in dist too
5877:
5878: - docs: document it as --no-progress-meter instead of the reverse
5879:
5880: Follow-up to 93373a960c3bb4
5881:
5882: Reported-by: infinnovation-dev on github
5883: Fixes #4474
5884: Closes #4475
5885:
5886: Dan Fandrich (9 Oct 2019)
5887: - cirrus: Switch the FreeBSD 11.x build to 11.3 and add a 13.0 build.
5888:
5889: Also, select the images using image_family to get the latest snapshots
5890: automatically.
5891: [skip ci]
5892:
5893: Daniel Stenberg (8 Oct 2019)
5894: - curl: --no-progress-meter
5895:
5896: New option that allows a user to ONLY switch off curl's progress meter
5897: and leave everything else in "talkative" mode.
5898:
5899: Reported-by: Piotr Komborski
5900: Fixes #4422
5901: Closes #4470
5902:
5903: - TODO: Consult %APPDATA% also for .netrc
5904:
5905: Closes #4016
5906:
5907: - CURLOPT_TIMEOUT.3: remove the mention of "minutes"
5908:
5909: ... just say that limiting operations risk aborting otherwise fine
5910: working transfers. If that means seconds, minutes or hours, we leave to
5911: the user.
5912:
5913: Reported-by: Martin Gartner
5914: Closes #4469
5915:
5916: - [Andrei Valeriu BICA brought this change]
5917:
5918: docs: added multi-event.c example
5919:
5920: Similar to multi-uv.c but using libevent 2. This is a simpler libevent
5921: integration example then hiperfifo.c.
5922:
5923: Closes #4471
5924:
5925: Jay Satiro (5 Oct 2019)
5926: - [Nicolas brought this change]
5927:
5928: ldap: fix OOM error on missing query string
5929:
5930: - Allow missing queries, don't return NO_MEMORY error in such a case.
5931:
5932: It is acceptable for there to be no specified query string, for example:
5933:
5934: curl ldap://ldap.forumsys.com
5935:
5936: A regression bug in 1b443a7 caused this issue.
5937:
5938: This is a partial fix for #4261.
5939:
5940: Bug: https://github.com/curl/curl/issues/4261#issuecomment-525543077
5941: Reported-by: Jojojov@users.noreply.github.com
5942: Analyzed-by: Samuel Surtees
5943:
5944: Closes https://github.com/curl/curl/pull/4467
5945:
5946: - [Paul B. Omta brought this change]
5947:
5948: build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines
5949:
5950: Closes https://github.com/curl/curl/pull/4460
5951:
5952: Daniel Stenberg (5 Oct 2019)
5953: - RELEASE-NOTES: synced
5954:
5955: - [Stian Soiland-Reyes brought this change]
5956:
5957: curl: ensure HTTP 429 triggers --retry
5958:
5959: This completes #3794.
5960:
5961: Also make sure the new tests from #4195 are enabled
5962:
5963: Closes #4465
5964:
5965: Marcel Raad (4 Oct 2019)
5966: - [apique brought this change]
5967:
5968: winbuild: add ENABLE_UNICODE option
5969:
5970: Fixes https://github.com/curl/curl/issues/4308
5971: Closes https://github.com/curl/curl/pull/4309
5972:
5973: Daniel Stenberg (4 Oct 2019)
5974: - ngtcp2: adapt to API change
5975:
5976: Closes #4457
5977:
5978: - cookies: change argument type for Curl_flush_cookies
5979:
5980: The second argument is really a 'bool' so use that and pass in TRUE/FALSE
5981: to make it clear.
5982:
5983: Closes #4455
5984:
5985: - http2: move state-init from creation to pre-transfer
5986:
5987: To make sure that the HTTP/2 state is initialized correctly for
5988: duplicated handles. It would otherwise easily generate "spurious"
5989: PRIORITY frames to get sent over HTTP/2 connections when duplicated easy
5990: handles were used.
5991:
5992: Reported-by: Daniel Silverstone
5993: Fixes #4303
5994: Closes #4442
5995:
5996: - urlapi: fix use-after-free bug
5997:
5998: Follow-up from 2c20109a9b5d04
5999:
6000: Added test 663 to verify.
6001:
6002: Reported by OSS-Fuzz
6003: Bug: https://crbug.com/oss-fuzz/17954
6004:
6005: Closes #4453
6006:
6007: - [Paul Dreik brought this change]
6008:
6009: cookie: avoid harmless use after free
6010:
6011: This fix removes a use after free which can be triggered by
6012: the internal cookie fuzzer, but otherwise is probably
6013: impossible to trigger from an ordinary application.
6014:
6015: The following program reproduces it:
6016:
6017: curl_global_init(CURL_GLOBAL_DEFAULT);
6018: CURL* handle=curl_easy_init();
6019: CookieInfo* info=Curl_cookie_init(handle,NULL,NULL,false);
6020: curl_easy_setopt(handle, CURLOPT_COOKIEJAR, "/dev/null");
6021: Curl_flush_cookies(handle, true);
6022: Curl_cookie_cleanup(info);
6023: curl_easy_cleanup(handle);
6024: curl_global_cleanup();
6025:
6026: This was found through fuzzing.
6027:
6028: Closes #4454
6029:
6030: - [Denis Chaplygin brought this change]
6031:
6032: docs: add note on failed handles not being counted by curl_multi_perform
6033:
6034: Closes #4446
6035:
6036: - CURLMOPT_MAX_CONCURRENT_STREAMS.3: fix SEE ALSO typo
6037:
6038: - [Niall O'Reilly brought this change]
6039:
6040: ESNI: initial build/setup
6041:
6042: Closes #4011
6043:
6044: - RELEASE-NOTES: synced
6045:
6046: - redirect: when following redirects to an absolute URL, URL encode it
6047:
6048: ... to make it handle for example (RFC violating) embeded spaces.
6049:
6050: Reported-by: momala454 on github
6051: Fixes #4445
6052: Closes #4447
6053:
6054: - urlapi: fix URL encoding when setting a full URL
6055:
6056: - tool_operate: rename functions to make more sense
6057:
6058: - curl: create easy handles on-demand and not ahead of time
6059:
6060: This should again enable crazy-large download ranges of the style
6061: [1-10000000] that otherwise easily ran out of memory starting in 7.66.0
6062: when this new handle allocating scheme was introduced.
6063:
6064: Reported-by: Peter Sumatra
6065: Fixes #4393
6066: Closes #4438
6067:
6068: - [Kunal Ekawde brought this change]
6069:
6070: CURLMOPT_MAX_CONCURRENT_STREAMS: new setopt
6071:
6072: Closes #4410
6073:
6074: - chunked-encoding: stop hiding the CURLE_BAD_CONTENT_ENCODING error
6075:
6076: Unknown content-encoding would get returned as CURLE_WRITE_ERROR if the
6077: response is chunked-encoded.
6078:
6079: Reported-by: Ilya Kosarev
6080: Fixes #4310
6081: Closes #4449
6082:
6083: Marcel Raad (1 Oct 2019)
6084: - checksrc: fix uninitialized variable warning
6085:
6086: The loop doesn't need to be executed without a file argument.
6087:
6088: Closes https://github.com/curl/curl/pull/4444
6089:
6090: - urlapi: fix unused variable warning
6091:
6092: `dest` is only used with `ENABLE_IPV6`.
6093:
6094: Closes https://github.com/curl/curl/pull/4444
6095:
6096: - lib: silence conversion warnings
6097:
6098: Closes https://github.com/curl/curl/pull/4444
6099:
6100: - AppVeyor: add 32-bit MinGW-w64 build
6101:
6102: With WinSSL and testing enabled so that it would have detected most of
6103: the warnings fixed in [0] and [1].
6104:
6105: [0] https://github.com/curl/curl/pull/4398
6106: [1] https://github.com/curl/curl/pull/4415
6107:
6108: Closes https://github.com/curl/curl/pull/4433
6109:
6110: - AppVeyor: remove MSYS2_ARG_CONV_EXCL for winbuild
6111:
6112: It's only used for MSYS2 with MinGW.
6113:
6114: Closes
6115:
6116: Daniel Stenberg (30 Sep 2019)
6117: - [Emil Engler brought this change]
6118:
6119: git: add tests/server/disabled to .gitignore
6120:
6121: Closes #4441
6122:
6123: - altsvc: accept quoted ma and persist values
6124:
6125: As mandated by the spec. Test 1654 is extended to verify.
6126:
6127: Closes #4443
6128:
6129: - mailmap: a Lucas fix
6130:
6131: Alessandro Ghedini (29 Sep 2019)
6132: - [Lucas Pardue brought this change]
6133:
6134: quiche: update HTTP/3 config creation to new API
6135:
6136: Daniel Stenberg (29 Sep 2019)
6137: - BINDINGS: PureBasic, Net::Curl for perl and Nim
6138:
6139: - BINDINGS: Kapito is an Erlang library, basically a binding
6140:
6141: - BINDINGS: added clj-curl
6142:
6143: Reported-by: Lucas Severo
6144:
6145: - [Jay Satiro brought this change]
6146:
6147: docs: disambiguate CURLUPART_HOST is for host name (ie no port)
6148:
6149: Closes #4424
6150:
6151: - cookies: using a share with cookies shouldn't enable the cookie engine
6152:
6153: The 'share object' only sets the storage area for cookies. The "cookie
6154: engine" still needs to be enabled or activated using the normal cookie
6155: options.
6156:
6157: This caused the curl command line tool to accidentally use cookies
6158: without having been told to, since curl switched to using shared cookies
6159: in 7.66.0.
6160:
6161: Test 1166 verifies
6162:
6163: Updated test 506
6164:
6165: Fixes #4429
6166: Closes #4434
6167:
6168: - setopt: handle ALTSVC set to NULL
6169:
6170: - RELEASE-NOTES: synced
6171:
6172: - [grdowns brought this change]
6173:
6174: INSTALL: add vcpkg installation instructions
6175:
6176: Closes #4435
6177:
6178: - [Zenju brought this change]
6179:
6180: FTP: add test for FTPFILE_NOCWD: Avoid redundant CWDs
6181:
6182: Add libtest 661
6183:
6184: Closes #4417
6185:
6186: - [Zenju brought this change]
6187:
6188: FTP: url-decode path before evaluation
6189:
6190: Closes #4428
6191:
6192: Marcel Raad (27 Sep 2019)
6193: - tests: fix narrowing conversion warnings
6194:
6195: `timediff_t` is 64 bits wide also on 32-bit systems since
6196: commit b1616dad8f0.
6197:
6198: Closes https://github.com/curl/curl/pull/4415
6199:
6200: Jay Satiro (27 Sep 2019)
6201: - [Julian Z brought this change]
6202:
6203: vtls: Fix comment typo about macosx-version-min compiler flag
6204:
6205: Closes https://github.com/curl/curl/pull/4425
6206:
6207: Daniel Stenberg (26 Sep 2019)
6208: - [Yechiel Kalmenson brought this change]
6209:
6210: README: minor grammar fix
6211:
6212: Closes #4431
6213:
6214: - [Spezifant brought this change]
6215:
6216: HTTP3: fix prefix parameter for ngtcp2 build
6217:
6218: Closes #4430
6219:
6220: - quiche: don't close connection at end of stream!
6221:
6222: - quiche: set 'drain' when returning without having drained the queues
6223:
6224: - Revert "FTP: url-decode path before evaluation"
6225:
6226: This reverts commit 2f036a72d543e96128bd75cb0fedd88815fd42e2.
6227:
6228: - HTTP3: merged and simplified the two 'running' sections
6229:
6230: - HTTP3: show an --alt-svc using example too
6231:
6232: - [Zenju brought this change]
6233:
6234: FTP: url-decode path before evaluation
6235:
6236: Closes #4423
6237:
6238: - openssl: use strerror on SSL_ERROR_SYSCALL
6239:
6240: Instead of showing the somewhat nonsensical errno number, use strerror()
6241: to provide a more relatable error message.
6242:
6243: Closes #4411
6244:
6245: - HTTP3: update quic.aiortc.org + add link to server list
6246:
6247: Reported-by: Jeremy Lainé
6248:
6249: Jay Satiro (26 Sep 2019)
6250: - url: don't set appconnect time for non-ssl/non-ssh connections
6251:
6252: Prior to this change non-ssl/non-ssh connections that were reused set
6253: TIMER_APPCONNECT [1]. Arguably that was incorrect since no SSL/SSH
6254: handshake took place.
6255:
6256: [1]: TIMER_APPCONNECT is publicly known as CURLINFO_APPCONNECT_TIME in
6257: libcurl and %{time_appconnect} in the curl tool. It is documented as
6258: "the time until the SSL/SSH handshake is completed".
6259:
6260: Reported-by: Marcel Hernandez
6261:
6262: Ref: https://github.com/curl/curl/issues/3760
6263:
6264: Closes https://github.com/curl/curl/pull/3773
6265:
6266: Daniel Stenberg (25 Sep 2019)
6267: - ngtcp2: remove fprintf() calls
6268:
6269: - convert some of them to H3BUF() calls to infof()
6270: - remove some of them completely
6271: - made DEBUG_HTTP3 defined only if CURLDEBUG is set for now
6272:
6273: Closes #4421
6274:
6275: - [Jay Satiro brought this change]
6276:
6277: url: fix the NULL hostname compiler warning case
6278:
6279: Closes #4403
6280:
6281: - [Jay Satiro brought this change]
6282:
6283: travis: move the go install to linux-only
6284:
6285: ... to repair the build again
6286: Closes #4403
6287:
6288: - altsvc: correct the #ifdef for the ngtcp2 backend
6289:
6290: - altsvc: save h3 as h3-23
6291:
6292: Follow-up to d176a2c7e5
6293:
6294: - urlapi: question mark within fragment is still fragment
6295:
6296: The parser would check for a query part before fragment, which caused it
6297: to do wrong when the fragment contains a question mark.
6298:
6299: Extended test 1560 to verify.
6300:
6301: Reported-by: Alex Konev
6302: Fixes #4412
6303: Closes #4413
6304:
6305: - [Alex Samorukov brought this change]
6306:
6307: HTTP3.md: move -p for mkdir, remove -j for make
6308:
6309: - mkdir on OSX/Darwin requires `-p` argument before dir
6310:
6311: - portabbly figuring out number of cores is an exercise for somewhere
6312: else
6313:
6314: Closes #4407
6315:
6316: Patrick Monnerat (24 Sep 2019)
6317: - os400: getpeername() and getsockname() return ebcdic AF_UNIX sockaddr,
6318:
6319: As libcurl now uses these 2 system functions, wrappers are needed on os400
6320: to convert returned AF_UNIX sockaddrs to ascii.
6321:
6322: This is a follow-up to commit 7fb54ef.
6323: See also #4037.
6324: Closes #4214
6325:
6326: Jay Satiro (24 Sep 2019)
6327: - [Lucas Pardue brought this change]
6328:
6329: strcase: fix raw lowercasing the letter X
6330:
6331: Casing mistake in Curl_raw_tolower 'X' wasn't lowercased as 'x' prior to
6332: this change.
6333:
6334: Follow-up to 0023fce which added the function several days ago.
6335:
6336: Ref: https://github.com/curl/curl/pull/4401#discussion_r327396546
6337:
6338: Closes https://github.com/curl/curl/pull/4408
6339:
6340: Daniel Stenberg (23 Sep 2019)
6341: - http2: Expression 'stream->stream_id != - 1' is always true
6342:
6343: PVS-Studio warning
6344: Fixes #4402
6345:
6346: - http2: A value is being subtracted from the unsigned variable
6347:
6348: PVS-Studio warning
6349: Fixes #4402
6350:
6351: - libssh: part of conditional expression is always true: !result
6352:
6353: PVS-Studio warning
6354: Fixed #4402
6355:
6356: - libssh: part of conditional expression is always true
6357:
6358: PVS-Studio warning
6359: Fixes #4402
6360:
6361: - libssh: The expression is excessive or contains a misprint
6362:
6363: PVS-Studio warning
6364: Fixes #4402
6365:
6366: - quiche: The expression must be surrounded by parentheses
6367:
6368: PVS-Studio warning
6369: Fixes #4402
6370:
6371: - vauth: The parameter 'status' must be surrounded by parentheses
6372:
6373: PVS-Studio warning
6374: Fixes #4402
6375:
6376: - [Paul Dreik brought this change]
6377:
6378: doh: allow only http and https in debug mode
6379:
6380: Otherwise curl may be told to use for instance pop3 to
6381: communicate with the doh server, which most likely
6382: is not what you want.
6383:
6384: Found through fuzzing.
6385:
6386: Closes #4406
6387:
6388: - [Paul Dreik brought this change]
6389:
6390: doh: return early if there is no time left
6391:
6392: Closes #4406
6393:
6394: - [Barry Pollard brought this change]
6395:
6396: http: lowercase headernames for HTTP/2 and HTTP/3
6397:
6398: Closes #4401
6399: Fixes #4400
6400:
6401: Marcel Raad (23 Sep 2019)
6402: - vtls: fix narrowing conversion warnings
6403:
6404: Curl_timeleft returns `timediff_t`, which is 64 bits wide also on
6405: 32-bit systems since commit b1616dad8f0.
6406:
6407: Closes https://github.com/curl/curl/pull/4398
6408:
6409: Daniel Stenberg (23 Sep 2019)
6410: - [Joel Depooter brought this change]
6411:
6412: winbuild: Add manifest to curl.exe for proper OS version detection
6413:
6414: This is a small fix to commit ebd213270a017a6830928ee2e1f4a9cabc799898
6415: in pull request #1221. That commit added the CURL_EMBED_MANIFEST flag to
6416: CURL_RC_FLAGS. However, later in the file CURL_RC_FLAGS is
6417: overwritten. The fix is to append values to CURL_RC_FLAGS instead of
6418: overwriting
6419:
6420: Closes #4399
6421:
6422: - RELEASE-NOTES: synced
6423:
6424: Marcel Raad (22 Sep 2019)
6425: - openssl: fix compiler warning with LibreSSL
6426:
6427: It was already fixed for BoringSSL in commit a0f8fccb1e0.
6428: LibreSSL has had the second argument to SSL_CTX_set_min_proto_version
6429: as uint16_t ever since the function was added in [0].
6430:
6431: [0] https://github.com/libressl-portable/openbsd/commit/56f107201baefb5533486d665a58d8f57fd3aeda
6432:
6433: Closes https://github.com/curl/curl/pull/4397
6434:
6435: Daniel Stenberg (22 Sep 2019)
6436: - curl: exit the create_transfers loop on errors
6437:
6438: When looping around the ranges and given URLs to create transfers, all
6439: errors should exit the loop and return. Previously it would keep
6440: looping.
6441:
6442: Reported-by: SumatraPeter on github
6443: Bug: #4393
6444: Closes #4396
6445:
6446: Jay Satiro (21 Sep 2019)
6447: - socks: Fix destination host shown on SOCKS5 error
6448:
6449: Prior to this change when a server returned a socks5 connect error then
6450: curl would parse the destination address:port from that data and show it
6451: to the user as the destination:
6452:
6453: curld -v --socks5 10.0.3.1:1080 http://google.com:99
6454: * SOCKS5 communication to google.com:99
6455: * SOCKS5 connect to IPv4 172.217.12.206 (locally resolved)
6456: * Can't complete SOCKS5 connection to 253.127.0.0:26673. (1)
6457: curl: (7) Can't complete SOCKS5 connection to 253.127.0.0:26673. (1)
6458:
6459: That's incorrect because the address:port included in the connect error
6460: is actually a bind address:port (typically unused) and not the
6461: destination address:port. This fix changes curl to show the destination
6462: information that curl sent to the server instead:
6463:
6464: curld -v --socks5 10.0.3.1:1080 http://google.com:99
6465: * SOCKS5 communication to google.com:99
6466: * SOCKS5 connect to IPv4 172.217.7.14:99 (locally resolved)
6467: * Can't complete SOCKS5 connection to 172.217.7.14:99. (1)
6468: curl: (7) Can't complete SOCKS5 connection to 172.217.7.14:99. (1)
6469:
6470: curld -v --socks5-hostname 10.0.3.1:1080 http://google.com:99
6471: * SOCKS5 communication to google.com:99
6472: * SOCKS5 connect to google.com:99 (remotely resolved)
6473: * Can't complete SOCKS5 connection to google.com:99. (1)
6474: curl: (7) Can't complete SOCKS5 connection to google.com:99. (1)
6475:
6476: Ref: https://tools.ietf.org/html/rfc1928#section-6
6477:
6478: Closes https://github.com/curl/curl/pull/4394
6479:
6480: Daniel Stenberg (21 Sep 2019)
6481: - travis: enable ngtcp2 h3-23 builds
6482:
6483: - altsvc: both backends run h3-23 now
6484:
6485: Closes #4395
6486:
6487: - http: fix warning on conversion from int to bit
6488:
6489: Follow-up from 03ebe66d70
6490:
6491: - urldata: use 'bool' for the bit type on MSVC compilers
6492:
6493: Closes #4387
6494: Fixes #4379
6495:
6496: - appveyor: upgrade VS2017 to VS2019
6497:
6498: Closes #4383
6499:
6500: - [Zenju brought this change]
6501:
6502: FTP: FTPFILE_NOCWD: avoid redundant CWDs
6503:
6504: Closes #4382
6505:
6506: - cookie: pass in the correct cookie amount to qsort()
6507:
6508: As the loop discards cookies without domain set. This bug would lead to
6509: qsort() trying to sort uninitialized pointers. We have however not found
6510: it a security problem.
6511:
6512: Reported-by: Paul Dreik
6513: Closes #4386
6514:
6515: - [Paul Dreik brought this change]
6516:
6517: urlapi: avoid index underflow for short ipv6 hostnames
6518:
6519: If the input hostname is "[", hlen will underflow to max of size_t when
6520: it is subtracted with 2.
6521:
6522: hostname[hlen] will then cause a warning by ubsanitizer:
6523:
6524: runtime error: addition of unsigned offset to 0x<snip> overflowed to
6525: 0x<snip>
6526:
6527: I think that in practice, the generated code will work, and the output
6528: of hostname[hlen] will be the first character "[".
6529:
6530: This can be demonstrated by the following program (tested in both clang
6531: and gcc, with -O3)
6532:
6533: int main() {
6534: char* hostname=strdup("[");
6535: size_t hlen = strlen(hostname);
6536:
6537: hlen-=2;
6538: hostname++;
6539: printf("character is %d\n",+hostname[hlen]);
6540: free(hostname-1);
6541: }
6542:
6543: I found this through fuzzing, and even if it seems harmless, the proper
6544: thing is to return early with an error.
6545:
6546: Closes #4389
6547:
6548: - [Tatsuhiro Tsujikawa brought this change]
6549:
6550: ngtcp2: compile with latest ngtcp2 + nghttp3 draft-23
6551:
6552: Closes #4392
6553:
6554: - THANKS-filter: deal with my typos 'Jat' => 'Jay'
6555:
6556: - travis: use go master
6557:
6558: ... as the boringssl builds needs a very recent version
6559:
6560: Co-authored-by: Jat Satiro
6561: Closes #4361
6562:
6563: - tool_operate: removed unused variable 'done'
6564:
6565: Fixes warning detected by PVS-Studio
6566: Fixes #4374
6567:
6568: - tool_operate: Expression 'config->resume_from' is always true
6569:
6570: Fixes warning detected by PVS-Studio
6571: Fixes #4374
6572:
6573: - tool_getparam: remove duplicate switch case
6574:
6575: Fixes warning detected by PVS-Studio
6576: Fixes #4374
6577:
6578: - libssh2: part of conditional expression is always true: !result
6579:
6580: Fixes warning detected by PVS-Studio
6581: Fixes #4374
6582:
6583: - urlapi: Expression 'storep' is always true
6584:
6585: Fixes warning detected by PVS-Studio
6586: Fixes #4374
6587:
6588: - urlapi: 'scheme' is always true
6589:
6590: Fixes warning detected by PVS-Studio
6591: Fixes #4374
6592:
6593: - urlapi: part of conditional expression is always true: (relurl[0] == '/')
6594:
6595: Fixes warning detected by PVS-Studio
6596: Fixes #4374
6597:
6598: - setopt: store CURLOPT_RTSP_SERVER_CSEQ correctly
6599:
6600: Fixes bug detected by PVS-Studio
6601: Fixes #4374
6602:
6603: - mime: make Curl_mime_duppart() assert if called without valid dst
6604:
6605: Fixes warning detected by PVS-Studio
6606: Fixes #4374
6607:
6608: - http_proxy: part of conditional expression is always true: !error
6609:
6610: Fixes warning detected by PVS-Studio
6611: Fixes #4374
6612:
6613: - imap: merged two case-branches performing the same action
6614:
6615: Fixes warning detected by PVS-Studio
6616: Fixes #4374
6617:
6618: - multi: value '2L' is assigned to a boolean
6619:
6620: Fixes warning detected by PVS-Studio
6621: Fixes #4374
6622:
6623: - easy: part of conditional expression is always true: !result
6624:
6625: Fixes warning detected by PVS-Studio
6626: Fixes #4374
6627:
6628: - netrc: part of conditional expression is always true: !done
6629:
6630: Fixes warning detected by PVS-Studio
6631: Fixes #4374
6632:
6633: - version: Expression 'left > 1' is always true
6634:
6635: Fixes warning detected by PVS-Studio
6636: Fixes #4374
6637:
6638: - url: remove dead code
6639:
6640: Fixes warning detected by PVS-Studio
6641: Fixes #4374
6642:
6643: - url: part of expression is always true: (bundle->multiuse == 0)
6644:
6645: Fixes warning detected by PVS-Studio
6646: Fixes #4374
6647:
6648: - ftp: the conditional expression is always true
6649:
6650: ... both !result and (ftp->transfer != FTPTRANSFER_BODY)!
6651:
6652: Fixes warning detected by PVS-Studio
6653: Fixes #4374
6654:
6655: - ftp: Expression 'ftpc->wait_data_conn' is always false
6656:
6657: Fixes warning detected by PVS-Studio
6658: Fixes #4374
6659:
6660: - ftp: Expression 'ftpc->wait_data_conn' is always true
6661:
6662: Fixes warning detected by PVS-Studio
6663: Fixes #4374
6664:
6665: - ftp: part of conditional expression is always true: !result
6666:
6667: Fixes warning detected by PVS-Studio
6668: Fixes #4374
6669:
6670: - http: fix Expression 'http->postdata' is always false
6671:
6672: Fixes warning detected by PVS-Studio
6673: Fixes #4374
6674: Reported-by: Valerii Zapodovnikov
6675:
6676: - [Niall O'Reilly brought this change]
6677:
6678: doh: avoid truncating DNS QTYPE to lower octet
6679:
6680: Closes #4381
6681:
6682: - [Jens Finkhaeuser brought this change]
6683:
6684: urlapi: CURLU_NO_AUTHORITY allows empty authority/host part
6685:
6686: CURLU_NO_AUTHORITY is intended for use with unknown schemes (i.e. not
6687: "file:///") to override cURL's default demand that an authority exists.
6688:
6689: Closes #4349
6690:
6691: - version: next release will be 7.67.0
6692:
6693: - RELEASE-NOTES: synced
6694:
6695: - url: only reuse TLS connections with matching pinning
6696:
6697: If the requests have different CURLOPT_PINNEDPUBLICKEY strings set, the
6698: connection should not be reused.
6699:
6700: Bug: https://curl.haxx.se/mail/lib-2019-09/0061.html
6701: Reported-by: Sebastian Haglund
6702:
6703: Closes #4347
6704:
6705: - README: add OSS-Fuzz badge [skip ci]
6706:
6707: Closes #4380
6708:
6709: Michael Kaufmann (18 Sep 2019)
6710: - http: merge two "case" statements
6711:
6712: Daniel Stenberg (18 Sep 2019)
6713: - [Zenju brought this change]
6714:
6715: FTP: remove trailing slash from path for LIST/MLSD
6716:
6717: Closes #4348
6718:
6719: - mime: when disabled, avoid C99 macro
6720:
6721: Closes #4368
6722:
6723: - url: cleanup dangling DOH request headers too
6724:
6725: Follow-up to 9bc44ff64d9081
6726:
6727: Credit to OSS-Fuzz
6728: Bug: https://crbug.com/oss-fuzz/17269
6729:
6730: Closes #4372
6731:
6732: - [Christoph M. Becker brought this change]
6733:
6734: http2: relax verification of :authority in push promise requests
6735:
6736: If the :authority pseudo header field doesn't contain an explicit port,
6737: we assume it is valid for the default port, instead of rejecting the
6738: request for all ports.
6739:
6740: Ref: https://curl.haxx.se/mail/lib-2019-09/0041.html
6741:
6742: Closes #4365
6743:
6744: - doh: clean up dangling DOH handles and memory on easy close
6745:
6746: If you set the same URL for target as for DoH (and it isn't a DoH
6747: server), like "https://example.com" in both, the easy handles used for
6748: the DoH requests could be left "dangling" and end up not getting freed.
6749:
6750: Reported-by: Paul Dreik
6751: Closes #4366
6752:
6753: - unit1655: make it C90 compliant
6754:
6755: Unclear why this was not detected in the CI.
6756:
6757: Follow-up to b7666027296a
6758:
6759: - smb: check for full size message before reading message details
6760:
6761: To avoid reading of uninitialized data.
6762:
6763: Assisted-by: Max Dymond
6764: Bug: https://crbug.com/oss-fuzz/16907
6765: Closes #4363
6766:
6767: - quiche: persist connection details
6768:
6769: ... like we do for other protocols at connect time. This makes "curl -I"
6770: and other things work.
6771:
6772: Reported-by: George Liu
6773: Fixes #4358
6774: Closes #4360
6775:
6776: - openssl: fix warning with boringssl and SSL_CTX_set_min_proto_version
6777:
6778: Follow-up to ffe34b7b59
6779: Closes #4359
6780:
6781: - [Paul Dreik brought this change]
6782:
6783: doh: fix undefined behaviour and open up for gcc and clang optimization
6784:
6785: The undefined behaviour is annoying when running fuzzing with
6786: sanitizers. The codegen is the same, but the meaning is now not up for
6787: dispute. See https://cppinsights.io/s/516a2ff4
6788:
6789: By incrementing the pointer first, both gcc and clang recognize this as
6790: a bswap and optimizes it to a single instruction. See
6791: https://godbolt.org/z/994Zpx
6792:
6793: Closes #4350
6794:
6795: - [Paul Dreik brought this change]
6796:
6797: doh: fix (harmless) buffer overrun
6798:
6799: Added unit test case 1655 to verify.
6800: Close #4352
6801:
6802: the code correctly finds the flaws in the old code,
6803: if one temporarily restores doh.c to the old version.
6804:
6805: Alessandro Ghedini (15 Sep 2019)
6806: - docs: remove trailing ':' from section names in CURLOPT_TRAILER* man
6807:
6808: - docs: fix typo in CURLOPT_HTTP_VERSION man
6809:
6810: GitHub (14 Sep 2019)
6811: - [Daniel Stenberg brought this change]
6812:
6813: CI: inintial github action job
6814:
6815: First shot at a CI build on github actions
6816:
6817: Daniel Stenberg (13 Sep 2019)
6818: - appveyor: add a winbuild
6819:
6820: Assisted-by: Marcel Raad
6821: Assisted-by: Jay Satiro
6822:
6823: Closes #4324
6824:
6825: - FTP: allow "rubbish" prepended to the SIZE response
6826:
6827: This is a protocol violation but apparently there are legacy proprietary
6828: servers doing this.
6829:
6830: Added test 336 and 337 to verify.
6831:
6832: Reported-by: Philippe Marguinaud
6833: Closes #4339
6834:
6835: - [Zenju brought this change]
6836:
6837: FTP: skip CWD to entry dir when target is absolute
6838:
6839: Closes #4332
6840:
6841: Kamil Dudka (13 Sep 2019)
6842: - curl: fix memory leaked by parse_metalink()
6843:
6844: This commit fixes a regression introduced by curl-7_65_3-5-gb88940850.
6845: Detected by tests 2005, 2008, 2009, 2010, 2011, and 2012 with valgrind
6846: and libmetalink enabled.
6847:
6848: Closes #4326
6849:
6850: Daniel Stenberg (13 Sep 2019)
6851: - parsedate: still provide the name arrays when disabled
6852:
6853: If FILE or FTP are enabled, since they also use them!
6854:
6855: Reported-by: Roland Hieber
6856: Fixes #4325
6857: Closes #4343
6858:
6859: - [Gilles Vollant brought this change]
6860:
6861: curl:file2string: load large files much faster
6862:
6863: ... by using a more efficient realloc scheme.
6864:
6865: Bug: https://curl.haxx.se/mail/lib-2019-09/0045.html
6866: Closes #4336
6867:
6868: - openssl: close_notify on the FTP data connection doesn't mean closure
6869:
6870: For FTPS transfers, curl gets close_notify on the data connection
6871: without that being a signal to close the control connection!
6872:
6873: Regression since 3f5da4e59a556fc (7.65.0)
6874:
6875: Reported-by: Zenju on github
6876: Reviewed-by: Jay Satiro
6877: Fixes #4329
6878: Closes #4340
6879:
6880: - [Jimmy Gaussen brought this change]
6881:
6882: docs/HTTP3: fix `--with-ssl` ngtcp2 configure flag
6883:
6884: Closes #4338
6885:
6886: - RELEASE-NOTES: synced
6887:
6888: - curlver: bump to 7.66.1
6889:
6890: - [Zenju brought this change]
6891:
6892: setopt: make it easier to add new enum values
6893:
6894: ... by using the *_LAST define names better.
6895:
6896: Closes #4321
6897:
6898: - asyn-thread: s/AF_LOCAL/AF_UNIX for Solaris
6899:
6900: Reported-by: Dagobert Michelsen
6901: Fixes #4328
6902: Closes #4333
6903:
6904: - [Bernhard Walle brought this change]
6905:
6906: winbuild/MakefileBuild.vc: Add vssh
6907:
6908: Without that modification, the Windows build using the makefiles doesn't
6909: work.
6910:
6911: Signed-off-by: Bernhard Walle <bernhard.walle@posteo.eu>
6912:
6913: Fixes #4322
6914: Closes #4323
6915:
6916: Bernhard Walle (11 Sep 2019)
6917: - winbuild/MakefileBuild.vc: Fix line endings
6918:
6919: The file had mixed line endings.
6920:
6921: Signed-off-by: Bernhard Walle <bernhard.walle@posteo.eu>
6922:
6923: Jay Satiro (11 Sep 2019)
6924: - ldap: Stop using wide char version of ldapp_err2string
6925:
6926: Despite ldapp_err2string being documented by MS as returning a
6927: PCHAR (char *), when UNICODE it is mapped to ldap_err2stringW and
6928: returns PWCHAR (wchar_t *).
6929:
6930: We have lots of code that expects ldap_err2string to return char *,
6931: most of it failf used like this:
6932:
6933: failf(data, "LDAP local: Some error: %s", ldap_err2string(rc));
6934:
6935: Closes https://github.com/curl/curl/pull/4272
6936:
6937: Version 7.66.0 (10 Sep 2019)
6938:
6939: Daniel Stenberg (10 Sep 2019)
6940: - RELEASE-NOTES: curl 7.66.0
6941:
6942: - THANKS: from the 7.66.0 release
6943:
6944: - curl: make sure the parallel transfers do them all
6945:
6946: The logic could erroneously break the loop too early before all
6947: transfers had been transferred.
6948:
6949: Reported-by: Tom van der Woerdt
6950: Fixes #4316
6951: Closes #4317
6952:
6953: - urlapi: one colon is enough for the strspn() input (typo)
6954:
6955: - urlapi: verify the IPv6 numerical address
6956:
6957: It needs to parse correctly. Otherwise it could be tricked into letting
6958: through a-f using host names that libcurl would then resolve. Like
6959: '[ab.be]'.
6960:
6961: Reported-by: Thomas Vegas
6962: Closes #4315
6963:
6964: - [Clément Notin brought this change]
6965:
6966: openssl: use SSL_CTX_set_<min|max>_proto_version() when available
6967:
6968: OpenSSL 1.1.0 adds SSL_CTX_set_<min|max>_proto_version() that we now use
6969: when available. Existing code is preserved for older versions of
6970: OpenSSL.
6971:
6972: Closes #4304
6973:
6974: - [Clément Notin brought this change]
6975:
6976: openssl: indent, re-organize and add comments
6977:
6978: - [migueljcrum brought this change]
6979:
6980: sspi: fix memory leaks
6981:
6982: Closes #4299
6983:
6984: - travis: disable ngtcp2 builds (again)
6985:
6986: - Curl_fillreadbuffer: avoid double-free trailer buf on error
6987:
6988: Reviewed-by: Jay Satiro
6989: Reported-by: Thomas Vegas
6990:
6991: Closes #4307
6992:
6993: - tool_setopt: handle a libcurl build without netrc support
6994:
6995: Reported-by: codesniffer13 on github
6996: Fixes #4302
6997: Closes #4305
6998:
6999: - security:read_data fix bad realloc()
7000:
7001: ... that could end up a double-free
7002:
7003: CVE-2019-5481
7004: Bug: https://curl.haxx.se/docs/CVE-2019-5481.html
7005:
7006: - [Thomas Vegas brought this change]
7007:
7008: tftp: Alloc maximum blksize, and use default unless OACK is received
7009:
7010: Fixes potential buffer overflow from 'recvfrom()', should the server
7011: return an OACK without blksize.
7012:
7013: Bug: https://curl.haxx.se/docs/CVE-2019-5482.html
7014: CVE-2019-5482
7015:
7016: - [Thomas Vegas brought this change]
7017:
7018: tftp: return error when packet is too small for options
7019:
7020: - KNOWN_BUGS/TODO: cleanup and remove outdated issues
7021:
7022: - RELEASE-NOTES: synced
7023:
7024: - netrc: free 'home' on error
7025:
7026: Follow-up to f9c7ba9096ec2
7027:
7028: Coverity CID 1453474
7029:
7030: Closes #4291
7031:
7032: - urldata: avoid 'generic', use dedicated pointers
7033:
7034: For the 'proto' union within the connectdata struct.
7035:
7036: Closes #4290
7037:
7038: - cleanup: move functions out of url.c and make them static
7039:
7040: Closes #4289
7041:
7042: - smtp: check for and bail out on too short EHLO response
7043:
7044: Otherwise, a three byte response would make the smtp_state_ehlo_resp()
7045: function misbehave.
7046:
7047: Credit to OSS-Fuzz
7048: Bug: https://crbug.com/oss-fuzz/16918
7049:
7050: Assisted-by: Max Dymond
7051:
7052: Closes #4287
7053:
7054: - smb: init *msg to NULL in smb_send_and_recv()
7055:
7056: ... it might otherwise return OK from this function leaving that pointer
7057: uninitialized.
7058:
7059: Bug: https://crbug.com/oss-fuzz/16907
7060:
7061: Closes #4286
7062:
7063: - ROADMAP: updated after recent user poll
7064:
7065: In rough prio order
7066:
7067: - THANKS: remove duplicate
7068:
7069: - Curl_addr2string: take an addrlen argument too
7070:
7071: This allows the function to figure out if a unix domain socket has a
7072: file name or not associated with it! When a socket is created with
7073: socketpair(), as done in the fuzzer testing, the path struct member is
7074: uninitialized and must not be accessed.
7075:
7076: Bug: https://crbug.com/oss-fuzz/16699
7077:
7078: Closes #4283
7079:
7080: - [Rolf Eike Beer brought this change]
7081:
7082: CMake: remove needless newlines at end of gss variables
7083:
7084: - [Rolf Eike Beer brought this change]
7085:
7086: CI: remove duplicate configure flag for LGTM.com
7087:
7088: - [Rolf Eike Beer brought this change]
7089:
7090: CMake: use platform dependent name for dlopen() library
7091:
7092: Closes #4279
7093:
7094: - quiche: expire when poll returned data
7095:
7096: ... to make sure we continue draining the queue until empty
7097:
7098: Closes #4281
7099:
7100: - quiche: decrease available buffer size, don't assign it!
7101:
7102: Found-by: Jeremy Lainé
7103:
7104: - RELEASE-NOTES: synced
7105:
7106: - [Kyohei Kadota brought this change]
7107:
7108: curl: fix include conditions
7109:
7110: - [Kyohei Kadota brought this change]
7111:
7112: plan9: fix installation instructions
7113:
7114: Closes #4276
7115:
7116: - ngtcp2: on h3 stream close, call expire
7117:
7118: ... to trigger a new read to detect the stream close!
7119:
7120: Closes #4275
7121:
7122: - [Tatsuhiro Tsujikawa brought this change]
7123:
7124: ngtcp2: build latest ngtcp2 and ngtcp2_crypto_openssl
7125:
7126: Closes #4278
7127:
7128: - ngtcp2: set flow control window to stream buffer size
7129:
7130: Closes #4274
7131:
7132: - [Christopher Head brought this change]
7133:
7134: CURLOPT_HEADERFUNCTION.3: clarify
7135:
7136: Closes #4273
7137:
7138: - CURLINFO docs: mention that in redirects times are added
7139:
7140: Suggested-by: Brandon Dong
7141: Fixes #4250
7142: Closes #4269
7143:
7144: - travis: enable ngtcp2 builds again
7145:
7146: Switched to the openssl-quic-draft-22 openssl branch.
7147:
7148: Closes #4271
7149:
7150: - HTTP3: switched openssl branch to use
7151:
7152: - [Tatsuhiro Tsujikawa brought this change]
7153:
7154: ngtcp2: Build with latest ngtcp2 and ngtcp2_crypto_openssl
7155:
7156: Closes #4270
7157:
7158: - http2: when marked for closure and wanted to close == OK
7159:
7160: It could otherwise return an error even when closed correctly if GOAWAY
7161: had been received previously.
7162:
7163: Reported-by: Tom van der Woerdt
7164: Fixes #4267
7165: Closes #4268
7166:
7167: - RELEASE-NOTES: synced
7168:
7169: - build-openssl: fix build with Visual Studio 2019
7170:
7171: Reviewed-by: Marcel Raad
7172: Contributed-by: osabc on github
7173: Fixes #4188
7174: Closes #4266
7175:
7176: Kamil Dudka (26 Aug 2019)
7177: - vauth: return CURLE_AUTH_ERROR on gss_init_sec_context() failure
7178:
7179: This is a follow-up to https://github.com/curl/curl/pull/3864 .
7180:
7181: Closes #4224
7182:
7183: Daniel Stenberg (26 Aug 2019)
7184: - KNOWN_BUGS: USE_UNIX_SOCKETS on Windows
7185:
7186: Closes #4040
7187:
7188: - quiche: send the HTTP body correctly on callback uploads
7189:
7190: Closes #4265
7191:
7192: - travis: disable ngtcp2 builds (temporarily)
7193:
7194: Just too many API changes right now
7195:
7196: Closes #4264
7197:
7198: - ngtcp2: add support for SSLKEYLOGFILE
7199:
7200: Closes #4260
7201:
7202: - ngtcp2: improve h3 response receiving
7203:
7204: Closes #4259
7205:
7206: - ngtcp2: use nghttp3_version()
7207:
7208: - ngtcp2: sync with upstream API changes
7209:
7210: Assisted-by: Tatsuhiro Tsujikawa
7211:
7212: - [Kyle Abramowitz brought this change]
7213:
7214: scp: fix directory name length used in memcpy
7215:
7216: Fix read off end of array due to bad pointer math in getworkingpath for
7217: SCP home directory case.
7218:
7219: Closes #4258
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>