]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
4 years agotravis: adapt to Hyper build change
Daniel Stenberg [Tue, 5 Jan 2021 23:50:49 +0000 (00:50 +0100)] 
travis: adapt to Hyper build change

Closes #6419

4 years agopretransfer: setup the User-Agent header here
Daniel Stenberg [Tue, 5 Jan 2021 13:30:21 +0000 (14:30 +0100)] 
pretransfer: setup the User-Agent header here

... and not in the connection setup, as for multiplexed transfers the
connection setup might be skipped and then the transfer would end up
without the set user-agent!

Reported-by: Flameborn on github
Assisted-by: Andrey Gursky
Assisted-by: Jay Satiro
Assisted-by: Mike Gelfand
Fixes #6312
Closes #6417

4 years agotest66: disable with Hyper
Daniel Stenberg [Tue, 5 Jan 2021 16:27:05 +0000 (17:27 +0100)] 
test66: disable with Hyper

...as Hyper doesn't support HTTP/0.9

4 years agoc-hyper: poll the tasks until end correctly
Daniel Stenberg [Tue, 5 Jan 2021 10:47:22 +0000 (11:47 +0100)] 
c-hyper: poll the tasks until end correctly

... makes test 36 work.

Closes #6412

4 years agomk-ca-bundle.pl: deterministic output when using -t
Gergely Nagy [Tue, 5 Jan 2021 11:49:55 +0000 (12:49 +0100)] 
mk-ca-bundle.pl: deterministic output when using -t

Printing trust purposes are now sorted, making the output deterministic
when running on the same input certdata.txt.

Closes #6413

4 years agoKNOWN_BUGS: fixed "wolfSSL lacks support for renegotiation"
Daniel Stenberg [Tue, 5 Jan 2021 09:08:06 +0000 (10:08 +0100)] 
KNOWN_BUGS: fixed "wolfSSL lacks support for renegotiation"

Fixed by #6411

4 years agowolfssl: add SECURE_RENEGOTIATION support
Himanshu Gupta [Mon, 31 Aug 2020 19:35:35 +0000 (19:35 +0000)] 
wolfssl: add SECURE_RENEGOTIATION support

Closes #6411

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 5 Jan 2021 08:44:58 +0000 (09:44 +0100)] 
RELEASE-NOTES: synced

4 years agowolfssl: update copyright year range
Daniel Stenberg [Tue, 5 Jan 2021 08:39:59 +0000 (09:39 +0100)] 
wolfssl: update copyright year range

Follow-up to 7de2e96535e9

4 years agoc-hyper: make CURLE_GOT_NOTHING work
Daniel Stenberg [Mon, 4 Jan 2021 15:55:30 +0000 (16:55 +0100)] 
c-hyper: make CURLE_GOT_NOTHING work

Test 30

Closes #6407

4 years agohttp_proxy: make CONNECT work with the Hyper backend
Daniel Stenberg [Mon, 4 Jan 2021 08:36:41 +0000 (09:36 +0100)] 
http_proxy: make CONNECT work with the Hyper backend

Makes test 80 run

Closes #6406

4 years agoTODO: --fail-with-body perchance?
Daniel Stenberg [Tue, 5 Jan 2021 08:36:10 +0000 (09:36 +0100)] 
TODO: --fail-with-body perchance?

4 years agotool_operate: fix the suppression logic of some error messages
Jay Satiro [Sat, 2 Jan 2021 08:40:24 +0000 (03:40 -0500)] 
tool_operate: fix the suppression logic of some error messages

- Fix the failed truncation and failed writing body error messages to
  not be shown unless error messages are shown. (ie the user has
  specified -sS, or has not specified -s).

- Also prefix same error messages with "curl: ", for example:
  curl: (23) Failed to truncate, exiting

Prior to this change the failed truncation error messages would be shown
if not -s, but did not account for -sS which should show.

Prior to this change the failed writing body error messages would be
shown always.

Ref: https://curl.se/docs/manpage.html#-S

Bug: https://curl.se/mail/archive-2020-12/0017.html
Reported-by: Hongyi Zhao
Closes https://github.com/curl/curl/pull/6402

