]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
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

4 years agomqtt: deal with 0 byte reads correctly
Daniel Stenberg [Tue, 15 Dec 2020 07:51:33 +0000 (08:51 +0100)] 
mqtt: deal with 0 byte reads correctly

OSS-Fuzz found it
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28676

Closes #6327

4 years agoBUG-BOUNTY: minor language update
Daniel Stenberg [Mon, 14 Dec 2020 09:08:05 +0000 (10:08 +0100)] 
BUG-BOUNTY: minor language update

... and remove the wording about entries from before 2019 as the "within
12 months" is still there and covers that.

Closes #6318

4 years agotooĺ_writeout: fix the -w time output units
Daniel Stenberg [Tue, 15 Dec 2020 07:09:29 +0000 (08:09 +0100)] 
tooĺ_writeout: fix the -w time output units

Fix regression from commit fc813f80e1bcac (#6248) that changed the unit
to microseconds instead of seconds with fractions

Reported-by: 不确定
Fixes #6321
Closes #6322

4 years agoquiche: remove fprintf() leftover
Daniel Stenberg [Mon, 14 Dec 2020 10:19:48 +0000 (11:19 +0100)] 
quiche: remove fprintf() leftover

4 years agoKNOWN_BUGS: SHA-256 digest not supported in Windows SSPI builds
Jay Satiro [Mon, 14 Dec 2020 06:08:15 +0000 (01:08 -0500)] 
KNOWN_BUGS: SHA-256 digest not supported in Windows SSPI builds

Closes https://github.com/curl/curl/issues/6302

4 years agodigest_sspi: Show InitializeSecurityContext errors in verbose mode
Jay Satiro [Sun, 13 Dec 2020 08:30:23 +0000 (03:30 -0500)] 
digest_sspi: Show InitializeSecurityContext errors in verbose mode

The error is shown with infof rather than failf so that the user will
see the extended error message information only in verbose mode, and
will still see the standard CURLE_AUTH_ERROR message. For example:

---

* schannel: InitializeSecurityContext failed: SEC_E_QOP_NOT_SUPPORTED
(0x8009030A) - The per-message Quality of Protection is not supported by
the security package
* multi_done
* Connection #1 to host 127.0.0.1 left intact
curl: (94) An authentication function returned an error

---

Ref: https://github.com/curl/curl/issues/6302

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

4 years agoURL-SYNTAX: add default port numbers and IDNA details
Daniel Stenberg [Sun, 13 Dec 2020 11:31:14 +0000 (12:31 +0100)] 
URL-SYNTAX: add default port numbers and IDNA details

Closes #6316

4 years agoURL-SYNTAX: mention how FILE:// access can access network on windows
Daniel Stenberg [Sat, 12 Dec 2020 21:23:19 +0000 (22:23 +0100)] 
URL-SYNTAX: mention how FILE:// access can access network on windows

Closes #6314

4 years agoURL-SYNTAX: Document default SMTP port 25
Jay Satiro [Sat, 12 Dec 2020 00:12:18 +0000 (19:12 -0500)] 
URL-SYNTAX: Document default SMTP port 25

Note that ports 25 and 587 are common ports for smtp, the former being
the default.

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

4 years agoCURLOPT_URL.3: remove scheme specific details
Daniel Stenberg [Fri, 11 Dec 2020 23:03:25 +0000 (00:03 +0100)] 
CURLOPT_URL.3: remove scheme specific details

... that are now found in URL-SYNTAX.md

Closes #6307

4 years agodocs: Fix some typos
Dan Fandrich [Sat, 12 Dec 2020 17:59:10 +0000 (09:59 -0800)] 
docs: Fix some typos

[skip ci]

4 years agoURL-SYNTAX: mention all supported schemes
Daniel Stenberg [Sat, 12 Dec 2020 10:44:49 +0000 (11:44 +0100)] 
URL-SYNTAX: mention all supported schemes

Closes #6311

4 years agoURL-SYNTAX.md: minor language improvements
Douglas R. Reno [Fri, 11 Dec 2020 23:23:50 +0000 (17:23 -0600)] 
URL-SYNTAX.md: minor language improvements

Closes #6308

4 years agodocs/URL-SYNTAX: the URL syntax curl accepts and works with
Daniel Stenberg [Mon, 7 Dec 2020 12:58:55 +0000 (13:58 +0100)] 
docs/URL-SYNTAX: the URL syntax curl accepts and works with

Closes #6285

4 years agodocs: enable syntax highlighting in several docs files
0xflotus [Mon, 7 Dec 2020 17:09:37 +0000 (18:09 +0100)] 
docs: enable syntax highlighting in several docs files

... for better readability

Closes #6286

4 years agotest1564/1565: require the 'wakeup' feature to run
Daniel Stenberg [Fri, 11 Dec 2020 08:07:00 +0000 (09:07 +0100)] 
test1564/1565: require the 'wakeup' feature to run

Fixes #6299
Fixes #6300
Closes #6301

4 years agoruntests: add 'wakeup' as a feature
Daniel Stenberg [Fri, 11 Dec 2020 08:06:36 +0000 (09:06 +0100)] 
runtests: add 'wakeup' as a feature

4 years agotests/server/disabled: add "wakeup"
Daniel Stenberg [Fri, 11 Dec 2020 08:05:47 +0000 (09:05 +0100)] 
tests/server/disabled: add "wakeup"

To allow the test suite to know if wakeup support is disabled in the
build.

4 years agolib1564/5: verify that curl_multi_wakeup returns OK
Daniel Stenberg [Thu, 10 Dec 2020 23:35:15 +0000 (00:35 +0100)] 
lib1564/5: verify that curl_multi_wakeup returns OK

4 years agotests: make --libcurl tests only test FTP options if ftp enabled
Daniel Stenberg [Fri, 11 Dec 2020 12:55:00 +0000 (13:55 +0100)] 
tests: make --libcurl tests only test FTP options if ftp enabled

Adjust six --libcurl tests to only check the FTP option if FTP is
actually present in the build.

Fixes #6303
Closes #6305

4 years agoruntests.pl: fix "uninitialized value" warning
Daniel Stenberg [Fri, 11 Dec 2020 12:52:59 +0000 (13:52 +0100)] 
runtests.pl: fix "uninitialized value" warning

follow-up to e12825c642a88774

4 years agoruntests: add support for %if [feature] conditions
Daniel Stenberg [Fri, 11 Dec 2020 09:26:06 +0000 (10:26 +0100)] 
runtests: add support for %if [feature] conditions

... to make tests run differently or expect different results depending
on what features that are present or not in curl.

Bonus: initial minor 'Hyper' awareness but nothing is using that yet

Closes #6304

4 years agoOS400: update ccsidcurl.c
Jon Rumsey [Thu, 10 Dec 2020 09:56:36 +0000 (09:56 +0000)] 
OS400: update ccsidcurl.c

Add 'struct' to cast and declaration of cfcdata to fix compilation
error.

Fixes #6292
Closes #6297

4 years agongtcp2: make it build it current master again
Daniel Stenberg [Wed, 9 Dec 2020 22:31:23 +0000 (23:31 +0100)] 
ngtcp2: make it build it current master again

Closes #6296

4 years agoconnect: defer port selection until connect() time
Cristian Rodríguez [Wed, 9 Dec 2020 19:30:29 +0000 (16:30 -0300)] 
connect: defer port selection until connect() time

If supported, defer port selection until connect() time
if --interface is given and source port is 0.

Reproducer:

* start fast webserver on port 80
* starve system of ephemeral ports
$  sysctl net.ipv4.ip_local_port_range="60990 60999"

* start a curl/libcurl "crawler"
$curl --keepalive --parallel --parallel-immediate --head --interface
127.0.0.2 "http://127.0.0.[1-254]/file[001-002].txt"

current result:
(possible some successful data)
curl: (45) bind failed with errno 98: Address already in use

result after patch:
(complete success or few connections failing, higlhy depending on load)

Fail only when all the possible 4-tuple combinations are exhausted,
which is impossible to do when port is selected at bind() time becuse
the kernel does not know if socket will be listen()'ed on or connect'ed
yet.

Closes #6295

4 years agoconnect: zero variable on stack to silence valgrind complaint
Hans-Christian Noren Egtvedt [Wed, 9 Dec 2020 09:42:59 +0000 (10:42 +0100)] 
connect: zero variable on stack to silence valgrind complaint

Valgrind will complain that ssrem buffer usage if not explicit
initialized, hence initialize it to zero.

This completes the change intially started in commit 2c0d7212151 ('ftp:
retry getpeername for FTP with TCP_FASTOPEN') where the ssloc buffer has
a similar memset to zero.

Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
Closes #6289

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 9 Dec 2020 21:57:47 +0000 (22:57 +0100)] 
RELEASE-NOTES: synced

start over on the next release cycle

4 years agoRELEASE-NOTES: synced curl-7_74_0
Daniel Stenberg [Wed, 9 Dec 2020 06:38:24 +0000 (07:38 +0100)] 
RELEASE-NOTES: synced

for 7.74.0

4 years agourldata: restore comment on ssl_connect_data.use
Jacob Hoffman-Andrews [Mon, 7 Dec 2020 23:04:42 +0000 (15:04 -0800)] 
urldata: restore comment on ssl_connect_data.use

This comment was originally on the `use` field, but was separated from
its field in 62a2534.

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

4 years agoVERSIONS: refreshed
Daniel Stenberg [Mon, 7 Dec 2020 12:23:04 +0000 (13:23 +0100)] 
VERSIONS: refreshed

We always use the patch number these days: all releases are
"major.minor.patch"

4 years agocmake: don't use reserved target name 'test'
Jakub Zakrzewski [Fri, 27 Nov 2020 20:06:03 +0000 (21:06 +0100)] 
cmake: don't use reserved target name 'test'

CMake up to 3.10 always reserves this name

Fixes #6257
Closes #6258

4 years agoopenssl: make the OCSP verification verify the certificate id
Daniel Stenberg [Wed, 2 Dec 2020 22:01:11 +0000 (23:01 +0100)] 
openssl: make the OCSP verification verify the certificate id

CVE-2020-8286

Reported by anonymous

Bug: https://curl.se/docs/CVE-2020-8286.html

4 years agoftp: make wc_statemach loop instead of recurse
Daniel Stenberg [Fri, 27 Nov 2020 23:27:21 +0000 (00:27 +0100)] 
ftp: make wc_statemach loop instead of recurse

CVE-2020-8285

Fixes #6255
Bug: https://curl.se/docs/CVE-2020-8285.html
Reported-by: xnynx on github
4 years agoftp: CURLOPT_FTP_SKIP_PASV_IP by default
Daniel Stenberg [Tue, 24 Nov 2020 13:56:57 +0000 (14:56 +0100)] 
ftp: CURLOPT_FTP_SKIP_PASV_IP by default

The command line tool also independently sets --ftp-skip-pasv-ip by
default.

Ten test cases updated to adapt the modified --libcurl output.

Bug: https://curl.se/docs/CVE-2020-8284.html
CVE-2020-8284

Reported-by: Varnavas Papaioannou
4 years agourlapi: don't accept blank port number field without scheme
Daniel Stenberg [Fri, 4 Dec 2020 16:27:57 +0000 (17:27 +0100)] 
urlapi: don't accept blank port number field without scheme

... as it makes the URL parser accept "very-long-hostname://" as a valid
host name and we don't want that. The parser now only accepts a blank
(no digits) after the colon if the URL starts with a scheme.

Reported-by: d4d on hackerone
Closes #6283

4 years agoRevert "multi: implement wait using winsock events"
Daniel Stenberg [Sat, 5 Dec 2020 16:56:35 +0000 (17:56 +0100)] 
Revert "multi: implement wait using winsock events"

This reverts commit d2a7d7c185f98df8f3e585e5620cbc0482e45fac.

This commit also reverts the subsequent follow-ups to that commit, which
were all done within windows #ifdefs that are removed in this
change. Marc helped me verify this.

Fixes #6146
Closes #6281

4 years agoftp: retry getpeername for FTP with TCP_FASTOPEN
Klaus Crusius [Sat, 28 Nov 2020 17:17:11 +0000 (18:17 +0100)] 
ftp: retry getpeername for FTP with TCP_FASTOPEN

In the case of TFO, the remote host name is not resolved at the
connetion time.

For FTP that has lead to missing hostname for the secondary connection.
Therefore the name resolution is done at the time, when FTP requires it.

Fixes #6252
Closes #6265
Closes #6282

4 years agoscripts/completion.pl: parse all opts
Thomas Danielsson [Sat, 5 Dec 2020 15:21:53 +0000 (15:21 +0000)] 
scripts/completion.pl: parse all opts

For tab-completion it may be preferable to include all the
available options.

Closes #6280

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Fri, 4 Dec 2020 15:27:35 +0000 (16:27 +0100)] 
RELEASE-NOTES: synced

