| _ _ ____ _ |
| ___| | | | _ \| | |
| / __| | | | |_) | | |
| | (__| |_| | _ <| |___ |
| \___|\___/|_| \_\_____| |
| |
| Changelog |
| |
| Version 7.69.1 (11 Mar 2020) |
| |
| Daniel Stenberg (11 Mar 2020) |
| - RELEASE-NOTES: 7.69.1 |
| |
| - THANKS: from the 7.69.1 release |
| |
| - [Marc Hoersken brought this change] |
| |
| test1129: fix invalid case of closing XML-tag and Content-Length |
| |
| Fixes #5070 |
| Closes #5072 |
| |
| Marc Hoersken (10 Mar 2020) |
| - tests/data: fix static ip instead of dynamic value being used |
| |
| Follow up to 94ced8e |
| |
| - tests/data: fix static ip:port instead of dynamic values being used |
| |
| Closes #5065 |
| |
| - tests/server: fix missing use of exe_ext helper function |
| |
| Follow up to 9819984 and 3dce984 |
| Reviewed-By: Daniel Stenberg |
| Closes #5064 |
| |
| - runtests: log minimal and maximal used port numbers |
| |
| Daniel Stenberg (9 Mar 2020) |
| - [Jim Fuller brought this change] |
| |
| sftp: fix segfault regression introduced by #4747 |
| |
| This fix adds a defensive check for the case where the char *name in |
| struct libssh2_knownhost is NULL |
| |
| Fixes #5041 |
| Closes #5062 |
| |
| - RELEASE-NOTES: synced |
| |
| - socks4: fix host resolve regression |
| |
| 1. The socks4 state machine was broken in the host resolving phase |
| |
| 2. The code now insists on IPv4-only when using SOCKS4 as the protocol |
| only supports that. |
| |
| Regression from #4907 and 4a4b63d, shipped in 7.69.0 |
| |
| Reported-by: amishmm on github |
| Bug: https://github.com/curl/curl/issues/5053#issuecomment-596191594 |
| Closes #5061 |
| |
| - [Patrick Monnerat brought this change] |
| |
| silly web server: silent a compilation warning |
| |
| Recent gcc warns when byte count of strncpy() equals the destination |
| buffer size. Since the destination buffer is previously cleared and |
| the source string is always shorter, reducing the byte count by one |
| silents the warning without affecting the result. |
| |
| Closes #5059 |
| |
| - [Patrick Monnerat brought this change] |
| |
| cookie: get_top_domain() sets zero length for null domains |
| |
| This silents a compilation warning with gcc -O3. |
| |
| - [Patrick Monnerat brought this change] |
| |
| test 1560: avoid valgrind false positives |
| |
| When using maximum code optimization level (-O3), valgrind wrongly |
| detects uses of uninitialized values in strcmp(). |
| |
| Preset buffers with all zeroes to avoid that. |
| |
| Steve Holme (8 Mar 2020) |
| - sha256: Added WinCrypt implementation |
| |
| Closed #5030 |
| |
| - sha256: Added SecureTransport implementation |
| |
| Daniel Stenberg (7 Mar 2020) |
| - lib1564: reduce number of mid-wait wakeup calls |
| |
| This test does A LOT of *wakeup() calls and then calls curl_multi_poll() |
| twice. The first *poll() is then expected to return early and the second |
| not - as the first is supposed to drain the socketpair pipe. |
| |
| It turns out however that when given "excessive" amounts of writes to |
| the pipe, some operating systems (the Solaris based are known) will |
| return EAGAIN before the pipe is drained, which in our test case causes |
| the second *poll() call to also abort early. |
| |
| This change attempts to avoid the OS-specific behaviors in the test by |
| reducing the amount of wakeup calls from 1234567 to 10. |
| |
| Reported-by: Andy Fiddaman |
| Fixes #5037 |
| Closes #5058 |
| |
| - [Patrick Monnerat brought this change] |
| |
| mime: fix the binary encoder to handle large data properly |
| |
| New test 666 checks this is effective. |
| As upload buffer size is significant in this kind of tests, shorten it |
| in similar test 652. |
| |
| Fixes #4860 |
| Closes #4833 |
| Reported-by: RuurdBeerstra on github |
| |
| - [Patrick Monnerat brought this change] |
| |
| mime: do not perform more than one read in a row |
| |
| Input buffer filling may delay the data sending if data reads are slow. |
| To overcome this problem, file and callback data reads do not accumulate |
| in buffer anymore. All other data (memory data and mime framing) are |
| considered as fast and still concatenated in buffer. |
| As this may highly impact performance in terms of data overhead, an early |
| end of part data check is added to spare a read call. |
| When encoding a part's data, an encoder may require more bytes than made |
| available by a single read. In this case, the above rule does not apply |
| and reads are performed until the encoder is able to deliver some data. |
| |
| Tests 643, 644, 645, 650 and 654 have been adapted to the output data |
| changes, with test data size reduced to avoid the boredom of long lists of |
| 1-byte chunks in verification data. |
| New test 667 checks mimepost using single-byte read callback with encoder. |
| New test 668 checks the end of part data early detection. |
| |
| Fixes #4826 |
| Reported-by: MrdUkk on github |
| |
| - [Patrick Monnerat brought this change] |
| |
| mime: latch last read callback status. |
| |
| In case a read callback returns a status (pause, abort, eof, |
| error) instead of a byte count, drain the bytes read so far but |
| remember this status for further processing. |
| Takes care of not losing data when pausing, and properly resume a |
| paused mime structure when requested. |
| New tests 670-673 check unpausing cases, with easy or multi |
| interface and mime or form api. |
| |
| Fixes #4813 |
| Reported-by: MrdUkk on github |
| |
| Marc Hoersken (7 Mar 2020) |
| - runtests: fix missing use of exe_ext helper function |
| |
| Daniel Stenberg (7 Mar 2020) |
| - [Ernst Sjöstrand brought this change] |
| |
| ares: store dns parameters for duphandle |
| |
| With c-ares the dns parameters lives in ares_channel. Store them in the |
| curl handle and set them again in easy_duphandle. |
| |
| Regression introduced in #3228 (6765e6d), shipped in curl 7.63.0. |
| |
| Fixes #4893 |
| Closes #5020 |
| Signed-off-by: Ernst Sjöstrand <[email protected]> |
| |
| - version: make curl_version* thread-safe without using global context |
| |
| Closes #5010 |
| |
| - RELEASE-NOTES: synced |
| |
| Marc Hoersken (7 Mar 2020) |
| - tests: use native Sleep function as fallback on Windows |
| |
| Reviewed-By: Daniel Stenberg |
| Closes #5054 |
| |
| - perl: align order and completeness of Windows OS checks |
| |
| Daniel Stenberg (7 Mar 2020) |
| - tool_cb_see: set correct copyright year range |
| |
| Follow-up to a39e5bfb9 |
| |
| Marc Hoersken (7 Mar 2020) |
| - seek: fix fallback for missing ftruncate on Windows |
| |
| This fixes test 198 on versions of MinGW-w64 without ftruncate |
| |
| Reviewed-By: Daniel Stenberg |
| Reviewed-By: Marcel Raad |
| Closes #5055 |
| |
| - config-win32: Windows does not have ftruncate |
| |
| Daniel Stenberg (7 Mar 2020) |
| - pause: force a connection (re-)check after unpausing |
| |
| There might be data available that was already read off the socket, for |
| example in the TLS layer. |
| |
| Reported-by: Anders Berg |
| Fixes #4966 |
| Closes #5049 |
| |
| - socks5: switch state properly when the resolve is done |
| |
| Regression from 4a4b63d (and #4907) |
| Reported-by: vitaha85 on github |
| Fixes #5053 |
| Closes #5056 |
| |
| Jay Satiro (7 Mar 2020) |
| - libssh: Fix matching user-specified MD5 hex key |
| |
| Prior to this change a match would never be successful because it |
| was mistakenly coded to compare binary data from libssh to a |
| user-specified hex string (ie CURLOPT_SSH_HOST_PUBLIC_KEY_MD5). |
| |
| Reported-by: [email protected] |
| |
| Fixes https://github.com/curl/curl/issues/4971 |
| Closes https://github.com/curl/curl/pull/4974 |
| |
| Daniel Stenberg (6 Mar 2020) |
| - pause: bail out on bad input |
| |
| A NULL easy handle or an easy handle without an associated connection |
| cannot be paused or unpaused. |
| |
| Closes #5050 |
| |
| Steve Holme (6 Mar 2020) |
| - unit1612: fixed the inclusion and compilation of the HMAC unit test |
| |
| Follow up to 3f74e5e6 to fix: |
| |
| - A typo in Makefile.inc where unit1611 was used instead |
| - Some compilation issues in unit1612.c |
| |
| Closes #5024 |
| |
| Daniel Stenberg (6 Mar 2020) |
| - pause: return early for calls that don't change pause state |
| |
| Reviewed-by: Patrick Monnerat |
| Ref: #4833 |
| Closes #5026 |
| |
| Jay Satiro (6 Mar 2020) |
| - curl_share_setopt.3: Note sharing cookies doesn't enable the engine |
| |
| Follow-up to d0a7ee3 which fixed a bug in 7.66.0 that caused |
| CURL_LOCK_DATA_COOKIE to enable the easy handle's cookie engine. |
| |
| Bug: https://curl.haxx.se/mail/lib-2020-03/0019.html |
| Reported-by: Felipe Gasper |
| |
| Closes https://github.com/curl/curl/pull/5048 |
| |
| - multi: skip EINTR check on wakeup socket if it was closed |
| |
| - Don't check errno on wakeup socket if sread returned 0 since sread |
| doesn't set errno in that case. |
| |
| This is a follow-up to cf7760a from several days ago which fixed |
| Curl_multi_wait to stop busy looping sread on the non-blocking wakeup |
| socket if it was closed (ie sread returns 0). Due to a logic error it |
| was still possible to busy loop in that case if errno == EINTR. |
| |
| Closes https://github.com/curl/curl/pull/5047 |
| |
| Daniel Stenberg (6 Mar 2020) |
| - transfer: set correct copyright year range |
| |
| - urldata: remove the 'stream_was_rewound' connectdata struct member |
| |
| ... as it is never set anywhere. |
| |
| Follow-up to 2f44e94ef |
| Closes #5046 |
| |
| - Revert "pause: force-drain the transfer on unpause" |
| |
| This reverts commit fa0216b294af4c7113a9040ca65eefc7fc18ac1c (from #5000) |
| |
| Clearly that didn't solve the problem correctly. |
| |
| Reported-by: Christopher Reid |
| Reopens #4966 |
| Fixes #5044 |
| |
| - RELEASE-NOTES: synced |
| |
| and bumped curlver.h |
| |
| - MANUAL: update a dict-using command line |
| |
| The 'web1913' database is now invalid, use 'gcide' instead. |
| |
| - KNOWN_BUGS: configure --with-gssapi with Heimdal is ignored on macOS |
| |
| Closes #3841 |
| |
| - polarssl: remove more references and mentions |
| |
| Assisted-by: Jay Satiro |
| Follow-up to 6357a19ff29dac04 |
| Closes #5036 |
| |
| Marc Hoersken (4 Mar 2020) |
| - tests: wrap ignored test failures in braces |
| |
| - tests: align some Windows sleep defines with each other |
| |
| - tests: try to make sleeping portable by avoiding select |
| |
| select does not support just waiting on Windows: |
| https://perldoc.perl.org/perlport.html#select |
| |
| Reviewed-By: Daniel Stenberg |
| Closes #5035 |
| |
| Daniel Stenberg (4 Mar 2020) |
| - runtests.1: rephrase how to specify what tests to run |
| |
| Also mention the new tilde-prefixed way to ignore test results. |
| |
| Reviewed-By: Marc Hoersken |
| Closes #5033 |
| |
| - cirrus-ci: disable the FreeBSD 13 builds |
| |
| FreeBSD 13.0 is apparently close to a year away from a stable release |
| and has proven to cause intermittent builds failures recently. |
| |
| Assisted-by: Dan Fandrich |
| Assisted-by: Fedor Korotkov |
| Fixes #5028 |
| Closes #5029 |
| |
| Version 7.69.0 (4 Mar 2020) |
| |
| Daniel Stenberg (4 Mar 2020) |
| - RELEASE-NOTES: 7.69.0 |
| |
| - THANKS: from 7.69.0 |
| |
| Now sorted case insensitive |
| |
| Marc Hoersken (3 Mar 2020) |
| - ci/tests: fix escaping of testnames and disable proxy for CI APIs |
| |
| Follow up to ada581f and c0d8b96 |
| Closes #5031 |
| |
| Jay Satiro (3 Mar 2020) |
| - cmake: Show HTTPS-proxy in the features output |
| |
| - Show HTTPS-proxy in the features output for those backends that |
| support it: OpenSSL, GnuTLS and NSS. |
| |
| Prior to this change HTTPS-proxy was missing from the cmake features |
| output even if curl was built with it. Only cmake output was affected. |
| Both the library and tool correctly reported the feature. |
| |
| Bug: https://curl.haxx.se/mail/lib-2020-03/0008.html |
| Reported-by: David Lopes |
| |
| Closes https://github.com/curl/curl/pull/5025 |
| |
| Marc Hoersken (3 Mar 2020) |
| - ci/tests: Make it possible to still run but ignore failing tests |
| |
| This enables the development of a solution for the failing tests by |
| running them on CI while ignoring their result for the overall status. |
| |
| Closes #4994 |
| |
| - README.md: add Azure DevOps Pipelines build status badge |
| |
| - ci/tests: Move CI test result creation above environment setup |
| |
| This avoids using our test servers as proxy to the AppVeyor API. |
| |
| Closes #5022 |
| |
| - ci/tests: Send test results to AppVeyor for status overview |
| |
| Closes #5021 |
| |
| Daniel Stenberg (3 Mar 2020) |
| - Revert "sha256: Added SecureTransport implementation" |
| |
| This reverts commit 4feb38deed33fed14ff7c370a6a9153c661dbb9c (from #4956) |
| |
| That commit broke test 1610 on macos builds without TLS. |
| |
| Closes #5027 |
| |
| - dist: include tests/azure.pm in the tarball |
| |
| Bug: https://github.com/curl/curl/commit/ada581f2cc32f48c1629b729707ac19208435b27#commitcomment-37601589 |
| Reported-by: Marcel Raad |
| |
| Steve Holme (3 Mar 2020) |
| - configure.ac: Disable metalink if mbedTLS is specified |
| |
| Follow up to cdcc9df1 and #5006. Even though I mentioned mbedTLS as |
| being one of the backends that metalink needs to be disabled for, I |
| seem to have included it in the list of allowed SSL/TLS backends in |
| comnfigure.ac :( |
| |
| Closes #5013 |
| |
| - sha256: Tidy up following recent changes |
| |
| Reviewed-by: Daniel Stenberg |
| Closes #4956 |
| |
| - sha256: Added WinCrypt implementation |
| |
| - sha256: Added SecureTransport implementation |
| |
| - sha256: Added mbedtls implementation |
| |
| - sha256: Added GNU TLS gcrypt implementation |
| |
| - sha256: Added GNU TLS Nettle implementation |
| |
| Jay Satiro (2 Mar 2020) |
| - curl_escape.3: Add a link to curl_free |
| |
| Ref: https://github.com/curl/curl/pull/5016#issuecomment-593628582 |
| |
| - curl_getenv.3: Fix the memory handling description |
| |
| - Tell the user to call curl_free() to free the pointer returned by |
| curl_getenv(). |
| |
| Prior to this change the user was directed to call free(), but that |
| would not work in cases where the library and application use separate C |
| runtimes and therefore have separate heap memory management. |
| |
| Closes https://github.com/curl/curl/pull/5016 |
| |
| Daniel Stenberg (2 Mar 2020) |
| - [Nick Zitzmann brought this change] |
| |
| md4: use init/update/final functions in Secure Transport |
| |
| We can use CC_MD4_Init/Update/Final without having to allocate memory |
| directly. |
| |
| Closes #4979 |
| |
| Marc Hoersken (2 Mar 2020) |
| - ci/tests: some MacOS builds randomly take longer than 20min |
| |
| Daniel Stenberg (2 Mar 2020) |
| - multi_wait: stop loop when sread() returns zero |
| |
| It's unclear why it would ever return zero here, but this change fixes |
| Robert's problem and it shouldn't loop forever... |
| |
| Reported-by: Robert Dunaj |
| Bug: https://curl.haxx.se/mail/archive-2020-02/0011.html |
| Closes #5019 |
| |
| - http: mark POSTs with no body as "upload done" from the start |
| |
| As we have logic that checks if we get a >= 400 reponse code back before |
| the upload is done, which then got confused since it wasn't "done" but |
| yet there was no data to send! |
| |
| Reported-by: IvanoG on github |
| Fixes #4996 |
| Closes #5002 |
| |
| - tests: disable 962, 963 and 964 on Windows |
| |
| These tests are also doing UTF-8 SMTP. |
| |
| Follow-up to df207d2dd93b9e73 |
| |
| Marc Hoersken (2 Mar 2020) |
| - ci/tests: fine-tune Azure Pipeline timeouts with a small puffer |
| |
| Daniel Stenberg (2 Mar 2020) |
| - configure: bump the AC_COPYRIGHT year range |
| |
| - [Steve Holme brought this change] |
| |
| tests: disable SMTP UTF-8 tests on Windows |
| |
| Fixes #4988 |
| Closes #4992 |
| |
| - formdata/mime: copyright year range update |
| |
| Due to the merge/revert cycle |
| |
| - Revert "mime: latch last read callback status." |
| |
| This reverts commit 87869e38d7afdec3ef1bb4965711458b088e254f. |
| |
| Fixes #5014 |
| Closes #5015 |
| Reopens #4833 |
| |
| - Revert "mime: do not perform more than one read in a row" |
| |
| This reverts commit ed0f357f7d25566110d4302f33759f4ffb5a6f83. |
| |
| - Revert "mime: fix the binary encoder to handle large data properly" |
| |
| This reverts commit b2caaa0681f329eed317ffb6ae6927f4a539f0c1. |
| |
| - altsvc: both h3 backends now speak h3-27 |
| |
| ... also updated the HTTP3 build description for ngtcp2 accordingly. |
| |
| - [Patrick Monnerat brought this change] |
| |
| mime: fix the binary encoder to handle large data properly |
| |
| New test 666 checks this is effective. |
| As upload buffer size is significant in this kind of tests, shorten it |
| in similar test 652. |
| |
| Fixes #4860 |
| Reported-by: RuurdBeerstra on github |
| |
| - [Patrick Monnerat brought this change] |
| |
| mime: do not perform more than one read in a row |
| |
| Input buffer filling may delay the data sending if data reads are slow. |
| To overcome this problem, file and callback data reads do not accumulate |
| in buffer anymore. All other data (memory data and mime framing) are |
| considered as fast and still concatenated in buffer. |
| As this may highly impact performance in terms of data overhead, an early |
| end of part data check is added to spare a read call. |
| When encoding a part's data, an encoder may require more bytes than made |
| available by a single read. In this case, the above rule does not apply |
| and reads are performed until the encoder is able to deliver some data. |
| |
| Tests 643, 644, 645, 650 and 654 have been adapted to the output data |
| changes, with test data size reduced to avoid the boredom of long lists of |
| 1-byte chunks in verification data. |
| New test 664 checks mimepost using single-byte read callback with encoder. |
| New test 665 checks the end of part data early detection. |
| |
| Fixes #4826 |
| Reported-by: MrdUkk on github |
| |
| - [Patrick Monnerat brought this change] |
| |
| mime: latch last read callback status. |
| |
| In case a read callback returns a status (pause, abort, eof, |
| error) instead of a byte count, drain the bytes read so far but |
| remember this status for further processing. |
| Takes care of not losing data when pausing, and properly resume a |
| paused mime structure when requested. |
| New tests 670-673 check unpausing cases, with easy or multi |
| interface and mime or form api. |
| |
| Fixes #4813 |
| Reported-by: MrdUkk on github |
| Closes #4833 |
| |
| Steve Holme (1 Mar 2020) |
| - unit1651: Fixed conversion compilation warning |
| |
| 371:17: warning: conversion to 'unsigned char' from 'int' may alter its |
| value [-Wconversion] |
| |
| Closes #5008 |
| |
| - configure.ac: Disable metalink support if an incompatible SSL/TLS specified |
| |
| tool_metalink only supports cryptography from OpenSSL, GnuTLS, NSS, |
| The Win32 Crypto library and Apple's Common Crypto library. |
| |
| If an TLS backend such as mbedTLS or WolfSSL is specified then the |
| following error is given during compilation along, with a load of |
| unresolved extern errors: |
| |
| Can't compile METALINK support without a crypto library. |
| |
| Reviewed-by: Daniel Stenberg |
| Closes #5006 |
| |
| Marc Hoersken (1 Mar 2020) |
| - ci/tests: Update Azure DevOps pipeline job display names |
| |
| Make the configure step more descriptive and align others. |
| |
| - ci/tests: Fix typo in previous commit 597cf2 |
| |
| - ci/tests: Make sure that the AZURE_ACCESS_TOKEN is available |
| |
| For security reasons the access token is not available to PR builds. |
| Therefore we should not try to use the DevOps API with an empty token. |
| |
| Daniel Stenberg (1 Mar 2020) |
| - build: remove all HAVE_OPENSSL_ENGINE_H defines |
| |
| ... as there's nothing in the code that actually uses the define! The |
| last reference was removed in 38203f158. |
| |
| Closes #5007 |
| |
| Jay Satiro (29 Feb 2020) |
| - [Rolf Eike Beer brought this change] |
| |
| CMake: clean up and improve build procedures |
| |
| - remove check for unsupported old CMake versions |
| |
| - do not link to c-ares library twice |
| |
| - modernize custom Find modules |
| |
| - FindLibSSH2: |
| - pass version to FPHSA to show it in the output |
| - use LIBSSH2_VERSION define to extract the version number in |
| one shot. This variable exists in the header for 10 years. |
| - remove unneeded code |
| |
| - FindNGHTTP2.cmake: |
| - drop needless FPHSA argument |
| - mark found variables as advanced |
| |
| - FindNSS.cmake: |
| - show version number |
| |
| - FindCARES.cmake: |
| - drop default paths |
| - use FPHSA instead of checking things by hand |
| |
| - remove needless explict variable dereference |
| |
| - simplify count_true() |
| |
| - allow all policies up to version 3.16 to be set to NEW |
| |
| - do not rerun check for -Wstrict-aliasing=3 every time |
| |
| In contrast to every other compiler flag this has a = in it, which CMake |
| can't have in a variable name. |
| |
| - only read the interesting strings from curlver.h |
| |
| Reviewed-by: Peter Wu |
| |
| Closes https://github.com/curl/curl/pull/4975 |
| |
| - runtests: fix output to command log |
| |
| - Record only the command of the most recently ran test in the command |
| log. |
| |
| This is a follow-up to 02988b7 from several weeks ago which fixed |
| writing to the command log, however it saved all commands for all tests |
| instead of just the most recently ran test as we would now expect. |
| |
| Fixes https://github.com/curl/curl/commit/02988b7#commitcomment-37546876 |
| Closes https://github.com/curl/curl/pull/5001 |
| |
| Steve Holme (1 Mar 2020) |
| - polarssl: Additional removal |
| |
| Follow up to 6357a19f. |
| |
| Reviewed-by: Daniel Stenberg |
| Closes #5004 |
| |
| - [Jonathan Cardoso Machado brought this change] |
| |
| docs: fix typo on CURLINFO_RETRY_AFTER - alwaus -> always |
| |
| Reviewed-by: Steve Holme |
| Closes #5005 |
| |
| - md5: Added implementation for mbedTLS |
| |
| Reviewed-by: Jay Satiro |
| Closes #4980 |
| |
| - md5: Use pointer notation for array parameters in GnuTLS implementation |
| |
| - md4: Use non-deprecated functions in mbedTLS >= 2.7.0 |
| |
| Closes #4983 |
| |
| Marc Hoersken (29 Feb 2020) |
| - ci/tests: Send test results to Azure DevOps for reporting |
| |
| Daniel Stenberg (29 Feb 2020) |
| - pause: force-drain the transfer on unpause |
| |
| ... since the socket might not actually be readable anymore when for |
| example the data is already buffered in the TLS layer. |
| |
| Fixes #4966 |
| Reported-by: Anders Berg |
| Closes #5000 |
| |
| - TODO: curl --proxycommand |
| |
| Suggested-by: Kristian Mide |
| Closes #4941 |
| |
| - smtp: overwriting 'from' leaks memory |
| |
| Detected by Coverity. CID 1418139. |
| |
| Also, make sure to return error if the new 'from' allocation fails. |
| |
| Closes #4997 |
| |
| - CIfuzz: switch off 'dry_run' mode |
| |
| Follow-up from #4960: now make it fail if it detects problems. |
| |
| Closes #4998 |
| |
| Marc Hoersken (28 Feb 2020) |
| - ci/tests: Increase timeouts of Windows builds due to new tests |
| |
| Recently added tests increased their runtime above the limit of 60min. |
| |
| - ci/tests: align Azure Pipeline job names with each other |
| |
| - ci/tests: Add Windows builds via Azure Pipelines using Docker |
| |
| - tests: fix Python 3 compatibility of smbserver.py |
| |
| Daniel Stenberg (27 Feb 2020) |
| - runtests: restore the command log |
| |
| The log file with all command lines for the invoked command lines is now |
| called logs/commands.log |
| |
| Fixes #4911 |
| Closes #4989 |
| |
| - smtp: fix memory leak on exit path |
| |
| Detected by Coverity. CID 1418139. "leaked_storage: Variable 'from' |
| going out of scope leaks the storage it points to" |
| |
| Closes #4990 |
| |
| Steve Holme (27 Feb 2020) |
| - gtls: Fixed compilation when using GnuTLS < 3.5.0 |
| |
| Reverts the functionality from 41fcb4f when compiling with GnuTLS older |
| than 3.5.0. |
| |
| Reviewed-by: Daniel Stenberg |
| Closes #4984 |
| |
| - RELEASE-NOTES: Corrected the link to issue #4892 |
| |
| Daniel Stenberg (27 Feb 2020) |
| - Curl_is_ASCII_name: handle a NULL argument |
| |
| Make the function tolerate a NULL pointer input to avoid dereferencing |
| that pointer. |
| |
| Follow-up to efce3ea5a85126d |
| Detected by OSS-Fuzz |
| Reviewed-By: Steve Holme |
| Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20907 |
| Fixes #4985 |
| Closes #4986 |
| |
| - RELEASE-NOTES: synced |
| |
| - http2: make pausing/unpausing set/clear local stream window |
| |
| This reduces the HTTP/2 window size to 32 MB since libcurl might have to |
| buffer up to this amount of data in memory and yet we don't want it set |
| lower to potentially impact tranfer performance on high speed networks. |
| |
| Requires nghttp2 commit b3f85e2daa629 |
| (https://github.com/nghttp2/nghttp2/pull/1444) to work properly, to end |
| up in the next release after 1.40.0. |
| |
| Fixes #4939 |
| Closes #4940 |
| |
| - [Anderson Toshiyuki Sasaki brought this change] |
| |
| libssh: improve known hosts handling |
| |
| Previously, it was not possible to get a known hosts file entry due to |
| the lack of an API. ssh_session_get_known_hosts_entry(), introduced in |
| libssh-0.9.0, allows libcurl to obtain such information and behave the |
| same as when compiled with libssh2. |
| |
| This also tries to avoid the usage of deprecated functions when the |
| replacements are available. The behaviour will not change if versions |
| older than libssh-0.8.0 are used. |
| |
| Signed-off-by: Anderson Toshiyuki Sasaki <[email protected]> |
| |
| Fixes #4953 |
| Closes #4962 |
| |
| Steve Holme (27 Feb 2020) |
| - tests: Automatically deduce the tool name from the test case for unit tests |
| |
| It is still possible to override the executable to run during the test, |
| using the <tool> tag, but this patch removes the requirement that the |
| tag must be present for unit tests. |
| |
| It also removes the possibility of human error when existing test cases |
| are used as the basis for new tests, as recently witnessed in 81c37124. |
| |
| Reviewed-by: Daniel Stenberg |
| Closes #4976 |
| |
| - test1323: Added the missing 'unit test' feature requirement in the test case |
| |
| Daniel Stenberg (26 Feb 2020) |
| - cookie: remove unnecessary check for 'out != 0' |
| |
| ... as it will always be non-NULL at this point. |
| |
| Detected by Coverity: CID 1459009 |
| |
| - http: added 417 response treatment |
| |
| When doing a request with a body + Expect: 100-continue and the server |
| responds with a 417, the same request will be retried immediately |
| without the Expect: header. |
| |
| Added test 357 to verify. |
| |
| Also added a control instruction to tell the sws test server to not read |
| the request body if Expect: is present, which the new test 357 uses. |
| |
| Reported-by: bramus on github |
| Fixes #4949 |
| Closes #4964 |
| |
| Steve Holme (26 Feb 2020) |
| - smtp: Tidy up, following recent changes, to maintain the coding style |
| |
| Closes #4892 |
| |
| - smtp: Support the SMTPUTF8 extension for the EXPN command |
| |
| Simply notify the server we support the SMTPUTF8 extension if it does. |
| |
| - smtp: Support the SMTPUTF8 extension in the VRFY command |
| |
| - smtp: Support the SMTPUTF8 extension in the RCPT TO command |
| |
| Note: The RCPT TO command isn't required to advertise to the server that |
| it contains UTF-8 characters, instead the server is told that a mail may |
| contain UTF-8 in any envelope command via the MAIL command. |
| |
| - smtp: Support the SMTPUTF8 extension in the MAIL command |
| |
| Support the SMTPUTF8 extension when sending mailbox information in the |
| MAIL command (FROM and AUTH parameters). Non-ASCII domain names will |
| be ACE encoded, if IDN is supported, whilst non-ASCII characters in |
| the local address part are passed to the server. |
| |
| Reported-by: ygthien on github |
| Fixes #4828 |
| |
| - smtp: Detect server support for the UTF-8 extension as defined in RFC-6531 |
| |
| - smtp: Support UTF-8 based host names in the VRFY command |
| |
| - smtp: Support UTF-8 based host names in the RCPT TO command |
| |
| - smtp: Support UTF-8 based host names in the MAIL command |
| |
| Non-ASCII host names will be ACE encoded if IDN is supported. |
| |
| - url: Make the IDN conversion functions available to others |
| |
| - smtp: Added UTF-8 mailbox tests to verify existing behaviour |
| |
| - ftpserver: Updated VRFY_smtp() so the response isn't necessary in the test case |
| |
| - ftpserver: Corrected the e-mail address regex in MAIL_smtp() and RCTP_smtp() |
| |
| The dot character between the host and the tld was not being escaped, |
| which meant it specified a match of 'any' character rather than an |
| explicit dot separator. |
| |
| Additionally removed the dot character from the host name as it allowed |
| the following to be specified as a valid address in our test cases: |
| |
| <[email protected]> |
| |
| Both are typos from 98f7ca7 and 8880f84 :( |
| |
| I can't remember whether my intention was to allow sub-domains to be |
| specified in the host or not with these additional dots, but by placing |
| it outside of the host means it can only be specified once per domain |
| and by placing a + after the new grouping support for sub-domains is |
| kept. |
| |
| Closes #4912 |
| |
| - hmac: Added a unit test for the HMAC hash generation |
| |
| Closes #4973 |
| |
| - ntlm: Moved the HMAC MD5 function into the HMAC module as a generic function |
| |
| - tests: Added a unit test for MD4 digest generation |
| |
| Closes #4970 |
| |
| - md4: Use const for the length input parameter |
| |
| This keeps the interface the same as md5 and sha256. |
| |
| - test1610: Fixed the link to the unit test |
| |
| Typo from 81c37124. |
| |
| - ntlm: Removed the dependency on the TLS libaries when using MD5 |
| |
| As we have our own MD5 implementation use the MD5 wrapper to remove the |
| TLS dependency. |
| |
| Closes #4967 |
| |
| - md5/sha256: Updated the functions to allow non-string data to be hashed |
| |
| - digest: Corrected the name of the local HTTP digest function |
| |
| Follow up to 2b5b37cb. Local static functions do not require the Curl |
| prefix. |
| |
| - tests: Added a unit test for SHA256 digest generation |
| |
| Follow up to 2b5b37c. |
| |
| Closes #4968 |
| |
| - md4: Fixed compilation issues when using GNU TLS gcrypt |
| |
| * Don't include 'struct' in the gcrypt MD4_CTX typedef |
| * The call to gcry_md_read() should use a dereferenced ctx |
| * The call to gcry_md_close() should use a dereferenced ctx |
| |
| Additional minor whitespace issue in the USE_WIN32_CRYPTO code. |
| |
| Closes #4959 |
| |
| Daniel Stenberg (21 Feb 2020) |
| - RELEASE-NOTES: synced |
| |
| - http2: now require nghttp2 >= 1.12.0 |
| |
| To simplify our code and since earlier versions lack important function |
| calls libcurl needs to function correctly. |
| |
| nghttp2 1.12.0 was relased on June 26, 2016. |
| |
| Closes #4961 |
| |
| - gtls: fix the copyright year |
| |
| Follow-up from 41fcb4f609 |
| |
| - [jethrogb brought this change] |
| |
| GnuTLS: Always send client cert |
| |
| TLS servers may request a certificate from the client. This request |
| includes a list of 0 or more acceptable issuer DNs. The client may use |
| this list to determine which certificate to send. GnuTLS's default |
| behavior is to not send a client certificate if there is no |
| match. However, OpenSSL's default behavior is to send the configured |
| certificate. The `GNUTLS_FORCE_CLIENT_CERT` flag mimics OpenSSL |
| behavior. |
| |
| Authored-by: jethrogb on github |
| Fixes #1411 |
| Closes #4958 |
| |
| - [Leo Neat brought this change] |
| |
| github action: add CIFuzz |
| |
| Closes #4960 |
| |
| - cleanup: comment typos |
| |
| Spotted by 'codespell' |
| |
| Closes #4957 |
| |
| Steve Holme (20 Feb 2020) |
| - win32: USE_WIN32_CRYPTO to enable Win32 based MD4, MD5 and SHA256 functions |
| |
| Whilst lib\md4.c used this pre-processor, lib\md5.c and |
| src\tool_metalink.c did not and simply relied on the WIN32 |
| pre-processor directive. |
| |
| Reviewed-by: Marcel Raad |
| Closes #4955 |
| |
| Daniel Stenberg (19 Feb 2020) |
| - connect: remove some spurious infof() calls |
| |
| As they were added primarily for debugging, they provide little use for |
| users. |
| |
| Closes #4951 |
| |
| - HTTP-COOKIES: mention that a trailing newline is required |
| |
| ... so that we know we got the whole and not a partial line. |
| |
| Also, changed the formatting of the fields away from a table again since |
| the table format requires a github-markdown tool version that we don't |
| run on the web server atm. |
| |
| Reported-by: Sunny Bean |
| Fixes #4946 |
| Closes #4947 |
| |
| - nit: Copyright year out of date |
| |
| Follow-up to 1fc0617dcc |
| |
| Jay Satiro (18 Feb 2020) |
| - tool_util: Improve Windows version of tvnow() |
| |
| - Change tool_util.c tvnow() for Windows to match more closely to |
| timeval.c Curl_now(). |
| |
| - Create a win32 init function for the tool, since some initialization |
| is required for the tvnow() changes. |
| |
| Prior to this change the monotonic time function used by curl in Windows |
| was determined at build-time and not runtime. That was a problem because |
| when curl was built targeted for compatibility with old versions of |
| Windows (eg _WIN32_WINNT < 0x0600) it would use GetTickCount which wraps |
| every 49.7 days that Windows has been running. |
| |
| This change makes curl behave similar to libcurl's tvnow function, which |
| determines at runtime whether the OS is Vista+ and if so calls |
| QueryPerformanceCounter instead. (Note QueryPerformanceCounter is used |
| because it has higher resolution than the more obvious candidate |
| GetTickCount64). The changes to tvnow are basically a copy and paste but |
| the types in some cases are different. |
| |
| Ref: https://github.com/curl/curl/issues/3309 |
| |
| Closes https://github.com/curl/curl/pull/4847 |
| |
| Daniel Stenberg (18 Feb 2020) |
| - SOCKS: fix typo in printf formatting |
| |
| Follow-up to 4a4b63daa |
| |
| Reported-by: Peter Piekarski |
| Bug: https://github.com/curl/curl/commit/4a4b63daaa01ef59b131d91e8e6e6dfe275c0f08#r37351330 |
| |
| - CURLOPT_REDIR_PROTOCOLS.3: update the DEFAULT section |
| |
| to be in sync with the description above |
| |
| Reported-by: Joonas Kuorilehto |
| Fixes #4943 |
| Closes #4945 |
| |
| - docs/GOVERNANCE: refreshed + added "donations" and "commercial support" |
| |
| - altsvc: make saving the cache an atomic operation |
| |
| ... by writing the file to temp name then rename to the final when done. |
| |
| Assisted-by: Jay Satiro |
| Fixes #4936 |
| Closes #4942 |
| |
| - rename: a new file for Curl_rename() |
| |
| And make the cookie save function use it. |
| |
| - cookies: make saving atomic with a rename |
| |
| Saves the file as "[filename].[8 random hex digits].tmp" and renames |
| away the extension when done. |
| |
| Co-authored-by: Jay Satiro |
| Reported-by: Mike Frysinger |
| Fixes #4914 |
| Closes #4926 |
| |
| - RELEASE-NOTES: synced |
| |
| - socks: make the connect phase non-blocking |
| |
| Removes two entries from KNOWN_BUGS. |
| |
| Closes #4907 |
| |
| - multi: if Curl_readwrite sets 'comeback' use expire, not loop |
| |
| Otherwise, a very fast single transfer ricks starving out other |
| concurrent transfers. |
| |
| Closes #4927 |
| |
| - ftp: convert 'sock_accepted' to a plain boolean |
| |
| This was an array indexed with sockindex but it was only ever used for |
| the secondary socket. |
| |
| Closes #4929 |
| |
| Jay Satiro (15 Feb 2020) |
| - CURLINFO_COOKIELIST.3: Fix example |
| |
| Prior to this change the example would try to import cookies from stdin, |
| which wasn't what was intended. |
| |
| Reported-by: [email protected] |
| |
| Fixes https://github.com/curl/curl/issues/4930 |
| |
| Daniel Stenberg (14 Feb 2020) |
| - TODO: Paged searches on LDAP server |
| |
| Closes #4452 |
| |
| - TODO: CURLOPT_SSL_CTX_FUNCTION for LDAPS |
| |
| Closes #4108 |
| |
| - azure: disable brotli on the macos debug-builds |
| |
| Because of: |
| |
| brotli/decode.h:204:33: error: variable length array used [-Werror,-Wvla] |
| const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)], |
| |
| Closes #4925 |
| |
| Steve Holme (13 Feb 2020) |
| - tool_home: Fix the copyright year being out of date |
| |
| Follow up to 9dc350b6. |
| |
| Jay Satiro (12 Feb 2020) |
| - tool_homedir: Change GetEnv() to use libcurl's curl_getenv() |
| |
| - Deduplicate GetEnv() code. |
| |
| - On Windows change ultimate call to use Windows API |
| GetEnvironmentVariable() instead of C runtime getenv(). |
| |
| Prior to this change both libcurl and the tool had their own GetEnv |
| which over time diverged. Now the tool's GetEnv is a wrapper around |
| curl_getenv (libcurl API function which is itself a wrapper around |
| libcurl's GetEnv). |
| |
| Furthermore this change fixes a bug in that Windows API |
| GetEnvironmentVariable() is called instead of C runtime getenv() to get |
| the environment variable since some changes aren't always visible to the |
| latter. |
| |
| Reported-by: Christoph M. Becker |
| |
| Fixes https://github.com/curl/curl/issues/4774 |
| Closes https://github.com/curl/curl/pull/4863 |
| |
| Daniel Stenberg (12 Feb 2020) |
| - strerror.h: Copyright year out of date |
| |
| Follow-up to 1c4fa67e8a8fcf6 |
| |
| Jay Satiro (12 Feb 2020) |
| - strerror: Increase STRERROR_LEN 128 -> 256 |
| |
| STRERROR_LEN is the constant used throughout the library to set the size |
| of the buffer on the stack that the curl strerror functions write to. |
| |
| Prior to this change some extended length Windows error messages could |
| be truncated. |
| |
| Closes https://github.com/curl/curl/pull/4920 |
| |
| - multi: fix outdated comment |
| |
| - Do not say that conn->data is "cleared" by multi_done(). |
| |
| If the connection is in use then multi_done assigns another easy handle |
| still using the connection to conn->data, therefore in that case it is |
| not cleared. |
| |
| Closes https://github.com/curl/curl/pull/4901 |
| |
| - easy: remove dead code |
| |
| multi is already assigned to data->multi by curl_multi_add_handle. |
| |
| Closes https://github.com/curl/curl/pull/4900 |
| |
| Daniel Stenberg (12 Feb 2020) |
| - create-dirs.d: mention the mode |
| |
| Reported-by: Dan Jacobson |
| Fixes #4766 |
| Closes #4916 |
| |
| - CURLOPT_ALTSVC_CTRL.3: fix the DEFAULT wording |
| |
| Assisted-by: Jay Satiro |
| Reported-by: Craig Andrews |
| Fixes #4909 |
| Closes #4910 |
| |
| - RELEASE-NOTES: synced |
| |
| Steve Holme (9 Feb 2020) |
| - smtp: Simplify the MAIL command and avoid a duplication of send strings |
| |
| This avoids the duplication of strings when the optional AUTH and SIZE |
| parameters are required. It also assists with the modifications that |
| are part of #4892. |
| |
| Closes #4903 |
| |
| Daniel Stenberg (9 Feb 2020) |
| - altsvc: keep a copy of the file name to survive handle reset |
| |
| The alt-svc cache survives a call to curl_easy_reset fine, but the file |
| name to use for saving the cache was cleared. Now the alt-svc cache has |
| a copy of the file name to survive handle resets. |
| |
| Added test 1908 to verify. |
| |
| Reported-by: Craig Andrews |
| Fixes #4898 |
| Closes #4902 |
| |
| Steve Holme (9 Feb 2020) |
| - url: Include the failure reason when curl_win32_idn_to_ascii() fails |
| |
| Provide the failure reason in the failf() info just as we do for the |
| libidn2 version of code. |
| |
| Closes #4899 |
| |
| Jay Satiro (9 Feb 2020) |
| - asyn-thread: remove dead code |
| |
| Daniel Stenberg (8 Feb 2020) |
| - [Emil Engler brought this change] |
| |
| github: Instructions to post "uname -a" on Unix systems in issues |
| |
| Closes #4896 |
| |
| - [Cristian Greco brought this change] |
| |
| configure.ac: fix comments about --with-quiche |
| |
| A simple s/nghttp3/quiche in some comments of --with-quiche. |
| Looks like a copy-paste error from --with-nghttp3. |
| |
| Closes #4897 |
| |
| Steve Holme (7 Feb 2020) |
| - checksrc.bat: Fix not being able to run script from the main curl directory |
| |
| If the script was ran from the main curl directory rather then the |
| projects directory then the script would simply exit without error: |
| |
| C:\url> projects\checksrc.bat |
| |
| The user would either need to change to the projects directory, |
| explicitly specify the current working directory, or perform a |
| oneline hacky workaround: |
| |
| C:\url> cd projects |
| C:\url\projects> checksrc.bat |
| |
| C:\url> checksrc.bat %cd% |
| |
| C:\url> pushd projects & checksrc.bat & popd |
| |
| Closes #4894 |
| |
| Daniel Stenberg (7 Feb 2020) |
| - [Pierre-Yves Bigourdan brought this change] |
| |
| digest: Do not quote algorithm in HTTP authorisation |
| |
| RFC 7616 section 3.4 (The Authorization Header Field) states that "For |
| historical reasons, a sender MUST NOT generate the quoted string syntax |
| for the following parameters: algorithm, qop, and nc". This removes the |
| quoting for the algorithm parameter. |
| |
| Reviewed-by: Steve Holme |
| Closes #4890 |
| |
| - ftp: remove the duplicated user/password struct fields |
| |
| Closes #4887 |
| |
| - ftp: remove superfluous checking for crlf in user or pwd |
| |
| ... as this is already done much earlier in the URL parser. |
| |
| Also add test case 894 that verifies that pop3 with an encodedd CR in |
| the user name is rejected. |
| |
| Closes #4887 |
| |
| Steve Holme (6 Feb 2020) |
| - ntlm_wb: Use Curl_socketpair() for greater portability |
| |
| Reported-by: Daniel Stenberg |
| Closes #4886 |
| |
| Daniel Stenberg (5 Feb 2020) |
| - [Frank Gevaerts brought this change] |
| |
| contributors: Also include people who contributed to curl-www |
| |
| Closes #4884 |
| |
| - [Frank Gevaerts brought this change] |
| |
| contrithanks: Use the most recent tag by default |
| |
| (similar to 5296abe) |
| |
| Closes #4883 |
| |
| - scripts: use last set tag if none given |
| |
| Makes 'delta' and 'contributors.sh' easier to use. |
| |
| Make the delta script invoke contrithanks to get current number of |
| contributors instead of counting THANKS, for accuracy. |
| |
| Closes #4881 |
| |
| - ftp: shrink temp buffers used for PORT |
| |
| These two stack based buffers only need to be 46 + 66 bytes instead of |
| 256 + 1024. |
| |
| Closes #4880 |
| |
| - curl: error on --alt-svc use w/o support |
| |
| Make the tool check for alt-svc support at run-time and return error |
| accordingly if not present when the option is used. |
| |
| Reported-by: Harry Sintonen |
| Closes #4878 |
| |
| - docs/HTTP3: add --enable-alt-svc to curl's configure |
| |
| - RELEASE-PROCEDURE: feature win is closed post-release a few days |
| |
| We've tried to uphold this already but let's make it official by |
| publicly stating this is the way we do it. |
| |
| Closes #4877 |
| |
| - altsvc: set h3 version at a common single spot |
| |
| ... and move the #ifdefs out of the functions. Addresses the fact they |
| were different before this change. |
| |
| Reported-by: Harry Sintonen |
| Closes #4876 |
| |
| - [Harry Sintonen brought this change] |
| |
| altsvc: improved header parser |
| |
| - Fixed the flag parsing to apply to specific alternative entry only, as |
| per RFC. The earlier code would also get totally confused by |
| multiprotocol header, parsing flags from the wrong part of the header. |
| |
| - Fixed the parser terminating on unknown protocols, instead of skipping |
| them. |
| |
| - Fixed a busyloop when protocol-id was present without an equal sign. |
| |
| Closes #4875 |
| |
| - [Harry Sintonen brought this change] |
| |
| ngtcp2: fixed to only use AF_INET6 when ENABLE_IPV6 |
| |
| - docs/HTTP3: update the OpenSSL branch to use for ngtcp2 |
| |
| Reported-by: James Fuller |
| |
| Steve Holme (4 Feb 2020) |
| - ntlm: Pass the Curl_easy structure to the private winbind functions |
| |
| ...rather than the full conndata structure. |
| |
| Daniel Stenberg (4 Feb 2020) |
| - RELEASE-NOTES: synced |
| |
| - tool_operhlp: Copyright year out of date, should be 2020 |
| |
| Follow-up from 2bc373740a3 |
| |
| - [Orgad Shaneh brought this change] |
| |
| curl: avoid using strlen for testing if a string is empty |
| |
| Closes #4873 |
| |
| Steve Holme (3 Feb 2020) |
| - ntlm: Ensure the HTTP header data is not stored in the challenge/response |
| |
| Marcel Raad (3 Feb 2020) |
| - openssl: remove redundant assignment |
| |
| Fixes a scan-build failure on Bionic. |
| |
| Closes https://github.com/curl/curl/pull/4872 |
| |
| - travis: update non-OpenSSL Linux jobs to Bionic |
| |
| For the OpenSSL builds, test 323 [TLS-SRP to non-TLS-SRP server] is |
| failing with "curl returned 52, when expecting 35". |
| |
| Closes https://github.com/curl/curl/pull/4872 |
| |
| Dan Fandrich (3 Feb 2020) |
| - cirrus: Add some missing semicolons |
| |
| Newlines aren't preserved in this section so they're needed to separate |
| commands. The exports luckily worked anyway as a single long line, but |
| erroneously exported a variable called "export" |
| [skip ci] |
| |
| Daniel Gustafsson (2 Feb 2020) |
| - [Pedro Monreal brought this change] |
| |
| cleanup: fix typos and wording in docs and comments |
| |
| Closes #4869 |
| Reviewed-by: Emil Engler and Daniel Gustafsson |
| |
| Steve Holme (2 Feb 2020) |
| - ntlm: Move the winbind data into the NTLM data structure |
| |
| To assist with adding winbind support to the SASL NTLM authentication, |
| move the winbind specific data out of conndata into ntlmdata. |
| |
| Daniel Stenberg (30 Jan 2020) |
| - quiche: Copyright year out of date |
| |
| Follow-up to 7fc63d72333a |
| |
| - altsvc: use h3-25 |
| |
| Closes #4868 |
| |
| - [Alessandro Ghedini brought this change] |
| |
| quiche: update to draft-25 |
| |
| Closes #4867 |
| |
| - ngtcp2: update to git master and its draft-25 support |
| |
| Closes #4865 |
| |
| - cookie: check __Secure- and __Host- case sensitively |
| |
| While most keywords in cookies are case insensitive, these prefixes are |
| specified explicitly to get checked "with a case-sensitive match". |
| |
| (From the 6265bis document in progress) |
| |
| Ref: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-04 |
| Closes #4864 |
| |
| - KNOWN_BUGS: Multiple methods in a single WWW-Authenticate: header |
| |
| - oauth2-bearer.d: works for HTTP too |
| |
| Reported-by: Mischa Salle |
| Bug: https://curl.haxx.se/mail/lib-2020-01/0070.html |
| Closes #4862 |
| |
| - multi_done: if multiplexed, make conn->data point to another transfer |
| |
| ... since the current transfer is being killed. Setting to NULL is |
| wrong, leaving it pointing to 'data' is wrong since that handle might be |
| about to get freed. |
| |
| Fixes #4845 |
| Closes #4858 |
| Reported-by: dmitrmax on github |
| |
| - location.d: the method change is from POST to GET only |
| |
| Not from generic non-GET to GET. |
| |
| Reported-by: Andrius Merkys |
| Ref: #4859 |
| Closes #4861 |
| |
| - urlapi: guess scheme correct even with credentials given |
| |
| In the "scheme-less" parsing case, we need to strip off credentials |
| first before we guess scheme based on the host name! |
| |
| Assisted-by: Jay Satiro |
| Fixes #4856 |
| Closes #4857 |
| |
| - global_init: move the IPv6 works status bool to multi handle |
| |
| Previously it was stored in a global state which contributed to |
| curl_global_init's thread unsafety. This boolean is now instead figured |
| out in curl_multi_init() and stored in the multi handle. Less effective, |
| but thread safe. |
| |
| Closes #4851 |
| |
| - [Jay Satiro brought this change] |
| |
| README: mention that the docs is in docs/ |
| |
| Reported-by: Austin Green |
| Fixes #4830 |
| Closes #4853 |
| |
| - curl.h: define CURL_WIN32 on windows |
| |
| ... so that the subsequent logic below can use a single known define to know |
| when built on Windows (as we don't define WIN32 anymore). |
| |
| Follow-up to 1adebe7886ddf20b |
| |
| Reported-by: crazydef on github |
| Assisted-by: Marcel Raad |
| Fixes #4854 |
| Closes #4855 |
| |
| - RELEASE-NOTES: synced |
| |
| - [Jon Rumsey brought this change] |
| |
| urldata: do string enums without #ifdefs for build scripts |
| |
| ... and check for inconsistencies for OS400 at build time with the new |
| chkstrings tool. |
| |
| Closes #4822 |
| |
| - curl: make the -# spaceship bar not wrap the line |
| |
| The fixed-point math made us lose precision and thus a too high index |
| value could be used for outputting the hashtags which could overwrite |
| the newline. |
| |
| The fix increases the precision in the sine table (*100) and the |
| associated position math. |
| |
| Reported-by: Andrew Potter |
| Fixes #4849 |
| Closes #4850 |
| |
| - global_init: assume the EINTR bit by default |
| |
| - Removed from global_init since it isn't thread-safe. The symbol will |
| still remain to not break compiles, it just won't have any effect going |
| forward. |
| |
| - make the internals NOT loop on EINTR (the opposite from previously). |
| It only risks returning from the select/poll/wait functions early, and that |
| should be risk-free. |
| |
| Closes #4840 |
| |
| - [Peter Piekarski brought this change] |
| |
| conn: do not reuse connection if SOCKS proxy credentials differ |
| |
| Closes #4835 |
| |
| - llist: removed unused Curl_llist_move() |
| |
| (and the corresponding unit test) |
| |
| Closes #4842 |
| |
| - conncache: removed unused Curl_conncache_bundle_size() |
| |
| - strcase: turn Curl_raw_tolower into static |
| |
| Only ever used from within this file. |
| |
| - singleuse.pl: support new API functions, fix curl_dbg_ handling |
| |
| - wolfssh: make it init properly via Curl_ssh_init() |
| |
| Closes #4846 |
| |
| - [Aron Rotteveel brought this change] |
| |
| form.d: fix two minor typos |
| |
| Closes #4843 |
| |
| - openssl: make CURLINFO_CERTINFO not truncate x509v3 fields |
| |
| Avoid "reparsing" the content and instead deliver more exactly what is |
| provided in the certificate and avoid truncating the data after 512 |
| bytes as done previously. This no longer removes embedded newlines. |
| |
| Fixes #4837 |
| Reported-by: bnfp on github |
| Closes #4841 |
| |
| Jay Satiro (23 Jan 2020) |
| - CURLOPT_PROXY_SSL_OPTIONS.3: Sync with CURLOPT_SSL_OPTIONS.3 |
| |
| - Copy CURLOPT_SSL_OPTIONS.3 description to CURLOPT_PROXY_SSL_OPTIONS.3. |
| |
| Prior to this change CURLSSLOPT_NO_PARTIALCHAIN was missing from the |
| CURLOPT_PROXY_SSL_OPTIONS description. |
| |
| Daniel Stenberg (22 Jan 2020) |
| - mk-ca-bundle: add support for CKA_NSS_SERVER_DISTRUST_AFTER |
| |
| For now, no cert in the bundle actually sets a date there... |
| |
| Co-Authored-by: Jay Satiro |
| Reported-by: Christian Heimes |
| Fixes #4834 |
| Closes #4836 |
| |
| - RELEASE-NOTES: synced |
| |
| - [Pavel Volgarev brought this change] |
| |
| smtp: Allow RCPT TO command to fail for some recipients |
| |
| Introduces CURLOPT_MAIL_RCPT_ALLLOWFAILS. |
| |
| Verified with the new tests 3002-3007 |
| |
| Closes #4816 |
| |
| - copyright: fix year ranges |
| |
| follow-up from dea17b519d (one of these days I'll learn to check before |
| I push) |
| |
| - [nao brought this change] |
| |
| http: move "oauth_bearer" from connectdata to Curl_easy |
| |
| Fixes the bug where oauth_bearer gets deallocated when we re-use a |
| connection. |
| |
| Closes #4824 |
| |
| - [Emil Engler brought this change] |
| |
| curl: Let -D merge headers in one file again |
| |
| Closes #4762 |
| Fixes #4753 |
| |
| - data.d: remove "Multiple files can also be specified" |
| |
| It is superfluous and could even be misleading. |
| |
| Bug: https://curl.haxx.se/mail/archive-2020-01/0016.html |
| Reported-by: Mike Norton |
| Closes #4832 |
| |
| Marcel Raad (20 Jan 2020) |
| - CMake: support specifying the target Windows version |
| |
| Previously, it was only possible to set it to Windows Vista or XP by |
| setting the option `ENABLE_INET_PTON` to `ON` resp. `OFF`. |
| Use a new cache variable `CURL_TARGET_WINDOWS_VERSION` to be able to |
| explicitly set the target Windows version. `ENABLE_INET_PTON` is |
| ignored in this case. |
| |
| Ref: https://github.com/curl/curl/pull/1639#issuecomment-313039352 |
| Ref: https://github.com/curl/curl/pull/4607#issuecomment-557541456 |
| Closes https://github.com/curl/curl/pull/4815 |
| |
| Daniel Stenberg (20 Jan 2020) |
| - http.h: Copyright year out of date, should be 2020 |
| |
| Follow-up to 7ff9222ced8c |
| |
| - [加藤郁之 brought this change] |
| |
| HTTP: increase EXPECT_100_THRESHOLD to 1Mb |
| |
| Mentioned: https://curl.haxx.se/mail/lib-2020-01/0050.html |
| |
| Closes #4814 |
| |
| - ROADMAP: thread-safe `curl_global_init()` |
| |
| I'd like to see this happen. |
| |
| - RELEASE-NOTES: synced |
| |
| - wolfssl: use the wc-prefixed symbol alternatives |
| |
| The symbols without wc_ prefix are not always provided. |
| |
| Ref: https://github.com/wolfSSL/wolfssl/issues/2744 |
| |
| Closes #4827 |
| |
| - polarssl: removed |
| |
| As detailed in DEPRECATE.md, the polarssl support is now removed after |
| having been disabled for 6 months and nobody has missed it. |
| |
| The threadlock files used by mbedtls are renamed to an 'mbedtls' prefix |
| instead of the former 'polarssl' and the common functions that |
| previously were shared between mbedtls and polarssl and contained the |
| name 'polarssl' have now all been renamed to instead say 'mbedtls'. |
| |
| Closes #4825 |
| |
| Marcel Raad (16 Jan 2020) |
| - libssh2: fix variable type |
| |
| This led to a conversion warning on 64-bit MinGW, which has 32-bit |
| `long` but 64-bit `size_t`. |
| |
| Closes https://github.com/curl/curl/pull/4823 |
| |
| Daniel Stenberg (16 Jan 2020) |
| - curl:progressbarinit: ignore column width from terminals < 20 |
| |
| To avoid division by zero - or other issues. |
| |
| Reported-by: Daniel Marjamäki |
| Closes #4818 |
| |
| - wolfssh: set the password correctly for PASSWORD auth |
| |
| - wolfssh: remove fprintf() calls (and uses of __func__) |
| |
| Marcel Raad (14 Jan 2020) |
| - CMake: use check_symbol_exists also for inet_pton |
| |
| It doesn't make much sense to only check if the function can be linked |
| when it's not declared in any header and that is treated as an error. |
| With the correct target Windows version set, the function is declared |
| in ws2tcpip.h and the comment above the modified block is invalid. |
| |
| Also, move the definition of `_WIN32_WINNT` up to before all symbol |
| availability checks so that we don't have to care which ones must be |
| done after it. |
| |
| Tested with Visual Studio 2019 and current MinGW-w64. |
| |
| Closes https://github.com/curl/curl/pull/4808 |
| |
| Jay Satiro (13 Jan 2020) |
| - schannel_verify: Fix alt names manual verify for UNICODE builds |
| |
| Follow-up to 29e40a6 from two days ago, which added that feature for |
| Windows 7 and earlier. The bug only occurred in same. |
| |
| Ref: https://github.com/curl/curl/pull/4761 |
| |
| Daniel Stenberg (13 Jan 2020) |
| - HTTP-COOKIES.md: describe the cookie file format |
| |
| ... and refer to that file from from CURLOPT_COOKIEFILE.3 and |
| CURLOPT_COOKIELIST.3 |
| |
| Assisted-by: Jay Satiro |
| Reported-by: bsammon on github |
| Fixes #4805 |
| Closes #4806 |
| |
| - [Tobias Hieta brought this change] |
| |
| CMake: Add support for CMAKE_LTO option. |
| |
| This enables Link Time Optimization. LTO is a proven technique for |
| optimizing across compilation units. |
| |
| Closes #4799 |
| |
| - RELEASE-NOTES: synced |
| |
| - ConnectionExists: respect the max_concurrent_streams limits |
| |
| A regression made the code use 'multiplexed' as a boolean instead of the |
| counter it is intended to be. This made curl try to "over-populate" |
| connections with new streams. |
| |
| This regression came with 41fcdf71a1, shipped in curl 7.65.0. |
| |
| Also, respect the CURLMOPT_MAX_CONCURRENT_STREAMS value in the same |
| check. |
| |
| Reported-by: Kunal Ekawde |
| Fixes #4779 |
| Closes #4784 |
| |
| - curl: make #0 not output the full URL |
| |
| It was not intended nor documented! |
| |
| Added test 1176 to verify. |
| |
| Reported-by: vshmuk on hackerone |
| |
| Closes #4812 |
| |
| - wolfSSH: new SSH backend |
| |
| Adds support for SFTP (not SCP) using WolfSSH. |
| |
| Closes #4231 |
| |
| - curl: remove 'config' field from OutStruct |
| |
| As it was just unnecessary duplicated information already stored in the |
| 'per_transfer' struct and that's around mostly anyway. |
| |
| The duplicated pointer caused problems when the code flow was aborted |
| before the dupe was filled in and could cause a NULL pointer access. |
| |
| Reported-by: Brian Carpenter |
| Fixes #4807 |
| Closes #4810 |
| |
| - misc: Copyright year out of date, should be 2020 |
| |
| Follow-up to recent commits |
| |
| [skip ci] |
| |
| Jay Satiro (11 Jan 2020) |
| - [Santino Keupp brought this change] |
| |
| libssh2: add support for forcing a hostkey type |
| |
| - Allow forcing the host's key type found in the known_hosts file. |
| |
| Currently, curl (with libssh2) does not take keys from your known_hosts |
| file into account when talking to a server. With this patch the |
| known_hosts file will be searched for an entry matching the hostname |
| and, if found, libssh2 will be told to claim this key type from the |
| server. |
| |
| Closes https://github.com/curl/curl/pull/4747 |
| |
| - [Nicolas Guillier brought this change] |
| |
| cmake: Improve libssh2 check on Windows |
| |
| - Add "libssh2" name to FindLibSSH2 library search. |
| |
| On Windows systems, libSSH2 CMake installation may name the library |
| "LibSSH2". |
| |
| Prior to this change cmake only checked for name "ssh2". On Linux that |
| works fine because it will prepend the "lib", but it doesn't do that on |
| Windows. |
| |
| Closes https://github.com/curl/curl/pull/4804 |
| |
| - [Faizur Rahman brought this change] |
| |
| schannel: Make CURLOPT_CAINFO work better on Windows 7 |
| |
| - Support hostname verification via alternative names (SAN) in the |
| peer certificate when CURLOPT_CAINFO is used in Windows 7 and earlier. |
| |
| CERT_NAME_SEARCH_ALL_NAMES_FLAG doesn't exist before Windows 8. As a |
| result CertGetNameString doesn't quite work on those versions of |
| Windows. This change provides an alternative solution for |
| CertGetNameString by iterating through CERT_ALT_NAME_INFO for earlier |
| versions of Windows. |
| |
| Prior to this change many certificates failed the hostname validation |
| when CURLOPT_CAINFO was used in Windows 7 and earlier. Most certificates |
| now represent multiple hostnames and rely on the alternative names field |
| exclusively to represent their hostnames. |
| |
| Reported-by: Jeroen Ooms |
| |
| Fixes https://github.com/curl/curl/issues/3711 |
| Closes https://github.com/curl/curl/pull/4761 |
| |
| - [Emil Engler brought this change] |
| |
| ngtcp2: Add an error code for QUIC connection errors |
| |
| - Add new error code CURLE_QUIC_CONNECT_ERROR for QUIC connection |
| errors. |
| |
| Prior to this change CURLE_FAILED_INIT was used, but that was not |
| correct. |
| |
| Closes https://github.com/curl/curl/pull/4754 |
| |
| - multi: Change curl_multi_wait/poll to error on negative timeout |
| |
| - Add new error CURLM_BAD_FUNCTION_ARGUMENT and return that error when |
| curl_multi_wait/poll is passed timeout param < 0. |
| |
| Prior to this change passing a negative value to curl_multi_wait/poll |
| such as -1 could cause the function to wait forever. |
| |
| Reported-by: [email protected] |
| |
| Fixes https://github.com/curl/curl/issues/4763 |
| |
| Closes https://github.com/curl/curl/pull/4765 |
| |
| - [Marc Aldorasi brought this change] |
| |
| cmake: Enable SMB for Windows builds |
| |
| - Define USE_WIN32_CRYPTO by default. This enables SMB. |
| |
| - Show whether SMB is enabled in the "Enabled features" output. |
| |
| - Fix mingw compiler warning for call to CryptHashData by casting away |
| const param. mingw CryptHashData prototype is wrong. |
| |
| Closes https://github.com/curl/curl/pull/4717 |
| |
| - vtls: Refactor Curl_multissl_version to make the code clearer |
| |
| Reported-by: Johannes Schindelin |
| |
| Ref: https://github.com/curl/curl/pull/3863#pullrequestreview-241395121 |
| |
| Closes https://github.com/curl/curl/pull/4803 |
| |
| Daniel Stenberg (10 Jan 2020) |
| - fix: Copyright year out of date, should be 2020 |
| |
| Follow-up to 875314ed0bf3b |
| |
| Marcel Raad (10 Jan 2020) |
| - hostip: move code to resolve IP address literals to `Curl_resolv` |
| |
| The code was duplicated in the various resolver backends. |
| |
| Also, it was called after the call to `Curl_ipvalid`, which matters in |
| case of `CURLRES_IPV4` when called from `connect.c:bindlocal`. This |
| caused test 1048 to fail on classic MinGW. |
| |
| The code ignores `conn->ip_version` as done previously in the |
| individual resolver backends. |
| |
| Move the call to the `resolver_start` callback up to appease test 655, |
| which wants it to be called also for literal addresses. |
| |
| Closes https://github.com/curl/curl/pull/4798 |
| |
| Daniel Stenberg (9 Jan 2020) |
| - scripts/delta: adapt to new public header layout |
| |
| - test1167: verify global symbols in public headers are curl prefixed |
| |
| ... using the new badsymbols.pl perl script |
| |
| Fixes #4793 |
| Closes #4794 |
| |
| - libtest/mk-lib1521: adapt to new public header layout |
| |
| - include: remove non-curl prefixed defines |
| |
| ...requires some rearranging of the setup of CURLOPT_ and CURLMOPT_ |
| enums. |
| |
| - curl.h: remove WIN32 define |
| |
| It isn't our job to define this in a public header - and it defines a |
| name outside of our naming scope. |
| |
| - tool_dirhie.c: fix the copyright year range |
| |
| Follow-up to: 4027bd72d9 |
| |
| - bump: work towards 7.69.0 is started |
| |
| Jay Satiro (9 Jan 2020) |
| - tool_dirhie: Allow directory traversal during creation |
| |
| - When creating a directory hierarchy do not error when mkdir fails due |
| to error EACCESS (13) "access denied". |
| |
| Some file systems allow for directory traversal; in this case that it |
| should be possible to create child directories when permission to the |
| parent directory is restricted. |
| |
| This is a regression caused by me in f16bed0 (precedes curl-7_61_1). |
| Basically I had assumed that if a directory already existed it would |
| fail only with error EEXIST, and not error EACCES. The latter may |
| happen if the directory exists but has certain restricted permissions. |
| |
| Reported-by: [email protected] |
| |
| Fixes https://github.com/curl/curl/issues/4796 |
| Closes https://github.com/curl/curl/pull/4797 |
| |
| Daniel Stenberg (9 Jan 2020) |
| - KNOWN_BUGS: AUTH PLAIN for SMTP is not working on all servers |
| |
| Closes #4080 |
| |
| - docs/RELEASE-PROCEDURE.md: pushed some release dates |
| |
| Ref: https://curl.haxx.se/mail/lib-2020-01/0031.html |
| |
| - runtests: make random seed fixed for a month |
| |
| When using randomized features of runtests (-R and --shallow) it is |
| useful to have a fixed random seed to make sure for example extra |
| commits in a branch or a rebase won't change the seed that would make |
| repeated runs work differently. |
| |
| As it is also useful to change seed sometimes, the default seed is now |
| determined based on the current month (and first line curl -V |
| output). When the month changes, so will the random seed. |
| |
| The specific seed is also shown in the standard test suite top header |
| and it can be set explictly with the new --seed=[num] option so that the |
| exact order of a previous run can be achieved. |
| |
| Closes #4734 |
| |
| - RELEASE-PROCEDURE.md: fix next release date (Feb 26) |
| |
| [skip ci] |
| |
| Version 7.68.0 (8 Jan 2020) |
| |
| Daniel Stenberg (8 Jan 2020) |
| - RELEASE-NOTES: 7.68.0 |
| |
| - THANKS: updated with names from the 7.68.0 release |
| |
| - RELEASE-PROCEDURE: add four future release dates |
| |
| and remove four past release dates |
| |
| [skip ci] |
| |
| Marcel Raad (6 Jan 2020) |
| - TrackMemory tests: always remove CR before LF |
| |
| It was removed for output containing ' =' via `s/ =.*//`. With classic |
| MinGW, this made lines with `free()` end with CRLF, but lines with e.g. |
| `malloc()` end with only LF. The tests expect LF only. |
| |
| Closes https://github.com/curl/curl/pull/4788 |
| |
| Daniel Stenberg (6 Jan 2020) |
| - multi.h: move INITIAL_MAX_CONCURRENT_STREAMS from public header |
| |
| ... to the private multihhandle.h. It is not for public use and it |
| wasn't prefixed correctly anyway! |
| |
| Closes #4790 |
| |
| - file: fix copyright year range |
| |
| Follow-up to 1b71bc532bd |
| |
| - curl -w: handle a blank input file correctly |
| |
| Previously it would end up with an uninitialized memory buffer that |
| would lead to a crash or junk getting output. |
| |
| Added test 1271 to verify. |
| |
| Reported-by: Brian Carpenter |
| Closes #4786 |
| |
| - file: on Windows, refuse paths that start with \\ |
| |
| ... as that might cause an unexpected SMB connection to a given host |
| name. |
| |
| Reported-by: Fernando Muñoz |
| CVE-2019-15601 |
| Bug: https://curl.haxx.se/docs/CVE-2019-15601.html |
| |
| Jay Satiro (6 Jan 2020) |
| - CURLOPT_READFUNCTION.3: fix fopen params in example |
| |
| - CURLOPT_READFUNCTION.3: fix variable name in example |
| |
| Reported-by: Paul Joyce |
| |
| Fixes https://github.com/curl/curl/issues/4787 |
| |
| Daniel Stenberg (5 Jan 2020) |
| - curl:getparameter return error for --http3 if libcurl doesn't support |
| |
| Closes #4785 |
| |
| - docs: mention CURL_MAX_INPUT_LENGTH restrictions |
| |
| ... for curl_easy_setopt() and curl_url_set(). |
| |
| [skip ci] |
| |
| Closes #4783 |
| |
| - curl: properly free mimepost data |
| |
| ... as it could otherwise leak memory when a transfer failed. |
| |
| Added test 1293 to verify. |
| |
| Reported-by: Brian Carpenter |
| Fixes #4781 |
| Closes #4782 |
| |
| - curl: cleanup multi handle on failure |
| |
| ... to fix memory leak in error path. |
| |
| Fixes #4772 |
| Closes #4780 |
| Reported-by: Brian Carpenter |
| |
| Marcel Raad (3 Jan 2020) |
| - lib: fix compiler warnings with `CURL_DISABLE_VERBOSE_STRINGS` |
| |
| Closes https://github.com/curl/curl/pull/4775 |
| |
| Daniel Stenberg (3 Jan 2020) |
| - COPYING: it's 2020! |
| |
| [skip ci] |
| |
| Jay Satiro (3 Jan 2020) |
| - [Marc Aldorasi brought this change] |
| |
| tests: Fix bounce requests with truncated writes |
| |
| Prior to this change the swsbounce check in service_connection could |
| fail because prevtestno and prevpartno were not set, which would cause |
| the wrong response data to be sent to some tests and cause them to fail. |
| |
| Ref: https://github.com/curl/curl/pull/4717#issuecomment-570240785 |
| |
| Marcel Raad (31 Dec 2019) |
| - tool: make a few char pointers point to const char instead |
| |
| These are read-only. |
| |
| Closes https://github.com/curl/curl/pull/4771 |
| |
| Jay Satiro (31 Dec 2019) |
| - tests: Change NTLM tests to require SSL |
| |
| Prior to this change tests that required NTLM feature did not require |
| SSL feature. |
| |
| There are pending changes to cmake builds that will allow enabling NTLM |
| in non-SSL builds in Windows. In that case the NTLM auth strings created |
| are different from what is expected by the NTLM tests and they fail: |
| |
| "The issue with NTLM is that previous non-SSL builds would not enable |
| NTLM and so the NTLM tests would be skipped." |
| |
| Assisted-by: [email protected] |
| |
| Ref: https://github.com/curl/curl/pull/4717#issuecomment-566218729 |
| |
| Closes https://github.com/curl/curl/pull/4768 |
| |
| - [Michael Forney brought this change] |
| |
| bearssl: Improve I/O handling |
| |
| Factor out common I/O loop as bearssl_run_until, which reads/writes TLS |
| records until the desired engine state is reached. This is now used for |
| the handshake, read, write, and close. |
| |
| Match OpenSSL SSL_write behavior, and don't return the number of bytes |
| written until the corresponding records have been completely flushed |
| across the socket. This involves keeping track of the length of data |
| buffered into the TLS engine, and assumes that when CURLE_AGAIN is |
| returned, the write function will be called again with the same data |
| and length arguments. This is the same requirement of SSL_write. |
| |
| Handle TLS close notify as EOF when reading by returning 0. |
| |
| Closes https://github.com/curl/curl/pull/4748 |
| |
| - travis: Fix error detection |
| |
| - Stop using inline shell scripts for before_script and script sections. |
| |
| Prior to this change Travis could ignore errors from commands in inline |
| scripts. I don't understand how or why it happens. This is a workaround. |
| |
| Assisted-by: Simon Warta |
| |
| Ref: https://github.com/travis-ci/travis-ci/issues/1066 |
| |
| Fixes https://github.com/curl/curl/issues/3730 |
| Closes https://github.com/curl/curl/pull/3755 |
| |
| - tool_operate: fix mem leak when failed config parse |
| |
| Found by fuzzing the config file. |
| |
| Reported-by: Geeknik Labs |
| |
| Fixes https://github.com/curl/curl/issues/4767 |
| |
| - [Xiang Xiao brought this change] |
| |
| lib: remove erroneous +x file permission on some c files |
| |
| Modified by commit eb9a604 accidentally. |
| |
| Closes https://github.com/curl/curl/pull/4756 |
| |
| - [Xiang Xiao brought this change] |
| |
| lib: fix warnings found when porting to NuttX |
| |
| - Undefine DEBUGASSERT in curl_setup_once.h in case it was already |
| defined as a system macro. |
| |
| - Don't compile write32_le in curl_endian unless |
| CURL_SIZEOF_CURL_OFF_T > 4, since it's only used by Curl_write64_le. |
| |
| - Include <arpa/inet.h> in socketpair.c. |
| |
| Closes https://github.com/curl/curl/pull/4756 |
| |
| - os400: Add missing CURLE error constants |
| |
| Bug: https://github.com/curl/curl/pull/4754#issuecomment-569126922 |
| Reported-by: Emil Engler |
| |
| - CURLOPT_HEADERFUNCTION.3: Document that size is always 1 |
| |
| For compatibility with `fwrite`, the `CURLOPT_HEADERFUNCTION` callback |
| is passed two `size_t` parameters which, when multiplied, designate the |
| number of bytes of data passed in. In practice, CURL always sets the |
| first parameter (`size`) to 1. |
| |
| This practice is also enshrined in documentation and cannot be changed |
| in future. The documentation states that the default callback is |
| `fwrite`, which means `fwrite` must be a suitable function for this |
| purpose. However, the documentation also states that the callback must |
| return the number of *bytes* it successfully handled, whereas ISO C |
| `fwrite` returns the number of items (each of size `size`) which it |
| wrote. The only way these numbers can be equal is if `size` is 1. |
| |
| Since `size` is 1 and can never be changed in future anyway, document |
| that fact explicitly and let users rely on it. |
| |
| Reported-by: Frank Gevaerts |
| Commit-message-by: Christopher Head |
| |
| Ref: https://github.com/curl/curl/pull/2787 |
| |
| Fixes https://github.com/curl/curl/issues/4758 |
| |
| - examples/postinmemory.c: Call curl_global_cleanup always |
| |
| Prior to this change curl_global_cleanup was not called if |
| curl_easy_init failed. |
| |
| Reported-by: [email protected] |
| |
| Fixes https://github.com/curl/curl/issues/4751 |
| |
| Daniel Stenberg (21 Dec 2019) |
| - url2file.c: fix copyright year |
| |
| Follow-up to 525787269599b5 |
| |
| - [Rickard Hallerbäck brought this change] |
| |
| examples/url2file.c: corrected a comment |
| |
| The comment was confusing and suggested that setting CURLOPT_NOPROGRESS |
| to 0L would both enable and disable debug output at the same time, like |
| a Schrödinger's cat of CURLOPTs. |
| |
| Closes #4745 |
| |
| - HISTORY: OSS-Fuzz started fuzzing libcurl in 2017 |
| |
| - RELEASE-NOTES: synced |
| |
| Jay Satiro (20 Dec 2019) |
| - ngtcp2: Support the latest update key callback type |
| |
| - Remove our cb_update_key in favor of ngtcp2's new |
| ngtcp2_crypto_update_key_cb which does the same thing. |
| |
| Several days ago the ngtcp2_update_key callback function prototype was |
| changed in ngtcp2/ngtcp2@42ce09c. Though it would be possible to |
| fix up our cb_update_key for that change they also added |
| ngtcp2_crypto_update_key_cb which does the same thing so we'll use that |
| instead. |
| |
| Ref: https://github.com/ngtcp2/ngtcp2/commit/42ce09c |
| |
| Closes https://github.com/curl/curl/pull/4735 |
| |
| Daniel Stenberg (19 Dec 2019) |
| - sws: search for "Testno:" header uncondtionally if no testno |
| |
| Even if the initial request line wasn't found. With the fix to 1455, the |
| test number is now detected correctly. |
| |
| (Problem found when running tests in random order.) |
| |
| Closes #4744 |
| |
| - tests: set LC_ALL in more tests |
| |
| Follow-up to 23208e330ac0c21 |
| |
| Closes #4743 |
| |
| - test165: set LC_ALL=en_US.UTF-8 too |
| |
| On my current Debian Unstable with libidn2 2.2.0, I get an error if |
| LC_ALL is set to blank. Then curl errors out with: |
| |
| curl: (3) Failed to convert www.åäö.se to ACE; could not convert string to UTF-8 |
| |
| Closes #4738 |
| |
| - curl.h: add two defines for the "pre ISO C" case |
| |
| Without this fix, this caused a compilation failure on AIX with IBM xlc |
| 13.1.3 compiler. |
| |
| Reported-by: Ram Krushna Mishra |
| Fixes #4739 |
| Closes #4740 |
| |
| - create_conn: prefer multiplexing to using new connections |
| |
| ... as it would previously prefer new connections rather than |
| multiplexing in most conditions! The (now removed) code was a leftover |
| from the Pipelining code that was translated wrongly into a |
| multiplex-only world. |
| |
| Reported-by: Kunal Ekawde |
| Bug: https://curl.haxx.se/mail/lib-2019-12/0060.html |
| Closes #4732 |
| |
| - test1456: remove the use of a fixed local port |
| |
| Fixup the test to instead not compare the port number. It sometimes |
| caused problems like this: |
| |
| "curl: (45) bind failed with errno 98: Address already in use" |
| |
| Closes #4733 |
| |
| Jay Satiro (18 Dec 2019) |
| - CURLOPT_QUOTE.3: fix typos |
| |
| Prior to this change the EXAMPLE in the QUOTE/PREQUOTE/POSTQUOTE man |
| pages would not compile because a variable name was incorrect. |
| |
| Reported-by: [email protected] |
| |
| Fixes https://github.com/curl/curl/issues/4736 |
| |
| - [Gisle Vanem brought this change] |
| |
| strerror: Fix compiler warning "empty expression" |
| |
| - Remove the final semi-colon in the SEC2TXT() macro definition. |
| |
| Before: #define SEC2TXT(sec) case sec: txt = #sec; break; |
| |
| After: #define SEC2TXT(sec) case sec: txt = #sec; break |
| |
| Prior to this change SEC2TXT(foo); would generate break;; which caused |
| the empty expression warning. |
| |
| Ref: https://github.com/curl/curl/commit/5b22e1a#r36458547 |
| |
| Daniel Stenberg (18 Dec 2019) |
| - curl/parseconfig: use curl_free() to free memory allocated by libcurl |
| |
| Reported-by: bxac on github |
| Fixes #4730 |
| Closes #4731 |
| |
| - curl/parseconfig: fix mem-leak |
| |
| When looping, first trying '.curlrc' and then '_curlrc', the function |
| would not free the first string. |
| |
| Closes #4731 |
| |
| - CURLOPT_URL.3: "curl supports SMB version 1 (only)" |
| |
| [skip ci] |
| |
| - test1270: a basic -w redirect_url test |
| |
| Closes #4728 |
| |
| - HISTORY: the SMB(S) support landed in 2014 |
| |
| - define: remove HAVE_ENGINE_LOAD_BUILTIN_ENGINES, not used anymore |
| |
| It is covered by USE_OPENSSL_ENGINE now. |
| |
| Reported-by: Gisle Vanem |
| Bug: https://github.com/curl/curl/commit/87b9337c8f76c21c57b204e88b68c6ecf3bd1ac0#commitcomment-36447951 |
| |
| Closes #4725 |
| |
| - lib: remove ASSIGNWITHINCONDITION exceptions, use our code style |
| |
| ... even for macros |
| |
| Reviewed-by: Daniel Gustafsson |
| Reviewed-by: Jay Satiro |
| Reported-by: Jay Satiro |
| Fixes #4683 |
| Closes #4722 |
| |
| - tests: make sure checksrc runs on header files too |
| |
| - Revert "checksrc: fix regexp for ASSIGNWITHINCONDITION" |
| |
| This reverts commit ba82673dac3e8d00a76aa5e3779a0cb80e7442af. |
| |
| Bug: #4683 |
| |
| - KNOWN_BUGS: TLS session cache doesn't work with TFO |
| |
| [skip ci] |
| Closes #4301 |
| |
| - KNOWN_BUGS: Connection information when using TCP Fast Open |
| |
| Also point to #4296 for more details |
| Closes #4296 |
| |
| - KNOWN_BUGS: LDAP on Windows doesn't work |
| |
| Closes #4261 |
| |
| - docs: TLS SRP doesn't work with TLS 1.3 |
| |
| Reported-by: sayrer on github |
| Closes #4262 |
| [skip ci] |
| |
| Dan Fandrich (16 Dec 2019) |
| - cirrus: Switch to the FreeBSD 12.1 point release & enable more tests. |
| |
| A few tests are now passing on FreeBSD, so no longer skip them. |
| [skip ci] |
| |
| Daniel Stenberg (16 Dec 2019) |
| - azure: the macos cmake doesn't need to install cmake |
| |
| Error: cmake 3.15.5 is already installed |
| To upgrade to 3.16.1, run `brew upgrade cmake`. |
| |
| Closes #4723 |
| |
| Jay Satiro (15 Dec 2019) |
| - winbuild: Document CURL_STATICLIB requirement for static libcurl |
| |
| A static libcurl (ie winbuild mode=static) requires that the user define |
| CURL_STATICLIB when using it in their application. This is already |
| covered in the FAQ and INSTALL.md, but is a pretty important point so |
| now it's noted in the BUILD.WINDOWS.txt as well. |
| |
| Assisted-by: Michael Vittiglio |
| |
| Closes https://github.com/curl/curl/pull/4721 |
| |
| Daniel Stenberg (15 Dec 2019) |
| - [Santino Keupp brought this change] |
| |
| libssh2: add support for ECDSA and ed25519 knownhost keys |
| |
| ... if a new enough libssh2 version is present. |
| |
| Source: https://curl.haxx.se/mail/archive-2019-12/0023.html |
| Co-Authored-by: Daniel Stenberg |
| Closes #4714 |
| |
| - lib1591: free memory properly on OOM, in the trailers callback |
| |
| Detected by torture tests. |
| |
| Closes #4720 |
| |
| - runtests: --repeat=[num] to repeat tests |
| |
| Closes #4715 |
| |
| - RELEASE-NOTES: synced |
| |
| - azure: add a torture test on mac |
| |
| Uses --shallow=25 to keep it small enough to get through in time. |
| |
| Closes #4712 |
| |
| - multi: free sockhash on OOM |
| |
| This would otherwise leak memory in the error path. |
| |
| Detected by torture test 1540. |
| |
| Closes #4713 |
| |
| Marcel Raad (13 Dec 2019) |
| - tests: use DoH feature for DoH tests |
| |
| Previously, http/2 was used instead. |
| |
| Assisted-by: Jay Satiro |
| Closes https://github.com/curl/curl/pull/4692 |
| |
| - hostip: suppress compiler warning |
| |
| With `--disable-doh --disable-threaded-resolver`, the `dns` parameter |
| is not used. |
| |
| Closes https://github.com/curl/curl/pull/4692 |
| |
| - tests: fix build with `CURL_DISABLE_DOH` |
| |
| Closes https://github.com/curl/curl/pull/4692 |
| |
| Daniel Stenberg (13 Dec 2019) |
| - azure: add a torture test |
| |
| Skipping all FTP tests for speed reasons. |
| |
| Closes #4697 |
| |
| - azure: make the default build use --enable-debug --enable-werror |
| |
| - ntlm_wb: fix double-free in OOM |
| |
| Detected by torture testing test 1310 |
| |
| Closes #4710 |
| |
| Dan Fandrich (13 Dec 2019) |
| - cirrus: Drop the FreeBSD 10.4 build |
| |
| Upstream support for 10.4 ended a year ago, and it looks like the image |
| is now gone, too. |
| [skip ci] |
| |
| Daniel Stenberg (13 Dec 2019) |
| - unit1620: fix bad free in OOM |
| |
| Closes #4709 |
| |
| - unit1609: fix mem-leak in OOM |
| |
| Closes #4709 |
| |
| - unit1607: fix mem-leak in OOM |
| |
| Closes #4709 |
| |
| - lib1559: fix mem-leak in OOM |
| |
| Closes #4709 |
| |
| - lib1557: fix mem-leak in OOM |
| |
| Closes #4709 |
| |
| - altsvc: make the save function ignore NULL filenames |
| |
| It might happen in OOM situations. Detected bv torture tests. |
| |
| Closes #4707 |
| |
| - curl: fix memory leak in OOM in etags logic |
| |
| Detected by torture tests |
| |
| Closes #4706 |
| |
| - doh: make it behave when built without proxy support |
| |
| Reported-by: Marcel Raad |
| Bug: https://github.com/curl/curl/pull/4692#issuecomment-564115734 |
| |
| Closes #4704 |
| |
| - curl: improved cleanup in upload error path |
| |
| Memory leak found by torture test 58 |
| |
| Closes #4705 |
| |
| - mailmap: fix Andrew Ishchuk |
| |
| - travis: make torture use --shallow=40 |
| |
| As a first step to enable it to run over a more diverse set of tests in |
| a reasonable time. |
| |
| - runtests: introduce --shallow to reduce huge torture tests |
| |
| When set, shallow mode limits runtests -t to make no more than NUM fails |
| per test case. If more are found, it will randomly discard entries until |
| the number is right. The random seed can also be set. |
| |
| This is particularly useful when running MANY tests as then most torture |
| failures will already fail the same functions over and over and make the |
| total operation painfully tedious. |
| |
| Closes #4699 |
| |
| - conncache: CONNECT_ONLY connections assumed always in-use |
| |
| This makes them never to be considered "the oldest" to be discarded when |
| reaching the connection cache limit. The reasoning here is that |
| CONNECT_ONLY is primarily used in combination with using the |
| connection's socket post connect and since that is used outside of |
| curl's knowledge we must assume that it is in use until explicitly |
| closed. |
| |
| Reported-by: Pavel Pavlov |
| Reported-by: Pavel Löbl |
| Fixes #4426 |
| Fixes #4369 |
| Closes #4696 |
| |
| - [Gisle Vanem brought this change] |
| |
| vtls: make BearSSL possible to set with CURL_SSL_BACKEND |
| |
| Ref: https://github.com/curl/curl/commit/9b879160df01e7ddbb4770904391d3b74114302b#commitcomment-36355622 |
| |
| Closes #4698 |
| |
| - RELEASE-NOTES: synced |
| |
| - travis: remove "coverage", make it "torture" |
| |
| The coveralls service and test coverage numbers are just too unreliable. |
| Removed badge from README.md as well. |
| |
| Fixes #4694 |
| Closes #4695 |
| |
| - azure: add libssh2 and cmake macos builds |
| |
| Removed the macos libssh2 build from travis |
| |
| Closes #4686 |
| |
| - curl: use errorf() better |
| |
| Change series of error outputs to use errorf(). |
| |
| Only errors that are due to mistakes in command line option usage should |
| use helpf(), other types of errors in the tool should rather use |
| errorf(). |
| |
| Closes #4691 |
| |
| Jay Satiro (9 Dec 2019) |
| - [Marc Hoersken brought this change] |
| |
| tests: make it possible to set executable extensions |
| |
| This enables the use of Windows Subsystem for Linux (WSL) to run the |
| testsuite against Windows binaries while using Linux servers. |
| |
| This commit introduces the following environment variables: |
| - CURL_TEST_EXE_EXT: set the executable extension for all components |
| - CURL_TEST_EXE_EXT_TOOL: set it for the curl tool only |
| - CURL_TEST_EXE_EXT_SSH: set it for the SSH tools only |
| |
| Later testcurl.pl could be adjusted to make use of those variables. |
| - CURL_TEST_EXE_EXT_SRV: set it for the test servers only |
| |
| (This is one of several commits to support use of WSL for the tests.) |
| |
| Closes https://github.com/curl/curl/pull/3899 |
| |
| - [Marc Hoersken brought this change] |
| |
| tests: fix permissions of ssh keys in WSL |
| |
| Keys created on Windows Subsystem for Linux (WSL) require it for some |
| reason. |
| |
| (This is one of several commits to support use of WSL for the tests.) |
| |
| Ref: https://github.com/curl/curl/pull/3899 |
| |
| - [Marc Hoersken brought this change] |
| |
| tests: use \r\n for log messages in WSL |
| |
| Bash in Windows Subsystem for Linux (WSL) requires it for some reason. |
| |
| (This is one of several commits to support use of WSL for the tests.) |
| |
| Ref: https://github.com/curl/curl/pull/3899 |
| |
| - [Andrew Ishchuk brought this change] |
| |
| winbuild: Define CARES_STATICLIB when WITH_CARES=static |
| |
| When libcurl is built with MODE=static, c-ares is forced into static |
| linkage too. That doesn't happen when MODE=dll so linker would break |
| over undefined symbols. |
| |
| closes https://github.com/curl/curl/pull/4688 |
| |
| Daniel Stenberg (9 Dec 2019) |
| - conn: always set bits.close with connclose() |
| |
| Closes #4690 |
| |
| - cirrus: enable clang sanitizers on freebsd 13 |
| |
| - conncache: fix multi-thread use of shared connection cache |
| |
| It could accidentally let the connection get used by more than one |
| thread, leading to double-free and more. |
| |
| Reported-by: Christopher Reid |
| Fixes #4544 |
| Closes #4557 |
| |
| - azure: add a vanilla macos build |
| |
| Closes #4685 |
| |
| - curl: make the etag load logic work without fseek |
| |
| The fseek()s were unnecessary and caused Coverity warning CID 1456554 |
| |
| Closes #4681 |
| |
| - mailmap: Mohammad Hasbini |
| |
| - [Mohammad Hasbini brought this change] |
| |
| docs: fix some typos |
| |
| Closes #4680 |
| |
| - RELEASE-NOTES: synced |
| |
| Jay Satiro (5 Dec 2019) |
| - lib: fix some loose ends for recently added CURLSSLOPT_NO_PARTIALCHAIN |
| |
| Add support for CURLSSLOPT_NO_PARTIALCHAIN in CURLOPT_PROXY_SSL_OPTIONS |
| and OS400 package spec. |
| |
| Also I added the option to the NameValue list in the tool even though it |
| isn't exposed as a command-line option (...yet?). (NameValue stringizes |
| the option name for the curl cmd -> libcurl source generator) |
| |
| Follow-up to 564d88a which added CURLSSLOPT_NO_PARTIALCHAIN. |
| |
| Ref: https://github.com/curl/curl/pull/4655 |
| |
| - setopt: Fix ALPN / NPN user option when built without HTTP2 |
| |
| - Stop treating lack of HTTP2 as an unknown option error result for |
| CURLOPT_SSL_ENABLE_ALPN and CURLOPT_SSL_ENABLE_NPN. |
| |
| Prior to this change it was impossible to disable ALPN / NPN if libcurl |
| was built without HTTP2. Setting either option would result in |
| CURLE_UNKNOWN_OPTION and the respective internal option would not be |
| set. That was incorrect since ALPN and NPN are used independent of |
| HTTP2. |
| |
| Reported-by: Shailesh Kapse |
| |
| Fixes https://github.com/curl/curl/issues/4668 |
| Closes https://github.com/curl/curl/pull/4672 |
| |
| Daniel Stenberg (5 Dec 2019) |
| - etag: allow both --etag-compare and --etag-save in same cmdline |
| |
| Fixes #4669 |
| Closes #4678 |
| |
| Marcel Raad (5 Dec 2019) |
| - curl_setup: fix `CURLRES_IPV6` condition |
| |
| Move the definition of `CURLRES_IPV6` to before undefining |
| `HAVE_GETADDRINFO`. Regression from commit 67a08dca27a which caused |
| some tests to fail and others to be skipped with c-ares. |
| |
| Fixes https://github.com/curl/curl/issues/4673 |
| Closes https://github.com/curl/curl/pull/4677 |
| |
| Daniel Stenberg (5 Dec 2019) |
| - test342: make it return a 304 as the tag matches |
| |
| Peter Wu (4 Dec 2019) |
| - CMake: add support for building with the NSS vtls backend |
| |
| Options are cross-checked with configure.ac and acinclude.m4. |
| Tested on Arch Linux, untested on other platforms like Windows or macOS. |
| |
| Closes #4663 |
| Reviewed-by: Kamil Dudka |
| |
| Daniel Stenberg (4 Dec 2019) |
| - azure: add more builds |
| |
| ... removed two from travis (that now runs on azure instead) |
| |
| Closes #4671 |
| |
| - CURLOPT_VERBOSE.3: see also ERRORBUFFER |
| |
| - hostip4.c: bump copyright year range |
| |
| Marcel Raad (3 Dec 2019) |
| - configure: enable IPv6 support without `getaddrinfo` |
| |
| This makes it possible to recognize and connect to literal IPv6 |
| addresses when `getaddrinfo` is not available, which is already the |
| case for the CMake build. This affects e.g. classic MinGW because it |
| still targets Windows 2000 by default, where `getaddrinfo` is not |
| available, but general IPv6 support is. |
| |
| Instead of checking for `getaddrinfo`, check for `sockaddr_in6` as the |
| CMake build does. |
| |
| Closes https://github.com/curl/curl/pull/4662 |
| |
| - curl_setup: disable IPv6 resolver without `getaddrinfo` |
| |
| Also, use `CURLRES_IPV6` only for actual DNS resolution, not for IPv6 |
| address support. This makes it possible to connect to IPv6 literals by |
| setting `ENABLE_IPV6` even without `getaddrinfo` support. It also fixes |
| the CMake build when using the synchronous resolver without |
| `getaddrinfo` support. |
| |
| Closes https://github.com/curl/curl/pull/4662 |
| |
| Daniel Stenberg (3 Dec 2019) |
| - github action/azure pipeline: run 'make test-nonflaky' for tests |
| |
| To match travis and give more info on failures. |
| |
| - openssl: CURLSSLOPT_NO_PARTIALCHAIN can disable partial cert chains |
| |
| Closes #4655 |
| |
| - openssl: set X509_V_FLAG_PARTIAL_CHAIN |
| |
| Have intermediate certificates in the trust store be treated as |
| trust-anchors, in the same way as self-signed root CA certificates |
| are. This allows users to verify servers using the intermediate cert |
| only, instead of needing the whole chain. |
| |
| Other TLS backends already accept partial chains. |
| |
| Reported-by: Jeffrey Walton |
| Bug: https://curl.haxx.se/mail/lib-2019-11/0094.html |
| |
| - curl: show better error message when no homedir is found |
| |
| Reported-by: Vlastimil Ovčáčík |
| Fixes #4644 |
| Closes #4665 |
| |
| - OPENSOCKETFUNCTION.3: correct the purpose description |
| |
| Reported-by: Jeff Mears |
| Bug: https://curl.haxx.se/mail/lib-2019-12/0007.html |
| |
| Closes #4667 |
| |
| - [Peter Wu brought this change] |
| |
| travis: do not use OVERRIDE_CC or OVERRIDE_CXX if empty |
| |
| Fixes the macOS builds where OVERRIDE_CC and OVERRIDE_CXX are not set. |
| |
| Reported-by: Jay Satiro |
| Fixes #4659 |
| Closes #4661 |
| Closes #4664 |
| |
| - azure-pipelines: fix the test script |
| |
| - Azure Pipelines: initial CI setup |
| |
| [skip ci] |
| |
| - docs: add "added: 7.68.0" to the --etag-* docs |
| |
| - copyright: fix the year ranges for two files |
| |
| Follow-up to 9c1806ae |
| |
| Jay Satiro (1 Dec 2019) |
| - build: Disable Visual Studio warning "conditional expression is constant" |
| |
| - Disable warning C4127 "conditional expression is constant" globally |
| in curl_setup.h for when building with Microsoft's compiler. |
| |
| This mainly affects building with the Visual Studio project files found |
| in the projects dir. |
| |
| Prior to this change the cmake and winbuild build systems already |
| disabled 4127 globally for when building with Microsoft's compiler. |
| Also, 4127 was already disabled for all build systems in the limited |
| circumstance of the WHILE_FALSE macro which disabled the warning |
| specifically for while(0). This commit removes the WHILE_FALSE macro and |
| all other cruft in favor of disabling globally in curl_setup. |
| |
| Background: |
| |
| We have various macros that cause 0 or 1 to be evaluated, which would |
| cause warning C4127 in Visual Studio. For example this causes it: |
| |
| #define Curl_resolver_asynch() 1 |
| |
| Full behavior is not clearly defined and inconsistent across versions. |
| However it is documented that since VS 2015 Update 3 Microsoft has |
| addressed this somewhat but not entirely, not warning on while(true) for |
| example. |
| |
| Prior to this change some C4127 warnings occurred when I built with |
| Visual Studio using the generated projects in the projects dir. |
| |
| Closes https://github.com/curl/curl/pull/4658 |
| |
| - openssl: retrieve reported LibreSSL version at runtime |
| |
| - Retrieve LibreSSL runtime version when supported (>= 2.7.1). |
| |
| For earlier versions we continue to use the compile-time version. |
| |
| Ref: https://man.openbsd.org/OPENSSL_VERSION_NUMBER.3 |
| |
| Closes https://github.com/curl/curl/pull/2425 |
| |
| - strerror: Add Curl_winapi_strerror for Win API specific errors |
| |
| - In all code call Curl_winapi_strerror instead of Curl_strerror when |
| the error code is known to be from Windows GetLastError. |
| |
| Curl_strerror prefers CRT error codes (errno) over Windows API error |
| codes (GetLastError) when the two overlap. When we know the error code |
| is from GetLastError it is more accurate to prefer the Windows API error |
| messages. |
| |
| Reported-by: Richard Alcock |
| |
| Fixes https://github.com/curl/curl/issues/4550 |
| Closes https://github.com/curl/curl/pull/4581 |
| |
| Daniel Stenberg (2 Dec 2019) |
| - global_init: undo the "intialized" bump in case of failure |
| |
| ... so that failures in the global init function don't count as a |
| working init and it can then be called again. |
| |
| Reported-by: Paul Groke |
| Fixes #4636 |
| Closes #4653 |
| |
| - parsedate: offer a getdate_capped() alternative |
| |
| ... and use internally. This function will return TIME_T_MAX instead of |
| failure if the parsed data is found to be larger than what can be |
| represented. TIME_T_MAX being the largest value curl can represent. |
| |
| Reviewed-by: Daniel Gustafsson |
| Reported-by: JanB on github |
| Fixes #4152 |
| Closes #4651 |
| |
| - docs: add more references to curl_multi_poll |
| |
| Fixes #4643 |
| Closes #4652 |
| |
| - sha256: bump the copyright year range |
| |
| Follow-up from 66e21520f |
| |
| Daniel Gustafsson (28 Nov 2019) |
| - curl_setup_once: consistently use WHILE_FALSE in macros |
| |
| The WHILE_FALSE construction is used to avoid compiler warnings in |
| macro constructions. This fixes a few instances where it was not |
| used in order to keep the code consistent. |
| |
| Closes #4649 |
| Reviewed-by: Daniel Stenberg <[email protected]> |
| |
| Daniel Stenberg (28 Nov 2019) |
| - [Steve Holme brought this change] |
| |
| http_ntlm: Remove duplicate NSS initialisation |
| |
| Given that this is performed by the NTLM code there is no need to |
| perform the initialisation in the HTTP layer. This also keeps the |
| initialisation the same as the SASL based protocols and also fixes a |
| possible compilation issue if both NSS and SSPI were to be used as |
| multiple SSL backends. |
| |
| Reviewed-by: Kamil Dudka |
| Closes #3935 |
| |
| Daniel Gustafsson (28 Nov 2019) |
| - checksrc: fix regexp for ASSIGNWITHINCONDITION |
| |
| The regexp looking for assignments within conditions was too greedy |
| and matched a too long string in the case of multiple conditionals |
| on the same line. This is basically only a problem in single line |
| macros, and the code which exemplified this was essentially: |
| |
| do { if((x) != NULL) { x = NULL; } } while(0) |
| |
| ..where the final parenthesis of while(0) matched the regexp, and |
| the legal assignment in the block triggered the warning. Fix by |
| making the regexp less greedy by matching for the tell-tale signs |
| of the if statement ending. |
| |
| Also remove the one occurrence where the warning was disabled due |
| to a construction like the above, where the warning didn't apply |
| when fixed. |
| |
| Closes #4647 |
| Reviewed-by: Daniel Stenberg <[email protected]> |
| |
| Daniel Stenberg (28 Nov 2019) |
| - RELEASE-NOTES: synced |
| |
| - [Maros Priputen brought this change] |
| |
| curl: two new command line options for etags |
| |
| --etag-compare and --etag-save |
| |
| Suggested-by: Paul Hoffman |
| Fixes #4277 |
| Closes #4543 |
| |
| Daniel Gustafsson (28 Nov 2019) |
| - docs: fix typos |
| |
| Daniel Stenberg (28 Nov 2019) |
| - mailmap: Niall O'Reilly's name |
| |
| - [Niall O'Reilly brought this change] |
| |
| doh: use dedicated probe slots |
| |
| ... to easier allow additional DNS transactions. |
| |
| Closes #4629 |
| |
| - travis: build ngtcp2 with --enable-lib-only |
| |
| ... makes it skip the examples and other stuff we don't neeed. |
| |
| Closes #4646 |
| |
| - [David Benjamin brought this change] |
| |
| ngtcp2: fix thread-safety bug in error-handling |
| |
| ERR_error_string(NULL) should never be called. It places the error in a |
| global buffer, which is not thread-safe. Use ERR_error_string_n with a |
| local buffer instead. |
| |
| Closes #4645 |
| |
| - travis: export the CC/CXX variables when set |
| |
| Suggested-by: Peter Wu |
| Fixes #4637 |
| Closes #4640 |
| |
| Marcel Raad (26 Nov 2019) |
| - dist: add error-codes.pl |
| |
| Follow-up to commit 74f441c6d31. |
| This should fix test 1175 when run via the daily source tarballs. |
| |
| Closes https://github.com/curl/curl/pull/4638 |
| |
| Daniel Stenberg (26 Nov 2019) |
| - [John Schroeder brought this change] |
| |
| curl: fix --upload-file . hangs if delay in STDIN |
| |
| Attempt to unpause a busy read in the CURLOPT_XFERINFOFUNCTION. |
| |
| When uploading from stdin in non-blocking mode, a delay in reading |
| the stream (EAGAIN) causes curl to pause sending data |
| (CURL_READFUNC_PAUSE). Prior to this change, a busy read was |
| detected and unpaused only in the CURLOPT_WRITEFUNCTION handler. |
| This change performs the same busy read handling in a |
| CURLOPT_XFERINFOFUNCTION handler. |
| |
| Fixes #2051 |
| Closes #4599 |
| Reported-by: bdry on github |
| |
| - [John Schroeder brought this change] |
| |
| XFERINFOFUNCTION: support CURL_PROGRESSFUNC_CONTINUE |
| |
| (also for PROGRESSFUNCTION) |
| |
| By returning this value from the callback, the internal progress |
| function call is still called afterward. |
| |
| Closes #4599 |
| |
| - [Michael Forney brought this change] |
| |
| TLS: add BearSSL vtls implementation |
| |
| Closes #4597 |
| |
| - curl_multi_wakeup.3: add example and AVAILABILITY |
| |
| Reviewed-by: Gergely Nagy |
| Closes #4635 |
| |
| - [Gergely Nagy brought this change] |
| |
| multi: add curl_multi_wakeup() |
| |
| This commit adds curl_multi_wakeup() which was previously in the TODO |
| list under the curl_multi_unblock name. |
| |
| On some platforms and with some configurations this feature might not be |
| available or can fail, in these cases a new error code |
| (CURLM_WAKEUP_FAILURE) is returned from curl_multi_wakeup(). |
| |
| Fixes #4418 |
| Closes #4608 |
| |
| Jay Satiro (24 Nov 2019) |
| - [Xiaoyin Liu brought this change] |
| |
| schannel: fix --tls-max for when min is --tlsv1 or default |
| |
| Prior to this change schannel ignored --tls-max (CURL_SSLVERSION_MAX_ |
| macros) when --tlsv1 (CURL_SSLVERSION_TLSv1) or default TLS |
| (CURL_SSLVERSION_DEFAULT), using a max of TLS 1.2 always. |
| |
| Closes https://github.com/curl/curl/pull/4633 |
| |
| - checksrc.bat: Add a check for vquic and vssh directories |
| |
| Ref: https://github.com/curl/curl/pull/4607 |
| |
| - projects: Fix Visual Studio projects SSH builds |
| |
| - Generate VQUIC and VSSH filenames in Visual Studio project files. |
| |
| Prior to this change generated Visual Studio project configurations that |
| enabled SSH did not build properly. Broken since SSH files were moved to |
| lib/vssh 3 months ago in 5b2d703. |
| |
| Fixes https://github.com/curl/curl/issues/4492 |
| Fixes https://github.com/curl/curl/issues/4630 |
| Closes https://github.com/curl/curl/pull/4607 |
| |
| Daniel Stenberg (23 Nov 2019) |
| - RELEASE-NOTES: synced |
| |
| Jay Satiro (22 Nov 2019) |
| - openssl: Revert to less sensitivity for SYSCALL errors |
| |
| - Disable the extra sensitivity except in debug builds (--enable-debug). |
| |
| - Improve SYSCALL error message logic in ossl_send and ossl_recv so that |
| "No error" / "Success" socket error text isn't shown on SYSCALL error. |
| |
| Prior to this change 0ab38f5 (precedes 7.67.0) increased the sensitivity |
| of OpenSSL's SSL_ERROR_SYSCALL error so that abrupt server closures were |
| also considered errors. For example, a server that does not send a known |
| protocol termination point (eg HTTP content length or chunked encoding) |
| _and_ does not send a TLS termination point (close_notify alert) would |
| cause an error if it closed the connection. |
| |
| To be clear that behavior made it into release build 7.67.0 |
| unintentionally. Several users have reported it as an issue. |
| |
| Ultimately the idea is a good one, since it can help prevent against a |
| truncation attack. Other SSL backends may already behave similarly (such |
| as Windows native OS SSL Schannel). However much more of our user base |
| is using OpenSSL and there is a mass of legacy users in that space, so I |
| think that behavior should be partially reverted and then rolled out |
| slowly. |
| |
| This commit changes the behavior so that the increased sensitivity is |
| disabled in all curl builds except curl debug builds (DEBUGBUILD). If |
| after a period of time there are no major issues then it can be enabled |
| in dev and release builds with the newest OpenSSL (1.1.1+), since users |
| using the newest OpenSSL are the least likely to have legacy problems. |
| |
| Bug: https://github.com/curl/curl/issues/4409#issuecomment-555955794 |
| Reported-by: Bjoern Franke |
| |
| Fixes https://github.com/curl/curl/issues/4624 |
| Closes https://github.com/curl/curl/pull/4623 |
| |
| - [Daniel Stenberg brought this change] |
| |
| openssl: improve error message for SYSCALL during connect |
| |
| Reported-by: Paulo Roberto Tomasi |
| Bug: https://curl.haxx.se/mail/archive-2019-11/0005.html |
| |
| Closes https://github.com/curl/curl/pull/4593 |
| |
| Daniel Stenberg (22 Nov 2019) |
| - test1175: verify symbols-in-versions and libcurl-errors.3 in sync |
| |
| Closes #4628 |
| |
| - include: make CURLE_HTTP3 use a new error code |
| |
| To avoid potential issues with error code reuse. |
| |
| Reported-by: Christoph M. Becker |
| Assisted-by: Dan Fandrich |
| Fixes #4601 |
| Closes #4627 |
| |
| - bump: next release will be 7.68.0 |
| |
| - curl: add --parallel-immediate |
| |
| Starting with this change when doing parallel transfers, without this |
| option set, curl will prefer to create new transfers multiplexed on an |
| existing connection rather than creating a brand new one. |
| |
| --parallel-immediate can be set to tell curl to prefer to use new |
| connections rather than to wait and try to multiplex. |
| |
| libcurl-wise, this means that curl will set CURLOPT_PIPEWAIT by default |
| on parallel transfers. |
| |
| Suggested-by: Tom van der Woerdt |
| Closes #4500 |
| |
| Daniel Gustafsson (20 Nov 2019) |
| - [Victor Magierski brought this change] |
| |
| docs: fix typos |
| |
| Change 'experiemental' to 'experimental'. |
| |
| Closes #4618 |
| Reviewed-by: Daniel Gustafsson <[email protected]> |
| |
| Jay Satiro (18 Nov 2019) |
| - projects: Fix Visual Studio wolfSSL configurations |
| |
| - s/USE_CYASSL/USE_WOLFSSL/ |
| |
| - Remove old compatibility macros. |
| |
| Follow-up to 1c6c59a from several months ago when CyaSSL named symbols |
| were renamed to wolfSSL. The wolfSSL library was formerly named CyaSSL |
| and we kept using their old name for compatibility reasons, until |
| earlier this year. |
| |
| Daniel Stenberg (18 Nov 2019) |
| - RELEASE-NOTES: synced |
| |
| - [Javier Blazquez brought this change] |
| |
| ngtcp2: use overflow buffer for extra HTTP/3 data |
| |
| Fixes #4525 |
| Closes #4603 |
| |
| - altsvc: bump to h3-24 |
| |
| ... as both ngtcp2 and quiche now support that in their master branches |
| |
| Closes #4604 |
| |
| - ngtcp2: free used resources on disconnect |
| |
| Fixes #4614 |
| Closes #4615 |
| |
| - ngtcp2: handle key updates as ngtcp2 master branch tells us |
| |
| Reviewed-by: Tatsuhiro Tsujikawa |
| |
| Fixes #4612 |
| Closes #4613 |
| |
| Jay Satiro (17 Nov 2019) |
| - [Gergely Nagy brought this change] |
| |
| multi: Fix curl_multi_poll wait when extra_fds && !extra_nfds |
| |
| Prior to this change: |
| |
| The check if an extra wait is necessary was based not on the |
| number of extra fds but on the pointer. |
| |
| If a non-null pointer was given in extra_fds, but extra_nfds |
| was zero, then the wait was skipped even though poll was not |
| called. |
| |
| Closes https://github.com/curl/curl/pull/4610 |
| |
| - lib: Move lib/ssh.h -> lib/vssh/ssh.h |
| |
| Follow-up to 5b2d703 which moved ssh source files to vssh. |
| |
| Closes https://github.com/curl/curl/pull/4609 |
| |
| Daniel Stenberg (16 Nov 2019) |
| - [Andreas Falkenhahn brought this change] |
| |
| INSTALL.md: provide Android build instructions |
| |
| Closes #4606 |
| |
| - [Niall O'Reilly brought this change] |
| |
| doh: improced both encoding and decoding |
| |
| Improved estimation of expected_len and updated related comments; |
| increased strictness of QNAME-encoding, adding error detection for empty |
| labels and names longer than the overall limit; avoided treating DNAME |
| as unexpected; |
| |
| updated unit test 1655 with more thorough set of proofs and tests |
| |
| Closes #4598 |
| |
| - ngtcp2: increase QUIC window size when data is consumed |
| |
| Assisted-by: Javier Blazquez |
| Ref #4525 (partial fix) |
| Closes #4600 |
| |
| - [Melissa Mears brought this change] |
| |
| config-win32: cpu-machine-OS for Windows on ARM |
| |
| Define the OS macro properly for Windows on ARM builds. Also, we might |
| as well add the GCC-style IA-64 macro. |
| |
| Closes #4590 |
| |
| - examples: add multi-poll.c |
| |
| Show how curl_multi_poll() makes it even easier to use the multi |
| interface. |
| |
| Closes #4596 |
| |
| - multi_poll: avoid busy-loop when called without easy handles attached |
| |
| Fixes #4594 |
| Closes #4595 |
| Reported-by: 3dyd on github |
| |
| - curl: fix -T globbing |
| |
| Regression from e59371a4936f8 (7.67.0) |
| |
| Added test 490, 491 and 492 to verify the functionality. |
| |
| Reported-by: Kamil Dudka |
| Reported-by: Anderson Sasaki |
| |
| Fixes #4588 |
| Closes #4591 |
| |
| - HISTORY: added cmake, HTTP/3 and parallel downloads with curl |
| |
| - quiche: reject headers in the wrong order |
| |
| Pseudo header MUST come before regular headers or cause an error. |
| |
| Reported-by: Cynthia Coan |
| Fixes #4571 |
| Closes #4584 |
| |
| - openssl: prevent recursive function calls from ctx callbacks |
| |
| Follow the pattern of many other callbacks. |
| |
| Ref: #4546 |
| Closes #4585 |
| |
| - CURL-DISABLE: initial docs for the CURL_DISABLE_* defines |
| |
| The disable-scan script used in test 1165 is extended to also verify |
| that the docs cover all used defines and all defines offered by |
| configure. |
| |
| Reported-by: SLDiggie on github |
| Fixes #4545 |
| Closes #4587 |
| |
| - remove_handle: clear expire timers after multi_done() |
| |
| Since 59041f0, a new timer might be set in multi_done() so the clearing |
| of the timers need to happen afterwards! |
| |
| Reported-by: Max Kellermann |
| Fixes #4575 |
| Closes #4583 |
| |
| Marcel Raad (10 Nov 2019) |
| - test1558: use double slash after file: |
| |
| Classic MinGW / MSYS 1 doesn't support `MSYS2_ARG_CONV_EXCL`, so this |
| test unnecessarily failed when using `file:/` instead of `file:///`. |
| |
| Closes https://github.com/curl/curl/pull/4554 |
| |
| Daniel Stenberg (10 Nov 2019) |
| - pause: avoid updating socket if done was already called |
| |
| ... avoids unnecesary recursive risk when the transfer is already done. |
| |
| Reported-by: Richard Bowker |
| Fixes #4563 |
| Closes #4574 |
| |
| Jay Satiro (9 Nov 2019) |
| - strerror: Fix an error looking up some Windows error strings |
| |
| - Use FORMAT_MESSAGE_IGNORE_INSERTS to ignore format specifiers in |
| Windows error strings. |
| |
| Since we are not in control of the error code we don't know what |
| information may be needed by the error string's format specifiers. |
| |
| Prior to this change Windows API error strings which contain specifiers |
| (think specifiers like similar to printf specifiers) would not be shown. |
| The FormatMessage Windows API call which turns a Windows error code into |
| a string could fail and set error ERROR_INVALID_PARAMETER if that error |
| string contained a format specifier. FormatMessage expects a va_list for |
| the specifiers, unless inserts are ignored in which case no substitution |
| is attempted. |
| |
| Ref: https://devblogs.microsoft.com/oldnewthing/20071128-00/?p=24353 |
| |
| - [r-a-sattarov brought this change] |
| |
| system.h: fix for MCST lcc compiler |
| |
| Fixed build by MCST lcc compiler on MCST Elbrus 2000 architecture and do |
| some code cleanup. |
| |
| e2k (Elbrus 2000) - this is VLIW/EPIC architecture, like Intel Itanium |
| architecture. |
| |
| Ref: https://en.wikipedia.org/wiki/Elbrus_2000 |
| |
| Closes https://github.com/curl/curl/pull/4576 |
| |
| Daniel Stenberg (8 Nov 2019) |
| - TODO: curl_multi_unblock |
| |
| Closes #4418 |
| |
| - TODO: Run web-platform-tests url tests |
| |
| Closes #4477 |
| |
| - TODO: 1.4 alt-svc sharing |
| |
| Closes #4476 |
| |
| - test1560: require IPv6 for IPv6 aware URL parsing |
| |
| The URL parser function can't reject a bad IPv6 address properly when |
| curl was built without IPv6 support. |
| |
| Reported-by: Marcel Raad |
| Fixes #4556 |
| Closes #4572 |
| |
| - checksrc: repair the copyrightyear check |
| |
| - Consider a modified file to be committed this year. |
| |
| - Make the travis CHECKSRC also do COPYRIGHTYEAR scan in examples and |
| includes |
| |
| - Ignore 0 parents when getting latest commit date of file. |
| |
| since in the CI we're dealing with a truncated repo of last 50 commits, |
| the file's most recent commit may not be available. when this happens |
| git log and rev-list show the initial commit (ie first commit not to be |
| truncated) but that's incorrect so ignore it. |
| |
| Ref: https://github.com/curl/curl/pull/4547 |
| |
| Closes https://github.com/curl/curl/pull/4549 |
| |
| Co-authored-by: Jay Satiro |
| |
| - copyrights: fix copyright year range |
| |
| .. because checksrc's copyright year check stopped working. |
| |
| Ref: https://github.com/curl/curl/pull/4547 |
| |
| Closes https://github.com/curl/curl/pull/4549 |
| |
| - RELEASE-NOTES: synced |
| |
| - curlver: bump to 7.67.1 |
| |
| - mailmap: fixup Massimiliano Fantuzzi |
| |
| - scripts/contributors: make committers get included too |
| |
| in addition to authors |
| |
| Jay Satiro (8 Nov 2019) |
| - [Massimiliano Fantuzzi brought this change] |
| |
| configure: fix typo in help text |
| |
| Closes https://github.com/curl/curl/pull/4570 |
| |
| Daniel Stenberg (7 Nov 2019) |
| - [Christian Schmitz brought this change] |
| |
| ntlm: USE_WIN32_CRYPTO check removed to get USE_NTLM2SESSION set |
| |
| Closes #3704 |
| |
| Jay Satiro (6 Nov 2019) |
| - [Wyatt O'Day brought this change] |
| |
| build: fix for CURL_DISABLE_DOH |
| |
| Fixes https://github.com/curl/curl/issues/4565 |
| Closes https://github.com/curl/curl/pull/4566 |
| |
| - [Leonardo Taccari brought this change] |
| |
| configure: avoid unportable `==' test(1) operator |
| |
| Closes https://github.com/curl/curl/pull/4567 |
| |
| Version 7.67.0 (5 Nov 2019) |
| |
| Daniel Stenberg (5 Nov 2019) |
| - RELEASE-NOTES: synced |
| |
| The 7.67.0 release |
| |
| - THANKS: add new names from 7.67.0 |
| |
| - configure: only say ipv6 enabled when the variable is set |
| |
| Previously it could say "IPv6: enabled" at the end of the configure run |
| but the define wasn't set because of a missing getaddrinfo(). |
| |
| Reported-by: Marcel Raad |
| Fixes #4555 |
| Closes #4560 |
| |
| Marcel Raad (2 Nov 2019) |
| - certs/Server-localhost-lastSAN-sv: regenerate with sha256 |
| |
| All other certificates were regenerated in commit ba782baac30, but |
| this one was missed. |
| Fixes test3001 on modern systems. |
| |
| Closes https://github.com/curl/curl/pull/4551 |
| |
| Daniel Stenberg (2 Nov 2019) |
| - [Vilhelm Prytz brought this change] |
| |
| copyrights: update all copyright notices to 2019 on files changed this year |
| |
| Closes #4547 |
| |
| - [Bastien Bouclet brought this change] |
| |
| mbedtls: add error message for cert validity starting in the future |
| |
| Closes #4552 |
| |
| Jay Satiro (1 Nov 2019) |
| - schannel_verify: Fix concurrent openings of CA file |
| |
| - Open the CA file using FILE_SHARE_READ mode so that others can read |
| from it as well. |
| |
| Prior to this change our schannel code opened the CA file without |
| sharing which meant concurrent openings (eg an attempt from another |
| thread or process) would fail during the time it was open without |
| sharing, which in curl's case would cause error: |
| "schannel: failed to open CA file". |
| |
| Bug: https://curl.haxx.se/mail/lib-2019-10/0104.html |
| Reported-by: Richard Alcock |
| |
| Daniel Stenberg (31 Oct 2019) |
| - gtls: make gnutls_bye() not wait for response on shutdown |
| |
| ... as it can make it wait there for a long time for no good purpose. |
| |
| Patched-by: Jay Satiro |
| Reported-by: Bylon2 on github |
| Adviced-by: Nikos Mavrogiannopoulos |
| |
| Fixes #4487 |
| Closes #4541 |
| |
| - [Michał Janiszewski brought this change] |
| |
| appveyor: publish artifacts on appveyor |
| |
| This allows obtaining upstream builds of curl directly from appveyor for |
| all the available configurations |
| |
| Closes #4509 |
| |
| - url: make Curl_close() NULLify the pointer too |
| |
| This is the common pattern used in the code and by a unified approach we |
| avoid mistakes. |
| |
| Closes #4534 |
| |
| - [Trivikram Kamat brought this change] |
| |
| INSTALL: add missing space for configure commands |
| |
| Closes #4539 |
| |
| - url: Curl_free_request_state() should also free doh handles |
| |
| ... or risk DoH memory leaks. |
| |
| Reported-by: Paul Dreik |
| Fixes #4463 |
| Closes #4527 |
| |
| - examples: remove the "this exact code has not been verified" |
| |
| ... as really confuses the reader to not know what to believe! |
| |
| - [Trivikram Kamat brought this change] |
| |
| HTTP3: fix typo somehere1 > somewhere1 |
| |
| Closes #4535 |
| |
| Jay Satiro (28 Oct 2019) |
| - [Javier Blazquez brought this change] |
| |
| HTTP3: fix invalid use of sendto for connected UDP socket |
| |
| On macOS/BSD, trying to call sendto on a connected UDP socket fails |
| with a EISCONN error. Because the singleipconnect has already called |
| connect on the socket when we're trying to use it for QUIC transfers |
| we need to use plain send instead. |
| |
| Fixes #4529 |
| Closes https://github.com/curl/curl/pull/4533 |
| |
| Daniel Stenberg (28 Oct 2019) |
| - RELEASE-NOTES: synced |
| |
| - [Javier Blazquez brought this change] |
| |
| HTTP3: fix Windows build |
| |
| The ngtcp2 QUIC backend was using the MSG_DONTWAIT flag for send/recv |
| in order to perform nonblocking operations. On Windows this flag does |
| not exist. Instead, the socket must be set to nonblocking mode via |
| ioctlsocket. |
| |
| This change sets the nonblocking flag on UDP sockets used for QUIC on |
| all platforms so the use of MSG_DONTWAIT is not needed. |
| |
| Fixes #4531 |
| Closes #4532 |
| |
| Marcel Raad (27 Oct 2019) |
| - appveyor: add --disable-proxy autotools build |
| |
| This would have caught issue #3926. |
| |
| Also make formatting more consistent. |
| |
| Closes https://github.com/curl/curl/pull/4526 |
| |
| Daniel Stenberg (25 Oct 2019) |
| - appveyor: make winbuilds with DEBUG=no/yes and VS 2015/2017 |
| |
| ... and invoke "curl -V" once done |
| |
| Co-Authored-By: Jay Satiro |
| |
| Closes #4523 |
| |
| - [Francois Rivard brought this change] |
| |
| schannel: reverse the order of certinfo insertions |
| |
| Fixes #4518 |
| Closes #4519 |
| |
| Marcel Raad (24 Oct 2019) |
| - test1591: fix spelling of http feature |
| |
| The test never got run because the feature name is `http` in lowercase. |
| |
| Closes https://github.com/curl/curl/pull/4520 |
| |
| Daniel Stenberg (23 Oct 2019) |
| - [Michał Janiszewski brought this change] |
| |
| appveyor: Use two parallel compilation on appveyor with CMake |
| |
| Appveyor provides 2 CPUs for each builder[1], make sure to use parallel |
| compilation, when running with CMake. CMake learned this new option in |
| version 3.12[2] and the version provided by appveyor is fresh enough. |
| |
| Curl doesn't really take that long to build and it is using the slowest |
| builder available, msbuild, so expect only a moderate improvement in |
| build times. |
| |
| [1] https://www.appveyor.com/docs/build-environment/ |
| [2] https://cmake.org/cmake/help/v3.12/release/3.12.html |
| |
| Closes #4508 |
| |
| - conn-reuse: requests wanting NTLM can reuse non-NTLM connections |
| |
| Added test case 338 to verify. |
| |
| Reported-by: Daniel Silverstone |
| Fixes #4499 |
| Closes #4514 |
| |
| Marcel Raad (23 Oct 2019) |
| - tests: add missing proxy features |
| |
| Daniel Stenberg (22 Oct 2019) |
| - RELEASE-NOTES: synced |
| |
| Marcel Raad (21 Oct 2019) |
| - tests: use %FILE_PWD for file:// URLs |
| |
| This way, we always have exactly one slash after the host name, making |
| the tests pass when curl is compiled with the MSYS GCC. |
| |
| Closes https://github.com/curl/curl/pull/4512 |
| |
| - tests: add `connect to non-listen` keywords |
| |
| These tests try to connect to ports nothing is listening on. |
| |
| Closes https://github.com/curl/curl/pull/4511 |
| |
| - runtests: get textaware info from curl instead of perl |
| |
| The MSYS system on Windows can run the test suite for curl built with |
| any toolset. When built with the MSYS GCC, curl uses Unix line endings, |
| while it uses Windows line endings when built with the MinGW GCC, and |
| `^O` reports 'msys' in both cases. Use the curl executable itself to |
| determine the line endings instead, which reports 'x86_64-pc-msys' when |
| built with the MSYS GCC. |
| |
| Closes https://github.com/curl/curl/pull/4506 |
| |
| Daniel Stenberg (20 Oct 2019) |
| - [Michał Janiszewski brought this change] |
| |
| appveyor: Add MSVC ARM64 build |
| |
| Closes #4507 |
| |
| - http2_recv: a closed stream trumps pause state |
| |
| ... and thus should return 0, not EAGAIN. |
| |
| Reported-by: Tom van der Woerdt |
| Fixes #4496 |
| Closes #4505 |
| |
| - http2: expire a timeout at end of stream |
| |
| To make sure that transfer is being dealt with. Streams without |
| Content-Length need a final read to notice the end-of-stream state. |
| |
| Reported-by: Tom van der Woerdt |
| Fixes #4496 |
| |
| Dan Fandrich (18 Oct 2019) |
| - travis: Add an ARM64 build |
| |
| Test 323 is failing for some reason, so disable it there for now. |
| |
| Marcel Raad (18 Oct 2019) |
| - examples/sslbackend: fix -Wchar-subscripts warning |
| |
| With the `isdigit` implementation that comes with MSYS2, the argument |
| is used as an array subscript, resulting in a -Wchar-subscripts |
| warning. `isdigit`'s behavior is undefined if the argument is negative |
| and not EOF [0]. As done in lib/curl_ctype.h, cast the `char` variable |
| to `unsigned char` to avoid that. |
| |
| [0] https://en.cppreference.com/w/c/string/byte/isdigit |
| |
| Closes https://github.com/curl/curl/pull/4503 |
| |
| Daniel Stenberg (18 Oct 2019) |
| - configure: remove all cyassl references |
| |
| In particular, this removes the case where configure would find an old |
| cyall installation rather than a wolfssl one if present. The library is |
| named wolfssl in modern days so there's no real need to keep support for |
| the former. |
| |
| Reported-by: Jacob Barthelmeh |
| Closes #4502 |
| |
| Marcel Raad (17 Oct 2019) |
| - test1162: disable MSYS2's POSIX path conversion |
| |
| This avoids MSYS2 converting the backslasb in the URL to a slash, |
| causing the test to fail. |
| |
| Daniel Stenberg (17 Oct 2019) |
| - RELEASE-NOTES: synced |
| |
| Jay Satiro (16 Oct 2019) |
| - CURLOPT_TIMEOUT.3: Clarify transfer timeout time includes queue time |
| |
| Prior to this change some users did not understand that the "request" |
| starts when the handle is added to the multi handle, or probably they |
| did not understand that some of those transfers may be queued and that |
| time is included in timeout. |
| |
| Reported-by: Jeroen Ooms |
| |
| Fixes https://github.com/curl/curl/issues/4486 |
| Closes https://github.com/curl/curl/pull/4489 |
| |
| - [Stian Soiland-Reyes brought this change] |
| |
| tool_operate: Fix retry sleep time shown to user when Retry-After |
| |
| - If server header Retry-After is being used for retry sleep time then |
| show that value to the user instead of the normal retry sleep time. |
| |
| This is a follow-up to 640b973 (7.66.0) which changed curl tool so that |
| the value from Retry-After header overrides other retry timing options. |
| |
| Closes https://github.com/curl/curl/pull/4498 |
| |
| Daniel Stenberg (16 Oct 2019) |
| - url: normalize CURLINFO_EFFECTIVE_URL |
| |
| The URL extracted with CURLINFO_EFFECTIVE_URL was returned as given as |
| input in most cases, which made it not get a scheme prefixed like before |
| if the URL was given without one, and it didn't remove dotdot sequences |
| etc. |
| |
| Added test case 1907 to verify that this now works as intended and as |
| before 7.62.0. |
| |
| Regression introduced in 7.62.0 |
| |
| Reported-by: Christophe Dervieux |
| Fixes #4491 |
| Closes #4493 |
| |
| Marcel Raad (16 Oct 2019) |
| - tests: line ending fixes for Windows |
| |
| Mark some files as text. |
| |
| Closes https://github.com/curl/curl/pull/4490 |
| |
| - tests: use proxy feature |
| |
| This makes the tests succeed when using --disable-proxy. |
| |
| Closes https://github.com/curl/curl/pull/4488 |
| |
| - smbserver: fix Python 3 compatibility |
| |
| Python 2's `ConfigParser` module is spelled `configparser` in Python 3. |
| |
| Closes https://github.com/curl/curl/pull/4484 |
| |
| - security: silence conversion warning |
| |
| With MinGW-w64, `curl_socket_t` is is a 32 or 64 bit unsigned integer, |
| while `read` expects a 32 bit signed integer. |
| Use `sread` instead of `read` to use the correct parameter type. |
| |
| Closes https://github.com/curl/curl/pull/4483 |
| |
| - connect: silence sign-compare warning |
| |
| With MinGW-w64 using WinSock, `curl_socklen_t` is signed, while the |
| result of `sizeof` is unsigned. |
| |
| Closes https://github.com/curl/curl/pull/4483 |
| |
| Daniel Stenberg (13 Oct 2019) |
| - TODO: Handle growing SFTP files |
| |
| Closes #4344 |
| |
| - KNOWN_BUGS: remove "CURLFORM_CONTENTLEN in an array" |
| |
| The curl_formadd() function is deprecated and shouldn't be used so the |
| real fix for applications is to switch to the curl_mime_* API. |
| |
| - KNOWN_BUGS: "LDAP on Windows does authentication wrong" |
| |
| Closes #3116 |
| |
| - appveyor: add a winbuild that uses VS2017 |
| |
| Closes #4482 |
| |
| - [Harry Sintonen brought this change] |
| |
| socketpair: fix include and define for older TCP header systems |
| |
| fixed build for systems that need netinet/in.h for IPPROTO_TCP and are |
| missing INADDR_LOOPBACK |
| |
| Closes #4480 |
| |
| - socketpair: fix double-close in error case |
| |
| Follow-up to bc2dbef0afc08 |
| |
| - gskit: use the generic Curl_socketpair |
| |
| - asyn-thread: make use of Curl_socketpair() where available |
| |
| - socketpair: an implemention for Windows and more |
| |
| Curl_socketpair() is designed to be used and work everywhere if there's |
| no native version or the native version isn't good enough. |
| |
| Closes #4466 |
| |
| - RELEASE-NOTES: synced |
| |
| - connect: return CURLE_OPERATION_TIMEDOUT for errno == ETIMEDOUT |
| |
| Previosly all connect() failures would return CURLE_COULDNT_CONNECT, no |
| matter what errno said. |
| |
| This makes for example --retry work on these transfer failures. |
| |
| Reported-by: Nathaniel J. Smith |
| Fixes #4461 |
| Clsoes #4462 |
| |
| - cirrus: switch off blackhole status on the freebsd CI machines |
| |
| - tests: use port 2 instead of 60000 for a safer non-listening port |
| |
| ... when the tests want "connection refused". |
| |
| - KNOWN_BUGS: IDN tests failing on Windows |
| |
| Closes #3747 |
| |
| Dan Fandrich (9 Oct 2019) |
| - cirrus: Increase the git clone depth. |
| |
| If more commits are submitted to master between the time of triggering |
| the first Cirrus build and the time the final build gets started, the |
| desired commit is no longer at HEAD and the build will error out. |
| [skip ci] |
| |
| Daniel Stenberg (9 Oct 2019) |
| - docs: make sure the --no-progress-meter docs file is in dist too |
| |
| - docs: document it as --no-progress-meter instead of the reverse |
| |
| Follow-up to 93373a960c3bb4 |
| |
| Reported-by: infinnovation-dev on github |
| Fixes #4474 |
| Closes #4475 |
| |
| Dan Fandrich (9 Oct 2019) |
| - cirrus: Switch the FreeBSD 11.x build to 11.3 and add a 13.0 build. |
| |
| Also, select the images using image_family to get the latest snapshots |
| automatically. |
| [skip ci] |
| |
| Daniel Stenberg (8 Oct 2019) |
| - curl: --no-progress-meter |
| |
| New option that allows a user to ONLY switch off curl's progress meter |
| and leave everything else in "talkative" mode. |
| |
| Reported-by: Piotr Komborski |
| Fixes #4422 |
| Closes #4470 |
| |
| - TODO: Consult %APPDATA% also for .netrc |
| |
| Closes #4016 |
| |
| - CURLOPT_TIMEOUT.3: remove the mention of "minutes" |
| |
| ... just say that limiting operations risk aborting otherwise fine |
| working transfers. If that means seconds, minutes or hours, we leave to |
| the user. |
| |
| Reported-by: Martin Gartner |
| Closes #4469 |
| |
| - [Andrei Valeriu BICA brought this change] |
| |
| docs: added multi-event.c example |
| |
| Similar to multi-uv.c but using libevent 2. This is a simpler libevent |
| integration example then hiperfifo.c. |
| |
| Closes #4471 |
| |
| Jay Satiro (5 Oct 2019) |
| - [Nicolas brought this change] |
| |
| ldap: fix OOM error on missing query string |
| |
| - Allow missing queries, don't return NO_MEMORY error in such a case. |
| |
| It is acceptable for there to be no specified query string, for example: |
| |
| curl ldap://ldap.forumsys.com |
| |
| A regression bug in 1b443a7 caused this issue. |
| |
| This is a partial fix for #4261. |
| |
| Bug: https://github.com/curl/curl/issues/4261#issuecomment-525543077 |
| Reported-by: [email protected] |
| Analyzed-by: Samuel Surtees |
| |
| Closes https://github.com/curl/curl/pull/4467 |
| |
| - [Paul B. Omta brought this change] |
| |
| build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines |
| |
| Closes https://github.com/curl/curl/pull/4460 |
| |
| Daniel Stenberg (5 Oct 2019) |
| - RELEASE-NOTES: synced |
| |
| - [Stian Soiland-Reyes brought this change] |
| |
| curl: ensure HTTP 429 triggers --retry |
| |
| This completes #3794. |
| |
| Also make sure the new tests from #4195 are enabled |
| |
| Closes #4465 |
| |
| Marcel Raad (4 Oct 2019) |
| - [apique brought this change] |
| |
| winbuild: add ENABLE_UNICODE option |
| |
| Fixes https://github.com/curl/curl/issues/4308 |
| Closes https://github.com/curl/curl/pull/4309 |
| |
| Daniel Stenberg (4 Oct 2019) |
| - ngtcp2: adapt to API change |
| |
| Closes #4457 |
| |
| - cookies: change argument type for Curl_flush_cookies |
| |
| The second argument is really a 'bool' so use that and pass in TRUE/FALSE |
| to make it clear. |
| |
| Closes #4455 |
| |
| - http2: move state-init from creation to pre-transfer |
| |
| To make sure that the HTTP/2 state is initialized correctly for |
| duplicated handles. It would otherwise easily generate "spurious" |
| PRIORITY frames to get sent over HTTP/2 connections when duplicated easy |
| handles were used. |
| |
| Reported-by: Daniel Silverstone |
| Fixes #4303 |
| Closes #4442 |
| |
| - urlapi: fix use-after-free bug |
| |
| Follow-up from 2c20109a9b5d04 |
| |
| Added test 663 to verify. |
| |
| Reported by OSS-Fuzz |
| Bug: https://crbug.com/oss-fuzz/17954 |
| |
| Closes #4453 |
| |
| - [Paul Dreik brought this change] |
| |
| cookie: avoid harmless use after free |
| |
| This fix removes a use after free which can be triggered by |
| the internal cookie fuzzer, but otherwise is probably |
| impossible to trigger from an ordinary application. |
| |
| The following program reproduces it: |
| |
| curl_global_init(CURL_GLOBAL_DEFAULT); |
| CURL* handle=curl_easy_init(); |
| CookieInfo* info=Curl_cookie_init(handle,NULL,NULL,false); |
| curl_easy_setopt(handle, CURLOPT_COOKIEJAR, "/dev/null"); |
| Curl_flush_cookies(handle, true); |
| Curl_cookie_cleanup(info); |
| curl_easy_cleanup(handle); |
| curl_global_cleanup(); |
| |
| This was found through fuzzing. |
| |
| Closes #4454 |
| |
| - [Denis Chaplygin brought this change] |
| |
| docs: add note on failed handles not being counted by curl_multi_perform |
| |
| Closes #4446 |
| |
| - CURLMOPT_MAX_CONCURRENT_STREAMS.3: fix SEE ALSO typo |
| |
| - [Niall O'Reilly brought this change] |
| |
| ESNI: initial build/setup |
| |
| Closes #4011 |
| |
| - RELEASE-NOTES: synced |
| |
| - redirect: when following redirects to an absolute URL, URL encode it |
| |
| ... to make it handle for example (RFC violating) embeded spaces. |
| |
| Reported-by: momala454 on github |
| Fixes #4445 |
| Closes #4447 |
| |
| - urlapi: fix URL encoding when setting a full URL |
| |
| - tool_operate: rename functions to make more sense |
| |
| - curl: create easy handles on-demand and not ahead of time |
| |
| This should again enable crazy-large download ranges of the style |
| [1-10000000] that otherwise easily ran out of memory starting in 7.66.0 |
| when this new handle allocating scheme was introduced. |
| |
| Reported-by: Peter Sumatra |
| Fixes #4393 |
| Closes #4438 |
| |
| - [Kunal Ekawde brought this change] |
| |
| CURLMOPT_MAX_CONCURRENT_STREAMS: new setopt |
| |
| Closes #4410 |
| |
| - chunked-encoding: stop hiding the CURLE_BAD_CONTENT_ENCODING error |
| |
| Unknown content-encoding would get returned as CURLE_WRITE_ERROR if the |
| response is chunked-encoded. |
| |
| Reported-by: Ilya Kosarev |
| Fixes #4310 |
| Closes #4449 |
| |
| Marcel Raad (1 Oct 2019) |
| - checksrc: fix uninitialized variable warning |
| |
| The loop doesn't need to be executed without a file argument. |
| |
| Closes https://github.com/curl/curl/pull/4444 |
| |
| - urlapi: fix unused variable warning |
| |
| `dest` is only used with `ENABLE_IPV6`. |
| |
| Closes https://github.com/curl/curl/pull/4444 |
| |
| - lib: silence conversion warnings |
| |
| Closes https://github.com/curl/curl/pull/4444 |
| |
| - AppVeyor: add 32-bit MinGW-w64 build |
| |
| With WinSSL and testing enabled so that it would have detected most of |
| the warnings fixed in [0] and [1]. |
| |
| [0] https://github.com/curl/curl/pull/4398 |
| [1] https://github.com/curl/curl/pull/4415 |
| |
| Closes https://github.com/curl/curl/pull/4433 |
| |
| - AppVeyor: remove MSYS2_ARG_CONV_EXCL for winbuild |
| |
| It's only used for MSYS2 with MinGW. |
| |
| Closes |
| |
| Daniel Stenberg (30 Sep 2019) |
| - [Emil Engler brought this change] |
| |
| git: add tests/server/disabled to .gitignore |
| |
| Closes #4441 |
| |
| - altsvc: accept quoted ma and persist values |
| |
| As mandated by the spec. Test 1654 is extended to verify. |
| |
| Closes #4443 |
| |
| - mailmap: a Lucas fix |
| |
| Alessandro Ghedini (29 Sep 2019) |
| - [Lucas Pardue brought this change] |
| |
| quiche: update HTTP/3 config creation to new API |
| |
| Daniel Stenberg (29 Sep 2019) |
| - BINDINGS: PureBasic, Net::Curl for perl and Nim |
| |
| - BINDINGS: Kapito is an Erlang library, basically a binding |
| |
| - BINDINGS: added clj-curl |
| |
| Reported-by: Lucas Severo |
| |
| - [Jay Satiro brought this change] |
| |
| docs: disambiguate CURLUPART_HOST is for host name (ie no port) |
| |
| Closes #4424 |
| |
| - cookies: using a share with cookies shouldn't enable the cookie engine |
| |
| The 'share object' only sets the storage area for cookies. The "cookie |
| engine" still needs to be enabled or activated using the normal cookie |
| options. |
| |
| This caused the curl command line tool to accidentally use cookies |
| without having been told to, since curl switched to using shared cookies |
| in 7.66.0. |
| |
| Test 1166 verifies |
| |
| Updated test 506 |
| |
| Fixes #4429 |
| Closes #4434 |
| |
| - setopt: handle ALTSVC set to NULL |
| |
| - RELEASE-NOTES: synced |
| |
| - [grdowns brought this change] |
| |
| INSTALL: add vcpkg installation instructions |
| |
| Closes #4435 |
| |
| - [Zenju brought this change] |
| |
| FTP: add test for FTPFILE_NOCWD: Avoid redundant CWDs |
| |
| Add libtest 661 |
| |
| Closes #4417 |
| |
| - [Zenju brought this change] |
| |
| FTP: url-decode path before evaluation |
| |
| Closes #4428 |
| |
| Marcel Raad (27 Sep 2019) |
| - tests: fix narrowing conversion warnings |
| |
| `timediff_t` is 64 bits wide also on 32-bit systems since |
| commit b1616dad8f0. |
| |
| Closes https://github.com/curl/curl/pull/4415 |
| |
| Jay Satiro (27 Sep 2019) |
| - [julian brought this change] |
| |
| vtls: Fix comment typo about macosx-version-min compiler flag |
| |
| Closes https://github.com/curl/curl/pull/4425 |
| |
| Daniel Stenberg (26 Sep 2019) |
| - [Yechiel Kalmenson brought this change] |
| |
| README: minor grammar fix |
| |
| Closes #4431 |
| |
| - [Spezifant brought this change] |
| |
| HTTP3: fix prefix parameter for ngtcp2 build |
| |
| Closes #4430 |
| |
| - quiche: don't close connection at end of stream! |
| |
| - quiche: set 'drain' when returning without having drained the queues |
| |
| - Revert "FTP: url-decode path before evaluation" |
| |
| This reverts commit 2f036a72d543e96128bd75cb0fedd88815fd42e2. |
| |
| - HTTP3: merged and simplified the two 'running' sections |
| |
| - HTTP3: show an --alt-svc using example too |
| |
| - [Zenju brought this change] |
| |
| FTP: url-decode path before evaluation |
| |
| Closes #4423 |
| |
| - openssl: use strerror on SSL_ERROR_SYSCALL |
| |
| Instead of showing the somewhat nonsensical errno number, use strerror() |
| to provide a more relatable error message. |
| |
| Closes #4411 |
| |
| - HTTP3: update quic.aiortc.org + add link to server list |
| |
| Reported-by: Jeremy Lainé |
| |
| Jay Satiro (26 Sep 2019) |
| - url: don't set appconnect time for non-ssl/non-ssh connections |
| |
| Prior to this change non-ssl/non-ssh connections that were reused set |
| TIMER_APPCONNECT [1]. Arguably that was incorrect since no SSL/SSH |
| handshake took place. |
| |
| [1]: TIMER_APPCONNECT is publicly known as CURLINFO_APPCONNECT_TIME in |
| libcurl and %{time_appconnect} in the curl tool. It is documented as |
| "the time until the SSL/SSH handshake is completed". |
| |
| Reported-by: Marcel Hernandez |
| |
| Ref: https://github.com/curl/curl/issues/3760 |
| |
| Closes https://github.com/curl/curl/pull/3773 |
| |
| Daniel Stenberg (25 Sep 2019) |
| - ngtcp2: remove fprintf() calls |
| |
| - convert some of them to H3BUF() calls to infof() |
| - remove some of them completely |
| - made DEBUG_HTTP3 defined only if CURLDEBUG is set for now |
| |
| Closes #4421 |
| |
| - [Jay Satiro brought this change] |
| |
| url: fix the NULL hostname compiler warning case |
| |
| Closes #4403 |
| |
| - [Jay Satiro brought this change] |
| |
| travis: move the go install to linux-only |
| |
| ... to repair the build again |
| Closes #4403 |
| |
| - altsvc: correct the #ifdef for the ngtcp2 backend |
| |
| - altsvc: save h3 as h3-23 |
| |
| Follow-up to d176a2c7e5 |
| |
| - urlapi: question mark within fragment is still fragment |
| |
| The parser would check for a query part before fragment, which caused it |
| to do wrong when the fragment contains a question mark. |
| |
| Extended test 1560 to verify. |
| |
| Reported-by: Alex Konev |
| Fixes #4412 |
| Closes #4413 |
| |
| - [Alex Samorukov brought this change] |
| |
| HTTP3.md: move -p for mkdir, remove -j for make |
| |
| - mkdir on OSX/Darwin requires `-p` argument before dir |
| |
| - portabbly figuring out number of cores is an exercise for somewhere |
| else |
| |
| Closes #4407 |
| |
| Patrick Monnerat (24 Sep 2019) |
| - os400: getpeername() and getsockname() return ebcdic AF_UNIX sockaddr, |
| |
| As libcurl now uses these 2 system functions, wrappers are needed on os400 |
| to convert returned AF_UNIX sockaddrs to ascii. |
| |
| This is a follow-up to commit 7fb54ef. |
| See also #4037. |
| Closes #4214 |
| |
| Jay Satiro (24 Sep 2019) |
| - [Lucas Pardue brought this change] |
| |
| strcase: fix raw lowercasing the letter X |
| |
| Casing mistake in Curl_raw_tolower 'X' wasn't lowercased as 'x' prior to |
| this change. |
| |
| Follow-up to 0023fce which added the function several days ago. |
| |
| Ref: https://github.com/curl/curl/pull/4401#discussion_r327396546 |
| |
| Closes https://github.com/curl/curl/pull/4408 |
| |
| Daniel Stenberg (23 Sep 2019) |
| - http2: Expression 'stream->stream_id != - 1' is always true |
| |
| PVS-Studio warning |
| Fixes #4402 |
| |
| - http2: A value is being subtracted from the unsigned variable |
| |
| PVS-Studio warning |
| Fixes #4402 |
| |
| - libssh: part of conditional expression is always true: !result |
| |
| PVS-Studio warning |
| Fixed #4402 |
| |
| - libssh: part of conditional expression is always true |
| |
| PVS-Studio warning |
| Fixes #4402 |
| |
| - libssh: The expression is excessive or contains a misprint |
| |
| PVS-Studio warning |
| Fixes #4402 |
| |
| - quiche: The expression must be surrounded by parentheses |
| |
| PVS-Studio warning |
| Fixes #4402 |
| |
| - vauth: The parameter 'status' must be surrounded by parentheses |
| |
| PVS-Studio warning |
| Fixes #4402 |
| |
| - [Paul Dreik brought this change] |
| |
| doh: allow only http and https in debug mode |
| |
| Otherwise curl may be told to use for instance pop3 to |
| communicate with the doh server, which most likely |
| is not what you want. |
| |
| Found through fuzzing. |
| |
| Closes #4406 |
| |
| - [Paul Dreik brought this change] |
| |
| doh: return early if there is no time left |
| |
| Closes #4406 |
| |
| - [Barry Pollard brought this change] |
| |
| http: lowercase headernames for HTTP/2 and HTTP/3 |
| |
| Closes #4401 |
| Fixes #4400 |
| |
| Marcel Raad (23 Sep 2019) |
| - vtls: fix narrowing conversion warnings |
| |
| Curl_timeleft returns `timediff_t`, which is 64 bits wide also on |
| 32-bit systems since commit b1616dad8f0. |
| |
| Closes https://github.com/curl/curl/pull/4398 |
| |
| Daniel Stenberg (23 Sep 2019) |
| - [Joel Depooter brought this change] |
| |
| winbuild: Add manifest to curl.exe for proper OS version detection |
| |
| This is a small fix to commit ebd213270a017a6830928ee2e1f4a9cabc799898 |
| in pull request #1221. That commit added the CURL_EMBED_MANIFEST flag to |
| CURL_RC_FLAGS. However, later in the file CURL_RC_FLAGS is |
| overwritten. The fix is to append values to CURL_RC_FLAGS instead of |
| overwriting |
| |
| Closes #4399 |
| |
| - RELEASE-NOTES: synced |
| |
| Marcel Raad (22 Sep 2019) |
| - openssl: fix compiler warning with LibreSSL |
| |
| It was already fixed for BoringSSL in commit a0f8fccb1e0. |
| LibreSSL has had the second argument to SSL_CTX_set_min_proto_version |
| as uint16_t ever since the function was added in [0]. |
| |
| [0] https://github.com/libressl-portable/openbsd/commit/56f107201baefb5533486d665a58d8f57fd3aeda |
| |
| Closes https://github.com/curl/curl/pull/4397 |
| |
| Daniel Stenberg (22 Sep 2019) |
| - curl: exit the create_transfers loop on errors |
| |
| When looping around the ranges and given URLs to create transfers, all |
| errors should exit the loop and return. Previously it would keep |
| looping. |
| |
| Reported-by: SumatraPeter on github |
| Bug: #4393 |
| Closes #4396 |
| |
| Jay Satiro (21 Sep 2019) |
| - socks: Fix destination host shown on SOCKS5 error |
| |
| Prior to this change when a server returned a socks5 connect error then |
| curl would parse the destination address:port from that data and show it |
| to the user as the destination: |
| |
| curld -v --socks5 10.0.3.1:1080 http://google.com:99 |
| * SOCKS5 communication to google.com:99 |
| * SOCKS5 connect to IPv4 172.217.12.206 (locally resolved) |
| * Can't complete SOCKS5 connection to 253.127.0.0:26673. (1) |
| curl: (7) Can't complete SOCKS5 connection to 253.127.0.0:26673. (1) |
| |
| That's incorrect because the address:port included in the connect error |
| is actually a bind address:port (typically unused) and not the |
| destination address:port. This fix changes curl to show the destination |
| information that curl sent to the server instead: |
| |
| curld -v --socks5 10.0.3.1:1080 http://google.com:99 |
| * SOCKS5 communication to google.com:99 |
| * SOCKS5 connect to IPv4 172.217.7.14:99 (locally resolved) |
| * Can't complete SOCKS5 connection to 172.217.7.14:99. (1) |
| curl: (7) Can't complete SOCKS5 connection to 172.217.7.14:99. (1) |
| |
| curld -v --socks5-hostname 10.0.3.1:1080 http://google.com:99 |
| * SOCKS5 communication to google.com:99 |
| * SOCKS5 connect to google.com:99 (remotely resolved) |
| * Can't complete SOCKS5 connection to google.com:99. (1) |
| curl: (7) Can't complete SOCKS5 connection to google.com:99. (1) |
| |
| Ref: https://tools.ietf.org/html/rfc1928#section-6 |
| |
| Closes https://github.com/curl/curl/pull/4394 |
| |
| Daniel Stenberg (21 Sep 2019) |
| - travis: enable ngtcp2 h3-23 builds |
| |
| - altsvc: both backends run h3-23 now |
| |
| Closes #4395 |
| |
| - http: fix warning on conversion from int to bit |
| |
| Follow-up from 03ebe66d70 |
| |
| - urldata: use 'bool' for the bit type on MSVC compilers |
| |
| Closes #4387 |
| Fixes #4379 |
| |
| - appveyor: upgrade VS2017 to VS2019 |
| |
| Closes #4383 |
| |
| - [Zenju brought this change] |
| |
| FTP: FTPFILE_NOCWD: avoid redundant CWDs |
| |
| Closes #4382 |
| |
| - cookie: pass in the correct cookie amount to qsort() |
| |
| As the loop discards cookies without domain set. This bug would lead to |
| qsort() trying to sort uninitialized pointers. We have however not found |
| it a security problem. |
| |
| Reported-by: Paul Dreik |
| Closes #4386 |
| |
| - [Paul Dreik brought this change] |
| |
| urlapi: avoid index underflow for short ipv6 hostnames |
| |
| If the input hostname is "[", hlen will underflow to max of size_t when |
| it is subtracted with 2. |
| |
| hostname[hlen] will then cause a warning by ubsanitizer: |
| |
| runtime error: addition of unsigned offset to 0x<snip> overflowed to |
| 0x<snip> |
| |
| I think that in practice, the generated code will work, and the output |
| of hostname[hlen] will be the first character "[". |
| |
| This can be demonstrated by the following program (tested in both clang |
| and gcc, with -O3) |
| |
| int main() { |
| char* hostname=strdup("["); |
| size_t hlen = strlen(hostname); |
| |
| hlen-=2; |
| hostname++; |
| printf("character is %d\n",+hostname[hlen]); |
| free(hostname-1); |
| } |
| |
| I found this through fuzzing, and even if it seems harmless, the proper |
| thing is to return early with an error. |
| |
| Closes #4389 |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: compile with latest ngtcp2 + nghttp3 draft-23 |
| |
| Closes #4392 |
| |
| - THANKS-filter: deal with my typos 'Jat' => 'Jay' |
| |
| - travis: use go master |
| |
| ... as the boringssl builds needs a very recent version |
| |
| Co-authored-by: Jat Satiro |
| Closes #4361 |
| |
| - tool_operate: removed unused variable 'done' |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - tool_operate: Expression 'config->resume_from' is always true |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - tool_getparam: remove duplicate switch case |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - libssh2: part of conditional expression is always true: !result |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - urlapi: Expression 'storep' is always true |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - urlapi: 'scheme' is always true |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - urlapi: part of conditional expression is always true: (relurl[0] == '/') |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - setopt: store CURLOPT_RTSP_SERVER_CSEQ correctly |
| |
| Fixes bug detected by PVS-Studio |
| Fixes #4374 |
| |
| - mime: make Curl_mime_duppart() assert if called without valid dst |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - http_proxy: part of conditional expression is always true: !error |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - imap: merged two case-branches performing the same action |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - multi: value '2L' is assigned to a boolean |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - easy: part of conditional expression is always true: !result |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - netrc: part of conditional expression is always true: !done |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - version: Expression 'left > 1' is always true |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - url: remove dead code |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - url: part of expression is always true: (bundle->multiuse == 0) |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - ftp: the conditional expression is always true |
| |
| ... both !result and (ftp->transfer != FTPTRANSFER_BODY)! |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - ftp: Expression 'ftpc->wait_data_conn' is always false |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - ftp: Expression 'ftpc->wait_data_conn' is always true |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - ftp: part of conditional expression is always true: !result |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| |
| - http: fix Expression 'http->postdata' is always false |
| |
| Fixes warning detected by PVS-Studio |
| Fixes #4374 |
| Reported-by: Valerii Zapodovnikov |
| |
| - [Niall O'Reilly brought this change] |
| |
| doh: avoid truncating DNS QTYPE to lower octet |
| |
| Closes #4381 |
| |
| - [Jens Finkhaeuser brought this change] |
| |
| urlapi: CURLU_NO_AUTHORITY allows empty authority/host part |
| |
| CURLU_NO_AUTHORITY is intended for use with unknown schemes (i.e. not |
| "file:///") to override cURL's default demand that an authority exists. |
| |
| Closes #4349 |
| |
| - version: next release will be 7.67.0 |
| |
| - RELEASE-NOTES: synced |
| |
| - url: only reuse TLS connections with matching pinning |
| |
| If the requests have different CURLOPT_PINNEDPUBLICKEY strings set, the |
| connection should not be reused. |
| |
| Bug: https://curl.haxx.se/mail/lib-2019-09/0061.html |
| Reported-by: Sebastian Haglund |
| |
| Closes #4347 |
| |
| - README: add OSS-Fuzz badge [skip ci] |
| |
| Closes #4380 |
| |
| Michael Kaufmann (18 Sep 2019) |
| - http: merge two "case" statements |
| |
| Daniel Stenberg (18 Sep 2019) |
| - [Zenju brought this change] |
| |
| FTP: remove trailing slash from path for LIST/MLSD |
| |
| Closes #4348 |
| |
| - mime: when disabled, avoid C99 macro |
| |
| Closes #4368 |
| |
| - url: cleanup dangling DOH request headers too |
| |
| Follow-up to 9bc44ff64d9081 |
| |
| Credit to OSS-Fuzz |
| Bug: https://crbug.com/oss-fuzz/17269 |
| |
| Closes #4372 |
| |
| - [Christoph M. Becker brought this change] |
| |
| http2: relax verification of :authority in push promise requests |
| |
| If the :authority pseudo header field doesn't contain an explicit port, |
| we assume it is valid for the default port, instead of rejecting the |
| request for all ports. |
| |
| Ref: https://curl.haxx.se/mail/lib-2019-09/0041.html |
| |
| Closes #4365 |
| |
| - doh: clean up dangling DOH handles and memory on easy close |
| |
| If you set the same URL for target as for DoH (and it isn't a DoH |
| server), like "https://example.com" in both, the easy handles used for |
| the DoH requests could be left "dangling" and end up not getting freed. |
| |
| Reported-by: Paul Dreik |
| Closes #4366 |
| |
| - unit1655: make it C90 compliant |
| |
| Unclear why this was not detected in the CI. |
| |
| Follow-up to b7666027296a |
| |
| - smb: check for full size message before reading message details |
| |
| To avoid reading of uninitialized data. |
| |
| Assisted-by: Max Dymond |
| Bug: https://crbug.com/oss-fuzz/16907 |
| Closes #4363 |
| |
| - quiche: persist connection details |
| |
| ... like we do for other protocols at connect time. This makes "curl -I" |
| and other things work. |
| |
| Reported-by: George Liu |
| Fixes #4358 |
| Closes #4360 |
| |
| - openssl: fix warning with boringssl and SSL_CTX_set_min_proto_version |
| |
| Follow-up to ffe34b7b59 |
| Closes #4359 |
| |
| - [Paul Dreik brought this change] |
| |
| doh: fix undefined behaviour and open up for gcc and clang optimization |
| |
| The undefined behaviour is annoying when running fuzzing with |
| sanitizers. The codegen is the same, but the meaning is now not up for |
| dispute. See https://cppinsights.io/s/516a2ff4 |
| |
| By incrementing the pointer first, both gcc and clang recognize this as |
| a bswap and optimizes it to a single instruction. See |
| https://godbolt.org/z/994Zpx |
| |
| Closes #4350 |
| |
| - [Paul Dreik brought this change] |
| |
| doh: fix (harmless) buffer overrun |
| |
| Added unit test case 1655 to verify. |
| Close #4352 |
| |
| the code correctly finds the flaws in the old code, |
| if one temporarily restores doh.c to the old version. |
| |
| Alessandro Ghedini (15 Sep 2019) |
| - docs: remove trailing ':' from section names in CURLOPT_TRAILER* man |
| |
| - docs: fix typo in CURLOPT_HTTP_VERSION man |
| |
| GitHub (14 Sep 2019) |
| - [Daniel Stenberg brought this change] |
| |
| CI: inintial github action job |
| |
| First shot at a CI build on github actions |
| |
| Daniel Stenberg (13 Sep 2019) |
| - appveyor: add a winbuild |
| |
| Assisted-by: Marcel Raad |
| Assisted-by: Jay Satiro |
| |
| Closes #4324 |
| |
| - FTP: allow "rubbish" prepended to the SIZE response |
| |
| This is a protocol violation but apparently there are legacy proprietary |
| servers doing this. |
| |
| Added test 336 and 337 to verify. |
| |
| Reported-by: Philippe Marguinaud |
| Closes #4339 |
| |
| - [Zenju brought this change] |
| |
| FTP: skip CWD to entry dir when target is absolute |
| |
| Closes #4332 |
| |
| Kamil Dudka (13 Sep 2019) |
| - curl: fix memory leaked by parse_metalink() |
| |
| This commit fixes a regression introduced by curl-7_65_3-5-gb88940850. |
| Detected by tests 2005, 2008, 2009, 2010, 2011, and 2012 with valgrind |
| and libmetalink enabled. |
| |
| Closes #4326 |
| |
| Daniel Stenberg (13 Sep 2019) |
| - parsedate: still provide the name arrays when disabled |
| |
| If FILE or FTP are enabled, since they also use them! |
| |
| Reported-by: Roland Hieber |
| Fixes #4325 |
| Closes #4343 |
| |
| - [Gilles Vollant brought this change] |
| |
| curl:file2string: load large files much faster |
| |
| ... by using a more efficient realloc scheme. |
| |
| Bug: https://curl.haxx.se/mail/lib-2019-09/0045.html |
| Closes #4336 |
| |
| - openssl: close_notify on the FTP data connection doesn't mean closure |
| |
| For FTPS transfers, curl gets close_notify on the data connection |
| without that being a signal to close the control connection! |
| |
| Regression since 3f5da4e59a556fc (7.65.0) |
| |
| Reported-by: Zenju on github |
| Reviewed-by: Jay Satiro |
| Fixes #4329 |
| Closes #4340 |
| |
| - [Jimmy Gaussen brought this change] |
| |
| docs/HTTP3: fix `--with-ssl` ngtcp2 configure flag |
| |
| Closes #4338 |
| |
| - RELEASE-NOTES: synced |
| |
| - curlver: bump to 7.66.1 |
| |
| - [Zenju brought this change] |
| |
| setopt: make it easier to add new enum values |
| |
| ... by using the *_LAST define names better. |
| |
| Closes #4321 |
| |
| - asyn-thread: s/AF_LOCAL/AF_UNIX for Solaris |
| |
| Reported-by: Dagobert Michelsen |
| Fixes #4328 |
| Closes #4333 |
| |
| - [Bernhard Walle brought this change] |
| |
| winbuild/MakefileBuild.vc: Add vssh |
| |
| Without that modification, the Windows build using the makefiles doesn't |
| work. |
| |
| Signed-off-by: Bernhard Walle <[email protected]> |
| |
| Fixes #4322 |
| Closes #4323 |
| |
| Bernhard Walle (11 Sep 2019) |
| - winbuild/MakefileBuild.vc: Fix line endings |
| |
| The file had mixed line endings. |
| |
| Signed-off-by: Bernhard Walle <[email protected]> |
| |
| Jay Satiro (11 Sep 2019) |
| - ldap: Stop using wide char version of ldapp_err2string |
| |
| Despite ldapp_err2string being documented by MS as returning a |
| PCHAR (char *), when UNICODE it is mapped to ldap_err2stringW and |
| returns PWCHAR (wchar_t *). |
| |
| We have lots of code that expects ldap_err2string to return char *, |
| most of it failf used like this: |
| |
| failf(data, "LDAP local: Some error: %s", ldap_err2string(rc)); |
| |
| Closes https://github.com/curl/curl/pull/4272 |
| |
| Version 7.66.0 (10 Sep 2019) |
| |
| Daniel Stenberg (10 Sep 2019) |
| - RELEASE-NOTES: curl 7.66.0 |
| |
| - THANKS: from the 7.66.0 release |
| |
| - curl: make sure the parallel transfers do them all |
| |
| The logic could erroneously break the loop too early before all |
| transfers had been transferred. |
| |
| Reported-by: Tom van der Woerdt |
| Fixes #4316 |
| Closes #4317 |
| |
| - urlapi: one colon is enough for the strspn() input (typo) |
| |
| - urlapi: verify the IPv6 numerical address |
| |
| It needs to parse correctly. Otherwise it could be tricked into letting |
| through a-f using host names that libcurl would then resolve. Like |
| '[ab.be]'. |
| |
| Reported-by: Thomas Vegas |
| Closes #4315 |
| |
| - [Clément Notin brought this change] |
| |
| openssl: use SSL_CTX_set_<min|max>_proto_version() when available |
| |
| OpenSSL 1.1.0 adds SSL_CTX_set_<min|max>_proto_version() that we now use |
| when available. Existing code is preserved for older versions of |
| OpenSSL. |
| |
| Closes #4304 |
| |
| - [Clément Notin brought this change] |
| |
| openssl: indent, re-organize and add comments |
| |
| - [migueljcrum brought this change] |
| |
| sspi: fix memory leaks |
| |
| Closes #4299 |
| |
| - travis: disable ngtcp2 builds (again) |
| |
| - Curl_fillreadbuffer: avoid double-free trailer buf on error |
| |
| Reviewed-by: Jay Satiro |
| Reported-by: Thomas Vegas |
| |
| Closes #4307 |
| |
| - tool_setopt: handle a libcurl build without netrc support |
| |
| Reported-by: codesniffer13 on github |
| Fixes #4302 |
| Closes #4305 |
| |
| - security:read_data fix bad realloc() |
| |
| ... that could end up a double-free |
| |
| CVE-2019-5481 |
| Bug: https://curl.haxx.se/docs/CVE-2019-5481.html |
| |
| - [Thomas Vegas brought this change] |
| |
| tftp: Alloc maximum blksize, and use default unless OACK is received |
| |
| Fixes potential buffer overflow from 'recvfrom()', should the server |
| return an OACK without blksize. |
| |
| Bug: https://curl.haxx.se/docs/CVE-2019-5482.html |
| CVE-2019-5482 |
| |
| - [Thomas Vegas brought this change] |
| |
| tftp: return error when packet is too small for options |
| |
| - KNOWN_BUGS/TODO: cleanup and remove outdated issues |
| |
| - RELEASE-NOTES: synced |
| |
| - netrc: free 'home' on error |
| |
| Follow-up to f9c7ba9096ec2 |
| |
| Coverity CID 1453474 |
| |
| Closes #4291 |
| |
| - urldata: avoid 'generic', use dedicated pointers |
| |
| For the 'proto' union within the connectdata struct. |
| |
| Closes #4290 |
| |
| - cleanup: move functions out of url.c and make them static |
| |
| Closes #4289 |
| |
| - smtp: check for and bail out on too short EHLO response |
| |
| Otherwise, a three byte response would make the smtp_state_ehlo_resp() |
| function misbehave. |
| |
| Credit to OSS-Fuzz |
| Bug: https://crbug.com/oss-fuzz/16918 |
| |
| Assisted-by: Max Dymond |
| |
| Closes #4287 |
| |
| - smb: init *msg to NULL in smb_send_and_recv() |
| |
| ... it might otherwise return OK from this function leaving that pointer |
| uninitialized. |
| |
| Bug: https://crbug.com/oss-fuzz/16907 |
| |
| Closes #4286 |
| |
| - ROADMAP: updated after recent user poll |
| |
| In rough prio order |
| |
| - THANKS: remove duplicate |
| |
| - Curl_addr2string: take an addrlen argument too |
| |
| This allows the function to figure out if a unix domain socket has a |
| file name or not associated with it! When a socket is created with |
| socketpair(), as done in the fuzzer testing, the path struct member is |
| uninitialized and must not be accessed. |
| |
| Bug: https://crbug.com/oss-fuzz/16699 |
| |
| Closes #4283 |
| |
| - [Rolf Eike Beer brought this change] |
| |
| CMake: remove needless newlines at end of gss variables |
| |
| - [Rolf Eike Beer brought this change] |
| |
| CI: remove duplicate configure flag for LGTM.com |
| |
| - [Rolf Eike Beer brought this change] |
| |
| CMake: use platform dependent name for dlopen() library |
| |
| Closes #4279 |
| |
| - quiche: expire when poll returned data |
| |
| ... to make sure we continue draining the queue until empty |
| |
| Closes #4281 |
| |
| - quiche: decrease available buffer size, don't assign it! |
| |
| Found-by: Jeremy Lainé |
| |
| - RELEASE-NOTES: synced |
| |
| - [Kyohei Kadota brought this change] |
| |
| curl: fix include conditions |
| |
| - [Kyohei Kadota brought this change] |
| |
| plan9: fix installation instructions |
| |
| Closes #4276 |
| |
| - ngtcp2: on h3 stream close, call expire |
| |
| ... to trigger a new read to detect the stream close! |
| |
| Closes #4275 |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: build latest ngtcp2 and ngtcp2_crypto_openssl |
| |
| Closes #4278 |
| |
| - ngtcp2: set flow control window to stream buffer size |
| |
| Closes #4274 |
| |
| - [Christopher Head brought this change] |
| |
| CURLOPT_HEADERFUNCTION.3: clarify |
| |
| Closes #4273 |
| |
| - CURLINFO docs: mention that in redirects times are added |
| |
| Suggested-by: Brandon Dong |
| Fixes #4250 |
| Closes #4269 |
| |
| - travis: enable ngtcp2 builds again |
| |
| Switched to the openssl-quic-draft-22 openssl branch. |
| |
| Closes #4271 |
| |
| - HTTP3: switched openssl branch to use |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: Build with latest ngtcp2 and ngtcp2_crypto_openssl |
| |
| Closes #4270 |
| |
| - http2: when marked for closure and wanted to close == OK |
| |
| It could otherwise return an error even when closed correctly if GOAWAY |
| had been received previously. |
| |
| Reported-by: Tom van der Woerdt |
| Fixes #4267 |
| Closes #4268 |
| |
| - RELEASE-NOTES: synced |
| |
| - build-openssl: fix build with Visual Studio 2019 |
| |
| Reviewed-by: Marcel Raad |
| Contributed-by: osabc on github |
| Fixes #4188 |
| Closes #4266 |
| |
| Kamil Dudka (26 Aug 2019) |
| - vauth: return CURLE_AUTH_ERROR on gss_init_sec_context() failure |
| |
| This is a follow-up to https://github.com/curl/curl/pull/3864 . |
| |
| Closes #4224 |
| |
| Daniel Stenberg (26 Aug 2019) |
| - KNOWN_BUGS: USE_UNIX_SOCKETS on Windows |
| |
| Closes #4040 |
| |
| - quiche: send the HTTP body correctly on callback uploads |
| |
| Closes #4265 |
| |
| - travis: disable ngtcp2 builds (temporarily) |
| |
| Just too many API changes right now |
| |
| Closes #4264 |
| |
| - ngtcp2: add support for SSLKEYLOGFILE |
| |
| Closes #4260 |
| |
| - ngtcp2: improve h3 response receiving |
| |
| Closes #4259 |
| |
| - ngtcp2: use nghttp3_version() |
| |
| - ngtcp2: sync with upstream API changes |
| |
| Assisted-by: Tatsuhiro Tsujikawa |
| |
| - [Kyle Abramowitz brought this change] |
| |
| scp: fix directory name length used in memcpy |
| |
| Fix read off end of array due to bad pointer math in getworkingpath for |
| SCP home directory case. |
| |
| Closes #4258 |
| |
| - http: the 'closed' struct field is used by both ngh2 and ngh3 |
| |
| and remove 'header_recvbuf', not used for anything |
| |
| Reported-by: Jeremy Lainé |
| |
| Closes #4257 |
| |
| - ngtcp2: accept upload via callback |
| |
| Closes #4256 |
| |
| - defines: avoid underscore-prefixed defines |
| |
| Double-underscored or underscore plus uppercase letter at least. |
| |
| ... as they're claimed to be reserved. |
| |
| Reported-by: patnyb on github |
| |
| Fixes #4254 |
| Closes #4255 |
| |
| - travis: add a build using ngtcp2 + nghttp3 (and a patched OpenSSL) |
| |
| Runs no tests |
| |
| Closes #4253 |
| |
| - travis: bump to using nghttp2 version 1.39.2 |
| |
| Closes #4252 |
| |
| - [Gisle Vanem brought this change] |
| |
| docs/examples/curlx: fix errors |
| |
| Initialise 'mimetype' and require the -p12 arg. |
| |
| Closes #4248 |
| |
| - cleanup: remove DOT_CHAR completely |
| |
| Follow-up to f9c7ba9096ec |
| |
| The use of DOT_CHAR for ".ssh" was probably a mistake and is removed |
| now. |
| |
| Pointed-out-by: Gisle Vanem |
| Bug: https://github.com/curl/curl/pull/4230#issuecomment-522960638 |
| |
| Closes #4247 |
| |
| - spnego_sspi: add typecast to fix build warning |
| |
| Reported in build "Win32 target on Debian Stretch (64-bit) - |
| i686-w64-mingw32 - gcc-20170516" |
| |
| Closes #4245 |
| |
| - openssl: build warning free with boringssl |
| |
| Closes #4244 |
| |
| - curl: make --libcurl use CURL_HTTP_VERSION_3 |
| |
| Closes #4243 |
| |
| - ngtcp2: make postfields-set posts work |
| |
| Closes #4242 |
| |
| - http: remove chunked-encoding and expect header use for HTTP/3 |
| |
| - [Alessandro Ghedini brought this change] |
| |
| configure: use pkg-config to detect quiche |
| |
| This removes the need to hard-code the quiche target path in |
| configure.ac. |
| |
| This depends on https://github.com/cloudflare/quiche/pull/128 |
| |
| Closes #4237 |
| |
| - CURLOPT_SSL_VERIFYHOST: treat the value 1 as 2 |
| |
| For a long time (since 7.28.1) we've returned error when setting the |
| value to 1 to make applications notice that we stopped supported the old |
| behavior for 1. Starting now, we treat 1 and 2 exactly the same. |
| |
| Closes #4241 |
| |
| - curl: use .curlrc (with a dot) on Windows as well |
| |
| Fall-back to _curlrc if the dot-version is missing. |
| |
| Co-Authored-By: Steve Holme |
| |
| Closes #4230 |
| |
| - netrc: make the code try ".netrc" on Windows as well |
| |
| ... but fall back and try "_netrc" too if the dot version didn't work. |
| |
| Co-Authored-By: Steve Holme |
| |
| - ngtcp2: use ngtcp2_version() to get the run-time version |
| |
| ... which of course doesn't have to be the same used at build-time. |
| |
| Function just recently merged in ngtcp2. |
| |
| - ngtcp2: move the h3 initing to immediately after the rx key |
| |
| To fix a segfault and to better deal with 0-RTT |
| |
| Assisted-by: Tatsuhiro Tsujikawa |
| |
| - [Alessandro Ghedini brought this change] |
| |
| quiche: register debug callback once and earlier |
| |
| The quiche debug callback is global and can only be initialized once, so |
| make sure we don't do it multiple times (e.g. if multiple requests are |
| executed). |
| |
| In addition this initializes the callback before the connection is |
| created, so we get logs for the handshake as well. |
| |
| Closes #4236 |
| |
| - ssh: add a generic Curl_ssh_version function for SSH backends |
| |
| Closes #4235 |
| |
| - base64: check for SSH, not specific SSH backends |
| |
| - vssh: move ssh init/cleanup functions into backend code |
| |
| - vssh: create directory for SSH backend code |
| |
| - TODO/ROADMAP: remove "refuse downgrade redirects" and HTTP/3 |
| |
| HTTP3 is now already in full progress |
| |
| Downgrade redirects can be achived almost exactly like that by setting |
| CURLOPT_REDIR_PROTOCOLS. |
| |
| - RELEASE-NOTES: synced |
| |
| - travis: add a quiche build |
| |
| Closes #4207 |
| |
| - http: fix use of credentials from URL when using HTTP proxy |
| |
| When a username and password are provided in the URL, they were wrongly |
| removed from the stored URL so that subsequent uses of the same URL |
| wouldn't find the crendentials. This made doing HTTP auth with multiple |
| connections (like Digest) mishave. |
| |
| Regression from 46e164069d1a5230 (7.62.0) |
| |
| Test case 335 added to verify. |
| |
| Reported-by: Mike Crowe |
| |
| Fixes #4228 |
| Closes #4229 |
| |
| - [Mike Crowe brought this change] |
| |
| tests: Replace outdated test case numbering documentation |
| |
| Tests are no longer grouped by numeric range[1]. Let's stop saying that |
| and provide some alternative advice for numbering tests. |
| |
| [1] https://curl.haxx.se/mail/lib-2019-08/0043.html |
| |
| Closes #4227 |
| |
| - travis: reduce number of torture tests in 'coverage' |
| |
| ... to make it complete in time. This cut seems not almost not affect |
| the coverage percentage and yet completes within 35 minutes on travis |
| where the previous runs recently always timed out after 50. |
| |
| Closes #4223 |
| |
| - [Igor Makarov brought this change] |
| |
| configure: use -lquiche to link to quiche |
| |
| Closes #4226 |
| |
| - ngtcp2: provide the callbacks as a static struct |
| |
| ... instead of having them in quicsocket |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: add missing nghttp3_conn_add_write_offset call |
| |
| Closes #4225 |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: deal with stream close |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: Consume QUIC STREAM data properly |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: don't reinitialize SSL on Retry |
| |
| - multi: getsock improvements for QUIC connecting |
| |
| - connect: connections are persistent by default for HTTP/3 |
| |
| - quiche: happy eyeballs |
| |
| Closes #4220 |
| |
| - ngtcp2: do QUIC connections happy-eyeballs friendly |
| |
| - curl_version: bump string buffer size to 250 |
| |
| With HTTP/3 libs and plenty TLS libs, I manged to hit the limit (which |
| causes a truncated output). |
| |
| - CURLOPT_ALTSVC.3: use a "" file name to not load from a file |
| |
| Jay Satiro (14 Aug 2019) |
| - vauth: Use CURLE_AUTH_ERROR for auth function errors |
| |
| - Add new error code CURLE_AUTH_ERROR. |
| |
| Prior to this change auth function errors were signaled by |
| CURLE_OUT_OF_MEMORY and CURLE_RECV_ERROR, and neither one was |
| technically correct. |
| |
| Ref: https://github.com/curl/curl/pull/3848 |
| |
| Co-authored-by: Dominik Hölzl |
| |
| Closes https://github.com/curl/curl/pull/3864 |
| |
| Daniel Stenberg (13 Aug 2019) |
| - curl_version_info: make the quic_version a const |
| |
| Follow-up from 1a2df1518ad8653f |
| |
| Closes #4222 |
| |
| - examples: add http3.c, altsvc.c and http3-present.c |
| |
| Closes #4221 |
| |
| Peter Wu (13 Aug 2019) |
| - nss: use TLSv1.3 as default if supported |
| |
| SSL_VersionRangeGetDefault returns (TLSv1.0, TLSv1.2) as supported |
| range in NSS 3.45. It looks like the intention is to raise the minimum |
| version rather than lowering the maximum, so adjust accordingly. Note |
| that the caller (nss_setup_connect) initializes the version range to |
| (TLSv1.0, TLSv1.3), so there is no need to check for >= TLSv1.0 again. |
| |
| Closes #4187 |
| Reviewed-by: Daniel Stenberg |
| Reviewed-by: Kamil Dudka |
| |
| Daniel Stenberg (13 Aug 2019) |
| - quic.h: remove unused proto |
| |
| - curl_version_info.3: mentioned ALTSVC and HTTP3 |
| |
| ... and sorted the list alphabetically |
| |
| - lib/quic.c: unused - removed |
| |
| - CURLOPT_ALTSVC_CTRL.3: remove CURLALTSVC_ALTUSED |
| |
| Follow-up to 98c3f148 that removed it from the header file |
| |
| - [Junho Choi brought this change] |
| |
| docs/HTTP3: simplify quiche build instruction |
| |
| Use --recursive to get boringssl in one line |
| |
| Closes #4219 |
| |
| - altsvc: make it use h3-22 with ngtcp2 as well |
| |
| - ngtcp2: initial h3 request work |
| |
| Closes #4217 |
| |
| - curl_version_info: offer quic (and h3) library info |
| |
| Closes #4216 |
| |
| - HTTP3: use ngtcp2's draft-22 branch |
| |
| - RELEASE-NOTES: synced |
| |
| - CURLOPT_READFUNCTION.3: provide inline example |
| |
| ... instead of mentioning one in another place |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: send HTTP/3 request with nghttp3 |
| |
| This commit makes sending HTTP/3 request with nghttp3 work. It |
| minimally receives HTTP response and calls nghttp3 callbacks, but no |
| processing is made at the moment. |
| |
| Closes #4215 |
| |
| - nghttp3: initial h3 template code added |
| |
| - nghttp3: required when ngtcp2 is used for QUIC |
| |
| - checked for by configure |
| - updated docs/HTTP3.md |
| - shown in the version string |
| |
| Closes #4210 |
| |
| - [Eric Wong brought this change] |
| |
| asyn-thread: issue CURL_POLL_REMOVE before closing socket |
| |
| This avoids EBADF errors from EPOLL_CTL_DEL operations in the |
| ephiperfifo.c example. EBADF is dangerous in multi-threaded |
| applications where I rely on epoll_ctl to operate on the same |
| epoll description from different threads. |
| |
| Follow-up to eb9a604f8d7db8 |
| |
| Bug: https://curl.haxx.se/mail/lib-2019-08/0026.html |
| Closes #4211 |
| |
| - [Carlo Marcelo Arenas Belón brought this change] |
| |
| configure: avoid undefined check_for_ca_bundle |
| |
| instead of using a "greater than 0" test, check for variable being |
| set, as it is always set to 1, and could be left unset if non of |
| OPENSSL MBEDTLS GNUTLS WOLFSSL is being configured for. |
| |
| Closes #4213 |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: Send ALPN h3-22 |
| |
| Closes #4212 |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: use ngtcp2_settings_default and specify initial_ts |
| |
| - curl_global_init_mem.3: mention it was added in 7.12.0 |
| |
| - [Tatsuhiro Tsujikawa brought this change] |
| |
| ngtcp2: make the QUIC handshake work |
| |
| Closes #4209 |
| |
| - [Alex Mayorga brought this change] |
| |
| HTTP3.md: Update quiche build instructions |
| |
| Added cloning for quiche and BoringSSL and modified the build |
| instructions so they work on a clean folder. |
| |
| Closes #4208 |
| |
| - CURLOPT_H3: removed |
| |
| There's no use for this anymore and it was never in a release. |
| |
| Closes #4206 |
| |
| - http3: make connection reuse work |
| |
| Closes #4204 |
| |
| - quiche: add SSLKEYLOGFILE support |
| |
| - cleanup: s/curl_debug/curl_dbg_debug in comments and docs |
| |
| Leftovers from the function rename back in 76b63489495 |
| |
| Reported-by: Gisle Vanem |
| Bug: https://github.com/curl/curl/commit/f3e0f071b14fcb46a453f69bdf4e062bcaacf362#com |
| mitcomment-34601751 |
| |
| Closes #4203 |
| |
| - RELEASE-NOTES: synced |
| |
| - alt-svc: add protocol version selection masking |
| |
| So that users can mask in/out specific HTTP versions when Alt-Svc is |
| used. |
| |
| - Removed "h2c" and updated test case accordingly |
| - Changed how the altsvc struct is laid out |
| - Added ifdefs to make the unittest run even in a quiche-tree |
| |
| Closes #4201 |
| |
| - http3: fix the HTTP/3 in the request, make alt-svc set right versions |
| |
| Closes #4200 |
| |
| - alt-svc: send Alt-Used: in redirected requests |
| |
| RFC 7838 section 5: |
| |
| When using an alternative service, clients SHOULD include an Alt-Used |
| header field in all requests. |
| |
| Removed CURLALTSVC_ALTUSED again (feature is still EXPERIMENTAL thus |
| this is deemed ok). |
| |
| You can disable sending this header just like you disable any other HTTP |
| header in libcurl. |
| |
| Closes #4199 |
| |
| - CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directly |
| |
| Even though it cannot fall-back to a lower HTTP version automatically. The |
| safer way to upgrade remains via CURLOPT_ALTSVC. |
| |
| CURLOPT_H3 no longer has any bits that do anything and might be removed |
| before we remove the experimental label. |
| |
| Updated the curl tool accordingly to use "--http3". |
| |
| Closes #4197 |
| |
| - docs/ALTSVC: remove what works and the experimental explanation |
| |
| Also, put the TODO items at the bottom. |
| |
| Closes #4198 |
| |
| - docs/EXPERIMENTAL: explain what it means and what's experimental now |
| |
| - curl: make use of CURLINFO_RETRY_AFTER when retrying |
| |
| If a Retry-After: header was used in the response, that value overrides |
| other retry timing options. |
| |
| Fixes #3794 |
| Closes #4195 |
| |
| - curl: use CURLINFO_PROTOCOL to check for HTTP(s) |
| |
| ... instead of CURLINFO_EFFECTIVE_URL to avoid string operations. |
| |
| - CURLINFO_RETRY_AFTER: parse the Retry-After header value |
| |
| This is only the libcurl part that provides the information. There's no |
| user of the parsed value. This change includes three new tests for the |
| parser. |
| |
| Ref: #3794 |
| |
| - docs/ALTSVC.md: first basic file format description |
| |
| - curl: have -w's 'http_version' show '3' for HTTP/3 |
| |
| Closes #4196 |
| |
| - curl.h: add CURL_HTTP_VERSION_3 to the version enum |
| |
| It can't be set for CURLOPT_HTTP_VERSION, but it can be extracted with |
| CURLINFO_HTTP_VERSION. |
| |
| - quiche: make use of the connection timeout API properly |
| |
| - quiche: make POSTFIELDS posts work |
| |
| - quiche: improved error handling and memory cleanups |
| |
| - quiche: flush egress in h3_stream_recv() too |
| |
| - RELEASE-NOTES: synced |
| |
| Jay Satiro (6 Aug 2019) |
| - [Patrick Monnerat brought this change] |
| |
| os400: take care of CURLOPT_SASL_AUTHZID in curl_easy_setopt_ccsid(). |
| |
| Ref: https://github.com/curl/curl/issues/3653 |
| Ref: https://github.com/curl/curl/pull/3790 |
| |
| NOTE: This commit was cherry-picked and is part of a series of commits |
| that added the authzid feature for upcoming 7.66.0. The series was |
| temporarily reverted in db8ec1f so that it would not ship in a 7.65.x |
| patch release. |
| |
| Closes https://github.com/curl/curl/pull/4186 |
| |
| - tests: Fix the line endings for the SASL alt-auth tests |
| |
| - Change data and protocol sections to CRLF line endings. |
| |
| Prior to this change the tests would fail or hang, which is because |
| certain sections such as protocol require CRLF line endings. |
| |
| Follow-up to grandparent commit which added the tests. |
| |
| Ref: https://github.com/curl/curl/issues/3653 |
| Ref: https://github.com/curl/curl/pull/3790 |
| |
| NOTE: This commit was cherry-picked and is part of a series of commits |
| that added the authzid feature for upcoming 7.66.0. The series was |
| temporarily reverted in db8ec1f so that it would not ship in a 7.65.x |
| patch release. |
| |
| Closes https://github.com/curl/curl/pull/4186 |
| |
| - [Steve Holme brought this change] |
| |
| examples: Added SASL PLAIN authorisation identity (authzid) examples |
| |
| Ref: https://github.com/curl/curl/issues/3653 |
| Ref: https://github.com/curl/curl/pull/3790 |
| |
| NOTE: This commit was cherry-picked and is part of a series of commits |
| that added the authzid feature for upcoming 7.66.0. The series was |
| temporarily reverted in db8ec1f so that it would not ship in a 7.65.x |
| patch release. |
| |
| Closes https://github.com/curl/curl/pull/4186 |
| |
| - [Steve Holme brought this change] |
| |
| curl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool |
| |
| Ref: https://github.com/curl/curl/issues/3653 |
| Ref: https://github.com/curl/curl/pull/3790 |
| |
| NOTE: This commit was cherry-picked and is part of a series of commits |
| that added the authzid feature for upcoming 7.66.0. The series was |
| temporarily reverted in db8ec1f so that it would not ship in a 7.65.x |
| patch release. |
| |
| Closes https://github.com/curl/curl/pull/4186 |
| |
| - [Steve Holme brought this change] |
| |
| sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID |
| |
| Added the ability for the calling program to specify the authorisation |
| identity (authzid), the identity to act as, in addition to the |
| authentication identity (authcid) and password when using SASL PLAIN |
| authentication. |
| |
| Fixes #3653 |
| Closes #3790 |
| |
| NOTE: This commit was cherry-picked and is part of a series of commits |
| that added the authzid feature for upcoming 7.66.0. The series was |
| temporarily reverted in db8ec1f so that it would not ship in a 7.65.x |
| patch release. |
| |
| Closes https://github.com/curl/curl/pull/4186 |
| |
| Daniel Stenberg (6 Aug 2019) |
| - docs/HTTP3: refreshed as it is now in master and HTTP/3 can be tested |
| |
| - [Yiming Jing brought this change] |
| |
| mesalink: implement client authentication |
| |
| Closes #4184 |
| |
| - curl_multi_poll: a sister to curl_multi_wait() that waits more |
| |
| Repeatedly we see problems where using curl_multi_wait() is difficult or |
| just awkward because if it has no file descriptor to wait for |
| internally, it returns immediately and leaves it to the caller to wait |
| for a small amount of time in order to avoid occasional busy-looping. |
| |
| This is often missed or misunderstood, leading to underperforming |
| applications. |
| |
| This change introduces curl_multi_poll() as a replacement drop-in |
| function that accepts the exact same set of arguments. This function |
| works identically to curl_multi_wait() - EXCEPT - for the case when |
| there's nothing to wait for internally, as then this function will by |
| itself wait for a "suitable" short time before it returns. This |
| effectiely avoids all risks of busy-looping and should also make it less |
| likely that apps "over-wait". |
| |
| This also changes the curl tool to use this funtion internally when |
| doing parallel transfers and changes curl_easy_perform() to use it |
| internally. |
| |
| Closes #4163 |
| |
| - quiche:h3_stream_recv return 0 at end of stream |
| |
| ... and remove some verbose messages we don't need. Made transfers from |
| facebook.com work better. |
| |
| - altsvc: make quiche use h3-22 now |
| |
| - quiche: show the actual version number |
| |
| - quiche: first working HTTP/3 request |
| |
| - enable debug log |
| - fix use of quiche API |
| - use download buffer |
| - separate header/body |
| |
| Closes #4193 |
| |
| - http09: disable HTTP/0.9 by default in both tool and library |
| |
| As the plan has been laid out in DEPRECATED. Update docs accordingly and |
| verify in test 1174. Now requires the option to be set to allow HTTP/0.9 |
| responses. |
| |
| Closes #4191 |
| |
| - quiche: initial h3 request send/receive |
| |
| - lib/Makefile.am: make checksrc run in vquic too |
| |
| - altsvc: fix removal of expired cache entry |
| |
| Closes #4192 |
| |
| - RELEASE-NOTES: synced |
| |
| Steve Holme (4 Aug 2019) |
| - md4: Use our own MD4 implementation when no crypto libraries are available |
| |
| Closes #3780 |
| |
| - md4: No need to include Curl_md4.h for each TLS library |
| |
| - md4: No need for the NTLM code to call Curl_md4it() for each TLS library |
| |
| As the NTLM code no longer calls any of TLS libraries' specific MD4 |
| functions, there is no need to call this function for each #ifdef. |
| |
| - md4: Move the mbed TLS MD4 implementation out of the NTLM code |
| |
| - md4: Move the WinCrypt implementation out of the NTLM code |
| |
| - md4: Move the SecureTransport implementation out of the NTLM code |
| |
| - md4: Use the Curl_md4it() function for OpenSSL based NTLM |
| |
| - md4: Move the GNU TLS gcrypt MD4 implementation out of the NTLM code |
| |
| - md4: Move the GNU TLS Nettle MD4 implementation out of the NTLM code |
| |
| Jay Satiro (4 Aug 2019) |
| - OS400: Add CURLOPT_H3 symbols |
| |
| Follow-up to 3af0e76 which added experimental H3 support. |
| |
| Closes https://github.com/curl/curl/pull/4185 |
| |
| Daniel Stenberg (3 Aug 2019) |
| - url: make use of new HTTP version if alt-svc has one |
| |
| - url: set conn->transport to default TCP at init time |
| |
| - altsvc: with quiche, use the quiche h3 alpn string |
| |
| Closes #4183 |
| |
| - alt-svc: more liberal ALPN name parsing |
| |
| Allow pretty much anything to be part of the ALPN identifier. In |
| particular minus, which is used for "h3-20" (in-progress HTTP/3 |
| versions) etc. |
| |
| Updated test 356. |
| Closes #4182 |
| |
| - quiche: use the proper HTTP/3 ALPN |
| |
| - quiche: add failf() calls for two error cases |
| |
| To aid debugging |
| |
| Closes #4181 |
| |
| - mailmap: added Kyohei Kadota |
| |
| Kamil Dudka (1 Aug 2019) |
| - http_negotiate: improve handling of gss_init_sec_context() failures |
| |
| If HTTPAUTH_GSSNEGOTIATE was used for a POST request and |
| gss_init_sec_context() failed, the POST request was sent |
| with empty body. This commit also restores the original |
| behavior of `curl --fail --negotiate`, which was changed |
| by commit 6c6035532383e300c712e4c1cd9fdd749ed5cf59. |
| |
| Add regression tests 2077 and 2078 to cover this. |
| |
| Fixes #3992 |
| Closes #4171 |
| |
| Daniel Stenberg (1 Aug 2019) |
| - mailmap: added 4 more names |
| |
| Evgeny Grin, Peter Pih, Anton Malov and Marquis de Muesli |
| |
| - mailmap: add Giorgos Oikonomou |
| |
| - src/makefile: fix uncompressed hugehelp.c generation |
| |
| Regression from 5cf5d57ab9 (7.64.1) |
| |
| Fixed-by: Lance Ware |
| Fixes #4176 |
| Closes #4177 |
| |
| - appveyor: pass on -k to make |
| |
| - timediff: make it 64 bit (if possible) even with 32 bit time_t |
| |
| ... to make it hold microseconds too. |
| |
| Fixes #4165 |
| Closes #4168 |
| |
| - ROADMAP: parallel transfers are merged now |
| |
| - getenv: support up to 4K environment variable contents on windows |
| |
| Reported-by: Michal Čaplygin |
| Fixes #4174 |
| Closes #4175 |
| |
| - [Kyohei Kadota brought this change] |
| |
| plan9: add support for running on Plan 9 |
| |
| Closes #3701 |
| |
| - [Kyohei Kadota brought this change] |
| |
| ntlm: explicit type casting |
| |
| - [Justin brought this change] |
| |
| curl.h: fix outdated comment |
| |
| Closes #4167 |
| |
| - curl: remove outdated comment |
| |
| Turned bad with commit b8894085000 |
| |
| Reported-by: niallor on github |
| Fixes #4172 |
| Closes #4173 |
| |
| - cleanup: remove the 'numsocks' argument used in many places |
| |
| It was used (intended) to pass in the size of the 'socks' array that is |
| also passed to these functions, but was rarely actually checked/used and |
| the array is defined to a fixed size of MAX_SOCKSPEREASYHANDLE entries |
| that should be used instead. |
| |
| Closes #4169 |
| |
| - readwrite_data: repair setting the TIMER_STARTTRANSFER stamp |
| |
| Regression, broken in commit 65eb65fde64bd5f (curl 7.64.1) |
| |
| Reported-by: Jonathan Cardoso Machado |
| Assisted-by: Jay Satiro |
| |
| Fixes #4136 |
| Closes #4162 |
| |
| - mailmap: Amit Katyal |
| |
| - asyn-thread: removed unused variable |
| |
| Follow-up to eb9a604f. Mistake caused by me when I edited the commit |
| before push... |
| |
| - RELEASE-NOTES: synced |
| |
| - [Amit Katyal brought this change] |
| |
| asyn-thread: create a socketpair to wait on |
| |
| Closes #4157 |
| |
| - curl: cap the maximum allowed values for retry time arguments |
| |
| ... to avoid integer overflows later when multiplying with 1000 to |
| convert seconds to milliseconds. |
| |
| Added test 1269 to verify. |
| |
| Reported-by: Jason Lee |
| Closes #4166 |
| |
| - progress: reset download/uploaded counter |
| |
| ... to make CURLOPT_MAX_RECV_SPEED_LARGE and |
| CURLOPT_MAX_SEND_SPEED_LARGE work correctly on subsequent transfers that |
| reuse the same handle. |
| |
| Fixed-by: Ironbars13 on github |
| Fixes #4084 |
| Closes #4161 |
| |
| - http2_recv: trigger another read when the last data is returned |
| |
| ... so that end-of-stream is detected properly. |
| |
| Reported-by: Tom van der Woerdt |
| Fixes #4043 |
| Closes #4160 |
| |
| - curl: avoid uncessary libcurl timeouts (in parallel mode) |
| |
| When curl_multi_wait() returns OK without file descriptors to wait for, |
| it might already have done a long timeout. |
| |
| Closes #4159 |
| |
| - [Balazs Kovacsics brought this change] |
| |
| HTTP: use chunked Transfer-Encoding for HTTP_POST if size unknown |
| |
| If using the read callback for HTTP_POST, and POSTFIELDSIZE is not set, |
| automatically add a Transfer-Encoding: chunked header, same as it is |
| already done for HTTP_PUT, HTTP_POST_FORM and HTTP_POST_MIME. Update |
| test 1514 according to the new behaviour. |
| |
| Closes #4138 |
| |
| Jay Satiro (29 Jul 2019) |
| - [Daniel Stenberg brought this change] |
| |
| winbuild: add vquic to list of build directories |
| |
| This fixes the winbuild build method which broke several days ago |
| when experimental quic support was added in 3af0e76. |
| |
| Reported-by: Michael Lee |
| |
| Fixes https://github.com/curl/curl/issues/4158 |
| |
| - easy: resize receive buffer on easy handle reset |
| |
| - In curl_easy_reset attempt to resize the receive buffer to its default |
| size. If realloc fails then continue using the previous size. |
| |
| Prior to this change curl_easy_reset did not properly handle resetting |
| the receive buffer (data->state.buffer). It reset the variable holding |
| its size (data->set.buffer_size) to the default size (READBUFFER_SIZE) |
| but then did not actually resize the buffer. If a user resized the |
| buffer by using CURLOPT_BUFFERSIZE to set the size smaller than the |
| default, later called curl_easy_reset and attempted to reuse the handle |
| then a heap overflow would very likely occur during that handle's next |
| transfer. |
| |
| Reported-by: Felix Hädicke |
| |
| Fixes https://github.com/curl/curl/issues/4143 |
| Closes https://github.com/curl/curl/pull/4145 |
| |
| - [Brad Spencer brought this change] |
| |
| examples: Avoid reserved names in hiperfifo examples |
| |
| - Trade in __attribute__((unused)) for the classic (void)x to silence |
| unused symbols. |
| |
| Because the classic way is not gcc specific. Also because the prior |
| method mapped to symbol _Unused, which starts with _ and a capital |
| letter which is reserved. |
| |
| Assisted-by: The Infinnovation team |
| |
| Bug: https://github.com/curl/curl/issues/4120#issuecomment-512542108 |
| |
| Closes https://github.com/curl/curl/pull/4153 |
| |
| Daniel Stenberg (25 Jul 2019) |
| - RELEASE-NOTES: synced |
| |
| - [Felix Hädicke brought this change] |
| |
| ssh-libssh: do not specify O_APPEND when not in append mode |
| |
| Specifying O_APPEND in conjunction with O_TRUNC and O_CREAT does not |
| make much sense. And this combination of flags is not accepted by all |
| SFTP servers (at least not Apache SSHD). |
| |
| Fixes #4147 |
| Closes #4148 |
| |
| - [Gergely Nagy brought this change] |
| |
| multi: call detach_connection before Curl_disconnect |
| |
| Curl_disconnect bails out if conn->easyq is not empty, detach_connection |
| needs to be called first to remove the current easy from the queue. |
| |
| Fixes #4144 |
| Closes #4151 |
| |
| Jay Satiro (23 Jul 2019) |
| - tool_operate: fix implicit call to easysrc_cleanup |
| |
| easysrc_cleanup is only defined when CURL_DISABLE_LIBCURL_OPTION is not |
| defined, and prior to this change would be called regardless. |
| |
| Bug: https://github.com/curl/curl/pull/3804#issuecomment-513922637 |
| Reported-by: Marcel Raad |
| |
| Closes https://github.com/curl/curl/pull/4142 |
| |
| Daniel Stenberg (22 Jul 2019) |
| - curl:create_transfers check return code from curl_easy_setopt |
| |
| From commit b8894085 |
| |
| Pointed out by Coverity CID 1451703 |
| |
| Closes #4134 |
| |
| - HTTP3: initial (experimental) support |
| |
| USe configure --with-ngtcp2 or --with-quiche |
| |
| Using either option will enable a HTTP3 build. |
| Co-authored-by: Alessandro Ghedini <[email protected]> |
| |
| Closes #3500 |
| |
| - curl: remove dead code |
| |
| The loop never loops (since b889408500), pointed out by Coverity (CID |
| 1451702) |
| |
| Closes #4133 |
| |
| - docs/PARALLEL-TRANSFERS: correct the version number |
| |
| - docs/PARALLEL-TRANSFERS: added |
| |
| - curl: support parallel transfers |
| |
| This is done by making sure each individual transfer is first added to a |
| linked list as then they can be performed serially, or at will, in |
| parallel. |
| |
| Closes #3804 |
| |
| - docs/MANUAL.md: converted to markdown from plain text |
| |
| ... will make it render as a nicer web page. |
| |
| Closes #4131 |
| |
| - curl_version_info: provide nghttp2 details |
| |
| Introducing CURLVERSION_SIXTH with nghttp2 info. |
| |
| Closes #4121 |
| |
| - bump: start working on 7.66.0 |
| |
| - source: remove names from source comments |
| |
| Several reasons: |
| |
| - we can't add everyone who's helping out so its unfair to just a few |
| selected ones. |
| - we already list all helpers in THANKS and in RELEASE-NOTES for each |
| release |
| - we don't want to give the impression that some parts of the code is |
| "owned" or "controlled" by specific persons |
| |
| Assisted-by: Daniel Gustafsson |
| Closes #4129 |
| |
| Version 7.65.3 (19 Jul 2019) |
| |
| Daniel Stenberg (19 Jul 2019) |
| - RELEASE-NOTES: 7.65.3 |
| |
| - THANKS: 7.65.3 status |
| |
| - progress: make the progress meter appear again |
| |
| Fix regression caused by 21080e1 |
| |
| Reported-by: Chih-Hsuan Yen |
| Fixes #4122 |
| Closes #4124 |
| |
| - version: bump to 7.65.3 |
| |
| - RELEASE-NOTES: Contributors or now 1990 |
| |
| Version 7.65.2 (17 Jul 2019) |
| |
| Daniel Stenberg (17 Jul 2019) |
| - RELEASE-NOTES: 7.65.2 |
| |
| - THANKS: add contributors from 7.65.2 |
| |
| Jay Satiro (17 Jul 2019) |
| - [aasivov brought this change] |
| |
| cmake: Fix finding Brotli on case-sensitive file systems |
| |
| - Find package "Brotli" instead of "BROTLI" since the former is the |
| casing used for CMake/FindBrotli.cmake, and otherwise find_package |
| may fail on a case-sensitive file system. |
| |
| Fixes https://github.com/curl/curl/issues/4117 |
| |
| - CURLOPT_RANGE.3: Caution against using it for HTTP PUT |
| |
| AFAICT CURLOPT_RANGE does not support ranged HTTP PUT uploads so I've |
| cautioned against using it for that purpose and included a workaround. |
| |
| Bug: https://curl.haxx.se/mail/lib-2019-04/0075.html |
| Reported-by: Christopher Head |
| |
| Closes https://github.com/curl/curl/issues/3814 |
| |
| - [Stefano Simonelli brought this change] |
| |
| CURLOPT_SEEKDATA.3: fix variable name |
| |
| Closes https://github.com/curl/curl/pull/4118 |
| |
| - [Giorgos Oikonomou brought this change] |
| |
| CIPHERS.md: Explain Schannel error SEC_E_ALGORITHM_MISMATCH |
| |
| If the SSL backend is Schannel and the user specifies an Schannel CALG_ |
| that is not supported by the protocol or the server then curl returns |
| CURLE_SSL_CONNECT_ERROR (35) SEC_E_ALGORITHM_MISMATCH. |
| |
| Fixes https://github.com/curl/curl/issues/3389 |
| Closes https://github.com/curl/curl/pull/4106 |
| |
| - [Daniel Gustafsson brought this change] |
| |
| nss: inspect returnvalue of token check |
| |
| PK11_IsPresent() checks for the token for the given slot is available, |
| and sets needlogin flags for the PK11_Authenticate() call. Should it |
| return false, we should however treat it as an error and bail out. |
| |
| Closes https://github.com/curl/curl/pull/4110 |
| |
| - docs: Explain behavior change in --tlsv1. options since 7.54 |
| |
| Since 7.54 --tlsv1. options use the specified version or later, however |
| older versions of curl documented it as using just the specified version |
| which may or may not have happened depending on the TLS library. |
| Document this discrepancy to allay confusion for users familiar with the |
| old documentation that expect just the specified version. |
| |
| Fixes https://github.com/curl/curl/issues/4097 |
| Closes https://github.com/curl/curl/pull/4119 |
| |
| - libcurl: Restrict redirect schemes (follow-up) |
| |
| - Allow FTPS on redirect. |
| |
| - Update default allowed redirect protocols in documentation. |
| |
| Follow-up to 6080ea0. |
| |
| Ref: https://github.com/curl/curl/pull/4094 |
| |
| Closes https://github.com/curl/curl/pull/4115 |
| |
| Daniel Stenberg (16 Jul 2019) |
| - test1173: make it also check all libcurl option man pages |
| |
| ... and adjust those that cause errors |
| |
| Closes #4116 |
| |
| - curl: only accept COLUMNS less than 10000 |
| |
| ... as larger values would rather indicate something silly (and could |
| potentially cause buffer problems). |
| |
| Reported-by: pendrek at hackerone |
| Closes #4114 |
| |
| - dist: add manpage-syntax.pl |
| |
| follow-up to 7fb66c403 |
| |
| - test1173: detect some basic man page format mistakes |
| |
| Triggered by PR #4111 |
| |
| Closes #4113 |
| |
| Jay Satiro (15 Jul 2019) |
| - [Bjarni Ingi Gislason brought this change] |
| |
| docs: Fix missing lines caused by undefined macros |
| |
| - Escape apostrophes at line start. |
| |
| Some lines begin with a "'" (apostrophe, single quote), which is then |
| interpreted as a control character in *roff. |
| |
| Such lines are interpreted as being a call to a macro, and if |
| undefined, the lines are removed from the output. |
| |
| Bug: https://bugs.debian.org/926352 |
| Signed-off-by: Bjarni Ingi Gislason <[email protected]> |
| |
| Submitted-by: Alessandro Ghedini |
| |
| Closes https://github.com/curl/curl/pull/4111 |
| |
| Daniel Stenberg (14 Jul 2019) |
| - libcurl-security.3: update to new CURLOPT_REDIR_PROTOCOLS defaults |
| |
| follow-up to 6080ea098 |
| |
| - [Linos Giannopoulos brought this change] |
| |
| libcurl: Add testcase for gopher redirects |
| |
| The testcase ensures that redirects to CURLPROTO_GOPHER won't be |
| allowed, by default, in the future. Also, curl is being used |
| for convenience while keeping the testcases DRY. |
| |
| The expected error code is CURLE_UNSUPPORTED_PROTOCOL when the client is |
| redirected to CURLPROTO_GOPHER |
| |
| Signed-off-by: Linos Giannopoulos <[email protected]> |
| |
| - [Linos Giannopoulos brought this change] |
| |
| libcurl: Restrict redirect schemes |
| |
| All protocols except for CURLPROTO_FILE/CURLPROTO_SMB and their TLS |
| counterpart were allowed for redirect. This vastly broadens the |
| exploitation surface in case of a vulnerability such as SSRF [1], where |
| libcurl-based clients are forced to make requests to arbitrary hosts. |
| |
| For instance, CURLPROTO_GOPHER can be used to smuggle any TCP-based |
| protocol by URL-encoding a payload in the URI. Gopher will open a TCP |
| connection and send the payload. |
| |
| Only HTTP/HTTPS and FTP are allowed. All other protocols have to be |
| explicitly enabled for redirects through CURLOPT_REDIR_PROTOCOLS. |
| |
| [1]: https://www.acunetix.com/blog/articles/server-side-request-forgery-vulnerability/ |
| |
| Signed-off-by: Linos Giannopoulos <[email protected]> |
| |
| Closes #4094 |
| |
| - [Zenju brought this change] |
| |
| openssl: define HAVE_SSL_GET_SHUTDOWN based on version number |
| |
| Closes #4100 |
| |
| - [Peter Simonyi brought this change] |
| |
| http: allow overriding timecond with custom header |
| |
| With CURLOPT_TIMECONDITION set, a header is automatically added (e.g. |
| If-Modified-Since). Allow this to be replaced or suppressed with |
| CURLOPT_HTTPHEADER. |
| |
| Fixes #4103 |
| Closes #4109 |
| |
| Jay Satiro (11 Jul 2019) |
| - [Juergen Hoetzel brought this change] |
| |
| smb: Use the correct error code for access denied on file open |
| |
| - Return CURLE_REMOTE_ACCESS_DENIED for SMB access denied on file open. |
| |
| Prior to this change CURLE_REMOTE_FILE_NOT_FOUND was returned instead. |
| |
| Closes https://github.com/curl/curl/pull/4095 |
| |
| - [Daniel Gustafsson brought this change] |
| |
| DEPRECATE: fixup versions and spelling |
| |
| Correctly set the July 17 version to 7.65.2, and update spelling to |
| be consistent. Also fix a typo. |
| |
| Closes https://github.com/curl/curl/pull/4107 |
| |
| - [Gisle Vanem brought this change] |
| |
| system_win32: fix clang warning |
| |
| - Declare variable in header as extern. |
| |
| Bug: https://github.com/curl/curl/commit/48b9ea4#commitcomment-34084597 |
| |
| Daniel Gustafsson (10 Jul 2019) |
| - headers: Remove no longer exported functions |
| |
| There were a leftover few prototypes of Curl_ functions that we used to |
| export but no longer do, this removes those prototypes and cleans up any |
| comments still referring to them. |
| |
| Curl_write32_le(), Curl_strcpy_url(), Curl_strlen_url(), Curl_up_free() |
| Curl_concat_url(), Curl_detach_connnection(), Curl_http_setup_conn() |
| were made static in 05b100aee247bb9bec8e9a1b0166496aa4248d1c. |
| Curl_http_perhapsrewind() made static in 574aecee208f79d391f10d57520b3. |
| |
| For the remainder, I didn't trawl the Git logs hard enough to capture |
| their exact time of deletion, but they were all gone: Curl_splayprint(), |
| Curl_http2_send_request(), Curl_global_host_cache_dtor(), |
| Curl_scan_cache_used(), Curl_hostcache_destroy(), Curl_second_connect(), |
| Curl_http_auth_stage() and Curl_close_connections(). |
| |
| Closes #4096 |
| Reviewed-by: Daniel Stenberg <[email protected]> |
| |
| - CMake: fix typos and spelling |
| |
| - [Kyle Edwards brought this change] |
| |
| CMake: Convert errant elseif() to else() |
| |
| CMake interprets an elseif() with no arguments as elseif(FALSE), |
| resulting in the elseif() block not being executed. That is not what |
| was intended here. Change the empty elseif() to an else() as it was |
| intended. |
| |
| Closes #4101 |
| Reported-by: Artalus <[email protected]> |
| Reviewed-by: Daniel Gustafsson <[email protected]> |
| |
| - buildconf: fix header filename |
| |
| The header file inclusion had a typo, it should be .h and not .hd. |
| Fix by renaming. |
| |
| Fixes #4102 |
| Reported-by: AceCrow on Github |
| |
| - [Jan Chren brought this change] |
| |
| configure: fix --disable-code-coverage |
| |
| This fixes the case when --disable-code-coverage supplied to ./configure |
| would result in coverage="yes" being set. |
| |
| Closes #4099 |
| Reviewed-by: Daniel Gustafsson <[email protected]> |
| |
| - cleanup: fix typo in comment |
| |
| - RELEASE-NOTES: synced |
| |
| Jay Satiro (6 Jul 2019) |
| - [Daniel Gustafsson brought this change] |
| |
| nss: support using libnss on macOS |
| |
| The file suffix for dynamically loadable objects on macOS is .dylib, |
| which need to be added for the module definitions in order to get the |
| NSS TLS backend to work properly on macOS. |
| |
| Closes https://github.com/curl/curl/pull/4046 |
| |
| - [Daniel Gustafsson brought this change] |
| |
| nss: don't set unused parameter |
| |
| The value of the maxPTDs parameter to PR_Init() has since at least |
| NSPR 2.1, which was released sometime in 1998, been marked ignored |
| as is accordingly not used in the initialization code. Setting it |
| to a value when calling PR_Init() is thus benign, but indicates an |
| intent which may be misleading. Reset the value to zero to improve |
| clarity. |
| |
| Closes https://github.com/curl/curl/pull/4054 |
| |
| - [Daniel Gustafsson brought this change] |
| |
| nss: only cache valid CRL entries |
| |
| Change the logic around such that we only keep CRLs that NSS actually |
| ended up caching around for later deletion. If CERT_CacheCRL() fails |
| then there is little point in delaying the freeing of the CRL as it |
| is not used. |
| |
| Closes https://github.com/curl/curl/pull/4053 |
| |
| - [Gergely Nagy brought this change] |
| |
| lib: Use UTF-8 encoding in comments |
| |
| Some editors and IDEs assume that source files use UTF-8 file encodings. |
| It also fixes the build with MSVC when /utf-8 command line option is |
| used (this option is mandatory for some other open-source projects, this |
| is useful when using the same options is desired for building all |
| libraries of a project). |
| |
| Closes https://github.com/curl/curl/pull/4087 |
| |
| - [Caleb Raitto brought this change] |
| |
| CURLOPT_HEADEROPT.3: Fix example |
| |
| Fix an issue where example builds a curl_slist, but fails to actually |
| use it, or free it. |
| |
| Closes https://github.com/curl/curl/pull/4090 |
| |
| - [Shankar Jadhavar brought this change] |
| |
| winbuild: Change Makefile to honor ENABLE_OPENSSL_AUTO_LOAD_CONFIG |
| |
| - Made changes so that ENABLE_OPENSSL_AUTO_LOAD_CONFIG will be honored. |
| |
| - Also removed some ^M chars from file. |
| |
| Prior to this change while building on Windows platform even if we pass |
| the ENABLE_OPENSSL_AUTO_LOAD_CONFIG option with value as "no" it does |
| not set the CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG flag. |
| |
| Closes https://github.com/curl/curl/pull/4086 |
| |
| Daniel Stenberg (4 Jul 2019) |
| - doh-url.d: added in 7.62.0 |
| |
| Jay Satiro (30 Jun 2019) |
| - docs: Fix links to OpenSSL docs |
| |
| OpenSSL changed their manual locations and does not redirect to the new |
| locations. |
| |
| Bug: https://curl.haxx.se/mail/lib-2019-06/0056.html |
| Reported-by: Daniel Stenberg |
| |
| Daniel Stenberg (26 Jun 2019) |
| - [Gaël PORTAY brought this change] |
| |
| curl_multi_wait.3: escape backslash in example |
| |
| The backslash in the character Line Feed must be escaped. |
| |
| The current man-page outputs the code as following: |
| |
| fprintf(stderr, "curl_multi failed, code %d.0, mc); |
| |
| The commit fixes it as follow: |
| |
| fprintf(stderr, "curl_multi failed, code %d\n", mc); |
| |
| Closes #4079 |
| |
| - openssl: disable engine if OPENSSL_NO_UI_CONSOLE is defined |
| |
| ... since that needs UI_OpenSSL() which isn't provided when OpenSSL is |
| built with OPENSSL_NO_UI_CONSOLE which happens when OpenSSL is built for |
| UWP (with "VC-WIN32-UWP"). |
| |
| Reported-by: Vasily Lobaskin |
| Fixes #4073 |
| Closes #4077 |
| |
| - test1521: adapt to SLISTPOINT |
| |
| The header now has the slist-using options marked as SLISTPOINT so this |
| makes sure test 1521 understands that. |
| |
| Follow-up to ae99b4de1c443ae989 |
| |
| Closes #4074 |
| |
| - win32: make DLL loading a no-op for UWP |
| |
| Reported-by: Michael Brehm |
| Fixes #4060 |
| Closes #4072 |
| |
| - [1ocalhost brought this change] |
| |
| configure: fix typo '--disable-http-uath' |
| |
| Closes #4076 |
| |
| - [Niklas Hambüchen brought this change] |
| |
| docs: fix string suggesting HTTP/2 is not the default |
| |
| Commit 25fd1057c9c86e3 made HTTP2 the default, and further down in the |
| man page that new default is mentioned, but the section at the top |
| contradicted it until now. |
| |
| Also remove claim that setting the HTTP version is not sensible. |
| |
| Closes #4075 |
| |
| - RELEASE-NOTES: synced |
| |
| - [Stephan Szabo brought this change] |
| |
| tests: update fixed IP for hostip/clientip split |
| |
| These tests give differences for me on linux when using a hostip |
| pointing to the external ip address for the local machine. |
| |
| Closes #4070 |
| |
| Daniel Gustafsson (24 Jun 2019) |
| - http: clarify header buffer size calculation |
| |
| The header buffer size calculation can from static analysis seem to |
| overlow as it performs an addition between two size_t variables and |
| stores the result in a size_t variable. Overflow is however guarded |
| against elsewhere since the input to the addition is regulated by |
| the maximum read buffer size. Clarify this with a comment since the |
| question was asked. |
| |
| Reviewed-by: Daniel Stenberg <[email protected]> |
| |
| Daniel Stenberg (24 Jun 2019) |
| - KNOWN_BUGS: Don't clear digest for single realm |
| |
| Closes #3267 |
| |
| - KNOWN_BUGS: Schannel disable CURLOPT_SSL_VERIFYPEER and verify hostname |
| |
| Closes #3284 |
| |
| - http2: call done_sending on end of upload |
| |
| To make sure a HTTP/2 stream registers the end of stream. |
| |
| Bug #4043 made me find this problem but this fix doesn't correct the |
| reported issue. |
| |
| Closes #4068 |
| |
| - [James Brown brought this change] |
| |
| c-ares: honor port numbers in CURLOPT_DNS_SERVERS |
| |
| By using ares_set_servers_ports_csv on new enough c-ares. |
| |
| Fixes #4066 |
| Closes #4067 |
| |
| Daniel Gustafsson (24 Jun 2019) |
| - CURLMOPT_SOCKETFUNCTION.3: fix typo |
| |
| Daniel Stenberg (24 Jun 2019) |
| - [Koen Dergent brought this change] |
| |
| curl: skip CURLOPT_PROXY_CAPATH for disabled-proxy builds |
| |
| Closes #4061 |
| |
| - test153: fix content-length to avoid occasional hang |
| |
| Closes #4065 |
| |
| - RELEASE-NOTES: synced |
| |
| - multi: enable multiplexing by default (again) |
| |
| It was originally made default in d7c4213bd0c (7.62.0) but mistakenly |
| reverted in commit 2f44e94efb3d (7.65.0). Now enabled again. |
| |
| Closes #4051 |
| |
| - typecheck: add 3 missing strings and a callback data pointer |
| |
| Closes #4050 |
| |
| - tests: add disable-scan.pl to dist |
| |
| follow-up from 29177f422a5 |
| |
| Closes #4059 |
| |
| - http2: don't call stream-close on already closed streams |
| |
| Closes #4055 |
| |
| Marcel Raad (20 Jun 2019) |
| - travis: enable alt-svc for coverage build |
| |
| Closes |
| |
| - travis: enable libssh2 for coverage build |
| |
| It was enabled by default before commit c92d2e14cfb. |
| |
| Disable torture tests 600 and 601 because of |
| https://github.com/curl/curl/issues/1678. |
| |
| Closes |
| |
| - travis: disable threaded resolver for coverage build |
| |
| This enables more tests. |
| |
| Closes |
| |
| - travis: enable brotli for all xenial jobs |
| |
| There's no need for a separate job, and no need to build it from source |
| with Xenial. |
| |
| Closes |
| |
| - travis: enable warnings-as-errors for coverage build |
| |
| Closes |
| |
| GitHub (20 Jun 2019) |
| - [Gisle Vanem brought this change] |
| |
| system_win32: fix typo |
| |
| Daniel Stenberg (20 Jun 2019) |
| - typecheck: CURLOPT_CONNECT_TO takes an slist too |
| |
| Additionally, add an alias in curl.h for slist-using options so that |
| we can grep/parse those out at will. |
| |
| Closes #4042 |
| |
| - [Stephan Szabo brought this change] |
| |
| tests: support non-localhost HOSTIP for dict/smb servers |
| |
| smbserver.py/dictserver.py were explicitly using localhost/127.0.0.1 for |
| binding the server which when we were running the tests with a separate |
| HOSTIP and CLIENTIP had failures verifying the server from the device we |
| were testing. |
| |
| This changes them to take the address from runtests.py and default to |
| localhost/127.0.0.1 if none is given. |
| |
| Closes #4048 |
| |
| - test1523: basic test of CURLOPT_LOW_SPEED_LIMIT |
| |
| - configure: --disable-progress-meter |
| |
| Builds libcurl without support for the built-in progress meter. |
| |
| Closes #4023 |
| |
| - curl: improved skip-setopt-options when built with disabled features |
| |
| Reduces #ifdefs in src/tool_operate.c |
| |
| Follow-up from 4e86f2fc4e6 |
| Closes #3936 |
| |
| Steve Holme (18 Jun 2019) |
| - netrc: Return the correct error code when out of memory |
| |
| Introduced in 763c5178. |
| |
| Closes #4036 |
| |
| Daniel Stenberg (18 Jun 2019) |
| - config-os400: add getpeername and getsockname defines |
| |
| Reported-by: jonrumsey on github |
| Fixes #4037 |
| Closes #4039 |
| |
| - runtests: keep logfiles around by default |
| |
| Make '-k' a no-op. The singletest function now clears the log directory |
| BEFORE each individual test and not after, which makes it possible to |
| always keep the logfiles around after a test has been run. No need to |
| specify -k anymore. Keeping the option parsing around to work with users |
| of old habits. |
| |
| Some tests also didn't work properly when -k was used (since the old |
| logs would be kep when a new test starts) which this change also fixes. |
| |
| Closes #4035 |
| |
| - [Gergely Nagy brought this change] |
| |
| openssl: fix pubkey/signature algorithm detection in certinfo |
| |
| Certinfo gives the same result for all OpenSSL versions. |
| Also made printing RSA pubkeys consistent with older versions. |
| |
| Reported-by: Michael Wallner |
| Fixes #3706 |
| Closes #4030 |
| |
| - conn_maxage: move the check to prune_dead_connections() |
| |
| ... and avoid the locking issue. |
| |
| Reported-by: Kunal Ekawde |
| Fixes #4029 |
| Closes #4032 |
| |
| - tests: have runtests figure out disabled features |
| |
| ... so that runtests can skip individual test cases that test features |
| that are explicitly disabled in this build. This new logic is intended |
| for disabled features that aren't otherwise easily visible through the |
| curl_version_info() or other API calls. |
| |
| tests/server/disabled is a newly built executable that will output a |
| list of disabled features. Outputs nothing for a default build. |
| |
| Closes #3950 |
| |
| - test188/189: fix Content-Length |
| |
| This cures the flaky test results |
| |
| Closes #4034 |
| |
| - [Thomas Gamper brought this change] |
| |
| winbuild: use WITH_PREFIX if given |
| |
| Closes #4031 |
| |
| Daniel Gustafsson (17 Jun 2019) |
| - openssl: remove outdated comment |
| |
| OpenSSL used to call exit(1) on syntax errors in OPENSSL_config(), |
| which is why we switched to CONF_modules_load_file() and introduced |
| a comment stating why. This behavior was however changed in OpenSSL |
| commit abdd677125f3a9e3082f8c5692203590fdb9b860, so remove the now |
| outdated and incorrect comment. The mentioned commit also declares |
| OPENSSL_config() deprecated so keep the current coding. |
| |
| Closes #4033 |
| Reviewed-by: Daniel Stenberg <[email protected]> |
| |
| Daniel Stenberg (16 Jun 2019) |
| - RELEASE-NOTES: synced |
| |
| Patrick Monnerat (16 Jun 2019) |
| - os400: make vsetopt() non-static as Curl_vsetopt() for os400 support. |
| |
| Use it in curl_easy_setopt_ccsid(). |
| |
| Reported-by: jonrumsey on github |
| Fixes #3833 |
| Closes #4028 |
| |
| Daniel Stenberg (15 Jun 2019) |
| - runtests: report single test time + total duration |
| |
| ... after each successful test. |
| |
| Closes #4027 |
| |
| - multi: fix the transfer hash function |
| |
| Follow-up from 8b987cc7eb |
| |
| Reported-by: Tom van der Woerdt |
| Fixes #4018 |
| Closes #4024 |
| |
| - unit1654: cleanup on memory failure |
| |
| ... to make it handle torture tests properly. |
| |
| Reported-by: Marcel Raad |
| Fixes #4021 |
| Closes #4022 |
| |
| Marcel Raad (13 Jun 2019) |
| - krb5: fix compiler warning |
| |
| Even though the variable was used in a DEBUGASSERT, GCC 8 warned in |
| debug mode: |
| krb5.c:324:17: error: unused variable 'maj' [-Werror=unused-variable] |
| |
| Just suppress the warning and declare the variable unconditionally |
| instead of only for DEBUGBUILD (which also missed the check for |
| HAVE_ASSERT_H). |
| |
| Closes https://github.com/curl/curl/pull/4020 |
| |
| Daniel Stenberg (13 Jun 2019) |
| - quote.d: asterisk prefix works for SFTP as well |
| |
| Reported-by: Ben Voris |
| Fixes #4017 |
| Closes #4019 |
| |
| - multi: fix the transfer hashes in the socket hash entries |
| |
| - The transfer hashes weren't using the correct keys so removing entries |
| failed. |
| |
| - Simplified the iteration logic over transfers sharing the same socket and |
| they now simply are set to expire and thus get handled in the "regular" |
| timer loop instead. |
| |
| Reported-by: Tom van der Woerdt |
| Fixes #4012 |
| Closes #4014 |
| |
| Jay Satiro (12 Jun 2019) |
| - [Cliff Crosland brought this change] |
| |
| url: Fix CURLOPT_MAXAGE_CONN time comparison |
| |
| Old connections are meant to expire from the connection cache after |
| CURLOPT_MAXAGE_CONN seconds. However, they actually expire after 1000x |
| that value. This occurs because a time value measured in milliseconds is |
| accidentally divided by 1M instead of by 1,000. |
| |
| Closes https://github.com/curl/curl/pull/4013 |
| |
| Daniel Stenberg (11 Jun 2019) |
| - test1165: verify that CURL_DISABLE_ symbols are in sync |
| |
| between configure.ac and source code. They should be possible to switch |
| on/off in configure AND be used in source code. |
| |
| - configure: remove CURL_DISABLE_TLS_SRP |
| |
| It isn't used by code so stop providing the define. |
| |
| Closes #4010 |
| |
| - Revert "cmake: add SMB to list of disabled protocols if HTTP_ONLY is specified" |
| |
| This reverts commit 36738caeb78603ce24e3ea089a167b8c216fb938. |
| |
| Apparently several of the appveyor windows builds broke. |
| |
| - [sergey-raevskiy brought this change] |
| |
| cmake: add SMB to list of disabled protocols if HTTP_ONLY is specified |
| |
| Reviewed-by: Jakub Zakrzewski |
| Closes #3770 |
| |
| - RELEASE-NOTES: synced |
| |
| - http2: remove CURL_DISABLE_TYPECHECK define |
| |
| ... in http2-less builds as it served no use. |
| |
| - configure: more --disable switches to toggle off individual features |
| |
| ... actual support in the code for disabling these has already landed. |
| |
| Closes #4009 |
| |
| - wolfssl: fix key pinning build error |
| |
| follow-up from deb9462ff2de8 |