4 years agowolfssl: Support wolfSSL builds missing TLS 1.1
Jay Satiro [Tue, 29 Dec 2020 20:46:42 +0000 (15:46 -0500)] 
wolfssl: Support wolfSSL builds missing TLS 1.1

The wolfSSL TLS library defines NO_OLD_TLS in some of their build
configurations and that causes the library to be built without TLS 1.1.
For example if MD5 is explicitly disabled when building wolfSSL then
that defines NO_OLD_TLS and the library is built without TLS 1.1 [1].

Prior to this change attempting to build curl with a wolfSSL that was
built with NO_OLD_TLS would cause a build link error undefined reference
to wolfTLSv1_client_method.

[1]: https://github.com/wolfSSL/wolfssl/blob/v4.5.0-stable/configure.ac#L2366

Bug: https://curl.se/mail/lib-2020-12/0121.html
Reported-by: Julian Montes
Closes https://github.com/curl/curl/pull/6388

4 years agotest1633: set appropriate name
Daniel Stenberg [Mon, 4 Jan 2021 16:58:05 +0000 (17:58 +0100)] 
test1633: set appropriate name

"--retry with a 429 response and Retry-After:"

4 years agotravis: limit the tests with quiche builds to HTTPS and FTPS only
Daniel Stenberg [Sat, 2 Jan 2021 10:44:58 +0000 (11:44 +0100)] 
travis: limit the tests with quiche builds to HTTPS and FTPS only

... since it runs into the 50 minute time limit too often otherwise.

Closes #6403

4 years agoHISTORY: added dates to early history
Daniel Stenberg [Sun, 3 Jan 2021 15:27:51 +0000 (16:27 +0100)] 
HISTORY: added dates to early history

Mostly thanks to this archived web page for urlget:

https://web.archive.org/web/19980216125115/http://www.inf.ufrgs.br/~sagula/urlget.html

4 years agohttpauth: make multi-request auth work with custom port
Daniel Stenberg [Fri, 1 Jan 2021 22:41:21 +0000 (23:41 +0100)] 
httpauth: make multi-request auth work with custom port

When doing HTTP authentication and a port number set with CURLOPT_PORT,
the code would previously have the URL's port number override as if it
had been a redirect to an absolute URL.

Added test 1568 to verify.

Reported-by: UrsusArctos on github
Fixes #6397
Closes #6400

4 years agolanguage: s/behaviour/behavior/g
Emil Engler [Thu, 31 Dec 2020 09:11:49 +0000 (10:11 +0100)] 
language: s/behaviour/behavior/g

We currently use both spellings the british "behaviour" and the american
"behavior". However "behavior" is more used in the project so I think
it's worth dropping the british name.

Closes #6395

4 years agocmdline-opts/retry.d: mention response code 429 as well
Daniel Stenberg [Sat, 2 Jan 2021 10:51:55 +0000 (11:51 +0100)] 
cmdline-opts/retry.d: mention response code 429 as well

Reported-by: Cherish98
Bug: https://curl.se/mail/archive-2020-12/0018.html

4 years agodocs/HYPER.md: mention outstanding issues
Daniel Stenberg [Sat, 2 Jan 2021 10:42:27 +0000 (11:42 +0100)] 
docs/HYPER.md: mention outstanding issues

To make it more obvious to users what doesn't work (yet)

Closes #6389

4 years agoCOPYING/configure: bump copyright year range
Daniel Stenberg [Thu, 31 Dec 2020 23:52:28 +0000 (00:52 +0100)] 
COPYING/configure: bump copyright year range

4 years agoc-hyper: add timecondition to the request
Daniel Stenberg [Thu, 31 Dec 2020 23:48:40 +0000 (00:48 +0100)] 
c-hyper: add timecondition to the request

Test 77-78

Closes #6391

4 years agoc-hyper: make Digest and NTLM work
Daniel Stenberg [Wed, 30 Dec 2020 10:58:39 +0000 (11:58 +0100)] 
c-hyper: make Digest and NTLM work

Test 64, 65, 67, 68, 69, 70, 72

Closes #6390

4 years agoexamples/curlgtk.c: fix the copyright year range
Daniel Stenberg [Wed, 30 Dec 2020 21:37:44 +0000 (22:37 +0100)] 
examples/curlgtk.c: fix the copyright year range

