]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
4 years agognutls: set the preferred TLS versions in correct order 7278/head
Daniel Stenberg [Fri, 18 Jun 2021 12:54:07 +0000 (14:54 +0200)] 
gnutls: set the preferred TLS versions in correct order

Regression since 781864bedbc57 (curl 7.77.0)

Reported-by: civodul on github
Assisted-by: Nikos Mavrogiannopoulos
Fixes #7277
Closes #7278

4 years agoconfigure/cmake: remove checks for unused gethostbyaddr and gethostbyaddr_r
Gergely Nagy [Fri, 18 Jun 2021 08:39:35 +0000 (10:39 +0200)] 
configure/cmake: remove checks for unused gethostbyaddr and gethostbyaddr_r

Closes #7276

4 years agoconfigure/cmake: remove checks for unused inet_ntoa and inet_ntoa_r
Gergely Nagy [Fri, 18 Jun 2021 08:16:16 +0000 (10:16 +0200)] 
configure/cmake: remove checks for unused inet_ntoa and inet_ntoa_r

Closes #7276

4 years agoconfigure/cmake: remove unused define HAVE_PERROR
Gergely Nagy [Fri, 18 Jun 2021 08:10:51 +0000 (10:10 +0200)] 
configure/cmake: remove unused define HAVE_PERROR

Closes #7276

4 years agoconfigure: remove unused check for gai_strerror
Gergely Nagy [Fri, 18 Jun 2021 08:05:43 +0000 (10:05 +0200)] 
configure: remove unused check for gai_strerror

Closes #7276

4 years agoconfigure/cmake: remove unused define HAVE_FREEIFADDRS
Gergely Nagy [Fri, 18 Jun 2021 08:04:38 +0000 (10:04 +0200)] 
configure/cmake: remove unused define HAVE_FREEIFADDRS

Closes #7276

4 years agoconfigure/cmake: remove unused define HAVE_FORK
Gergely Nagy [Fri, 18 Jun 2021 08:01:29 +0000 (10:01 +0200)] 
configure/cmake: remove unused define HAVE_FORK

Closes #7276

4 years agoconfigure/cmake: remove unused define HAVE_FDOPEN
Gergely Nagy [Fri, 18 Jun 2021 07:59:22 +0000 (09:59 +0200)] 
configure/cmake: remove unused define HAVE_FDOPEN

Closes #7276

4 years agoconfigure/cmake: remove checks for unused sgtty.h
Gergely Nagy [Fri, 18 Jun 2021 07:54:57 +0000 (09:54 +0200)] 
configure/cmake: remove checks for unused sgtty.h

Closes #7276

4 years agoconfigure/cmake: remove remaining checks for rsa.h
Gergely Nagy [Fri, 18 Jun 2021 07:52:37 +0000 (09:52 +0200)] 
configure/cmake: remove remaining checks for rsa.h

Closes #7276

4 years agoconfigure/cmake: remove remaining checks for err.h
Gergely Nagy [Fri, 18 Jun 2021 07:51:59 +0000 (09:51 +0200)] 
configure/cmake: remove remaining checks for err.h

Closes #7276

4 years agoconfigure/cmake: remove remaining checks for crypto.h
Gergely Nagy [Fri, 18 Jun 2021 07:50:17 +0000 (09:50 +0200)] 
configure/cmake: remove remaining checks for crypto.h

Closes #7276

4 years agoconfigure/cmake: remove checks for unused getservbyport_r
Gergely Nagy [Fri, 18 Jun 2021 07:47:39 +0000 (09:47 +0200)] 
configure/cmake: remove checks for unused getservbyport_r

Closes #7276

4 years ago--socks4[a]: clarify where the host name is resolved
Daniel Stenberg [Thu, 17 Jun 2021 15:26:36 +0000 (17:26 +0200)] 
--socks4[a]: clarify where the host name is resolved

Closes #7273

4 years agolibcurl-security.3: mention file descriptors and forks
Daniel Stenberg [Thu, 17 Jun 2021 08:06:57 +0000 (10:06 +0200)] 
libcurl-security.3: mention file descriptors and forks

