]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
5 years agoCURLOPT_SSL_OPTIONS: add *_NATIVE_CA to use Windows CA store (with openssl)
Gilles Vollant [Fri, 13 Sep 2019 09:24:00 +0000 (11:24 +0200)] 
CURLOPT_SSL_OPTIONS: add *_NATIVE_CA to use Windows CA store (with openssl)

Closes #4346

5 years agoTODO: native IDN support on macOS
Daniel Stenberg [Fri, 8 May 2020 09:46:05 +0000 (11:46 +0200)] 
TODO: native IDN support on macOS

5 years agourlapi: accept :: as a valid IPv6 address
Daniel Stenberg [Thu, 7 May 2020 10:24:27 +0000 (12:24 +0200)] 
urlapi: accept :: as a valid IPv6 address

Text 1560 is extended to verify.

Reported-by: Pavel Volgarev
Fixes #5344
Closes #5351

5 years agoTHANKS-filter: Peter Wang
Daniel Stenberg [Fri, 8 May 2020 06:39:17 +0000 (08:39 +0200)] 
THANKS-filter: Peter Wang

5 years ago*_sspi: fix bad uses of CURLE_NOT_BUILT_IN
Peter Wang [Fri, 8 May 2020 00:43:45 +0000 (10:43 +1000)] 
*_sspi: fix bad uses of CURLE_NOT_BUILT_IN

Return CURLE_AUTH_ERROR instead of CURLE_NOT_BUILT_IN for other
instances of QuerySecurityPackageInfo failing, as in
commit 2a81439553286f12cd04a4bdcdf66d8e026d8201.

Closes #5355

5 years agodocs/HTTP3: add qlog to the quiche build instruction
Daniel Stenberg [Thu, 7 May 2020 15:40:01 +0000 (17:40 +0200)] 
docs/HTTP3: add qlog to the quiche build instruction

5 years agongtcp2: introduce qlog support
Daniel Stenberg [Thu, 7 May 2020 12:17:42 +0000 (14:17 +0200)] 
ngtcp2: introduce qlog support

If the QLOGDIR environment variable is set, enable qlogging.

... and create Curl_qlogdir() in the new generic vquic/vquic.c file for
QUIC functions that are backend independent.

Closes #5353

5 years agontlm_sspi: fix bad use of CURLE_NOT_BUILT_IN
Daniel Stenberg [Thu, 7 May 2020 07:44:00 +0000 (09:44 +0200)] 
ntlm_sspi: fix bad use of CURLE_NOT_BUILT_IN

That return code is reserved for build-time conditional code not being
present while this was a regular run-time error from a Windows API.

Reported-by: wangp on github
Fixes #5349
Closes #5350

5 years agoruntests: show elapsed test time with higher precision (ms)
Daniel Stenberg [Thu, 7 May 2020 10:23:40 +0000 (12:23 +0200)] 
runtests: show elapsed test time with higher precision (ms)

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Thu, 7 May 2020 08:12:33 +0000 (10:12 +0200)] 
RELEASE-NOTES: synced

5 years agohttp2: simplify and clean up trailer handling
Daniel Stenberg [Wed, 6 May 2020 21:31:43 +0000 (23:31 +0200)] 
http2: simplify and clean up trailer handling

Triggered by a crash detected by OSS-Fuzz after the dynbuf introduction in
ed35d6590e72. This should make the trailer handling more straight forward and
hopefully less error-prone.

Deliver the trailer header to the callback already at receive-time. No
longer caches the trailers to get delivered at end of stream.

Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=22030
Closes #5348

5 years agoappveyor: disable test 1139 instead of ignoring it
Marc Hoersken [Thu, 7 May 2020 04:51:22 +0000 (06:51 +0200)] 
appveyor: disable test 1139 instead of ignoring it

Spending time on manpage checking makes no sense
for these builds due to lacking manpage support.

5 years agoappveyor: disable flaky test 1501 and ignore broken 1056
Marc Hoersken [Thu, 7 May 2020 04:45:26 +0000 (06:45 +0200)] 
appveyor: disable flaky test 1501 and ignore broken 1056