... and make private functions static.

4 years agodocs/examples: adjust prototypes for CURLOPT_READFUNCTION
Olaf Hering [Wed, 30 Dec 2020 16:01:47 +0000 (17:01 +0100)] 
docs/examples: adjust prototypes for CURLOPT_READFUNCTION

The type of the buffer in curl_read_callback is 'char *', not 'void *'.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Closes #6392

4 years agoexamples: fix more empty expression statement has no effect
Daniel Stenberg [Wed, 30 Dec 2020 21:18:45 +0000 (22:18 +0100)] 
examples: fix more empty expression statement has no effect

Follow-up to 26e46617b9

4 years agocleanup: fix two empty expression statement has no effect
Daniel Stenberg [Wed, 30 Dec 2020 15:54:28 +0000 (16:54 +0100)] 
cleanup: fix two empty expression statement has no effect

Follow-up to 26e46617b9

4 years agoconfigure: set -Wextra-semi-stmt for clang with --enable-debug
Daniel Stenberg [Sat, 26 Dec 2020 15:41:09 +0000 (16:41 +0100)] 
configure: set -Wextra-semi-stmt for clang with --enable-debug

To have it properly complain on empty statements with no effect.

Ref: #6376
Closes #6378

4 years agotests/unit: fix empty statements with no effect
Daniel Stenberg [Tue, 29 Dec 2020 16:21:24 +0000 (17:21 +0100)] 
tests/unit: fix empty statements with no effect

... by making macros use "do {} while(0)"

4 years agodns: extend CURLOPT_RESOLVE syntax for adding non-permanent entries
Paul Groke [Thu, 10 Dec 2020 16:38:14 +0000 (17:38 +0100)] 
dns: extend CURLOPT_RESOLVE syntax for adding non-permanent entries

Extend the syntax of CURLOPT_RESOLVE strings: allow using a '+' prefix
(similar to the existing '-' prefix for removing entries) to add
DNS cache entries that will time out just like entries that are added
by libcurl itself.

Append " (non-permanent)" to info log message in case a non-permanent
entry is added.

Adjust relevant comments to reflect the new behavior.

Adjust documentation.

Extend unit1607 to test the new functionality.

Closes #6294

4 years agoschannel: fix "empty expression statement has no effect"
Daniel Stenberg [Sun, 27 Dec 2020 10:05:15 +0000 (11:05 +0100)] 
schannel: fix "empty expression statement has no effect"

Bug: https://github.com/curl/curl/commit/8ab78f720ae478d533e30b202baec4b451741579#commitcomment-45445950
Reported-by: Gisle Vanem
Closes #6381

4 years agodocs: remove redundant "better" in --fail help
Denis Laxalde [Tue, 29 Dec 2020 09:44:35 +0000 (10:44 +0100)] 
docs: remove redundant "better" in --fail help

Closes #6385

4 years agocurl.1: fix typo microsft -> microsoft
Kevin Ushey [Sun, 27 Dec 2020 04:19:55 +0000 (20:19 -0800)] 
curl.1: fix typo microsft -> microsoft

Closes #6380

4 years agomisc: assorted typo fixes
XhmikosR [Fri, 25 Dec 2020 05:52:59 +0000 (07:52 +0200)] 
misc: assorted typo fixes

Closes #6375

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sat, 26 Dec 2020 22:53:37 +0000 (23:53 +0100)] 
RELEASE-NOTES: synced

4 years agotool_operate: avoid NULL dereference of first_arg
Daniel Stenberg [Sat, 26 Dec 2020 15:20:54 +0000 (16:20 +0100)] 
tool_operate: avoid NULL dereference of first_arg

Follow-up to 6a5e020d4d2b04a
Identified by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28999
Closes #6377

4 years agomisc: fix "warning: empty expression statement has no effect"
Daniel Stenberg [Sat, 26 Dec 2020 14:43:25 +0000 (15:43 +0100)] 
misc: fix "warning: empty expression statement has no effect"

Turned several macros into do-while(0) style to allow their use to work
find with semicolon.