... and move the security report section last.

Reported-by: Harry Sintonen
Closes #7270

4 years agoconfigure.ac: make non-executable
Alex Xu (Hello71) [Thu, 17 Jun 2021 13:11:05 +0000 (09:11 -0400)] 
configure.ac: make non-executable

it needs to be processed by autoconf or autoreconf, and doesn't have a
suitable shebang to be directly executed. other projects normally set
configure.ac -x.

Closes #7272

4 years agoconfigure: do not strip out debug flags
Daniel Stenberg [Wed, 16 Jun 2021 12:14:54 +0000 (14:14 +0200)] 
configure: do not strip out debug flags

To allow users to set them when invoking configure without using
--with-debug.

Reported-by: Alex Xu
Fixes #7216
Closes #7267

4 years agolibssh2: limit time a disconnect can take to 1 second
Daniel Stenberg [Thu, 17 Jun 2021 08:25:53 +0000 (10:25 +0200)] 
libssh2: limit time a disconnect can take to 1 second

Closes #7271

4 years agoTLS: prevent shutdown loops to get stuck
Daniel Stenberg [Thu, 17 Jun 2021 08:24:41 +0000 (10:24 +0200)] 
TLS: prevent shutdown loops to get stuck

... by making sure the loops are only allowed to read the shutdown
traffic a limited number of times.

Reported-by: Harry Sintonen
Closes #7271

4 years agohyper: propagate errors back up from read callbacks
Daniel Stenberg [Wed, 16 Jun 2021 08:52:21 +0000 (10:52 +0200)] 
hyper: propagate errors back up from read callbacks

Makes test 513 work with hyper

Closes #7266

4 years agoKNOWN_BUGS: Negotiate on Windows fails
Daniel Stenberg [Wed, 16 Jun 2021 12:29:11 +0000 (14:29 +0200)] 
KNOWN_BUGS: Negotiate on Windows fails

Closes #5881

4 years agoKNOWN_BUGS: renames instead of locking for atomic operations
Daniel Stenberg [Wed, 16 Jun 2021 08:59:39 +0000 (10:59 +0200)] 
KNOWN_BUGS: renames instead of locking for atomic operations

Closes #6882
Closes #6884

4 years agozuul: add two missing CI jobs
Daniel Stenberg [Tue, 15 Jun 2021 13:10:32 +0000 (15:10 +0200)] 
zuul: add two missing CI jobs

... that were configured, just not run

Closes #7261

4 years agoidn: fix libidn2 with windows unicode builds
Viktor Szakats [Tue, 15 Jun 2021 12:10:48 +0000 (12:10 +0000)] 
idn: fix libidn2 with windows unicode builds

Unicode Windows builds use UTF-8 strings internally in libcurl,
so make sure to call the UTF-8 flavour of the libidn2 API. Also
document that Windows builds with libidn2 and UNICODE do expect
CURLOPT_URL as an UTF-8 string.

Reported-by: dEajL3kA on github
Assisted-by: Jay Satiro
Reviewed-by: Marcel Raad
Closes #7246
Fixes #7228

4 years agocurl_url_set: reject spaces in URLs w/o CURLU_ALLOW_SPACE
Daniel Stenberg [Mon, 31 May 2021 06:59:24 +0000 (08:59 +0200)] 
curl_url_set: reject spaces in URLs w/o CURLU_ALLOW_SPACE

They were never officially allowed and slipped in only due to sloppy
parsing. Spaces (ascii 32) should be correctly encoded (to %20) before
being part of a URL.

The new flag bit CURLU_ALLOW_SPACE when a full URL is set, makes libcurl
allow spaces.

Updated test 1560 to verify.

Closes #7073

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 15 Jun 2021 08:08:09 +0000 (10:08 +0200)] 
RELEASE-NOTES: synced

... and bump to version 7.78.0 for the next planned release.

4 years agodocs: Remove outdated curl tool limitation
Jay Satiro [Tue, 15 Jun 2021 06:46:10 +0000 (02:46 -0400)] 
docs: Remove outdated curl tool limitation