4 years agoopenssl: use OPENSSL_init_ssl() with >= 1.1.0
Daniel Stenberg [Sat, 28 Nov 2020 15:42:52 +0000 (16:42 +0100)] 
openssl: use OPENSSL_init_ssl() with >= 1.1.0

Reported-by: Kovalkov Dmitrii and Per Nilsson
Fixes #6254
Fixes #6256
Closes #6260

4 years agoSECURITY-PROCESS: disclose on hackerone
Daniel Stenberg [Thu, 3 Dec 2020 13:18:51 +0000 (14:18 +0100)] 
SECURITY-PROCESS: disclose on hackerone

Once a vulnerability has been published, the hackerone issue should be
disclosed. For tranparency.

Closes #6275

4 years agotests/util.py: fix compatibility with Python 2
Marc Hoersken [Mon, 30 Nov 2020 21:16:21 +0000 (22:16 +0100)] 
tests/util.py: fix compatibility with Python 2

Backporting the Python 3 implementation of setStream
to ClosingFileHandler as a fallback within Python 2.

Reported-by: Jay Satiro
Fixes #6259
Closes #6270

4 years agodocs: fix typos and markup in ETag manpage sections
Daniel Gustafsson [Thu, 3 Dec 2020 12:25:42 +0000 (13:25 +0100)] 
docs: fix typos and markup in ETag manpage sections

