]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
5 years agocurl: fix --upload-file . hangs if delay in STDIN
John Schroeder [Tue, 26 Nov 2019 08:16:19 +0000 (09:16 +0100)] 
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
5 years agoXFERINFOFUNCTION: support CURL_PROGRESSFUNC_CONTINUE
John Schroeder [Tue, 26 Nov 2019 08:13:11 +0000 (09:13 +0100)] 
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

5 years agoTLS: add BearSSL vtls implementation
Michael Forney [Fri, 8 Nov 2019 04:17:18 +0000 (20:17 -0800)] 
TLS: add BearSSL vtls implementation

Closes #4597

5 years agocurl_multi_wakeup.3: add example and AVAILABILITY
Daniel Stenberg [Mon, 25 Nov 2019 15:09:34 +0000 (16:09 +0100)] 
curl_multi_wakeup.3: add example and AVAILABILITY

Reviewed-by: Gergely Nagy
Closes #4635

5 years agomulti: add curl_multi_wakeup()
Gergely Nagy [Sun, 17 Nov 2019 14:12:15 +0000 (15:12 +0100)] 
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

5 years agoschannel: fix --tls-max for when min is --tlsv1 or default
Xiaoyin Liu [Sat, 23 Nov 2019 17:29:46 +0000 (01:29 +0800)] 
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

5 years agochecksrc.bat: Add a check for vquic and vssh directories
Jay Satiro [Sun, 24 Nov 2019 07:53:05 +0000 (02:53 -0500)] 
checksrc.bat: Add a check for vquic and vssh directories

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

5 years agoprojects: Fix Visual Studio projects SSH builds
Jay Satiro [Sun, 17 Nov 2019 08:08:40 +0000 (03:08 -0500)] 
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

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sat, 23 Nov 2019 19:45:52 +0000 (20:45 +0100)] 
RELEASE-NOTES: synced

5 years agoopenssl: Revert to less sensitivity for SYSCALL errors
Jay Satiro [Wed, 20 Nov 2019 23:44:18 +0000 (18:44 -0500)] 
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

5 years agoopenssl: improve error message for SYSCALL during connect
Daniel Stenberg [Thu, 14 Nov 2019 13:19:04 +0000 (14:19 +0100)] 
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

5 years agotest1175: verify symbols-in-versions and libcurl-errors.3 in sync
Daniel Stenberg [Thu, 21 Nov 2019 13:54:37 +0000 (14:54 +0100)] 
test1175: verify symbols-in-versions and libcurl-errors.3 in sync

Closes #4628

5 years agoinclude: make CURLE_HTTP3 use a new error code
Daniel Stenberg [Thu, 21 Nov 2019 10:37:44 +0000 (11:37 +0100)] 
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

5 years agobump: next release will be 7.68.0
Daniel Stenberg [Thu, 21 Nov 2019 15:35:47 +0000 (16:35 +0100)] 
bump: next release will be 7.68.0

5 years agocurl: add --parallel-immediate
Daniel Stenberg [Thu, 17 Oct 2019 08:05:53 +0000 (10:05 +0200)] 
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

5 years agodocs: fix typos
Victor Magierski [Tue, 19 Nov 2019 23:56:45 +0000 (18:56 -0500)] 
docs: fix typos

Change 'experiemental' to 'experimental'.

Closes #4618
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
5 years agoprojects: Fix Visual Studio wolfSSL configurations
Jay Satiro [Mon, 18 Nov 2019 23:42:34 +0000 (18:42 -0500)] 
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.

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 18 Nov 2019 16:39:16 +0000 (17:39 +0100)] 
RELEASE-NOTES: synced

5 years agongtcp2: use overflow buffer for extra HTTP/3 data
Javier Blazquez [Sat, 16 Nov 2019 07:57:45 +0000 (23:57 -0800)] 
ngtcp2: use overflow buffer for extra HTTP/3 data

Fixes #4525
Closes #4603

5 years agoaltsvc: bump to h3-24
Daniel Stenberg [Sat, 16 Nov 2019 10:58:19 +0000 (11:58 +0100)] 
altsvc: bump to h3-24

... as both ngtcp2 and quiche now support that in their master branches

Closes #4604

5 years agongtcp2: free used resources on disconnect
Daniel Stenberg [Mon, 18 Nov 2019 10:27:30 +0000 (11:27 +0100)] 
ngtcp2: free used resources on disconnect