- Document that HTTP/2 multiplexing is supported by the curl tool when
  parallel transfers are used.

Supported since 7.66.0 via --parallel, but the doc wasn't updated.

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

4 years agohttp2: Clarify 'Using HTTP2' verbose message
Jay Satiro [Tue, 15 Jun 2021 06:28:42 +0000 (02:28 -0400)] 
http2: Clarify 'Using HTTP2' verbose message

- Change phrasing from multi-use to multiplexing since the former may
  not be as well understood.

Before: * Using HTTP2, server supports multi-use

After: * Using HTTP2, server supports multiplexing

Bug: https://github.com/curl/curl/discussions/7255
Reported-by: David Hu
Closes https://github.com/curl/curl/pull/7258

4 years agowinbuild/README: VC should be set to 6 'or larger'
Daniel Stenberg [Mon, 14 Jun 2021 13:34:40 +0000 (15:34 +0200)] 
winbuild/README: VC should be set to 6 'or larger'

Previously it listed all versions up to 15 (missing 16) but this new
phrasing is more open ended.

Reported-by: Hugh Macdonald
Fixes #7253
Closes #7254

4 years agorustls: remove native_roots fallback
Jacob Hoffman-Andrews [Mon, 14 Jun 2021 05:33:37 +0000 (22:33 -0700)] 
rustls: remove native_roots fallback

For the commandline tool, we expect to be passed
SSL_CONN_CONFIG(CAfile); for library use, the use should pass a set of
trusted roots (like in other TLS backends).

This also removes a dependency on Security.framework when building on
macOS.

Closes #7250

4 years agotravis: remove jobs that have migrated to zuul
Albin Vass [Fri, 11 Jun 2021 21:56:18 +0000 (23:56 +0200)] 
travis: remove jobs that have migrated to zuul

Closes #7245

4 years agoCI: add jobs using Zuul
Mohammed Naser [Wed, 9 Jun 2021 19:41:44 +0000 (15:41 -0400)] 
CI: add jobs using Zuul

It also includes a few changes to get the builds going:
- Added autoconf to common dependencies
- Added automake to common dependencies
- Added libtool to common dependencies
- Added libssl-dev to common dependencies

Co-authored-by: Albin Vass
Closes #7245

4 years agonetrc: skip 'macdef' definitions
Daniel Stenberg [Fri, 11 Jun 2021 14:19:27 +0000 (16:19 +0200)] 
netrc: skip 'macdef' definitions

Add test 494 to verify

Reported-by: Harry Sintonen
Fixes #7238
Closes #7244

4 years agomulti: add scan-build-6 work-around in curl_multi_fdset
Daniel Stenberg [Sat, 12 Jun 2021 16:59:46 +0000 (18:59 +0200)] 
multi: add scan-build-6 work-around in curl_multi_fdset

scan-build-6 otherwise warns, saying: warning: The left operand of '>='
is a garbage value otherwise, which is false.

Later scan-builds don't claim this on the same code.

Closes #7248

4 years agoasyn-ares: remove check for 'data' in Curl_resolver_cancel
Daniel Stenberg [Sat, 12 Jun 2021 16:37:52 +0000 (18:37 +0200)] 
asyn-ares: remove check for 'data' in Curl_resolver_cancel

It implied it would survive a NULL in there which it won't. Instead do
an assert.

Pointed out by scan-build.

Closes #7248

4 years agourl.c: remove two variable assigns that are never read
Daniel Stenberg [Sat, 12 Jun 2021 16:33:59 +0000 (18:33 +0200)] 
url.c: remove two variable assigns that are never read

Pointed out by scan-build

Closes #7248

4 years agomqtt: add support for username and password
Gealber Morales [Fri, 4 Jun 2021 07:25:38 +0000 (09:25 +0200)] 
mqtt: add support for username and password

Minor-edits-by: Daniel Stenberg
Added test 2200 to 2205

Closes #7243