Reported-by: emanruse on github
Fixes #6273

4 years agoquiche: close the connection
Daniel Stenberg [Wed, 18 Nov 2020 13:06:07 +0000 (14:06 +0100)] 
quiche: close the connection

Reported-by: Junho Choi
Fixes #6213
Closes #6217

4 years agongtcp2: Fix build error due to symbol name change
Jay Satiro [Wed, 2 Dec 2020 07:56:56 +0000 (02:56 -0500)] 
ngtcp2: Fix build error due to symbol name change

- NGTCP2_CRYPTO_LEVEL_APP -> NGTCP2_CRYPTO_LEVEL_APPLICATION

ngtcp2/ngtcp2@76232e9 changed the name.

ngtcp2 master is required to build curl with http3 support.

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

4 years agocmake: check for linux/tcp.h
Klaus Crusius [Sat, 28 Nov 2020 17:17:11 +0000 (18:17 +0100)] 
cmake: check for linux/tcp.h

The HAVE_LINUX_TCP_H define was not set by cmake.

Closes #6252

4 years agoNEW-PROTOCOL: document what needs to be done to add one
Daniel Stenberg [Sat, 28 Nov 2020 21:03:54 +0000 (22:03 +0100)] 
NEW-PROTOCOL: document what needs to be done to add one