Bug: https://github.com/curl/curl/commit/08e8455dddc5e48e58a12ade3815c01ae3da3b64#commitcomment-45433279
Follow-up to 08e8455dddc5e4
Reported-by: Gisle Vanem
Closes #6376

4 years agoKNOWN_BUGS: 6.10 curl never completes Negotiate over HTTP
Daniel Stenberg [Fri, 25 Dec 2020 16:16:19 +0000 (17:16 +0100)] 
KNOWN_BUGS: 6.10 curl never completes Negotiate over HTTP

Closes #5235
Closes #6370

4 years agowriteout: fix NULL dereference for "this url"
Daniel Stenberg [Fri, 25 Dec 2020 22:59:31 +0000 (23:59 +0100)] 
writeout: fix NULL dereference for "this url"

Detected by torture test 1029

Follow-up to 7a90ddf88f5a

Closes #6374

4 years agofailf: remove newline from formatting strings
Daniel Stenberg [Wed, 23 Dec 2020 22:41:13 +0000 (23:41 +0100)] 
failf: remove newline from formatting strings

... as failf adds one itself.

Also: add an assert() to failf() that triggers on a newline in the
format string!

Closes #6365

4 years agoCI: fix warning with the latest versions
XhmikosR [Fri, 25 Dec 2020 05:40:57 +0000 (07:40 +0200)] 
CI: fix warning with the latest versions

`git checkout HEAD^2` is no longer needed

Closes #6369

4 years agoINSTALL: update the list known OSes and CPU archs curl has run on
Daniel Stenberg [Wed, 23 Dec 2020 23:13:09 +0000 (00:13 +0100)] 
INSTALL: update the list known OSes and CPU archs curl has run on

Closes #6366

4 years agocurl: fix handling of -q option
Cherish98 [Wed, 23 Dec 2020 12:59:00 +0000 (12:59 +0000)] 
curl: fix handling of -q option

The match of the "-q" option (short for "--disable") should:
a) allow concatenation with other single-letters; and
b) be case-sensitive, lest confusing with "-Q" ("--quote")

Closes #6364

4 years agotests/badsymbols.pl: ignore stand-alone single hash lines
Daniel Stenberg [Mon, 21 Dec 2020 21:49:42 +0000 (22:49 +0100)] 
tests/badsymbols.pl: ignore stand-alone single hash lines

Bug: https://curl.se/mail/lib-2020-12/0084.html
Reported-by: Dennis Clarke
Assisted-by: Jay Satiro
Closes #6355

4 years agocurl_easy_pause.3: add multiplexed pause effects
Daniel Stenberg [Tue, 22 Dec 2020 15:08:43 +0000 (16:08 +0100)] 
curl_easy_pause.3: add multiplexed pause effects

and generally refresh and update. Remove details for ancient versions.

Reviewed-by: Jay Satiro
Closes #6360

4 years agocurl_easy_pause.3: fix man page reference
Jay Satiro [Tue, 22 Dec 2020 21:51:19 +0000 (16:51 -0500)] 
curl_easy_pause.3: fix man page reference

Follow-up to ac9a724 from earlier today.

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

4 years agoEXPERIMENTAL: add the Hyper backend to the list
Daniel Stenberg [Tue, 22 Dec 2020 16:17:37 +0000 (17:17 +0100)] 
EXPERIMENTAL: add the Hyper backend to the list

... of current experimental features in curl.

4 years agospeedcheck: exclude paused transfers
Daniel Stenberg [Tue, 22 Dec 2020 08:54:06 +0000 (09:54 +0100)] 
speedcheck: exclude paused transfers

Paused transfers should not be stopped due to slow speed even when
CURLOPT_LOW_SPEED_LIMIT is set. Additionally, the slow speed timer is
now reset when the transfer is unpaused - as otherwise it would easily
just trigger immediately after unpausing.

Reported-by: Harry Sintonen
Fixes #6358
Closes #6359

4 years agoh2: do not wait for RECV on paused transfers
Daniel Stenberg [Tue, 22 Dec 2020 08:09:46 +0000 (09:09 +0100)] 
h2: do not wait for RECV on paused transfers

... as the socket might be readable all the time when paused and thus
causing a busy-loop.