4 years agotravis: remove the arm job 7239/head
Daniel Stenberg [Fri, 11 Jun 2021 11:59:37 +0000 (13:59 +0200)] 
travis: remove the arm job

We do it on circle CI instead

4 years agoCI: add .circleci/config.yml
Daniel Stenberg [Fri, 11 Jun 2021 05:50:28 +0000 (07:50 +0200)] 
CI: add .circleci/config.yml

Assisted-by: Gabriel Simmer
Closes #7239

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Fri, 11 Jun 2021 12:31:16 +0000 (14:31 +0200)] 
RELEASE-NOTES: synced

4 years agoruntests: init $VERSION to avoid warnings when using -l
Daniel Stenberg [Fri, 11 Jun 2021 12:26:32 +0000 (14:26 +0200)] 
runtests: init $VERSION to avoid warnings when using -l

4 years agoopenssl: don't remove session id entry in disassociate
Daniel Stenberg [Thu, 10 Jun 2021 11:50:40 +0000 (13:50 +0200)] 
openssl: don't remove session id entry in disassociate

When a connection is disassociated from a transfer, the Session ID entry
should remain.

Regression since 7f4a9a9 (shipped in libcurl 7.77.0)
Reported-by: Gergely Nagy
Reported-by: Paul Groke
Fixes #7222
Closes #7230

4 years agosingle_transfer: ignore blank --output-dir
Daniel Stenberg [Thu, 10 Jun 2021 14:18:22 +0000 (16:18 +0200)] 
single_transfer: ignore blank --output-dir

... as otherwise it creates a rather unexpected target directory with a
leading slash.

Reported-by: Harry Sintonen
Fixes #7218
Closes #7233

4 years agotests: update README about servers and port numbers
Daniel Stenberg [Fri, 11 Jun 2021 09:22:46 +0000 (11:22 +0200)] 
tests: update README about servers and port numbers

Closes #7242

4 years agoconn_shutdown: if closed during CONNECT cleanup properly
Daniel Stenberg [Wed, 9 Jun 2021 06:38:07 +0000 (08:38 +0200)] 
conn_shutdown: if closed during CONNECT cleanup properly

Reported-by: Alex Xu
Reported-by: Phil E. Taylor
Fixes #7236
Closes #7237

4 years agosws: malloc request struct instead of using stack
Christian Weisgerber [Thu, 10 Jun 2021 15:11:34 +0000 (17:11 +0200)] 
sws: malloc request struct instead of using stack

... 2MB requests is otherwise just too big for some systems.

(The allocations are not freed properly.)

Bug: https://curl.se/mail/lib-2021-06/0018.html

Closes #7235

4 years agolib: don't compare fd to FD_SETSIZE when using poll
Mark Swaanenburg [Fri, 11 Jun 2021 06:27:00 +0000 (06:27 +0000)] 
lib: don't compare fd to FD_SETSIZE when using poll

FD_SETSIZE is irrelevant when using poll. So ensuring that the file
descriptor is smaller than FD_SETSIZE in VALID_SOCK, can cause
multi_wait to ignore perfectly valid file descriptors and simply wait
for 1s to avoid hammering the CPU in a busy loop.

Fixes #7240
Closes #7241

4 years agodoh: fix wrong DEBUGASSERT for doh private_data
zhangxiuhua [Thu, 10 Jun 2021 08:17:31 +0000 (16:17 +0800)] 
doh: fix wrong DEBUGASSERT for doh private_data

Closes #7227

4 years agotests: update README.md with a missing single quote
yb999 [Thu, 10 Jun 2021 14:05:28 +0000 (22:05 +0800)] 
tests: update README.md with a missing single quote

Closes #7231

4 years agoGHA: run all tests for hyper too
Daniel Stenberg [Wed, 9 Jun 2021 11:52:45 +0000 (13:52 +0200)] 
GHA: run all tests for hyper too

As it lists disabled ones in DISABLED now

Closes #7209

