summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* openssl: adapt to v3's new const for a few API callsbagder/openssl3-constDaniel Stenberg2021-03-081-3/+9
|
* quiche: fix crash when failing to connectDaniel Stenberg2021-03-082-1/+5
| | | | | | Reported-by: ウさん Fixes #6664 Closes #6701
* RELEASE-NOTES: syncedDaniel Stenberg2021-03-081-5/+5
| | | | Fixed the release counter and added a missing contributor
* RELEASE-NOTES: syncedDaniel Stenberg2021-03-061-9/+40
|
* dynbuf: bump the max HTTP request to 1MBDaniel Stenberg2021-03-061-2/+2
| | | | | | | | Raised from 128KB to allow longer request headers. Reported-by: Carl Zogheib Fixes #6681 Closes #6685
* schannel: Evaluate CURLOPT_SSL_OPTIONS via SSL_SET_OPTION macroJay Satiro2021-03-063-4/+4
| | | | | | | | | | | | | | | | | | | | | | - Change use of those options from CURLOPT_SSL_OPTIONS that are not already evaluated via SSL_SET_OPTION in schannel and secure transport to use that instead of data->set.ssl.optname. Example: Evaluate SSL_SET_OPTION(no_revoke) instead of data->set.ssl.no_revoke. This change is because options set via CURLOPT_SSL_OPTIONS (data->set.ssl.optname) are separate from those set for HTTPS proxy via CURLOPT_PROXY_SSL_OPTIONS (data->set.proxy_ssl.optname). The SSL_SET_OPTION macro determines whether the connection is for HTTPS proxy and based on that which option to evaluate. Since neither Schannel nor Secure Transport backends currently support HTTPS proxy in libcurl, this change is for posterity and has no other effect. Closes https://github.com/curl/curl/pull/6690
* c-hyper: Remove superfluous pointer checkkokke2021-03-051-2/+0
| | | | | | | | `n` pointer is never NULL once set. Found by static analysis. Ref: https://github.com/curl/curl/issues/6696 Closes https://github.com/curl/curl/pull/6697
* version.d: Add missing features to the features listJay Satiro2021-03-041-6/+16
| | | | | | | | | | | | - Add missing entries for gsasl, Kerberos, NTLM_WB, TrackMemory, Unicode and zstd. - Remove krb4 since it's no longer a feature. Reported-by: Ádler Jonas Gross Fixes https://github.com/curl/curl/issues/6677 Closes https://github.com/curl/curl/pull/6687
* docs: add missing Arg tag to --stderrVladimir Varlamov2021-03-042-1/+2
| | | | | | | | | | | | | | | Prior to this change the required argument was not shown. curl.1 before: --stderr curl.1 after: --stderr <file> curl --help before: --stderr Where to redirect stderr curl --help after: --stderr <file> Where to redirect stderr Closes https://github.com/curl/curl/pull/6692
* projects: Update VS projects for OpenSSL 1.1.xJay Satiro2021-03-0321-468/+514
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Update VS project templates to use the OpenSSL lib names and include directories for OpenSSL 1.1.x. This change means the VS project files will now build only with OpenSSL 1.1.x when an OpenSSL configuration is chosen. Prior to this change the project files built only with OpenSSL 1.0.x (end-of-life) when an OpenSSL configuration was chosen. The template changes in this commit were made by script: libeay32.lib => libcrypto.lib ssleay32.lib => libssl.lib ..\..\..\..\..\openssl\inc32 => ..\..\..\..\..\openssl\include And since the output directory now contains the includes it's prepended: ..\..\..\..\..\openssl\build\Win{32,64}\VC{6..15}\{DLL,LIB} {Debug,Release}\include - Change build-openssl.bat to copy the build's include directory to the output directory (as seen above). Each build has its own opensslconf.h which is different so we can't just include the source include directory any longer. Note the include directory in the output directory is a full copy from the build so technically we don't need to include the OpenSSL source include directory in the template. However, I left it last in case the user made a custom OpenSSL build using the old method which would put opensslconf in the OpenSSL source include directory. - Change build-openssl.bat to use a temporary install directory that is different from the temporary build directory. For OpenSSL 1.1.x the temporary paths must be separate not a descendant of the other, otherwise pdb files will be lost between builds. Ref: https://curl.se/mail/lib-2018-10/0049.html Ref: https://gist.github.com/jay/125191c35bbeb894444eff827651f755 Ref; https://github.com/openssl/openssl/issues/10005 Fixes https://github.com/curl/curl/issues/984 Closes https://github.com/curl/curl/pull/6675
* doh: Inherit CURLOPT_STDERR from user's easy handleJay Satiro2021-03-021-0/+2
| | | | | | | | | | | | Prior to this change if the user set their easy handle's error stream to something other than stderr it was not inherited by the doh handles, which meant that they would still write to the default standard error stream (stderr) for verbose output. Bug: https://github.com/curl/curl/issues/6605 Reported-by: arvids-kokins-bidstack@users.noreply.github.com Closes https://github.com/curl/curl/pull/6661
* CI/azure: replace python-impacket with python3-impacketMarc Hoersken2021-03-011-1/+1
| | | | | | | As of this month Azure DevOps uses Ubuntu 20.04 LTS which no longer supports Python 2 and instead ships Python 3. Closes #6678
* runtests.pl: kill processes locking test log filesMarc Hoersken2021-03-013-8/+56
| | | | | | | | | | | | | | Introduce a new runtests.pl command option: -rm For now only required and implemented for Windows. Ignore stunnel logs due to long running processes. Requires Sysinternals handle[64].exe to be on PATH. Reviewed-by: Jay Satiro Ref: #6058 Closes #6179
* pathhelp.pm: fix use of pwd -L in Msys environmentMarc Hoersken2021-03-011-3/+25
| | | | | | | | | While Msys2 has a pwd binary which supports -L, Msys1 only has a shell built-in with that feature. Reviewed-by: Jay Satiro Part of #6179
* ldap: use correct memory free functionDaniel Gustafsson2021-03-011-3/+3
| | | | | | | | | | | | | unescaped is coming from Curl_urldecode and not a unicode conversion function, so reclaiming its memory should be performed with a normal call to free rather than curlx_unicodefree. In reality, this is the same thing as curlx_unicodefree is implemented as a call to free but that's not guaranteed to always hold. Using the curlx macro present issues with memory debugging as well. Closes #6671 Reviewed-by: Jay Satiro <raysatiro@yahoo.com> Reviewed-by: Daniel Stenberg <daniel@haxx.se>
* url: fix typo in commentDaniel Gustafsson2021-02-281-1/+1
| | | | Correct a small typo which snuck in with a304051620.
* tool_help: Increase space between option and descriptionJay Satiro2021-02-284-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Increase the minimum number of spaces between the option and the description from 1 to 2. Before: ~~~ -u, --user <user:password> Server user and password -A, --user-agent <name> Send User-Agent <name> to server -v, --verbose Make the operation more talkative -V, --version Show version number and quit -w, --write-out <format> Use output FORMAT after completion --xattr Store metadata in extended file attributes ~~~ After: ~~~ -u, --user <user:password> Server user and password -A, --user-agent <name> Send User-Agent <name> to server -v, --verbose Make the operation more talkative -V, --version Show version number and quit -w, --write-out <format> Use output FORMAT after completion --xattr Store metadata in extended file attributes ~~~ Closes https://github.com/curl/curl/pull/6674
* curl: set CURLOPT_NEW_FILE_PERMS if requestedDaniel Stenberg2021-02-271-0/+3
| | | | | | | | | | The --create-file-mode code logic accepted the value but never actually passed it on to libcurl! Follow-up to a7696c73436f (shipped in 7.75.0) Reported-by: Johannes Lesr Fixes #6657 Closes #6666
* tool_operate: check argc before accessing argv[1]Daniel Stenberg2021-02-271-1/+1
| | | | | | | Follow-up to 09363500b Reported-by: Emil Engler Reviewed-by: Daniel Gustafsson Closes #6668
* openssl: remove get_ssl_version_txt in favor of SSL_get_versionJean-Philippe Menil2021-02-261-30/+1
| | | | | | | | | | | | openssl: use SSL_get_version to get connection protocol Replace our bespoke get_ssl_version_txt in favor of SSL_get_version. We can get rid of few lines of code, since SSL_get_version achieve the exact same thing Closes #6665 Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Signed-off-by: Jean-Philippe Menil <jpmenil@gmail.com>
* gnutls: Fix nettle discoveryDaniel Gustafsson2021-02-253-70/+2
| | | | | | | | | | | | | | | | | Commit e06fa7462ac258c removed support for libgcrypt leaving only support for nettle which has been the default crypto library in GnuTLS for a long time. There were however a few conditionals on USE_GNUTLS_NETTLE which cause compilation errors in the metalink code (as it used the gcrypt fallback instead as a result). See the below autobuild for an example of the error: https://curl.se/dev/log.cgi?id=20210225123226-30704#prob1 This removes all uses of USE_GNUTLS_NETTLE and also removes the gcrypt support from the metalink code while at it. Closes #6656 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
* cookies: Support multiple -b parametersDaniel Gustafsson2021-02-257-15/+48
| | | | | | | | | | Previously only a single -b cookie parameter was supported with the last one winning. This adds support for supplying multiple -b params to have them serialized semicolon separated. Both cookiefiles and cookies can be entered multiple times. Closes #6649 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
* build: remove all traces of USE_BLOCKING_SOCKETSDaniel Stenberg2021-02-256-20/+4
| | | | | | libcurl doesn't behave properly with the define set Closes #6655
* RELEASE-NOTES: syncedDaniel Stenberg2021-02-251-9/+25
|
* docs: Fix typosDaniel Gustafsson2021-02-252-3/+3
| | | | Random typos spotted when skimming docs.
* cookies: Use named parameters in header prototypesDaniel Gustafsson2021-02-231-6/+7
| | | | | | | | Align header with project style of using named parameters in the function prototypes to aid readability and self-documentation. Closes #6653 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
* urldata: make 'actions[]' use unsigned char instead of intDaniel Stenberg2021-02-242-10/+10
| | | | | | | ... as it only needs a few bits per index anyway. Reviewed-by: Daniel Gustafsson Closes #6648
* configure: fail if --with-quiche is used and quiche isn't foundDaniel Stenberg2021-02-241-4/+2
| | | | Closes #6652
* cmake: use CMAKE_INSTALL_INCLUDEDIR indirectionGregor Jasny2021-02-241-1/+1
| | | | | Reviewed-by: Sergei Nikulov Closes #6440
* mingw: enable using strcasecmp()Viktor Szakats2021-02-231-1/+3
| | | | | | | | This makes the 'Features:' list sorted case-insensitively, bringing output in-line with *nix builds. Reviewed-by: Jay Satiro Closes #6644
* build: delete unused feature guardsViktor Szakats2021-02-2311-133/+7
| | | | | | | | | | - `HAVE_STRNCASECMP` - `HAVE_TCGETATTR` - `HAVE_TCSETATTR` Reviewed-by: Jay Satiro Reviewed-by: Daniel Stenberg Closes #6645
* docs: add CURLOPT_CURLU to 'See also' in curl_url_ functionsJay Satiro2021-02-236-5/+6
| | | | Closes https://github.com/curl/curl/pull/6639
* configure: make hyper opt-in, and fail if missingJacob Hoffman-Andrews2021-02-231-17/+11
| | | | | | | | | | | | Previously, configure would look for hyper by default, and use it if found; otherwise it would not use hyper, and not error. Now, configure will not look for hyper unless --with-hyper is passed. If configure looks for hyper and fails, it will error. Also, add -ld -lpthread -lm to Hyper's libs. I think they are required. Closes #6598
* multi: do once-per-transfer inits in before_perform in DID stateDaniel Stenberg2021-02-221-4/+4
| | | | | | | | | | | | | ... since the state machine might go to RATELIMITING and then back to PERFORMING doing once-per-transfer inits in that function is wrong and it caused problems with receiving chunked HTTP and it set the PRETRANSFER time much too often... Regression from b68dc34af341805aeb7b3715 (shipped in 7.75.0) Reported-by: Amaury Denoyelle Fixes #6640 Closes #6641
* RELEASE-NOTES: syncedDaniel Stenberg2021-02-211-7/+46
|
* CODE_STYLE.md: fix broken link to INTERNALSDaniel Stenberg2021-02-211-2/+2
| | | | | | | ... the link would only work if browsed on GitHub, while this link now takes the user to the website instead and thus should work on either. Reported-by: David Demelier
* curl_url_set.3: mention CURLU_PATH_AS_ISDaniel Stenberg2021-02-211-2/+6
| | | | | | | | ... it has been supported since the URL API was added. Bug: https://curl.se/mail/lib-2021-02/0046.html Closes #6638
* time: enable 64-bit time_t in supported mingw environmentsViktor Szakats2021-02-211-4/+9
| | | | | | | | | | | (Unless 32-bit `time_t` is selected manually via the `_USE_32BIT_TIME_T` mingw macro.) Previously, 64-bit `time_t` was enabled on VS2005 and newer only, and 32-bit `time_t` was used on all other Windows builds. Assisted-by: Jay Satiro Closes #6636
* test1188: Check for --fail HTTP statusJay Satiro2021-02-201-6/+15
| | | | | | | | | | | | | | | - Change the test to check for curl error on HTTP 404 Not Found. test1188 tests "--write-out with %{onerror} and %{urlnum} to stderr". Prior to this change it did that by specifying a non-existent host which would cause an error. ISPs may hijack DNS and resolve non-existent hosts so the test would not work if that was the case. Ref: https://en.wikipedia.org/wiki/DNS_hijacking#Manipulation_by_ISPs Ref: https://github.com/curl/curl/issues/6621 Ref: https://github.com/curl/curl/pull/6623 Closes https://github.com/curl/curl/pull/6637
* memdebug: close debug logfile explicitly on exitJay Satiro2021-02-201-0/+17
| | | | | | | | | | | | | | | | | | | | | | | - Use atexit to register a dbg cleanup function that closes the logfile. LeakSantizier (LSAN) calls _exit() instead of exit() when a leak is detected on exit so the logfile must be closed explicitly or data could be lost. Though _exit() does not call atexit handlers such as this, LSAN's call to _exit() comes after the atexit handlers are called. Prior to this change the logfile was not explicitly closed so it was possible that if LSAN detected a leak and called _exit (which does not flush or close files like exit) then the logfile could be missing data. That could then cause curl's memanalyze to report false leaks (eg a malloc was recorded to the logfile but the corresponding free was discarded from the buffer instead of written to the logfile, then memanalyze reports that as a leak). Ref: https://github.com/google/sanitizers/issues/1374 Bug: https://github.com/curl/curl/pull/6591#issuecomment-780396541 Closes https://github.com/curl/curl/pull/6620
* curl_multibyte: always return a heap-allocated copy of stringJay Satiro2021-02-202-22/+25
| | | | | | | | | | | | | | | | | | | - Change the Windows char <-> UTF-8 conversion functions to return an allocated copy of the passed in string instead of the original. Prior to this change the curlx_convert_ functions would, as what I assume was an optimization, not make a copy of the passed in string if no conversion was required. No conversion is required in non-UNICODE Windows builds since our tchar strings are type char and remain in whatever the passed in encoding is, which is assumed to be UTF-8 but may be other encoding. In contrast the UNICODE Windows builds require conversion (wchar <-> char) and do return a copy. That inconsistency could lead to programming errors where the developer expects a copy, and does not realize that won't happen in all cases. Closes https://github.com/curl/curl/pull/6602
* http: add new files missed from referrer commitViktor Szakats2021-02-192-0/+118
| | | | | Ref: 44872aefc2d54f297caf2b0cc887df321bc9d791 Ref: #6591
* http: add support to read and store the referrer headerViktor Szakats2021-02-1915-11/+35
| | | | | | | | | - add CURLINFO_REFERER libcurl option - add --write-out '%{referer}' command-line option - extend --xattr command-line option to fill user.xdg.referrer.url extended attribute with the referrer (if there was any) Closes #6591
* urldata: remove the _ORIG suffix from string namesDaniel Stenberg2021-02-1912-82/+83
| | | | | | It doesn't provide any useful info but only makes the names longer. Closes #6624
* url: fix memory leak if OOM in the HSTS handlingDaniel Stenberg2021-02-191-1/+3
| | | | | | | Reported-by: Viktor Szakats Bug: https://github.com/curl/curl/pull/6627#issuecomment-781626205 Closes #6628
* gnutls: assume nettle crypto supportDaniel Stenberg2021-02-186-212/+24
| | | | | | | nettle has been the default crypto library with GnuTLS since 2010. By dropping support for the previous libcrypto, we simplify code. Closes #6625
* asyn-ares: use consistent resolve error messageDaniel Stenberg2021-02-184-38/+34
| | | | | | | | | | | ... with the help of Curl_resolver_error() which now is moved from asyn-thead.c and is provided globally for this purpose. Follow-up to 35ca04ce1b77636 Makes test 1188 work for c-ares builds Closes #6626
* ci: stop building on freebsd-12-1Viktor Szakats2021-02-181-1/+0
| | | | | | | | | | | | | | | | | | | An updated freebsd-12-2 image was added a few months ago, and this older one is consistently failing to go past `pkginstall`: ``` Newer FreeBSD version for package py37-mlt: To ignore this error set IGNORE_OSVERSION=yes - package: 1202000 - running kernel: 1201000 Ignore the mismatch and continue? [Y/n]: pkg: repository FreeBSD contains packages for wrong OS version: FreeBSD:12:amd64 ``` FreeBSD thread suggests that 12.1 is EOL, and best to avoid. Ref: https://forums.freebsd.org/threads/78856/ Reviewed-by: Daniel Stenberg Closes #6622
* test1188: change error from connect to resolve errorDaniel Stenberg2021-02-181-2/+2
| | | | | | | | | | | | Using the %NOLISTENPORT to trigger a connection failure is somewhat "risky" (since it isn't guaranteed to not be listened to) and caused occasional CI problems. This fix changes the infused error to be a more reliable one but still verifies the --write-out functionality properly - which is the purpose of this test. Reported-by: Jay Satiro Fixes #6621 Closes #6623
* url.c: use consistent error message for failed resolveDaniel Stenberg2021-02-181-1/+1
|