Reported-by: Harry Sintonen
Reviewed-by: Jay Satiro
Fixes #6356
Closes #6357

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 21 Dec 2020 22:06:29 +0000 (23:06 +0100)] 
RELEASE-NOTES: synced

4 years agocmdline-opts/gen.pl: return hard on errors
Daniel Stenberg [Mon, 21 Dec 2020 14:30:56 +0000 (15:30 +0100)] 
cmdline-opts/gen.pl: return hard on errors

... as the warnings tend to go unnoticed otherwise!

Closes #6354

4 years agoexamples/libtest: add .checksrc to dist
Daniel Stenberg [Mon, 21 Dec 2020 08:40:25 +0000 (09:40 +0100)] 
examples/libtest: add .checksrc to dist

... so that (auto)builds from tarballs also get the correct instructions.

Fixes #6176
Closes #6353

4 years agotest: verify new --write-out variables
Daniel Stenberg [Sun, 20 Dec 2020 22:00:13 +0000 (23:00 +0100)] 
test: verify new --write-out variables

Extended test 1029 and added 1188

4 years agotest970: adapted to the new internal order of variables
Daniel Stenberg [Mon, 14 Dec 2020 09:09:51 +0000 (10:09 +0100)] 
test970: adapted to the new internal order of variables

4 years agocurl: add variables to --write-out
Daniel Stenberg [Mon, 14 Dec 2020 09:09:51 +0000 (10:09 +0100)] 
curl: add variables to --write-out

In particular, these ones can help a user to create its own error
message when one or transfers fail.

writeout: add 'onerror', 'url', 'urlnum', 'exitcode', 'errormsg'

onerror - lets a user only show the rest on non-zero exit codes

url - the input URL used for this transfer

urlnum - the numerical URL counter (0 indexed) for this transfer

exitcode - the numerical exit code for the transfer

errormsg - obvious

Reported-by: Earnestly on github
Fixes #6199
Closes #6207

4 years agotests: add very simple AWS HTTP v4 Signature test
Matthias Gatto [Fri, 10 Jul 2020 15:03:06 +0000 (17:03 +0200)] 
tests: add very simple AWS HTTP v4 Signature test

Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
4 years agodocs: add AWS HTTP v4 Signature
Matthias Gatto [Fri, 3 Jul 2020 12:50:06 +0000 (14:50 +0200)] 
docs: add AWS HTTP v4 Signature

4 years agotool: add AWS HTTP v4 Signature support
Matthias Gatto [Thu, 9 Jul 2020 10:04:55 +0000 (12:04 +0200)] 
tool: add AWS HTTP v4 Signature support

Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
4 years agohttp: Make the call to v4 signature
Matthias Gatto [Tue, 21 Jan 2020 16:33:51 +0000 (17:33 +0100)] 
http: Make the call to v4 signature

This patch allow to call the v4 signature introduce in previous commit

Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
4 years agohttp: introduce AWS HTTP v4 Signature
Matthias Gatto [Thu, 9 Jul 2020 11:58:37 +0000 (13:58 +0200)] 
http: introduce AWS HTTP v4 Signature

It is a security process for HTTP.

It doesn't seems to be standard, but it is used by some cloud providers.

