Annotation of embedaddon/curl/CHANGES, revision 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>