Test 1501 is flaky on Windows CI due to being time sensitive
and the testsuite relying on taskkill.exe to check for the
existance of processes which can take to much time itself.

Test 1056 is broken in autotools-based Windows builds due
to scope ID support missing in these builds at the moment.

5 years agotest613.pl: make tests 613 and 614 work with OpenSSH for Windows
Marc Hoersken [Tue, 5 May 2020 20:05:49 +0000 (22:05 +0200)] 
test613.pl: make tests 613 and 614 work with OpenSSH for Windows

OpenSSH for Windows shows group and other/world permissions as *,
because those concepts do not exist on Windows. It also does not
show the current or parent directory, so we just ignore those.

Reviewed-by: Daniel Stenberg
Closes #5328

5 years agoruntests: set +x mode again
Daniel Stenberg [Wed, 6 May 2020 06:14:47 +0000 (08:14 +0200)] 
runtests: set +x mode again

5 years agolibssh2: convert over to use dynbuf
Daniel Stenberg [Mon, 4 May 2020 12:44:07 +0000 (14:44 +0200)] 
libssh2: convert over to use dynbuf

In my very basic test that lists sftp://127.0.0.1/tmp/, this patched
code makes 161 allocations compared to 194 in git master. A 17%
reduction.

Closes #5336

5 years agotravis: add "qlog" as feature in the quiche build
Daniel Stenberg [Tue, 5 May 2020 11:10:23 +0000 (13:10 +0200)] 
travis: add "qlog" as feature in the quiche build

5 years agoquiche: enable qlog output
Daniel Stenberg [Mon, 4 May 2020 16:57:34 +0000 (17:57 +0100)] 
quiche: enable qlog output

quiche has the potential to log qlog files. To enable this, you must
build quiche with the qlog feature enabled `cargo build --features
qlog`. curl then passes a file descriptor to quiche, which takes
ownership of the file. The FD transfer only works on UNIX.

The convention is to enable logging when the QLOGDIR environment is
set. This should be a path to a folder where files are written with the
naming template <SCID>.qlog.

Co-authored-by: Lucas Pardue
Replaces #5337
Closes #5341

5 years agourldata.h: remove #define HEADERSIZE, not used anymore
Daniel Stenberg [Mon, 4 May 2020 14:52:24 +0000 (16:52 +0200)] 
urldata.h: remove #define HEADERSIZE, not used anymore

Follow-up to ed35d6590e72c

5 years agongtcp2: convert to dynbuf
Daniel Stenberg [Mon, 4 May 2020 09:37:12 +0000 (11:37 +0200)] 
ngtcp2: convert to dynbuf

Closes #5335

5 years agoconnect: make happy eyeballs work for QUIC (again)
Daniel Stenberg [Mon, 4 May 2020 10:35:18 +0000 (12:35 +0200)] 
connect: make happy eyeballs work for QUIC (again)

Follow-up from dbd16c3e256c6c (regression in 7.70.0)

Closes #5334

5 years agoconnect: add two asserts to clue code analyzers in a little
Daniel Stenberg [Mon, 4 May 2020 09:03:29 +0000 (11:03 +0200)] 
connect: add two asserts to clue code analyzers in a little

5 years agohttp_proxy: ported to use dynbuf instead of a static size buffer
Daniel Stenberg [Sat, 2 May 2020 15:04:08 +0000 (17:04 +0200)] 
http_proxy: ported to use dynbuf instead of a static size buffer

Removes a 16K static buffer from the easy handle. Simplifies the code.

5 years agodynbuf: introduce internal generic dynamic buffer functions
Daniel Stenberg [Sat, 2 May 2020 15:04:08 +0000 (17:04 +0200)] 
dynbuf: introduce internal generic dynamic buffer functions

A common set of functions instead of many separate implementations for
creating buffers that can grow when appending data to them. Existing
functionality has been ported over.

In my early basic testing, the total number of allocations seem at
roughly the same amount as before, possibly a few less.

See docs/DYNBUF.md for a description of the API.

Closes #5300

5 years agoruntests: remove sleep calls
Daniel Stenberg [Sat, 2 May 2020 14:31:52 +0000 (16:31 +0200)] 
runtests: remove sleep calls