Aws:
https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
Outscale:
https://wiki.outscale.net/display/EN/Creating+a+Canonical+Request
GCP (I didn't test that this code work with GCP though):
https://cloud.google.com/storage/docs/access-control/signing-urls-manually

most of the code is in lib/http_v4_signature.c

Information require by the algorithm:
- The URL
- Current time
-  some prefix that are append to some of the signature parameters.

The data extracted from the URL are: the URI, the region,
the host and the API type

example:
https://api.eu-west-2.outscale.com/api/latest/ReadNets
        ~~~ ~~~~~~~~               ~~~~~~~~~~~~~~~~~~~
        ^       ^                          ^
       /         \                        URI
   API type     region

Small description of the algorithm:
- make canonical header using content type, the host, and the date
- hash the post data
- make canonical_request using custom request, the URI,
  the get data, the canonical header, the signed header
  and post data hash
- hash canonical_request
- make str_to_sign using one of the prefix pass in parameter,
  the date, the credential scope and the canonical_request hash
- compute hmac from date, using secret key as key.
- compute hmac from region, using above hmac as key
- compute hmac from api_type, using above hmac as key
- compute hmac from request_type, using above hmac as key
- compute hmac from str_to_sign using above hmac as key
- create Authorization header using above hmac, prefix pass in parameter,
  the date, and above hash

Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
Closes #5703

4 years agohttp: add hmac support for sha256
Matthias Gatto [Fri, 3 Jul 2020 13:12:57 +0000 (15:12 +0200)] 
http: add hmac support for sha256

It seems current hmac implementation use md5 for the hash,
V4 signature require sha256, so I've added the needed struct in
this commit.

I've added the functions that do the hmac in v4 signature file
as a static function ,in the next patch of the serie,
because it's used only by this file.

Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
4 years agoconnect: on linux, enable reporting of all ICMP errors on UDP sockets
Cristian Rodríguez [Thu, 17 Dec 2020 14:27:03 +0000 (11:27 -0300)] 
connect: on linux, enable reporting of all ICMP errors on UDP sockets

The linux kernel does not report all ICMP errors back to userspace due
to historical reasons.

IP*_RECVERR sockopt must be turned on to have the correct behaviour
which is to pass all ICMP errors to userspace.

See https://bugzilla.kernel.org/show_bug.cgi?id=202355

Closes #6341

4 years agocurl: add --create-file-mode [mode]
Daniel Stenberg [Sun, 20 Dec 2020 17:44:20 +0000 (18:44 +0100)] 
curl: add --create-file-mode [mode]

This option sets the (octal) mode to use for the remote file when one is
created, using the SFTP, SCP or FILE protocols. When not set, the
default is 0644.

Closes #6244

4 years agoc-hyper: fix compiler warnings
Daniel Stenberg [Sun, 20 Dec 2020 17:33:54 +0000 (18:33 +0100)] 
c-hyper: fix compiler warnings

Identified by clang on windows.

Reported-by: Gisle Vanem
Bug: 58974d25d8173aec154e593ed9d866da566c9811

Closes #6351

4 years agoKNOWN_BUGS: Remote recursive folder creation with SFTP
Daniel Stenberg [Sun, 20 Dec 2020 21:49:36 +0000 (22:49 +0100)] 
KNOWN_BUGS: Remote recursive folder creation with SFTP

Closes #5204

4 years agobadsymbols.pl: Add verbose mode -v
Jay Satiro [Sun, 20 Dec 2020 07:48:07 +0000 (02:48 -0500)] 
badsymbols.pl: Add verbose mode -v

Use -v as the first option to enable verbose mode which will show source
input, extracted symbol and line info. For example:

Source: ./../include/curl/typecheck-gcc.h
Symbol: curlcheck_socket_info(info)
Line #423: #define curlcheck_socket_info(info)                     \

Ref: https://curl.se/mail/lib-2020-12/0084.html

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

4 years agoKNOWN_BUGS: Secure Transport disabling hostname validation also disables SNI
Jay Satiro [Sat, 19 Dec 2020 22:40:03 +0000 (17:40 -0500)] 
KNOWN_BUGS: Secure Transport disabling hostname validation also disables SNI

That behavior is a limitation of Apple's Secure Transport.

Reported-by: Cory Benfield
Reported-by: Ian Spence
Confirmed-by: Nick Zitzmann
Ref: https://github.com/curl/curl/issues/998

Closes https://github.com/curl/curl/issues/6347
Closes https://github.com/curl/curl/pull/6348

4 years agoTODO: alt-svc should fallback if alt-svc doesn't work
Daniel Stenberg [Fri, 18 Dec 2020 22:39:22 +0000 (23:39 +0100)] 
TODO: alt-svc should fallback if alt-svc doesn't work

Closes #4908

4 years agotravis: restrict the openssl3 job to only run https and ftps tests
Daniel Stenberg [Fri, 18 Dec 2020 14:59:56 +0000 (15:59 +0100)] 
travis: restrict the openssl3 job to only run https and ftps tests

... as it runs too long otherwise and the other tests are verified in
other builds anyway.

Closes #6345

4 years agobuild: repair http disabled but mqtt enabled build
Daniel Stenberg [Fri, 18 Dec 2020 12:18:14 +0000 (13:18 +0100)] 
build: repair http disabled but mqtt enabled build

... as the mqtt code reuses the "method" originally used for HTTP.

Closes #6344

4 years agocookie: avoid the C1001 internal compiler error with MSVC 14
Jon Wilkes [Tue, 27 Oct 2020 19:47:57 +0000 (12:47 -0700)] 
cookie: avoid the C1001 internal compiler error with MSVC 14

Fixes #6112
Closes #6135

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Fri, 18 Dec 2020 12:02:40 +0000 (13:02 +0100)] 
RELEASE-NOTES: synced