4 years agotests/data/DISABLED: add tests not working with hyper
Daniel Stenberg [Tue, 8 Jun 2021 21:31:46 +0000 (23:31 +0200)] 
tests/data/DISABLED: add tests not working with hyper

The goal is to remove them all from here over time.

Closes #7209

4 years agoruntests: also find the last test in Makefile.inc
Daniel Stenberg [Wed, 9 Jun 2021 11:52:29 +0000 (13:52 +0200)] 
runtests: also find the last test in Makefile.inc

Closes #7209

4 years agotest3010: work with hyper mode
Daniel Stenberg [Wed, 9 Jun 2021 11:40:55 +0000 (13:40 +0200)] 
test3010: work with hyper mode

Closes #7209

4 years agoconfigure: disable RTSP when hyper is selected
Daniel Stenberg [Wed, 9 Jun 2021 09:43:41 +0000 (11:43 +0200)] 
configure: disable RTSP when hyper is selected

Makes test 1013 work

Closes #7209

4 years agotest1594/1595/1596: fix to work in hyper mode
Daniel Stenberg [Tue, 8 Jun 2021 22:08:47 +0000 (00:08 +0200)] 
test1594/1595/1596: fix to work in hyper mode

Closes #7209

4 years agotest1438/1457: add HTTP keyword to make hyper mode work
Daniel Stenberg [Tue, 8 Jun 2021 22:04:44 +0000 (00:04 +0200)] 
test1438/1457: add HTTP keyword to make hyper mode work

Closes #7209

4 years agotest1340/1341: adjusted for hyper mode
Daniel Stenberg [Tue, 8 Jun 2021 22:00:17 +0000 (00:00 +0200)] 
test1340/1341: adjusted for hyper mode

Closes #7209

4 years agotest1218: adjusted for hyper mode
Daniel Stenberg [Tue, 8 Jun 2021 21:58:30 +0000 (23:58 +0200)] 
test1218: adjusted for hyper mode

Closes #7209

4 years agotest1216: adjusted for hyper mode
Daniel Stenberg [Tue, 8 Jun 2021 21:57:53 +0000 (23:57 +0200)] 
test1216: adjusted for hyper mode

Closes #7209

4 years agotest1230: adjust to work in hyper mode
Daniel Stenberg [Tue, 8 Jun 2021 21:56:50 +0000 (23:56 +0200)] 
test1230: adjust to work in hyper mode

Closes #7209

4 years agoc-hyper: abort CONNECT response reading early on non 2xx responses
Daniel Stenberg [Tue, 8 Jun 2021 21:30:57 +0000 (23:30 +0200)] 
c-hyper: abort CONNECT response reading early on non 2xx responses

Fixes test 493

Closes #7209

4 years agotest434: add HTTP keyword
Daniel Stenberg [Tue, 8 Jun 2021 15:45:45 +0000 (17:45 +0200)] 
test434: add HTTP keyword

Closes #7209

4 years agotest599: adjusted to work in hyper mode
Daniel Stenberg [Tue, 8 Jun 2021 09:37:31 +0000 (11:37 +0200)] 
test599: adjusted to work in hyper mode

Closes #7209

4 years agoc-hyper: fix the uploaded field in progress callbacks
Daniel Stenberg [Tue, 8 Jun 2021 08:11:28 +0000 (10:11 +0200)] 
c-hyper: fix the uploaded field in progress callbacks

Makes test 578 work

Closes #7209

4 years agotest566: adjust to work with hyper mode
Daniel Stenberg [Tue, 8 Jun 2021 07:41:28 +0000 (09:41 +0200)] 
test566: adjust to work with hyper mode

Closes #7209

4 years agoCURLOPT_WRITEFUNCTION.3: minor update of the example
Fawad Mirza [Wed, 9 Jun 2021 11:17:38 +0000 (16:47 +0530)] 
CURLOPT_WRITEFUNCTION.3: minor update of the example

Safely avoid chunk.size garbage value if declared non globally.

Closes #7219

4 years agoconfigure: rename get-easy-option configure option to get-easy-options
Bastian Krause [Tue, 8 Jun 2021 15:30:17 +0000 (17:30 +0200)] 
configure: rename get-easy-option configure option to get-easy-options

