Annotation of embedaddon/curl/CHANGES, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>