4 years agomqtt: handle POST/PUBLISH without a set POSTFIELDSIZE
Daniel Stenberg [Thu, 17 Dec 2020 12:34:38 +0000 (13:34 +0100)] 
mqtt: handle POST/PUBLISH without a set POSTFIELDSIZE

Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28735

Added test 1916 and 1917 to verify.

Closes #6338

4 years agotravis: add CI job for Hyper build
Daniel Stenberg [Mon, 14 Dec 2020 13:10:33 +0000 (14:10 +0100)] 
travis: add CI job for Hyper build

4 years agotests: updated tests for Hyper
Daniel Stenberg [Mon, 14 Dec 2020 13:10:33 +0000 (14:10 +0100)] 
tests: updated tests for Hyper

4 years agolib: introduce c-hyper for using Hyper
Daniel Stenberg [Mon, 14 Dec 2020 13:10:33 +0000 (14:10 +0100)] 
lib: introduce c-hyper for using Hyper

... as an alternative HTTP backend within libcurl.

4 years agotool_setopt: provide helper output in debug builds
Daniel Stenberg [Mon, 14 Dec 2020 13:10:33 +0000 (14:10 +0100)] 
tool_setopt: provide helper output in debug builds

... for when setopt() returns error.

4 years agosetopt: adjust to Hyper and disabled HTTP builds
Daniel Stenberg [Mon, 14 Dec 2020 13:10:33 +0000 (14:10 +0100)] 
setopt: adjust to Hyper and disabled HTTP builds

4 years agortsp: disable if Hyper is used
Daniel Stenberg [Mon, 14 Dec 2020 13:10:33 +0000 (14:10 +0100)] 
rtsp: disable if Hyper is used

4 years agogetinfo: build with disabled HTTP support
Daniel Stenberg [Mon, 14 Dec 2020 13:10:33 +0000 (14:10 +0100)] 
getinfo: build with disabled HTTP support

4 years agoversion: include hyper version
Daniel Stenberg [Mon, 14 Dec 2020 13:10:33 +0000 (14:10 +0100)] 
version: include hyper version

4 years agodocs: add HYPER.md
Daniel Stenberg [Mon, 14 Dec 2020 13:10:32 +0000 (14:10 +0100)] 
docs: add HYPER.md

4 years agoconfigure: add --with-hyper
Daniel Stenberg [Mon, 14 Dec 2020 13:10:32 +0000 (14:10 +0100)] 
configure: add --with-hyper

As the first (optional) HTTP backend alternative instead of native

Close #6110

4 years agotest1522: add debug tracing
Daniel Stenberg [Wed, 16 Dec 2020 09:39:41 +0000 (10:39 +0100)] 
test1522: add debug tracing

I used this to track down some issues and I figured I could just as well
keep this extra logging in here for future needs.

Closes #6331

4 years agohttp: show the request as headers even when split-sending
Daniel Stenberg [Tue, 15 Dec 2020 15:53:04 +0000 (16:53 +0100)] 
http: show the request as headers even when split-sending

When the initial request isn't possible to send in its entirety, the
remainder of request would be delivered to the debug callback as data
and would wrongly be counted internally as body-bytes sent.

Extended test 1295 to verify.

Closes #6328

4 years agomulti: when erroring in TOOFAST state, act as for PERFORM
Daniel Stenberg [Thu, 17 Dec 2020 10:17:55 +0000 (11:17 +0100)] 
multi: when erroring in TOOFAST state, act as for PERFORM