Fixes #4614
Closes #4615

5 years agongtcp2: handle key updates as ngtcp2 master branch tells us
Daniel Stenberg [Mon, 18 Nov 2019 09:34:26 +0000 (10:34 +0100)] 
ngtcp2: handle key updates as ngtcp2 master branch tells us

Reviewed-by: Tatsuhiro Tsujikawa
Fixes #4612
Closes #4613

5 years agomulti: Fix curl_multi_poll wait when extra_fds && !extra_nfds
Gergely Nagy [Sun, 17 Nov 2019 20:33:54 +0000 (21:33 +0100)] 
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

5 years agolib: Move lib/ssh.h -> lib/vssh/ssh.h
Jay Satiro [Sun, 17 Nov 2019 20:04:37 +0000 (15:04 -0500)] 
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

5 years agoINSTALL.md: provide Android build instructions
Andreas Falkenhahn [Sat, 16 Nov 2019 21:05:43 +0000 (22:05 +0100)] 
INSTALL.md: provide Android build instructions

Closes #4606

5 years agodoh: improced both encoding and decoding
Niall [Thu, 14 Nov 2019 19:21:09 +0000 (19:21 +0000)] 
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

5 years agongtcp2: increase QUIC window size when data is consumed
Daniel Stenberg [Tue, 12 Nov 2019 10:39:41 +0000 (11:39 +0100)] 
ngtcp2: increase QUIC window size when data is consumed

Assisted-by: Javier Blazquez
Ref #4525 (partial fix)
Closes #4600

5 years agoconfig-win32: cpu-machine-OS for Windows on ARM
Melissa Mears [Wed, 13 Nov 2019 03:24:35 +0000 (19:24 -0800)] 
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

5 years agoexamples: add multi-poll.c
Daniel Stenberg [Thu, 14 Nov 2019 17:43:49 +0000 (18:43 +0100)] 
examples: add multi-poll.c

Show how curl_multi_poll() makes it even easier to use the multi
interface.

Closes #4596

5 years agomulti_poll: avoid busy-loop when called without easy handles attached
Daniel Stenberg [Thu, 14 Nov 2019 14:11:23 +0000 (15:11 +0100)] 
multi_poll: avoid busy-loop when called without easy handles attached

Fixes #4594
Closes #4595
Reported-by: 3dyd on github
5 years agocurl: fix -T globbing
Daniel Stenberg [Wed, 13 Nov 2019 10:33:29 +0000 (11:33 +0100)] 
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

5 years agoHISTORY: added cmake, HTTP/3 and parallel downloads with curl
Daniel Stenberg [Wed, 13 Nov 2019 09:20:52 +0000 (10:20 +0100)] 
HISTORY: added cmake, HTTP/3 and parallel downloads with curl

5 years agoquiche: reject headers in the wrong order
Daniel Stenberg [Mon, 11 Nov 2019 08:56:23 +0000 (09:56 +0100)] 
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

5 years agoopenssl: prevent recursive function calls from ctx callbacks
Daniel Stenberg [Mon, 11 Nov 2019 10:45:12 +0000 (11:45 +0100)] 
openssl: prevent recursive function calls from ctx callbacks

Follow the pattern of many other callbacks.

Ref: #4546
Closes #4585

5 years agoCURL-DISABLE: initial docs for the CURL_DISABLE_* defines
Daniel Stenberg [Mon, 11 Nov 2019 16:16:04 +0000 (17:16 +0100)] 
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

5 years agoremove_handle: clear expire timers after multi_done()
Daniel Stenberg [Sun, 10 Nov 2019 15:23:53 +0000 (16:23 +0100)] 
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

5 years agotest1558: use double slash after file:
Marcel Raad [Sun, 3 Nov 2019 13:48:34 +0000 (14:48 +0100)] 
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

5 years agopause: avoid updating socket if done was already called
Daniel Stenberg [Fri, 8 Nov 2019 22:07:55 +0000 (23:07 +0100)] 
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

5 years agostrerror: Fix an error looking up some Windows error strings
Jay Satiro [Sat, 9 Nov 2019 23:07:59 +0000 (18:07 -0500)] 
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

5 years agosystem.h: fix for MCST lcc compiler
r-a-sattarov [Sat, 9 Nov 2019 14:42:47 +0000 (17:42 +0300)] 
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