Closes #6263

4 years agosplay: rename Curl_splayremovebyaddr to Curl_splayremove
Daniel Stenberg [Mon, 30 Nov 2020 16:51:26 +0000 (17:51 +0100)] 
splay: rename Curl_splayremovebyaddr to Curl_splayremove

... and remove the old unused proto for the old Curl_splayremove
version.

Closes #6269

4 years agoopenssl: free mem_buf in error path
Daniel Stenberg [Mon, 30 Nov 2020 16:36:42 +0000 (17:36 +0100)] 
openssl: free mem_buf in error path

To fix a memory-leak.

Closes #6267

4 years agoopenssl: remove #if 0 leftover
Daniel Stenberg [Mon, 30 Nov 2020 16:47:24 +0000 (17:47 +0100)] 
openssl: remove #if 0 leftover

Follow-up to 4c9768565ec3a9 (from Sep 2008)

Closes #6268

4 years agontlm: avoid malloc(0) on zero length user and domain
Daniel Stenberg [Sat, 28 Nov 2020 21:29:59 +0000 (22:29 +0100)] 
ntlm: avoid malloc(0) on zero length user and domain

... and simplify the too-long checks somewhat.

Detected by OSS-Fuzz

Closes #6264

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sat, 28 Nov 2020 22:21:00 +0000 (23:21 +0100)] 
RELEASE-NOTES: synced