Remove many one second sleeps that were done *after* each newly started
test server already has been verified. They should not have any purpose
there.

Closes #5323

5 years agoasyn-*: remove support for never-used NULL entry pointers
Daniel Stenberg [Sat, 2 May 2020 14:59:38 +0000 (16:59 +0200)] 
asyn-*: remove support for never-used NULL entry pointers

... and instead convert those to asserts to make sure they are truly
never NULL.

Closes #5324

5 years agodoc: Rename VERSIONS to VERSIONS.md as it already has Markdown syntax
Emil Engler [Sat, 2 May 2020 15:30:33 +0000 (17:30 +0200)] 
doc: Rename VERSIONS to VERSIONS.md as it already has Markdown syntax

Closes #5325

5 years agoasyn-thread: fix cppcheck warning
Jay Satiro [Sat, 2 May 2020 18:53:09 +0000 (14:53 -0400)] 
asyn-thread: fix cppcheck warning

- Check for NULL entry parameter before attempting to deref entry in
  Curl_resolver_is_resolved, like is already done in asyn-ares.

This is to silence cppcheck which does not seem to understand that
asyn-ares and asyn-thread have separate Curl_resolver_is_resolved
and those units are mutually exclusive. Prior to this change it warned
of a scenario where asyn-thread's Curl_resolver_is_resolved is called
with a NULL entry from asyn-ares, but that couldn't happen.

Reported-by: rl1987@users.noreply.github.com
Fixes https://github.com/curl/curl/issues/5326

5 years agoselect: fix overflow protection in Curl_socket_check
Jay Satiro [Thu, 23 Apr 2020 19:08:56 +0000 (15:08 -0400)] 
select: fix overflow protection in Curl_socket_check

Follow-up to a96c752 which changed the timeout_ms type from time_t to
timediff_t.

Ref: https://github.com/curl/curl/pull/5240

Closes https://github.com/curl/curl/pull/5286

5 years agosockfilt: make select_ws stop waiting on exit signal event
Marc Hoersken [Sat, 18 Apr 2020 19:54:40 +0000 (21:54 +0200)] 
sockfilt: make select_ws stop waiting on exit signal event

This makes sure that select_ws behaves similar to real select
which stops waiting on a signal handler being triggered.

This makes it possible to gracefully stop sockfilt.exe on
Windows with taskkill /IM sockfilt.exe (without /F force flag).

Reviewed-by: Jay Satiro
Part of #5260

5 years agotests/server/util.[ch]: add exit event to stop waiting on Windows
Marc Hoersken [Sat, 18 Apr 2020 19:51:19 +0000 (21:51 +0200)] 
tests/server/util.[ch]: add exit event to stop waiting on Windows

This commit adds a global exit event to the test servers that
Windows-specific wait routines can use to get triggered if the
program was signaled to be terminated, eg. select_ws in sockfilt.c

The exit event will be managed by the signal handling code and is
set to not reset automatically to support multiple wait routines.

Reviewed-by: Jay Satiro
Closes #5260

5 years agotests/server/util.c: fix thread handle not being closed
Marc Hoersken [Sat, 18 Apr 2020 19:46:14 +0000 (21:46 +0200)] 
tests/server/util.c: fix thread handle not being closed

Reviewed-by: Jay Satiro
Part of #5260

5 years agotests/server/util.c: use raise instead of calling signal handler
Marc Hoersken [Sat, 18 Apr 2020 19:42:05 +0000 (21:42 +0200)] 
tests/server/util.c: use raise instead of calling signal handler

Use raise to trigger signal handler instead of calling it
directly and causing potential unexpected control flow.

Reviewed-by: Jay Satiro
Part of #5260

5 years agotests: add support for SSH server variant specific transfer paths
Marc Hoersken [Sun, 26 Apr 2020 16:31:00 +0000 (18:31 +0200)] 
tests: add support for SSH server variant specific transfer paths

OpenSSH for Windows requires paths in the format of /C:/
instead of the pseudo-POSIX paths /cygdrive/c/ or just /c/