When failing in TOOFAST, the multi_done() wasn't called so the same
cleanup and handling wasn't done like when it fails in PERFORM, which in
the case of FTP could mean that the control connection wouldn't be
marked as "dead" for the CURLE_ABORTED_BY_CALLBACK case. Which caused
ftp_disconnect() to use it to send "QUIT", which could end up waiting
for a response a long time before giving up!

Reported-by: Tomas Berger
Fixes #6333
Closes #6337

4 years agocmake: enable gophers correctly in curl-config
Daniel Stenberg [Thu, 17 Dec 2020 09:38:27 +0000 (10:38 +0100)] 
cmake: enable gophers correctly in curl-config

Closes #6336

4 years agotest1198/9: add two mqtt publish tests without payload lengths
Daniel Stenberg [Thu, 17 Dec 2020 09:14:14 +0000 (10:14 +0100)] 
test1198/9: add two mqtt publish tests without payload lengths

Closes #6335

4 years agotests/mqttd: extract the client id from the correct offset 6334/head
Daniel Stenberg [Thu, 17 Dec 2020 09:15:31 +0000 (10:15 +0100)] 
tests/mqttd: extract the client id from the correct offset

Closes #6334

4 years agoTODO: Prevent terminal injection when writing to terminal
Daniel Stenberg [Wed, 16 Dec 2020 22:38:20 +0000 (23:38 +0100)] 
TODO: Prevent terminal injection when writing to terminal

Closes #6150

4 years agoRevert "CI/github: work-around for brew breakage on macOS"
Daniel Stenberg [Wed, 16 Dec 2020 09:44:29 +0000 (10:44 +0100)] 
Revert "CI/github: work-around for brew breakage on macOS"

This reverts commit 4cbb17a2cbbbe6337142d39479e21c3990b9c22f.

... as the work-around now causes failures.

Closes #6332

4 years agoexamples: remove superfluous asterisk uses
Daniel Stenberg [Wed, 16 Dec 2020 08:24:16 +0000 (09:24 +0100)] 
examples: remove superfluous asterisk uses

... for function pointers. Breaks in ancient compilers.

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 16 Dec 2020 07:21:48 +0000 (08:21 +0100)] 
RELEASE-NOTES: synced

4 years agotest1272: fix line ending
Daniel Stenberg [Tue, 15 Dec 2020 16:38:17 +0000 (17:38 +0100)] 
test1272: fix line ending

Follow-up to f24784f9143

4 years agoURL-SYNTAX: add gophers details
Daniel Stenberg [Tue, 15 Dec 2020 11:56:36 +0000 (12:56 +0100)] 
URL-SYNTAX: add gophers details

4 years agotest1272: test gophers
Daniel Stenberg [Mon, 16 Nov 2020 16:55:44 +0000 (17:55 +0100)] 
test1272: test gophers

4 years agoruntests: add support for gophers, gopher over TLS
Daniel Stenberg [Mon, 16 Nov 2020 16:54:07 +0000 (17:54 +0100)] 
runtests: add support for gophers, gopher over TLS

4 years agogopher: Implement secure gopher protocol.
parazyd [Sun, 15 Nov 2020 17:46:06 +0000 (18:46 +0100)] 
gopher: Implement secure gopher protocol.

This commit introduces a "gophers" handler inside the gopher protocol if
USE_SSL is defined. This protocol is no different than the usual gopher
prococol, with the added TLS encapsulation upon connecting. The protocol
has been adopted in the gopher community, and many people have enabled
TLS in their gopher daemons like geomyidae(8), and clients, like clic(1)
and hurl(1).

I have not implemented test units for this protocol because my knowledge
of Perl is sub-par. However, for someone more knowledgeable it might be
fairly trivial, because the same test that tests the plain gopher
protocol can be used for "gophers" just by adding a TLS listener.

Signed-off-by: parazyd <parazyd@dyne.org>
Closes #6208

4 years agoTODO: Package curl for Windows in a signed installer
Daniel Stenberg [Tue, 15 Dec 2020 11:02:14 +0000 (12:02 +0100)] 
TODO: Package curl for Windows in a signed installer

Closes #5424