summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* CURLINFO_NUM_CONNECTS: improve accuracybagder/fix-num-connectsDaniel Stenberg2020-03-221-1/+1
| | | | | | | The counter was not bumped in all cases correctly. Reported-by: Marcel Raad Ref: #5131
* lib/curl_setup: adjust the copyright year rangeDaniel Stenberg2020-03-211-1/+1
| | | | Follow-up from d820224b8
* curl_setup: define _WIN32_WINNT_[OS] symbolsJay Satiro2020-03-212-51/+130
| | | | | | | | | | | | | | | | .. because not all Windows build systems have those symbols, and even those that do may be missing newer symbols (eg the Windows 7 SDK does not define _WIN32_WINNT_WIN10). Those symbols are used in build-time logic to decide which API to use and prior to this change if the symbols were missing it would have resulted in deprecated API being used when more recent functions were available (eg GetVersionEx used instead of VerifyVersionInfo). Reported-by: FuccDucc@users.noreply.github.com Probably fixes https://github.com/curl/curl/issues/4995 Closes https://github.com/curl/curl/pull/5057
* curl-functions.m4: remove inappropriate AC_REQUIRERoss Burton2020-03-211-2/+0
| | | | | | | | | | | | | AC_REQUIRE means "if this macro hasn't been executed already, execute it". So in a wrapper around AC_RUN_IFELSE, AC_REQUIRE(AC_RUN_IFELSE) isn't correct at that will execute AC_RUN_IFELSE without any arguments. With autoconf 2.69 this is basically a no-op, but with autoconf 2.70, AC_RUN_IFELSE without a default value when cross-compiling is fatal. The result is that curl with autoconf 2.70 cannot cross-compile. Fixes https://github.com/curl/curl/issues/5126 Closes https://github.com/curl/curl/pull/5130
* ci/tests: fix Azure Pipelines not running Windows containersMarc Hoersken2020-03-201-0/+2
| | | | | | | | | | Workaround posted here: microsoft/azure-pipelines-agent#2864 Assisted-by: Simon Chalifoux Assisted-by: Tommy Petty Fixes #5117 Closes #5129
* tests: add test 430, 431 and 432 to verify the --config fixDaniel Stenberg2020-03-204-0/+298
| | | | Verify the fixes in 4e0b4fee4
* cmdline: fix handling of OperationConfig linked list (--next)Rici Lake2020-03-202-2/+4
| | | | | | | | | | Ensures that -K/--config inserts new items at the end of the list instead of overwriting the second item, and that after a -K/--config option has been parsed, the option parser's view of the current config is update. Fixes #5120 Closes #5123
* test2100: fix static port instead of dynamic value being usedMarc Hoersken2020-03-201-0/+0
|
* test970: fix static ip:port instead of dynamic values being usedMarc Hoersken2020-03-201-1/+1
|
* secure transport: remove the BACKEND define kludgeDaniel Stenberg2020-03-191-90/+101
| | | | Closes #5122
* mbedtls: remove the BACKEND define kludgeDaniel Stenberg2020-03-191-69/+76
|
* bearssl: remove the BACKEND define kludgeDaniel Stenberg2020-03-191-48/+52
|
* wolfssl: remove the BACKEND define kludgeDaniel Stenberg2020-03-191-59/+65
|
* nss: remove the BACKEND define kludgeDaniel Stenberg2020-03-191-51/+62
|
* gnutls: remove the BACKEND define kludgeDaniel Stenberg2020-03-191-43/+50
|
* openssl: remove the BACKEND define kludgeDaniel Stenberg2020-03-191-107/+113
| | | | | Use a proper variable instead to make it easier to use a debugger and read the code.
* tests: make Python-based servers compatible with Python 2 and 3Marc Hoersken2020-03-197-23/+58
| | | | | | | | | | | | | | | | Update smbserver.py and negtelnetserver.py to be compatible with Python 3 while staying backwards-compatible to support Python 2. Fix string encoding and handling of echoed and transferred data. Tested with both Python 2.7.17 and Python 3.7.7 Reported-by: Daniel Stenberg Assisted-by: Kamil Dudka Reviewed-by: Marcel Raad Fixes #5104 Closes #5110
* writeout_json: use curl_off_t printf() option for the time outputDaniel Stenberg2020-03-181-1/+2
| | | | | | Follow-up to: 04c03416e68fd635a15 Closes #5115
* RELEASE-NOTES: syncedDaniel Stenberg2020-03-181-0/+2
| | | | Uh, I missed this in 1a46b218db
* RELEASE-NOTES: syncedDaniel Stenberg2020-03-182-10/+45
| | | | ... and bumped curlver.h to 7.70.0
* http2: Fix erroneous debug message that h2 connection closedJay Satiro2020-03-182-8/+14
| | | | | | | | | | | | | Prior to this change in libcurl debug builds http2 stream closure was erroneously referred to as connection closure. Before: * nread <= 0, server closed connection, bailing After: * nread == 0, stream closed, bailing Closes https://github.com/curl/curl/pull/5118
* tool_setopt: correct the copyright year rangeDaniel Stenberg2020-03-181-1/+1
| | | | Follow-up to 5450428491
* schannel: add "best effort" revocation check optionJohannes Schindelin2020-03-1820-2/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Implement new option CURLSSLOPT_REVOKE_BEST_EFFORT and --ssl-revoke-best-effort to allow a "best effort" revocation check. A best effort revocation check ignores errors that the revocation check was unable to take place. The reasoning is described in detail below and discussed further in the PR. --- When running e.g. with Fiddler, the schannel backend fails with an unhelpful error message: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate. Sadly, many enterprise users who are stuck behind MITM proxies suffer the very same problem. This has been discussed in plenty of issues: https://github.com/curl/curl/issues/3727, https://github.com/curl/curl/issues/264, for example. In the latter, a Microsoft Edge developer even made the case that the common behavior is to ignore issues when a certificate has no recorded distribution point for revocation lists, or when the server is offline. This is also known as "best effort" strategy and addresses the Fiddler issue. Unfortunately, this strategy was not chosen as the default for schannel (and is therefore a backend-specific behavior: OpenSSL seems to happily ignore the offline servers and missing distribution points). To maintain backward-compatibility, we therefore add a new flag (`CURLSSLOPT_REVOKE_BEST_EFFORT`) and a new option (`--ssl-revoke-best-effort`) to select the new behavior. Due to the many related issues Git for Windows and GitHub Desktop, the plan is to make this behavior the default in these software packages. The test 2070 was added to verify this behavior, adapted from 310. Based-on-work-by: georgeok <giorgos.n.oikonomou@gmail.com> Co-authored-by: Markus Olsson <j.markus.olsson@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Closes https://github.com/curl/curl/pull/4981
* multi: Improve parameter check for curl_multi_remove_handleJay Satiro2020-03-182-2/+6
| | | | | | | | | - If an easy handle is owned by a multi different from the one specified then return CURLM_BAD_EASY_HANDLE. Prior to this change I assume user error could cause corruption. Closes https://github.com/curl/curl/pull/5116
* windows: suppress UI in all CryptAcquireContext() callsViktor Szakats2020-03-176-13/+13
| | | | | | Ref: https://docs.microsoft.com/windows/win32/api/wincrypt/nf-wincrypt-cryptacquirecontexta#parameters Reviewed-by: Marc Hörsken Closes https://github.com/curl/curl/pull/5088
* writeout_json: add missing comma to fix the HTTP versionDaniel Stenberg2020-03-171-1/+1
| | | | Follow-up to 04c03416e68fd635a15
* test 970: verify --write-out '%{json}'Daniel Stenberg2020-03-173-3/+136
| | | | | | | | | | | Makes curl_easy_getinfo() of "variable" numerical content instead return the number set in the env variable `CURL_TIME`. Makes curl_version() of "variable" textual content. This guarantees a stable version string which can be tested against. Environment variable `CURL_VERSION` defines the content. Assisted-by: Mathias Gumz
* writeout: support to generate JSON outputMathias Gumz2020-03-178-83/+361
| | | | | | | | | | | | | | | | This commit adds support to generate JSON via the writeout feature: -w "%{json}" It leverages the existing infrastructure as much as possible. Thus, generating the JSON on STDERR is possible by: -w "%{stderr}%{json}" This implements a variant of https://github.com/curl/curl/wiki/JSON#--write-out-json. Closes #4870
* CI: stop ignoring 323, it is disabledDaniel Stenberg2020-03-173-15/+10
|
* DISABLED: disable test 323Daniel Stenberg2020-03-171-0/+3
| | | | | | | | | | | | | The test uses SRP to "a server not supporting it" but modern stunnel versions will silently accept it and remain happy. The test is therefore faulty. I haven't figured out how to make stunnel explicitly reject SRP-using connects. Reported-by: Marc Hörsken Fixes #5105 Closes #5113
* ci/tests: increase timeouts for torture builds on Azure PipelinesMarc Hoersken2020-03-171-2/+2
| | | | | | For some reason the torture builds have slowed down recently. Reported-by: Daniel Stenberg
* cmake: add support for building with wolfSSLbagder/cmake-wolfsslDaniel Stenberg2020-03-164-12/+49
| | | | | | | | | My working build cmdline: $ cmake -DCMAKE_PREFIX_PATH=$HOME/build-wolfssl -DCMAKE_USE_WOLFSSL=ON . Assisted-by: Brad King Closes #5095
* tool_operate: fix add_parallel_transfers when more are in queueDaniel Stenberg2020-03-161-1/+1
| | | | | | | | | | | | Trying to return early from the function if no new transfers were added would break the "morep" argument and cause issues. This could lead to zero content "transfers" (within quotes since they would never be started) when parallel-max was reduced. Reported-by: Gavin Wong Analyzed-by: Jay Satiro Fixes #4937 Closes #5112
* vtls: free ssl_config leftovers on out-of-memoryDaniel Stenberg2020-03-161-0/+1
| | | | | | | | Torture testing 2034 and 2037 found this. Reported-by: Marc Hörsken Fixes #5108 Closes #5109
* ci/tests: fix Azure Pipelines not running for pull requestsMarc Hoersken2020-03-161-2/+10
| | | | Closes #5111
* gskit: update the copyright year rangeDaniel Stenberg2020-03-151-1/+1
| | | | Follow-up from 083603c63a3
* gskit: use our internal select wrapper for portabilityMarc Hoersken2020-03-151-2/+1
| | | | | Follow up to c52b342 Closes #5106
* tests: fix verification of stdout in test 1452 due to newlineMarc Hoersken2020-03-151-1/+3
| | | | Fixes test1452:41:1: error: missing </stdout> tag before </verify>
* ci/tests: install impacket for SMB tests on FreeBSD using CirrusCIMarc Hoersken2020-03-151-1/+2
| | | | | | Also force the package index/cache to be updated before installing. Closes #5103
* tests/README: add note about manually installing python-impacketMarc Hoersken2020-03-151-0/+9
| | | | Follow up to 4be2560
* transfer: cap retries of "dead connections" to 5Daniel Stenberg2020-03-152-1/+7
| | | | | | | | | | When libcurl retries a connection due to it being "seemingly dead" or by REFUSED_STREAM, it will now only do it up five times before giving up, to avoid never-ending loops. Reported-by: Dima Tisnek Bug: https://curl.haxx.se/mail/lib-2020-03/0044.html Closes #5074
* TODO: TLS-PSK with OpenSSLDaniel Stenberg2020-03-151-0/+10
| | | | Closes #5081
* select: add 'timeout_ms' wrap-around precaution to Curl_selectMarc Hoersken2020-03-151-0/+6
|
* select: fix 'pending_ms' is assigned a value that is never usedMarc Hoersken2020-03-151-5/+5
| | | | Detected by Codacy
* select: move duplicate select preparation code into Curl_selectMarc Hoersken2020-03-152-81/+89
| | | | | | Reviewed by Daniel Stenberg Reviewed by Marcel Raad Closes #5078
* connect: happy eyeballs cleanupDaniel Stenberg2020-03-152-53/+51
| | | | | | | | | | | | | | | Make sure each separate index in connn->tempaddr[] is used for a fixed family (and only that family) during the connection process. If family one takes a long time and family two fails immediately, the previous logic could misbehave and retry the same family two address repeatedly. Reported-by: Paul Vixie Reported-by: Jay Satiro Fixes #5083 Fixes #4954 Closes #5089
* ci/tests: fix and align setting TFLAGS for make test-nonflakyMarc Hoersken2020-03-151-18/+20
|
* ci/tests: install test suite dependencies stunnel and impacketMarc Hoersken2020-03-151-1/+16
|
* tests: remove python_dependencies for smbserver from our treeMarc Hoersken2020-03-1517-18137/+14
| | | | | | | | | | | | Users of the SMB tests will have to install impacket manually. Reasoning: our in-tree version of impacket was quite outdated and only compatible with Python 2 which is already end-of-life. Upgrading to Python 3 and a compatible impacket version would require to import additional Python-only and CPython-extension dependencies. This would have hindered portability enormously. Closes #5094
* Makefile.m32: Improve windres parameter compatibilityJay Satiro2020-03-143-3/+3
| | | | | | | | | | | | - s/COFF/coff/ Some versions of windres do not recognize uppercase COFF as a valid way to specify the COFF output format. Reported-by: Steven Penny Fixes https://github.com/curl/curl/issues/5099 Closes https://github.com/curl/curl/pull/5101