4 years agotests/server/tftpd.c: close upload file in case of abort
Marc Hoersken [Tue, 24 Nov 2020 19:49:09 +0000 (20:49 +0100)] 
tests/server/tftpd.c: close upload file in case of abort

Commit c353207 removed the closing right after do_tftp
which covered the case of abort. This handles that case.

Reviewed-by: Jay Satiro
Reviewed-by: Daniel Stenberg
Follow up to #6209
Closes #6234

4 years agongtcp2: use the minimal version of QUIC supported by ngtcp2
Daiki Ueno [Thu, 26 Nov 2020 08:47:02 +0000 (09:47 +0100)] 
ngtcp2: use the minimal version of QUIC supported by ngtcp2

Closes #6250

4 years agongtcp2: advertise h3 ALPN unconditionally
Daiki Ueno [Thu, 26 Nov 2020 08:45:48 +0000 (09:45 +0100)] 
ngtcp2: advertise h3 ALPN unconditionally

Closes #6250

4 years agovquic/ngtcp2.h: define local_addr as sockaddr_storage
Daiki Ueno [Thu, 26 Nov 2020 08:37:03 +0000 (09:37 +0100)] 
vquic/ngtcp2.h: define local_addr as sockaddr_storage

This field needs to be wide enough to hold sockaddr_in6 when
connecting via IPv6.  Otherwise, ngtcp2_conn_read_pkt will drop the
packets because of the address mismatch:
  I00000022 [...] con ignore packet from unknown path

We can safely assume that struct sockaddr_storage is available, as it
is used in the public interface of ngtcp2.

Closes #6250

4 years agosocks: check for DNS entries with the right port number
Daniel Stenberg [Thu, 26 Nov 2020 16:28:39 +0000 (17:28 +0100)] 
socks: check for DNS entries with the right port number

The resolve call is done with the right port number, but the subsequent
check used the wrong one, which then could find a previous resolve which
would return and leave the fresh resolve "incomplete" and leaking
memory.

Fixes #6247
Closes #6253

4 years agocurl_setup: USE_RESOLVE_ON_IPS is for Apple native resolver use
Daniel Stenberg [Thu, 26 Nov 2020 16:26:59 +0000 (17:26 +0100)] 
curl_setup: USE_RESOLVE_ON_IPS is for Apple native resolver use

... so don't define it when instructed to use c-ares!

4 years agotest506: make it not run in c-ares builds
Daniel Stenberg [Thu, 26 Nov 2020 16:24:55 +0000 (17:24 +0100)] 
test506: make it not run in c-ares builds

As the asynch nature of it may trigger events in another order. A c-ares
upgrade made it break.

Reported-by: Marc Hörsken
Fixes #6247

4 years agoruntests: make 'c-ares' a "feature" to depend on
Daniel Stenberg [Thu, 26 Nov 2020 16:24:24 +0000 (17:24 +0100)] 
runtests: make 'c-ares' a "feature" to depend on

... also added to the docs.

4 years agotool_writeout: use off_t getinfo-types instead of doubles
Daniel Stenberg [Wed, 25 Nov 2020 14:06:56 +0000 (15:06 +0100)] 
tool_writeout: use off_t getinfo-types instead of doubles

Commit 3b80d3ca46b12e52342 (June 2017) introduced getinfo replacement
variables that use curl_off_t instead of doubles. Switch the --write-out
function over to use them.

Closes #6248

4 years agofile: avoid duplicated code sequence
Emil Engler [Wed, 25 Nov 2020 17:26:56 +0000 (18:26 +0100)] 
file: avoid duplicated code sequence

file_disconnect() is identical with file_do() except the function header
but as the arguments are unused anyway so why not just return file_do()
directly!

Reviewed-by: Daniel Stenberg
Closes #6249

4 years agoinfof/failf calls: fix format specifiers
Rikard Falkeborn [Mon, 23 Nov 2020 21:42:07 +0000 (22:42 +0100)] 
infof/failf calls: fix format specifiers