Reviewed-by: Daniel Stenberg
Closes #5298

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sat, 2 May 2020 14:42:34 +0000 (16:42 +0200)] 
RELEASE-NOTES: synced

5 years agolibssh2: set the expected total size in SCP upload init
Daniel Stenberg [Fri, 1 May 2020 15:42:19 +0000 (17:42 +0200)] 
libssh2: set the expected total size in SCP upload init

... as otherwise the progress callback gets called without that
information, making the progress meter have less info.

Reported-by: Murugan Balraj
Bug: https://curl.haxx.se/mail/archive-2020-05/0000.html
Closes #5317

5 years agoruntests: make the logmsg from the ssh server only show in verbose
Daniel Stenberg [Sat, 2 May 2020 13:51:05 +0000 (15:51 +0200)] 
runtests: make the logmsg from the ssh server only show in verbose

5 years agotests: make test 1248 + 1249 use %NOLISTENPORT
Daniel Stenberg [Fri, 1 May 2020 21:06:46 +0000 (23:06 +0200)] 
tests: make test 1248 + 1249 use %NOLISTENPORT

... instead of a port of a non-running server so that it works
stand-alone.

Closes #5318

5 years agoexamples: remove asiohiper.cpp
Daniel Stenberg [Sat, 2 May 2020 09:55:24 +0000 (11:55 +0200)] 
examples: remove asiohiper.cpp

This example has repeatedly been reported to contain bugs, and as users
copy and paste code from this into production, I now deem it better to
not provide the example at all.

Closes #5090
Closes #5322

5 years agodoc: add missing closing parenthesis in CURLINFO_SSL_VERIFYRESULT.3
Emil Engler [Sat, 2 May 2020 06:49:33 +0000 (08:49 +0200)] 
doc: add missing closing parenthesis in CURLINFO_SSL_VERIFYRESULT.3

Closes #5320

5 years agoKNOWN_BUGS: Remove "curl --upload-file . hang if delay in STDIN"
Emil Engler [Sat, 2 May 2020 06:38:17 +0000 (08:38 +0200)] 
KNOWN_BUGS: Remove "curl --upload-file . hang if delay in STDIN"

It was fixed in 9a2cbf3

Closes #5319

5 years agocirrus: disable SFTP and SCP tests
Daniel Stenberg [Thu, 30 Apr 2020 15:42:18 +0000 (17:42 +0200)] 
cirrus: disable SFTP and SCP tests

... as we can't seem to start the sshd server on it. Those problems
existed before d1239b50bececd (running the SSH server on a random port),
but they're more noticable now since there are more failed attempts in
the logs.

Closes #5315

5 years agoruntests: fix typo in the existence of disabled tests checker
Emil Engler [Thu, 30 Apr 2020 18:04:50 +0000 (20:04 +0200)] 
runtests: fix typo in the existence of disabled tests checker

Closes #5316

5 years agotest75: Remove precheck test
Dan Fandrich [Thu, 30 Apr 2020 14:56:59 +0000 (16:56 +0200)] 
test75: Remove precheck test

This has not been needed since commit 9fa42bed and often prevents it
from running at all with dynamic test ports.

5 years agotests: Stop referring to server ports when they're not used 5314/head
Dan Fandrich [Thu, 30 Apr 2020 14:00:31 +0000 (16:00 +0200)] 
tests: Stop referring to server ports when they're not used

Several tests referred to specific server ports even when the test
didn't actually use that server or specify that it's needed. In such
cases, the test harness substitutes the text "[not running]" as the port
number which causes many such tests to fail due to the inability to
parse the URL.  These tests are changed to use %NOLISTENPORT which will
always be substituted correctly.

5 years agoGnuTLS: Backend support for CURLINFO_SSL_VERIFYRESULT
Emil Engler [Thu, 23 Apr 2020 19:36:35 +0000 (21:36 +0200)] 
GnuTLS: Backend support for CURLINFO_SSL_VERIFYRESULT

Closes #5287

5 years agoconncache: various concept cleanups
Daniel Stenberg [Sun, 26 Apr 2020 22:33:21 +0000 (00:33 +0200)] 
conncache: various concept cleanups

More connection cache accesses are protected by locks.