5 years agoTODO: curl_multi_unblock
Daniel Stenberg [Fri, 8 Nov 2019 22:31:08 +0000 (23:31 +0100)] 
TODO: curl_multi_unblock

Closes #4418

5 years agoTODO: Run web-platform-tests url tests
Daniel Stenberg [Fri, 8 Nov 2019 22:27:37 +0000 (23:27 +0100)] 
TODO: Run web-platform-tests url tests

Closes #4477

5 years agoTODO: 1.4 alt-svc sharing
Daniel Stenberg [Fri, 8 Nov 2019 22:24:37 +0000 (23:24 +0100)] 
TODO: 1.4 alt-svc sharing

Closes #4476

5 years agotest1560: require IPv6 for IPv6 aware URL parsing
Daniel Stenberg [Fri, 8 Nov 2019 09:34:13 +0000 (10:34 +0100)] 
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

5 years agochecksrc: repair the copyrightyear check
Daniel Stenberg [Fri, 1 Nov 2019 12:58:27 +0000 (13:58 +0100)] 
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
5 years agocopyrights: fix copyright year range
Daniel Stenberg [Sat, 2 Nov 2019 22:41:43 +0000 (23:41 +0100)] 
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

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Fri, 8 Nov 2019 08:47:38 +0000 (09:47 +0100)] 
RELEASE-NOTES: synced

5 years agocurlver: bump to 7.67.1
Daniel Stenberg [Fri, 8 Nov 2019 08:47:29 +0000 (09:47 +0100)] 
curlver: bump to 7.67.1

5 years agomailmap: fixup Massimiliano Fantuzzi
Daniel Stenberg [Fri, 8 Nov 2019 08:46:48 +0000 (09:46 +0100)] 
mailmap: fixup Massimiliano Fantuzzi

5 years agoscripts/contributors: make committers get included too
Daniel Stenberg [Fri, 8 Nov 2019 08:45:58 +0000 (09:45 +0100)] 
scripts/contributors: make committers get included too

in addition to authors

5 years agoconfigure: fix typo in help text
Massimiliano Fantuzzi HB9GUS [Fri, 8 Nov 2019 00:10:24 +0000 (01:10 +0100)] 
configure: fix typo in help text

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

5 years agontlm: USE_WIN32_CRYPTO check removed to get USE_NTLM2SESSION set
Christian Schmitz [Tue, 26 Mar 2019 08:53:03 +0000 (09:53 +0100)] 
ntlm: USE_WIN32_CRYPTO check removed to get USE_NTLM2SESSION set

Closes #3704

5 years agobuild: fix for CURL_DISABLE_DOH
Wyatt O'Day [Wed, 6 Nov 2019 22:39:49 +0000 (17:39 -0500)] 
build: fix for CURL_DISABLE_DOH

Fixes https://github.com/curl/curl/issues/4565
Closes https://github.com/curl/curl/pull/4566

5 years agoconfigure: avoid unportable `==' test(1) operator
Leonardo Taccari [Wed, 6 Nov 2019 22:53:44 +0000 (23:53 +0100)] 
configure: avoid unportable `==' test(1) operator

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

5 years agoRELEASE-NOTES: synced curl-7_67_0
Daniel Stenberg [Mon, 4 Nov 2019 08:50:04 +0000 (09:50 +0100)] 
RELEASE-NOTES: synced

The 7.67.0 release

5 years agoTHANKS: add new names from 7.67.0
Daniel Stenberg [Mon, 4 Nov 2019 08:51:27 +0000 (09:51 +0100)] 
THANKS: add new names from 7.67.0

5 years agoconfigure: only say ipv6 enabled when the variable is set
Daniel Stenberg [Mon, 4 Nov 2019 12:59:35 +0000 (13:59 +0100)] 
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

5 years agocerts/Server-localhost-lastSAN-sv: regenerate with sha256
Marcel Raad [Sat, 2 Nov 2019 13:04:28 +0000 (14:04 +0100)] 
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

5 years agocopyrights: update all copyright notices to 2019 on files changed this year
Vilhelm Prytz [Thu, 31 Oct 2019 20:06:19 +0000 (21:06 +0100)] 
copyrights: update all copyright notices to 2019 on files changed this year

Closes #4547