Update a few format specifiers to match what is being printed.

Closes #6241

4 years agodocs/INTERNALS: remove reference to Curl_sendf()
Daniel Stenberg [Mon, 23 Nov 2020 22:06:49 +0000 (23:06 +0100)] 
docs/INTERNALS: remove reference to Curl_sendf()

The function has been removed from common usage. Also removed comment in
gopher.c that still referenced it.

Reported-by: Rikard Falkeborn
Fixes #6242
Closes #6243

4 years agoexamples: update .gitignore
Rikard Falkeborn [Wed, 18 Nov 2020 23:08:30 +0000 (00:08 +0100)] 
examples: update .gitignore

Add files that are generated by 'make examples' and remove some that
have been renamed.

The commits that renamed the programs are e9625c5bc6c046a (imap.c and
simplesmtp.c were renamed to imap-fetch.c and smtp-send.c) and
ad39e7ec01e7 (pop3slist.c and pop3s.c were renamed to pop3-list.c and
pop3-ssl.c).

Closes #6240

4 years agoasyn: use 'struct thread_data *' instead of 'void *'
Daniel Stenberg [Mon, 23 Nov 2020 13:54:10 +0000 (14:54 +0100)] 
asyn: use 'struct thread_data *' instead of 'void *'

To reduce use of types that can't be checked at compile time. Also
removes several typecasts.

... and rename the struct field from 'os_specific' to 'tdata'.

Closes #6239
Reviewed-by: Jay Satiro
4 years agoMakefile.m32: add support for UNICODE builds
Viktor Szakats [Mon, 23 Nov 2020 16:56:27 +0000 (16:56 +0000)] 
Makefile.m32: add support for UNICODE builds

It requires the linker to support the `-municode` option.
This is available in more recent mingw-w64 releases.

Ref: https://gcc.gnu.org/onlinedocs/gcc/x86-Windows-Options.html
Ref: https://stackoverflow.com/questions/3571250/wwinmain-unicode-and-mingw/11706847#11706847

Reviewed-by: Jay Satiro
Reviewed-by: Marcel Raad
Closes #6228

4 years agourldata: remove 'void *protop' and create the union 'p'
Daniel Stenberg [Mon, 23 Nov 2020 07:32:41 +0000 (08:32 +0100)] 
urldata: remove 'void *protop' and create the union 'p'

... to avoid the use of 'void *' for the protocol specific structs done
per transfer.

Closes #6238

4 years agowinbuild: remove docs from Makefiles and refer to README.md
Daniel Stenberg [Thu, 19 Nov 2020 22:20:18 +0000 (23:20 +0100)] 
winbuild: remove docs from Makefiles and refer to README.md

Reduce risk for conflicting docs and makes it to a single place to fix
and polish.

add these missing options to the readme:

ENABLE_OPENSSL_AUTO_LOAD_CONFIG and ENABLE_UNICODE

clarify ENABLE_SCHANNEL default varies

Fixes #6216
Closes #6227
Co-Authored-by: Jay Satiro
4 years agohttp3: use the master branch of GnuTLS for testing
Daiki Ueno [Fri, 20 Nov 2020 05:10:49 +0000 (06:10 +0100)] 
http3: use the master branch of GnuTLS for testing

Closes #6235

4 years agoKNOWN_BUGS: curl with wolfSSL lacks support for renegotiation
Daniel Stenberg [Sat, 21 Nov 2020 23:06:24 +0000 (00:06 +0100)] 
KNOWN_BUGS: curl with wolfSSL lacks support for renegotiation

Closes #5839

4 years agoKNOWN_BUGS: wakeup socket disconnect causes havoc
Daniel Stenberg [Sat, 21 Nov 2020 23:01:29 +0000 (00:01 +0100)] 
KNOWN_BUGS: wakeup socket disconnect causes havoc

Closes #6132
Closes #6133

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sat, 21 Nov 2020 22:25:38 +0000 (23:25 +0100)] 
RELEASE-NOTES: synced

4 years agocurl: add compatibility for Amiga and GCC 6.5
Oliver Urbann [Wed, 18 Nov 2020 18:44:35 +0000 (19:44 +0100)] 
curl: add compatibility for Amiga and GCC 6.5

Changes are mainly reordering and adding of includes required
to compile with a more recent version of GCC.