CONNCACHE_* is a beter prefix for the connection cache lock macros.

Curl_attach_connnection: now called as soon as there's a connection
struct available and before the connection is added to the connection
cache.

Curl_disconnect: now assumes that the connection is already removed from
the connection cache.

Ref: #4915
Closes #5009

5 years agotests: tests: run stunnel for HTTPS and FTPS on dynamic ports
Daniel Stenberg [Tue, 21 Apr 2020 07:57:22 +0000 (09:57 +0200)] 
tests: tests: run stunnel for HTTPS and FTPS on dynamic ports

As stunnel is an external tool and it has no specific option to export
the actually used port number when asked to listen to 0, runtests
instead iterates over ten randomly picked high number ports and sticks
to the first one stunnel can listen to.

Closes #5267

5 years agotests: pick a random port number for SSH
Daniel Stenberg [Mon, 20 Apr 2020 13:10:24 +0000 (15:10 +0200)] 
tests: pick a random port number for SSH

Since sshd doesn't have such an option by itself, we iterate over a
series of random ports until one works.

Closes #5273

5 years agolibtest/cmake: Remove commented code
Rikard Falkeborn [Tue, 28 Apr 2020 21:43:49 +0000 (23:43 +0200)] 
libtest/cmake: Remove commented code

These were commented out in e9dd0998706a when Makefile.inc was included
instead. 11 years have passed since then and the commented code is of
course very outdated. Remove it to avoid confusion.

Closes #5311

5 years agoschannel: source code reindent
Daniel Stenberg [Mon, 27 Apr 2020 15:09:27 +0000 (17:09 +0200)] 
schannel: source code reindent

White space edits only. Conform better to standard curl source code
indenting style.

Closes #5305

5 years agotest1177: look for curl.h in source directory
Kamil Dudka [Wed, 29 Apr 2020 11:27:20 +0000 (13:27 +0200)] 
test1177: look for curl.h in source directory

If we use a separate build directory, there is no copy of the header.

Closes #5310

5 years agotests: look for preprocessed tests in build directory
Kamil Dudka [Wed, 29 Apr 2020 11:26:14 +0000 (13:26 +0200)] 
tests: look for preprocessed tests in build directory

... which is not always the same directory as source directory

Closes #5310

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 29 Apr 2020 10:21:09 +0000 (12:21 +0200)] 
RELEASE-NOTES: synced

... and bumped curlver.h to 7.70.1

5 years agoRELEASE-NOTES: 7.70.0 curl-7_70_0
Daniel Stenberg [Wed, 29 Apr 2020 06:01:49 +0000 (08:01 +0200)] 
RELEASE-NOTES: 7.70.0

5 years agoTHANKS: synced with the 7.70.0 release
Daniel Stenberg [Wed, 29 Apr 2020 06:01:48 +0000 (08:01 +0200)] 
THANKS: synced with the 7.70.0 release

5 years agoheaders: copyright range fix
Daniel Stenberg [Tue, 28 Apr 2020 16:10:46 +0000 (18:10 +0200)] 
headers: copyright range fix

5 years agodoh: Constify some input pointers
Rikard Falkeborn [Mon, 27 Apr 2020 10:07:34 +0000 (12:07 +0200)] 
doh: Constify some input pointers

Closes #5306

5 years agonss: check for PK11_CreateDigestContext() returning NULL
Daniel Stenberg [Mon, 27 Apr 2020 10:21:17 +0000 (12:21 +0200)] 
nss: check for PK11_CreateDigestContext() returning NULL

... to avoid crashes!

Reported-by: Hao Wu
Fixes #5302
Closes #5303

5 years agotravis: bump the wolfssl CI build to use 4.4.0
Daniel Stenberg [Mon, 27 Apr 2020 06:38:52 +0000 (08:38 +0200)] 
travis: bump the wolfssl CI build to use 4.4.0

Closes #5301

5 years agocopyright updates: adjust year ranges
Daniel Stenberg [Sun, 26 Apr 2020 21:59:22 +0000 (23:59 +0200)] 
copyright updates: adjust year ranges