5 years agombedtls: add error message for cert validity starting in the future
Bastien Bouclet [Sat, 2 Nov 2019 13:15:18 +0000 (14:15 +0100)] 
mbedtls: add error message for cert validity starting in the future

Closes #4552

5 years agoschannel_verify: Fix concurrent openings of CA file
Jay Satiro [Fri, 1 Nov 2019 22:02:59 +0000 (18:02 -0400)] 
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
5 years agogtls: make gnutls_bye() not wait for response on shutdown
Daniel Stenberg [Wed, 30 Oct 2019 08:44:30 +0000 (09:44 +0100)] 
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

5 years agoappveyor: publish artifacts on appveyor
Michał Janiszewski [Sat, 19 Oct 2019 18:37:06 +0000 (20:37 +0200)] 
appveyor: publish artifacts on appveyor

This allows obtaining upstream builds of curl directly from appveyor for
all the available configurations

Closes #4509

5 years agourl: make Curl_close() NULLify the pointer too
Daniel Stenberg [Mon, 28 Oct 2019 08:28:05 +0000 (09:28 +0100)] 
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

5 years agoINSTALL: add missing space for configure commands
Trivikram Kamat [Tue, 29 Oct 2019 15:20:14 +0000 (08:20 -0700)] 
INSTALL: add missing space for configure commands

Closes #4539

5 years agourl: Curl_free_request_state() should also free doh handles
Daniel Stenberg [Sun, 27 Oct 2019 21:20:02 +0000 (22:20 +0100)] 
url: Curl_free_request_state() should also free doh handles

... or risk DoH memory leaks.

Reported-by: Paul Dreik
Fixes #4463
Closes #4527

5 years agoexamples: remove the "this exact code has not been verified"
Daniel Stenberg [Tue, 29 Oct 2019 08:48:49 +0000 (09:48 +0100)] 
examples: remove the "this exact code has not been verified"

... as really confuses the reader to not know what to believe!

5 years agoHTTP3: fix typo somehere1 > somewhere1
Trivikram Kamat [Tue, 29 Oct 2019 02:05:44 +0000 (19:05 -0700)] 
HTTP3: fix typo somehere1 > somewhere1

Closes #4535

5 years agoHTTP3: fix invalid use of sendto for connected UDP socket
Javier Blazquez [Mon, 28 Oct 2019 00:16:24 +0000 (17:16 -0700)] 
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

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 28 Oct 2019 13:49:11 +0000 (14:49 +0100)] 
RELEASE-NOTES: synced

5 years agoHTTP3: fix Windows build
Javier Blazquez [Sun, 27 Oct 2019 22:48:43 +0000 (15:48 -0700)] 
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

5 years agoappveyor: add --disable-proxy autotools build
Marcel Raad [Sat, 12 Oct 2019 11:27:51 +0000 (13:27 +0200)] 
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

5 years agoappveyor: make winbuilds with DEBUG=no/yes and VS 2015/2017
Daniel Stenberg [Thu, 24 Oct 2019 14:23:45 +0000 (16:23 +0200)] 
appveyor: make winbuilds with DEBUG=no/yes and VS 2015/2017

... and invoke "curl -V" once done

Co-Authored-By: Jay Satiro
Closes #4523

5 years agoschannel: reverse the order of certinfo insertions
Francois Rivard [Wed, 23 Oct 2019 14:04:09 +0000 (10:04 -0400)] 
schannel: reverse the order of certinfo insertions

Fixes #4518
Closes #4519

5 years agotest1591: fix spelling of http feature
Marcel Raad [Wed, 23 Oct 2019 17:29:25 +0000 (19:29 +0200)] 
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

5 years agoappveyor: Use two parallel compilation on appveyor with CMake
Michał Janiszewski [Sat, 19 Oct 2019 18:09:55 +0000 (20:09 +0200)] 
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

5 years agoconn-reuse: requests wanting NTLM can reuse non-NTLM connections
Daniel Stenberg [Mon, 21 Oct 2019 08:43:03 +0000 (10:43 +0200)] 
conn-reuse: requests wanting NTLM can reuse non-NTLM connections

Added test case 338 to verify.

Reported-by: Daniel Silverstone
Fixes #4499
Closes #4514

5 years agotests: add missing proxy features
Marcel Raad [Tue, 22 Oct 2019 21:26:17 +0000 (23:26 +0200)] 
tests: add missing proxy features

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 22 Oct 2019 13:06:35 +0000 (15:06 +0200)] 
RELEASE-NOTES: synced