Closes #6220

4 years agotests/server/tftpd.c: close upload file right after transfer
Marc Hoersken [Fri, 20 Nov 2020 07:13:47 +0000 (08:13 +0100)] 
tests/server/tftpd.c: close upload file right after transfer

Make sure uploaded file is no longer locked after the
transfer while waiting for the final ACK to be handled.

Assisted-by: Daniel Stenberg
Bug: #6058
Closes #6209

4 years agoCI/cirrus: simplify logic for disabled tests
Marc Hoersken [Fri, 20 Nov 2020 07:20:04 +0000 (08:20 +0100)] 
CI/cirrus: simplify logic for disabled tests

The OpenSSH server instance for the testsuite cannot
be started on FreeBSD, therefore the SFTP and SCP
tests are disabled right away from the beginning.

The previous OS version specific logic for SKIP_TESTS
is no longer needed/used and can therefore be removed.

Reviewed-by: Daniel Stenberg
Follow up to #6211
Closes #6229

4 years agomailmap: Daniel Hwang
Daniel Gustafsson [Fri, 20 Nov 2020 10:05:46 +0000 (11:05 +0100)] 
mailmap: Daniel Hwang

Add Daniel Hwang to the mailmap to cover the alternative spelling
Daniel Lee Hwang which was used in one commit.

Closes #6230
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4 years agoopenssl: guard against OOM on context creation
Daniel Gustafsson [Thu, 19 Nov 2020 00:40:24 +0000 (01:40 +0100)] 
openssl: guard against OOM on context creation

EVP_MD_CTX_create will allocate memory for the context and returns
NULL in case the allocation fails. Make sure to catch any allocation
failures and exit early if so.

In passing, also move to EVP_DigestInit rather than EVP_DigestInit_ex
as the latter is intended for ENGINE selection which we don't do.

Closes #6224
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Emil Engler <me@emilengler.com>
4 years agocmake: use libcurl.rc in all Windows builds
Vincent Torri [Tue, 17 Nov 2020 11:32:27 +0000 (12:32 +0100)] 
cmake: use libcurl.rc in all Windows builds

Reviewed-by: Marcel Raad
Closes #6215

4 years agocmake: make CURL_ZLIB a tri-state variable
Cristian Morales Vega [Thu, 19 Nov 2020 07:54:09 +0000 (07:54 +0000)] 
cmake: make CURL_ZLIB a tri-state variable

By differentiating between ON and AUTO it can make a missing zlib
library a hard error when CURL_ZLIB=ON is used.

Reviewed-by: Jakub Zakrzewski
Closes #6221
Fixes #6173

4 years agoquiche: remove 'static' from local buffer
Daniel Stenberg [Thu, 19 Nov 2020 10:05:02 +0000 (11:05 +0100)] 
quiche: remove 'static' from local buffer

For thread-safety

Closes #6223

4 years agoKNOWN_BUGS: cmake: libspsl is not supported
Daniel Stenberg [Wed, 18 Nov 2020 16:00:39 +0000 (17:00 +0100)] 
KNOWN_BUGS: cmake: libspsl is not supported

Closes #6214

4 years agoKNOWN_BUGS: cmake autodetects cert paths when cross-compiling
Daniel Stenberg [Wed, 18 Nov 2020 15:58:44 +0000 (16:58 +0100)] 
KNOWN_BUGS: cmake autodetects cert paths when cross-compiling

Closes #6178

4 years agoKNOWN_BUGS: cmake build doesn't fail if zlib not found
Daniel Stenberg [Wed, 18 Nov 2020 15:56:17 +0000 (16:56 +0100)] 
KNOWN_BUGS: cmake build doesn't fail if zlib not found

Closes #6173

4 years agoKNOWN_BUGS: cmake libcurl.pc uses absolute library paths
Daniel Stenberg [Wed, 18 Nov 2020 15:53:28 +0000 (16:53 +0100)] 
KNOWN_BUGS: cmake libcurl.pc uses absolute library paths

Closes #6169

4 years agoKNOWN_BUGS: cmake: generated .pc file contains strange entries
Daniel Stenberg [Wed, 18 Nov 2020 15:50:41 +0000 (16:50 +0100)] 
KNOWN_BUGS: cmake: generated .pc file contains strange entries