5 years agoCI: do not include */ci branches in PR builds
Marc Hoersken [Sun, 26 Apr 2020 17:24:11 +0000 (19:24 +0200)] 
CI: do not include */ci branches in PR builds

Align Azure Pipelines with GitHub Actions.

5 years agoruntests: check for the disabled tests relative srcdir
Daniel Stenberg [Sat, 25 Apr 2020 14:30:26 +0000 (16:30 +0200)] 
runtests: check for the disabled tests relative srcdir

To make it work correctly for out-of-tree builds.

Follow-up to 75e8feb6fb08b

Bug: https://github.com/curl/curl/pull/5288#issuecomment-619346389
Reported-by: Marcel Raad
Closes #5297

5 years agoruntests: revert commenting out a line I did for debugging
Daniel Stenberg [Sat, 25 Apr 2020 14:23:38 +0000 (16:23 +0200)] 
runtests: revert commenting out a line I did for debugging

Follow-up to 11091cd4d. It was not meant to be pushed!

5 years agosmtp: set auth correctly
Daniel Stenberg [Fri, 24 Apr 2020 22:22:21 +0000 (00:22 +0200)] 
smtp: set auth correctly

Regression since 7.69.0 and 68fb25fa3fcff.

The code wrongly assigned 'from' instead of 'auth' which probably was a
copy and paste mistake from other code, leading to that auth could
remain NULL and later cause an error to be returned.

Assisted-by: Eric Sauvageau
Fixes #5294
Closes #5295

5 years agolib: clean up whitespace
Marcel Raad [Sat, 25 Apr 2020 09:15:49 +0000 (11:15 +0200)] 
lib: clean up whitespace

This fixes CodeFactor warnings.

5 years agolibssh: avoid options override by configuration files
Anderson Toshiyuki Sasaki [Wed, 22 Apr 2020 12:36:31 +0000 (14:36 +0200)] 
libssh: avoid options override by configuration files

Previously, options set explicitly through command line options could be
overridden by the configuration files parsed automatically when
ssh_connect() was called.

By calling ssh_options_parse_config() explicitly, the configuration
files are parsed before setting the options, avoiding the options
override.  Once the configuration files are parsed, the automatic
configuration parsing is not executed.

Fixes #4972
Closes #5283
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
5 years agoruntests: when <killserver> mentions http, kill http/2 too
Daniel Stenberg [Fri, 24 Apr 2020 11:29:48 +0000 (13:29 +0200)] 
runtests: when <killserver> mentions http, kill http/2 too

Since the http2 test server is a mere proxy that needs to know about the
dynamic port the HTTP server is using, it too needs to get restarted
when the http server is killed.

A regression caused by 80d6515.

Fixes #5289
Closes #5291

5 years agodocs: fix two typos
Yuri Slobodyanyuk [Fri, 24 Apr 2020 14:23:22 +0000 (17:23 +0300)] 
docs: fix two typos

Closes #5292

5 years agotests/git: ignore mqttd and port files
Emil Engler [Fri, 24 Apr 2020 10:49:45 +0000 (12:49 +0200)] 
tests/git: ignore mqttd and port files

Closes #5290

5 years agotests: make runtests check that disabled tests exists
Daniel Stenberg [Fri, 24 Apr 2020 09:21:01 +0000 (11:21 +0200)] 
tests: make runtests check that disabled tests exists

... and error out if so. Removed '536' from DISABLED as there is no such
test file.

Closes #5288

5 years agotest1154: set a proper name
Daniel Stenberg [Fri, 24 Apr 2020 06:56:01 +0000 (08:56 +0200)] 
test1154: set a proper name

5 years agoselect: make Curl_socket_check take timediff_t timeout
Daniel Stenberg [Wed, 15 Apr 2020 08:27:20 +0000 (10:27 +0200)] 
select: make Curl_socket_check take timediff_t timeout

Coverity found CID 1461718:

Integer handling issues (CONSTANT_EXPRESSION_RESULT) "timeout_ms >
9223372036854775807L" is always false regardless of the values of its
operands. This occurs as the logical second operand of "||".

Closes #5240

5 years agolibcurl-multi.3: added missing full stop
i-ky [Thu, 23 Apr 2020 11:13:35 +0000 (14:13 +0300)] 
libcurl-multi.3: added missing full stop