"get-easy-options" is the configure option advertised by the help text
anyway, so use that.

Fixes #7211
Closes #7213

Follow-up to ad691b191 ("configure: added --disable-get-easy-options")
Suggested-by: Daniel Stenberg <daniel@haxx.se>
Signed-off-by: Bastian Krause <bst@pengutronix.de>
4 years agoruntests: skip disabled tests unless -f is used
Daniel Stenberg [Tue, 8 Jun 2021 15:28:59 +0000 (17:28 +0200)] 
runtests: skip disabled tests unless -f is used

To make it easier to write ranges like '115 to 229' without that
explicitly enabling tests that are listed in DISABLED, this makes
runtests always skip disabled tests unless the -f command line option is
used.

Previously the code attempted to not run such tests, but didn't do it
correctly.

Closes #7212

4 years agongtcp2: disable TLSv1.3 compatible mode when using GnuTLS
Jun-ya Kato [Mon, 7 Jun 2021 00:52:14 +0000 (00:52 +0000)] 
ngtcp2: disable TLSv1.3 compatible mode when using GnuTLS

The latest GnuTLS-3.7.2 implements disable switch for TLSv1.3 compatible
mode for middle box but it is enabled by default, which is unnecessary
for QUIC.

Fixes #6896
Closes #7202

4 years agotest644: remove as duplicate of test 587
Daniel Stenberg [Tue, 8 Jun 2021 12:01:04 +0000 (14:01 +0200)] 
test644: remove as duplicate of test 587

Closes #7208

4 years agoRELEASE-NOTES: synced
Daniel Gustafsson [Tue, 8 Jun 2021 08:01:01 +0000 (10:01 +0200)] 
RELEASE-NOTES: synced

4 years agocookies: track expiration in jar to optimize removals
Daniel Gustafsson [Tue, 8 Jun 2021 07:16:58 +0000 (09:16 +0200)] 
cookies: track expiration in jar to optimize removals

Removing expired cookies needs to be a fast operation since we want to
be able to perform it often and speculatively. By tracking the timestamp
of the next known expiration we can exit early in case the timestamp is
in the future.

Closes: #7172
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4 years agoGHA: add several libcurl tests to the hyper job
Daniel Stenberg [Mon, 7 Jun 2021 21:18:45 +0000 (23:18 +0200)] 
GHA: add several libcurl tests to the hyper job

500 to 512

4 years agotest500: adjust to work with hyper mode
Daniel Stenberg [Mon, 7 Jun 2021 11:16:38 +0000 (13:16 +0200)] 
test500: adjust to work with hyper mode

4 years agoc-hyper: support CURLINFO_STARTTRANSFER_TIME
Daniel Stenberg [Mon, 7 Jun 2021 11:16:07 +0000 (13:16 +0200)] 
c-hyper: support CURLINFO_STARTTRANSFER_TIME

Closes #7204

4 years agoc-hyper: support CURLOPT_HEADER
Daniel Stenberg [Mon, 7 Jun 2021 11:07:37 +0000 (13:07 +0200)] 
c-hyper: support CURLOPT_HEADER

When enabled, the headers are passed to the body write callback as well.

Like in test 500

Closes #7204

4 years agoGHA: run the newly fixed tests with hyper
Daniel Stenberg [Mon, 7 Jun 2021 15:34:45 +0000 (17:34 +0200)] 
GHA: run the newly fixed tests with hyper

Closes #7205

4 years agotest433: adjust for hyper mode
Daniel Stenberg [Mon, 7 Jun 2021 09:57:25 +0000 (11:57 +0200)] 
test433: adjust for hyper mode

Closes #7205

4 years agotest395: hyper cannot work around > 64 bit content-lengths like built-in
Daniel Stenberg [Mon, 7 Jun 2021 09:55:52 +0000 (11:55 +0200)] 
test395: hyper cannot work around > 64 bit content-lengths like built-in

Closes #7205