Closes #6167

4 years agoKNOWN_BUGS: cmake uses -lpthread instead of Threads::Threads
Daniel Stenberg [Wed, 18 Nov 2020 15:49:29 +0000 (16:49 +0100)] 
KNOWN_BUGS: cmake uses -lpthread instead of Threads::Threads

Closes #6166

4 years agoKNOWN_BUGS: cmake build in Linux links libcurl to libdl
Daniel Stenberg [Wed, 18 Nov 2020 15:47:46 +0000 (16:47 +0100)] 
KNOWN_BUGS: cmake build in Linux links libcurl to libdl

Closes #6165

4 years agoKNOWN_BUGS: make a new section for cmake topics
Daniel Stenberg [Wed, 18 Nov 2020 15:43:56 +0000 (16:43 +0100)] 
KNOWN_BUGS: make a new section for cmake topics

Closes #6219

4 years agocirrus: build with FreeBSD 12.2 in CirrusCI
Emil Engler [Sun, 15 Nov 2020 20:46:53 +0000 (21:46 +0100)] 
cirrus: build with FreeBSD 12.2 in CirrusCI

Closes #6211

4 years agotests/*server.py: close log file after each log line 6206/head
Marc Hoersken [Sat, 14 Nov 2020 20:32:33 +0000 (21:32 +0100)] 
tests/*server.py: close log file after each log line

Make sure the log file is not locked once a test has
finished and align with the behavior of our logmsg.

Rename curl_test_data.py to be a general util.py.
Format and sort Python imports with isort/VSCode.

Bug: #6058
Closes #6206

4 years agoCURLOPT_HSTS.3: document the file format
Daniel Stenberg [Fri, 13 Nov 2020 14:24:55 +0000 (15:24 +0100)] 
CURLOPT_HSTS.3: document the file format

Closes #6205

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Fri, 13 Nov 2020 12:32:37 +0000 (13:32 +0100)] 
RELEASE-NOTES: synced

4 years agorelease-notes.pl: detect #[number] better for Ref: etc
Daniel Stenberg [Fri, 13 Nov 2020 12:17:16 +0000 (13:17 +0100)] 
release-notes.pl: detect #[number] better for Ref: etc

4 years agocurl: only warn not fail, if not finding the home dir
Daniel Stenberg [Thu, 12 Nov 2020 23:37:21 +0000 (00:37 +0100)] 
curl: only warn not fail, if not finding the home dir

... as there's no good reason to error out completely.

Reported-by: Andreas Fischer
Fixes #6200
Closes #6201

4 years agohttpput-postfields.c: new example doing PUT with POSTFIELDS
Daniel Stenberg [Mon, 9 Nov 2020 07:16:05 +0000 (08:16 +0100)] 
httpput-postfields.c: new example doing PUT with POSTFIELDS

Proposed-by: Jeroen Ooms
Ref: #6186
Closes #6188

4 years agocmake: correctly handle linker flags for static libs
Tobias Hieta [Tue, 10 Nov 2020 09:45:31 +0000 (10:45 +0100)] 
cmake: correctly handle linker flags for static libs

curl CMake was setting the the EXE flags for static libraries which made
the /manifest:no flag ended up when linking the static library, which is
not a valid flag for lib.exe or llvm-lib.exe and caused llvm-lib to exit
with an error.

The better way to handle this is to make sure that we pass the correct
linker flags to CMAKE_STATIC_LINKER_FLAGS instead.

Reviewed-by: Jakub Zakrzewski
Closes #6195

4 years agocmake: don't pass -fvisibility=hidden to clang-cl on Windows
Tobias Hieta [Tue, 10 Nov 2020 09:30:29 +0000 (10:30 +0100)] 
cmake: don't pass -fvisibility=hidden to clang-cl on Windows

When using clang-cl on windows -fvisibility=hidden is not an known
argument. Instead it behaves exactly like MSVC in this case. So let's
make sure we take that path.

In CMake clang-cl sets both CMAKE_C_COMPILER_ID=clang and MSVC get's
defined since clang-cl is basically a MSVC emulator. So guarding like we
do in this patch seems logical.

Reviewed-by: Jakub Zakrzewski
Closes #6194