Closes #5285

5 years agotransfer: Switch PUT to GET/HEAD on 303 redirect
Jay Satiro [Thu, 16 Apr 2020 18:15:34 +0000 (14:15 -0400)] 
transfer: Switch PUT to GET/HEAD on 303 redirect

Prior to this change if there was a 303 reply to a PUT request then
the subsequent request to respond to that redirect would also be a PUT.
It was determined that was most likely incorrect based on the language
of the RFCs. Basically 303 means "see other" resource, which implies it
is most likely not the same resource, therefore we should not try to PUT
to that different resource.

Refer to the discussions in #5237 and #5248 for more information.

Fixes https://github.com/curl/curl/issues/5237
Closes https://github.com/curl/curl/pull/5248

5 years agolib/mk-ca-bundle: skip empty certs
Daniel Stenberg [Wed, 22 Apr 2020 06:13:23 +0000 (08:13 +0200)] 
lib/mk-ca-bundle: skip empty certs

Reviewed-by: Emil Engler
Reported-by: Ashwin Metpalli
Fixes #5278
Closes #5280

5 years agoversion: skip idn2_check_version() check and add precaution
Daniel Stenberg [Wed, 22 Apr 2020 09:21:24 +0000 (11:21 +0200)] 
version: skip idn2_check_version() check and add precaution

A gcc-10's -fanalyze complaint made me spot and do these improvements.

Closes #5281

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 22 Apr 2020 06:22:30 +0000 (08:22 +0200)] 
RELEASE-NOTES: synced

5 years agocurl.h: update comment typo
Brian Bergeron [Wed, 22 Apr 2020 05:08:23 +0000 (22:08 -0700)] 
curl.h: update comment typo

"routines with be invoked" -> "routines will be invoked"

Closes #5279

5 years agoGnuTLS: Don't skip really long certificate fields
Emil Engler [Mon, 20 Apr 2020 10:11:54 +0000 (12:11 +0200)] 
GnuTLS: Don't skip really long certificate fields

Closes #5271

5 years agognutls: bump lowest supported version to 3.1.10
Daniel Stenberg [Mon, 20 Apr 2020 20:23:48 +0000 (22:23 +0200)] 
gnutls: bump lowest supported version to 3.1.10

GnuTLS 3.1.10 added new functions we want to use. That version was
released on Mar 22, 2013. Removing support for older versions also
greatly simplifies the code.

Ref: #5271
Closes #5276

5 years agomqtt: make NOSTATE get within the debug name array
Daniel Stenberg [Mon, 20 Apr 2020 21:27:04 +0000 (23:27 +0200)] 
mqtt: make NOSTATE get within the debug name array

5 years agotests: run the RTSP test server on a dynamic port number
Daniel Stenberg [Mon, 20 Apr 2020 12:53:50 +0000 (14:53 +0200)] 
tests: run the RTSP test server on a dynamic port number

To avoid port collisions.

Closes #5272

5 years agotests: add %NOLISTENPORT and use it
Daniel Stenberg [Mon, 20 Apr 2020 08:21:57 +0000 (10:21 +0200)] 
tests: add %NOLISTENPORT and use it

The purpose with this variable is to provide a port number that is
reasonably likely to not have a listener on the local host so that tests
can try connect failures against it. It uses port 47 - "reserved"
according to IANA.

Updated six tests to use it instead of the previous different ports.

Assisted-by: Emil Engler
Closes #5270

5 years agomqtt: remove code with no purpose
Daniel Stenberg [Mon, 20 Apr 2020 15:06:55 +0000 (17:06 +0200)] 
mqtt: remove code with no purpose

Detected by Coverity. CID 1462319.

"The same code is executed when the condition result is true or false,
because the code in the if-then branch and after the if statement is
identical."

Closes #5275

5 years agomqtt: fix Curl_read() error handling while reading remaining length
Daniel Stenberg [Mon, 20 Apr 2020 15:03:18 +0000 (17:03 +0200)] 
mqtt: fix Curl_read()  error handling while reading remaining length