4 years agotest394: hyper returns a different error
Daniel Stenberg [Mon, 7 Jun 2021 09:50:09 +0000 (11:50 +0200)] 
test394: hyper returns a different error

Closes #7205

4 years agotest393: make Content-Length fit within 64 bit for hyper
Daniel Stenberg [Mon, 7 Jun 2021 09:34:52 +0000 (11:34 +0200)] 
test393: make Content-Length fit within 64 bit for hyper

Closes #7205

4 years agotest347: CRLFify to work in hyper mode
Daniel Stenberg [Mon, 7 Jun 2021 09:27:41 +0000 (11:27 +0200)] 
test347: CRLFify to work in hyper mode

Closes #7205

4 years agotest339: CRLFify better to work in hyper mode
Daniel Stenberg [Mon, 7 Jun 2021 09:26:32 +0000 (11:26 +0200)] 
test339: CRLFify better to work in hyper mode

Closes #7205

4 years agotravis: remove the hyper build
Daniel Stenberg [Mon, 7 Jun 2021 15:22:55 +0000 (17:22 +0200)] 
travis: remove the hyper build

4 years agoGHA: add a linux-hyper job
Daniel Stenberg [Mon, 7 Jun 2021 12:57:14 +0000 (14:57 +0200)] 
GHA: add a linux-hyper job

Closes #7206

4 years agotest328: avoid a header-looking body to make hyper mode work
Daniel Stenberg [Mon, 7 Jun 2021 09:15:21 +0000 (11:15 +0200)] 
test328: avoid a header-looking body to make hyper mode work

The test still works the same, just modified two bytes in the content.

Closes #7203

4 years agorelease-notes.pl: also spot common 'closes' typo
Daniel Stenberg [Mon, 7 Jun 2021 09:16:58 +0000 (11:16 +0200)] 
release-notes.pl: also spot common 'closes' typo

4 years agometalink: remove
Daniel Stenberg [Tue, 1 Jun 2021 14:24:00 +0000 (16:24 +0200)] 
metalink: remove

Warning: this will make existing curl command lines that use metalink to
stop working.

Reasons for removal:

1. We've found several security problems and issues involving the
   metalink support in curl. The issues are not detailed here. When
   working on those, it become apparent to the team that several of the
   problems are due to the system design, metalink library API and what
   the metalink RFC says. They are very hard to fix on the curl side
   only.

2. The metalink usage with curl was only very briefly documented and was
   not following the "normal" curl usage pattern in several ways, making
   it surprising and non-intuitive which could lead to further security
   issues.

3. The metalink library was last updated 6 years ago and wasn't so
   active the years before that either. An unmaintained library means
   there's a security problem waiting to happen. This is probably reason
   enough.

4. Metalink requires an XML parsing library, which is complex code (even
   the smaller alternatives) and to this day often gets security
   updates.

5. Metalink is not a widely used curl feature. In the 2020 curl user
   survey, only 1.4% of the responders said that they'd are using it. In
   2021 that number was 1.2%. Searching the web also show very few
   traces of it being used, even with other tools.

6. The torrent format and associated technology clearly won for
   downloading large files from multiple sources in parallel.

Cloes #7176

4 years agodocs/INSTALL: remove mentions of configure --with-darwin-ssl
Daniel Stenberg [Sun, 6 Jun 2021 10:12:01 +0000 (12:12 +0200)] 
docs/INSTALL: remove mentions of configure --with-darwin-ssl

... as it isn't supported since a while back.

Make configure fail with a warning if used.

Reported-by: Vadim Grinshpun
Bug: https://curl.se/mail/lib-2021-06/0008.html
Closes #7200

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sun, 6 Jun 2021 15:10:47 +0000 (17:10 +0200)] 
RELEASE-NOTES: synced

4 years agocmake: Avoid leaking absolute paths into exported config
Gregor Jasny [Mon, 31 May 2021 15:10:45 +0000 (17:10 +0200)] 
cmake: Avoid leaking absolute paths into exported config