5 years agotests: use %FILE_PWD for file:// URLs
Marcel Raad [Sun, 20 Oct 2019 19:16:50 +0000 (21:16 +0200)] 
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

5 years agotests: add `connect to non-listen` keywords
Marcel Raad [Sun, 20 Oct 2019 18:12:52 +0000 (20:12 +0200)] 
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

5 years agoruntests: get textaware info from curl instead of perl
Marcel Raad [Fri, 18 Oct 2019 21:22:04 +0000 (23:22 +0200)] 
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

5 years agoappveyor: Add MSVC ARM64 build
Michał Janiszewski [Sat, 19 Oct 2019 17:58:34 +0000 (19:58 +0200)] 
appveyor: Add MSVC ARM64 build

Closes #4507

5 years agohttp2_recv: a closed stream trumps pause state
Daniel Stenberg [Fri, 18 Oct 2019 15:27:21 +0000 (17:27 +0200)] 
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

5 years agohttp2: expire a timeout at end of stream
Daniel Stenberg [Thu, 17 Oct 2019 12:25:45 +0000 (14:25 +0200)] 
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

5 years agotravis: Add an ARM64 build
Dan Fandrich [Thu, 17 Oct 2019 08:24:28 +0000 (10:24 +0200)] 
travis: Add an ARM64 build

Test 323 is failing for some reason, so disable it there for now.

5 years agoexamples/sslbackend: fix -Wchar-subscripts warning
Marcel Raad [Fri, 18 Oct 2019 06:19:47 +0000 (08:19 +0200)] 
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

5 years agoconfigure: remove all cyassl references
Daniel Stenberg [Thu, 17 Oct 2019 21:47:10 +0000 (23:47 +0200)] 
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

5 years agotest1162: disable MSYS2's POSIX path conversion
Marcel Raad [Thu, 17 Oct 2019 18:40:54 +0000 (20:40 +0200)] 
test1162: disable MSYS2's POSIX path conversion

This avoids MSYS2 converting the backslasb in the URL to a slash,
causing the test to fail.

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Thu, 17 Oct 2019 12:21:45 +0000 (14:21 +0200)] 
RELEASE-NOTES: synced

5 years agoCURLOPT_TIMEOUT.3: Clarify transfer timeout time includes queue time
Jay Satiro [Tue, 15 Oct 2019 19:12:31 +0000 (15:12 -0400)] 
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

5 years agotool_operate: Fix retry sleep time shown to user when Retry-After
Stian Soiland-Reyes [Wed, 16 Oct 2019 13:35:56 +0000 (14:35 +0100)] 
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

5 years agourl: normalize CURLINFO_EFFECTIVE_URL
Daniel Stenberg [Wed, 16 Oct 2019 07:57:33 +0000 (09:57 +0200)] 
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

5 years agotests: line ending fixes for Windows
Marcel Raad [Tue, 15 Oct 2019 21:37:20 +0000 (23:37 +0200)] 
tests: line ending fixes for Windows

Mark some files as text.

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

5 years agotests: use proxy feature 4488/head
Marcel Raad [Mon, 14 Oct 2019 20:29:19 +0000 (22:29 +0200)] 
tests: use proxy feature

This makes the tests succeed when using --disable-proxy.

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

5 years agosmbserver: fix Python 3 compatibility
Marcel Raad [Sun, 13 Oct 2019 19:35:56 +0000 (21:35 +0200)] 
smbserver: fix Python 3 compatibility

Python 2's `ConfigParser` module is spelled `configparser` in Python 3.

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

5 years agosecurity: silence conversion warning
Marcel Raad [Sun, 13 Oct 2019 17:14:39 +0000 (19:14 +0200)] 
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

5 years agoconnect: silence sign-compare warning
Marcel Raad [Sun, 13 Oct 2019 09:13:34 +0000 (11:13 +0200)] 
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

5 years agoTODO: Handle growing SFTP files
Daniel Stenberg [Sun, 13 Oct 2019 09:57:56 +0000 (11:57 +0200)] 
TODO: Handle growing SFTP files

Closes #4344

5 years agoKNOWN_BUGS: remove "CURLFORM_CONTENTLEN in an array"
Daniel Stenberg [Sun, 13 Oct 2019 09:35:57 +0000 (11:35 +0200)] 
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.