Detected by Coverity. CID 1462320.

Closes #5274

5 years agoserver/tftpd: fix compiler warning
Daniel Stenberg [Mon, 20 Apr 2020 20:21:07 +0000 (22:21 +0200)] 
server/tftpd: fix compiler warning

Follow-up from 369ce38ac1d
Reported-by: Marc Hörsken
5 years agohttp: free memory when Alt-Used header creation fails due to OOM
Daniel Stenberg [Mon, 20 Apr 2020 07:02:47 +0000 (09:02 +0200)] 
http: free memory when Alt-Used header creation fails due to OOM

Reported-by: James Fuller
Fixes #5268
Closes #5269

5 years agolib: fix typos in comments and errormessages
Daniel Gustafsson [Mon, 20 Apr 2020 08:05:28 +0000 (10:05 +0200)] 
lib: fix typos in comments and errormessages

This fixes a few randomly spotted typos in recently merged code, most
notably one in a userfacing errormessage the schannel code.

5 years agotests: run the SOCKS test server on a dynamic port number
Daniel Stenberg [Sun, 19 Apr 2020 21:45:15 +0000 (23:45 +0200)] 
tests: run the SOCKS test server on a dynamic port number

Closes #5266

5 years agomulti-ssl: reset the SSL backend on `Curl_global_cleanup()`
Johannes Schindelin [Fri, 17 Apr 2020 21:04:14 +0000 (23:04 +0200)] 
multi-ssl: reset the SSL backend on `Curl_global_cleanup()`

When cURL is compiled with support for multiple SSL backends, it is
possible to configure an SSL backend via `curl_global_sslset()`, but
only *before* `curl_global_init()` was called.

If another SSL backend should be used after that, a user might be
tempted to call `curl_global_cleanup()` to start over. However, we did
not foresee that use case and forgot to reset the SSL backend in that
cleanup.

Let's allow that use case.

Fixes #5255
Closes #5257
Reported-by: davidedec on github
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
5 years agotests: run the TFTP test server on a dynamic port number
Daniel Stenberg [Sun, 19 Apr 2020 21:29:21 +0000 (23:29 +0200)] 
tests: run the TFTP test server on a dynamic port number

Picking a dynamic unused port is better than a fixed to avoid the
collision risk.

Closes #5265

5 years agomqtt: improve the state machine
Daniel Stenberg [Thu, 16 Apr 2020 11:20:52 +0000 (13:20 +0200)] 
mqtt: improve the state machine

To handle PUBLISH before SUBACK and more.

Updated the existing tests and added three new ones.

Reported-by: Christoph Krey
Bug: https://curl.haxx.se/mail/lib-2020-04/0021.html
Closes #5246

5 years agoruntests: always put test number in servercmd file
Daniel Stenberg [Thu, 16 Apr 2020 12:16:22 +0000 (14:16 +0200)] 
runtests: always put test number in servercmd file

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 20 Apr 2020 06:07:28 +0000 (08:07 +0200)] 
RELEASE-NOTES: synced

5 years agorelease-notes.pl: fix parsing typo
Daniel Stenberg [Mon, 20 Apr 2020 06:03:24 +0000 (08:03 +0200)] 
release-notes.pl: fix parsing typo

5 years agoensure all references to ports are replaced by vars
xquery [Sun, 19 Apr 2020 19:04:52 +0000 (21:04 +0200)] 
ensure all references to ports are replaced by vars

5 years agoadd more alt-svc test coverage
xquery [Sun, 19 Apr 2020 17:12:28 +0000 (19:12 +0200)] 
add more alt-svc test coverage

5 years agotest1247: use http server to get the port number set
Daniel Stenberg [Sun, 19 Apr 2020 22:53:08 +0000 (00:53 +0200)] 
test1247: use http server to get the port number set

Follow-up to 0f5db7b263f

5 years agoruntests: use a unix domain socket path with the pid in the name
Daniel Stenberg [Sun, 19 Apr 2020 18:48:48 +0000 (20:48 +0200)] 
runtests: use a unix domain socket path with the pid in the name

To make it impossible for test cases to access the file name without
using the proper variable for the purpose.

Closes #5264