The `find_libarary` command resolves the library or framework
into an absolute path. In case of system frameworks which are
located within an Xcode-provided SDK this results in the Xcode
path and SDK version being part of the library path.

Because those library paths end up in the exported CMake config
importing curl will fail once the Xcode location or SDK version
changes:

```cmake
set_target_properties(CURL::libcurl PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  INTERFACE_LINK_LIBRARIES "lber;ldap;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/System/Library/Frameworks/SystemConfiguration.framework;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB"
)
```

A work-around is to link against system-level frameworks with
`-framework XYZ`. In case of `SystemConfiguration` we might be able
to omit the lookup-check because we could assume the framework is
always present.

Closes #7152

4 years agohttp2_connisdead: handle trailing GOAWAY better
Shikha Sharma [Fri, 4 Jun 2021 11:28:16 +0000 (13:28 +0200)] 
http2_connisdead: handle trailing GOAWAY better

When checking the connection the input processing returns error
immediately, we now consider that a dead connnection.

Bug: https://curl.se/mail/lib-2021-06/0001.html
Closes #7192

4 years agoares: always store IPv6 addresses first
Dmitry Karpov [Thu, 3 Jun 2021 21:56:37 +0000 (23:56 +0200)] 
ares: always store IPv6 addresses first

Trying dual-stack on some embedded platform, I noticed that quite
frequently (20%) libCurl starts from IPv4 regardless the Happy Eyeballs
timeout value.  After debugging this issue, I noticed that this happens
if c-ares resolver response for IPv6 family comes before IPv4 (which was
randomly happening in my tests).

In such cases, because libCurl puts the last resolver response on top of
the address list, when IPv4 resolver response comes after IPv6 one - the
IPv4 family starts the connection phase instead of IPv6 family.

The solution for this issue is to always put IPv6 addresses on top of
the address list, regardless the order of resolver responses.

Bug: https://curl.se/mail/lib-2021-06/0003.html

Closes #7188

4 years agoRevert "Revert "socketpair: fix potential hangs""
Daniel Stenberg [Sat, 5 Jun 2021 10:57:28 +0000 (12:57 +0200)] 
Revert "Revert "socketpair: fix potential hangs""

This reverts commit 3e70c3430a370a31eff2c1d8fea29edaca8f1127.

Thus brings back the change from #7144 as was originally landed in
c769d1eab4de8b

Closes #7144 (again)

4 years agoschannel: move code out of SChannel_connect_step1
Ebe Janchivdorj [Tue, 1 Jun 2021 20:37:08 +0000 (13:37 -0700)] 
schannel: move code out of SChannel_connect_step1

Reviewed-by: Marc Hoersken
Closes #7168

4 years agotests/data/Makefile.inc: error: trailing backslash on last line
Daniel Stenberg [Fri, 4 Jun 2021 14:50:54 +0000 (16:50 +0200)] 
tests/data/Makefile.inc: error: trailing backslash on last line

Follow-up to d8dcb399b8009d

4 years agoTODO: Support rate-limiting for MQTT
Daniel Stenberg [Fri, 4 Jun 2021 13:57:02 +0000 (15:57 +0200)] 
TODO: Support rate-limiting for MQTT

4 years agowarnless: simplify type size handling
dmitrykos [Wed, 2 Jun 2021 20:06:00 +0000 (23:06 +0300)] 
warnless: simplify type size handling

By using sizeof(T), existing defines and relying on the compiler to
define the required signed/unsigned mask.

Closes #7181

4 years ago[Win32] Fix for USE_WATT32
Gisle Vanem [Fri, 4 Jun 2021 10:16:57 +0000 (12:16 +0200)] 
[Win32] Fix for USE_WATT32

My Watt-32 tcp/ip stack works on Windows but it does not have `WSAIoctl()`

4 years agourl: bad CURLOPT_CONNECT_TO syntax now returns error
Alexis Vachette [Thu, 3 Jun 2021 12:49:49 +0000 (14:49 +0200)] 
url: bad CURLOPT_CONNECT_TO syntax now returns error

Added test 3020 to verify

Closes #7183