]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
3 years agomacos: set .plist version in autoconf
Daniel Gustafsson [Wed, 20 Apr 2022 13:26:13 +0000 (15:26 +0200)] 
macos: set .plist version in autoconf

Set the libcurl version in libcurl.plist like how libcurl.vers is
created.

Closes: #8692
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Nick Zitzmann <nickzman@gmail.com>
3 years agocookies: Improve errorhandling for reading cookiefile
Daniel Gustafsson [Wed, 20 Apr 2022 12:17:29 +0000 (14:17 +0200)] 
cookies: Improve errorhandling for reading cookiefile

The existing programming had some issues with errorhandling for reading
the cookie file. If the file failed to open, we would silently ignore it
and continue as if there was no file (or stdin) passed. In this case, we
would also call fclose() on the NULL FILE pointer, which is undefined
behavior. Fix by ensuring that the FILE pointer is set before calling
fclose on it, and issue a warning in case the file cannot be opened.
Erroring out on nonexisting file would break backwards compatibility of
very old behavior so we can't really go there.

Closes: #8699
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
3 years agolibcurl-tutorial.3: spellfix and minor polish
Daniel Stenberg [Wed, 20 Apr 2022 08:56:41 +0000 (10:56 +0200)] 
libcurl-tutorial.3: spellfix and minor polish

3 years agoCURLINFO_PRIMARY_PORT.3: spellfix
Daniel Stenberg [Wed, 20 Apr 2022 08:46:23 +0000 (10:46 +0200)] 
CURLINFO_PRIMARY_PORT.3: spellfix

Reported-by: Patrick Monnerat
3 years agolibssh: fix double close
Jay Dommaschk [Wed, 20 Apr 2022 07:11:41 +0000 (09:11 +0200)] 
libssh: fix double close

libssh closes the socket in ssh_diconnect() so make sure that libcurl
does not also close it.

Fixes #8708
Closes #8718

3 years agounit1620: call global_init before calling Curl_open
Gisle Vanem [Mon, 18 Apr 2022 06:45:14 +0000 (02:45 -0400)] 
unit1620: call global_init before calling Curl_open

Curl_open calls the resolver init and on Windows if the resolver backend
is c-ares then the Windows sockets library (winsock) must already have
been initialized (via global init).

Ref: https://github.com/curl/curl/pull/8540#issuecomment-1059771800

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

3 years agoCURLINFO_PRIMARY_PORT.3: clarify which port this is
Daniel Stenberg [Tue, 19 Apr 2022 21:06:12 +0000 (23:06 +0200)] 
CURLINFO_PRIMARY_PORT.3: clarify which port this is

As it was not entirely clear previously.

Closes #8725

3 years agoCURLOPT_UNRESTRICTED_AUTH.3: extended explanation
Daniel Stenberg [Tue, 19 Apr 2022 16:15:02 +0000 (18:15 +0200)] 
CURLOPT_UNRESTRICTED_AUTH.3: extended explanation

Include details about Authentication headers.

Reported-by: Brad Spencer
Fixes #8724
Closes #8726

3 years ago.github/workflows/macos.yml: add a libssh job with c-ares
Daniel Stenberg [Tue, 19 Apr 2022 14:31:00 +0000 (16:31 +0200)] 
.github/workflows/macos.yml: add a libssh job with c-ares

... to enable the memdebug system

Closes #8720

3 years agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 18 Apr 2022 08:27:55 +0000 (10:27 +0200)] 
RELEASE-NOTES: synced

3 years agodocs/HTTP3.md: fix typo
Gisle Vanem [Mon, 18 Apr 2022 03:44:18 +0000 (23:44 -0400)] 
docs/HTTP3.md: fix typo

also fix msh3 section formatting

Ref: https://github.com/curl/curl/commit/37492ebb#r70980087

3 years agotimediff.[ch]: add curlx helper functions for timeval conversions
Marc Hoersken [Sat, 29 Aug 2020 10:54:30 +0000 (12:54 +0200)] 
timediff.[ch]: add curlx helper functions for timeval conversions

Also move timediff_t definitions from timeval.h to timediff.h and
then make timeval.h include the new standalone-capable timediff.h.

Reviewed-by: Jay Satiro
Reviewed-by: Daniel Stenberg
Supersedes #5888
Closes #8595

3 years agotests: refactor server/socksd.c to support --unix-socket
Balakrishnan Balasubramanian [Sun, 17 Apr 2022 09:43:36 +0000 (11:43 +0200)] 
tests: refactor server/socksd.c to support --unix-socket

Closes #8687

3 years agotool_paramhlp: use feof(3) to identify EOF correctly when using fread(3)
Emanuele Torre [Sun, 17 Apr 2022 09:36:28 +0000 (11:36 +0200)] 
tool_paramhlp: use feof(3) to identify EOF correctly when using fread(3)

This loop was using the number of bytes read from the file as condition
to keep reading.

From Linux's fread(3) man page:
> On success, fread() and fwrite() return the number of items read or
> written. This number equals the number of bytes transferred only when
> size is 1. If an error occurs, or the end of the file is reached, the
> return value is a short item count (or zero).
>
> The file position indicator for the stream is advanced by the number
> of bytes successfully read or written.
>
> fread() does not distinguish between end-of-file and error, and
> callers must use feof(3) and ferror(3) to determine which occurred.

This means that nread!=0 doesn't make much sense as an end condition for
the loop: nread==0 doesn't necessarily mean that EOF has been reached or
an error has occured (but that is usually the case) and nread!=0 doesn't
necessarily mean that EOF has not been reached or that no read errors
have occured. feof(3) and ferror(3) should be uses when using fread(3).

Currently curl has to performs an extra fread(3) call to get a return
value equal to 0 to stop looping.

This usually "works" (even though nread==0 shouldn't be interpreted as
EOF) if stdin is a pipe because EOF usually marks the "real" end of the
stream, so the extra fread(3) call will return immediately and the extra
read syscall won't be noticeable:

    bash-5.1$ strace -e read curl -s -F file=@- 0x0.st <<< a 2>&1 |
    > tail -n 5
    read(0, "a\n", 4096)                    = 2
    read(0, "", 4096)                       = 0
    read(0, "", 4096)                       = 0
    http://0x0.st/oRs.txt
    +++ exited with 0 +++
    bash-5.1$

But this doesn't work if curl is reading from stdin, stdin is a
terminal, and the EOF is being emulated using a shell with ^D. Two
consecutive ^D will be required in this case to actually make curl stop
reading:

    bash-5.1$ curl -F file=@- 0x0.st
    a
    ^D^D
    http://0x0.st/oRs.txt
    bash-5.1$

A possible workaround to this issue is to use a program that handles EOF
correctly to indirectly send data to curl's stdin:

    bash-5.1$ cat - | curl -F file=@- 0x0.st
    a
    ^D
    http://0x0.st/oRs.txt
    bash-5.1$

This patch makes curl handle EOF properly when using fread(3) in
file2memory() so that the workaround is not necessary.

Since curl was previously ignoring read errors caused by this fread(3),
ferror(3) is also used in the condition of the loop: read errors and EOF
will have the same meaning; this is done to somewhat preserve the old
behaviour instead of making the command fail when a read error occurs.

Closes #8701

3 years agogen.pl: change wording for mutexed options
Daniel Stenberg [Sun, 17 Apr 2022 09:21:15 +0000 (11:21 +0200)] 
gen.pl: change wording for mutexed options

Instead of saying "This option overrides NNN", now say "This option is
mutually exclusive to NNN" in the generated man page ouput, as the
option does not in all cases actually override the others but they are
always mutually exclusive.

Ref: #8704
Closes #8716

3 years agocurl: error out if -T and -d are used for the same URL
Daniel Stenberg [Sun, 17 Apr 2022 09:18:16 +0000 (11:18 +0200)] 
curl: error out if -T and -d are used for the same URL

As one implies PUT and the other POST, both cannot be used
simultaneously.

Add test 378 to verify.

Reported-by: Boris Verkhovskiy
Fixes #8704
Closes #8715

3 years agolib: remove exclamation marks
Daniel Stenberg [Sat, 16 Apr 2022 09:55:05 +0000 (11:55 +0200)] 
lib: remove exclamation marks

... from infof() and failf() calls. Make them less attention seeking.

Closes #8713

3 years agofail.d: tweak the description
Daniel Stenberg [Fri, 15 Apr 2022 21:50:34 +0000 (23:50 +0200)] 
fail.d: tweak the description

Reviewed-by: Daniel Gustafsson
Suggested-by: Robert Charles Muir
Ref: https://twitter.com/rcmuir/status/1514915401574010887

Closes #8714

3 years agodocs: Fix missing semicolon in example code
Daniel Gustafsson [Fri, 15 Apr 2022 21:35:15 +0000 (23:35 +0200)] 
docs: Fix missing semicolon in example code

Multiple share examples were missing a semicolon on the line defining
the CURLSHcode variable.

Closes: #8697
Reported-by: Michael Kaufmann <mail@michael-kaufmann.ch>
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3 years agoinfof: consistent capitalization of warning messages
Daniel Gustafsson [Thu, 14 Apr 2022 19:13:29 +0000 (21:13 +0200)] 
infof: consistent capitalization of warning messages

Ensure that all infof calls with a warning message are capitalized
in the same way.  At some point we should probably set up a style-
guide for infof but until then let's aim for a little consistenncy
where we can.

Closes: #8711
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3 years agoRELEASE-NOTES: synced
Daniel Gustafsson [Thu, 14 Apr 2022 12:12:17 +0000 (14:12 +0200)] 
RELEASE-NOTES: synced

3 years agoperl: removed a double semicolon at end of line
Matteo Baccan [Thu, 14 Apr 2022 11:06:32 +0000 (13:06 +0200)] 
perl: removed a double semicolon at end of line

Remove double semicolons at end of line in Perl code.

Closes: #8709
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
3 years agocurl_easy_header: fix typos in documentation
Daniel Gustafsson [Mon, 11 Apr 2022 09:25:13 +0000 (11:25 +0200)] 
curl_easy_header: fix typos in documentation

Closes: #8694
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3 years agoappveyor: add Cygwin build
Marcel Raad [Sat, 9 Apr 2022 08:26:37 +0000 (10:26 +0200)] 
appveyor: add Cygwin build

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

3 years agoappveyor: only add MSYS2 to PATH where required
Marcel Raad [Sat, 2 Mar 2019 10:53:33 +0000 (11:53 +0100)] 
appveyor: only add MSYS2 to PATH where required

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

3 years agongtcp2: fix memory leak
Tatsuhiro Tsujikawa [Sun, 10 Apr 2022 21:10:20 +0000 (23:10 +0200)] 
ngtcp2: fix memory leak

Closes #8691

3 years agongtcp2: remove remote_addr which is not used in a meaningful way
Tatsuhiro Tsujikawa [Sun, 10 Apr 2022 21:09:40 +0000 (23:09 +0200)] 
ngtcp2: remove remote_addr which is not used in a meaningful way

Closes #8689

3 years agongtcp2: enlarge H3_SEND_SIZE
Tatsuhiro Tsujikawa [Sun, 10 Apr 2022 21:08:30 +0000 (23:08 +0200)] 
ngtcp2: enlarge H3_SEND_SIZE

Make h3_SEND_SIZE larger because current value (20KiB) is too small
for the high latency environment.

Closes #8690

3 years agongtcp2: fix HTTP/3 upload stall and avoid busy loop
Tatsuhiro Tsujikawa [Sun, 10 Apr 2022 21:07:29 +0000 (23:07 +0200)] 
ngtcp2: fix HTTP/3 upload stall and avoid busy loop

This commit fixes HTTP/3 upload stall if upload data is larger than
H3_SEND_SIZE.  Only check writability of socket if a stream is
writable to avoid busy loop when QUIC flow control window is filled
up, or upload buffer is full.

Closes #8688

3 years agomsh3: add support for QUIC and HTTP/3 using msh3
Nick Banks [Sun, 10 Apr 2022 16:21:37 +0000 (18:21 +0200)] 
msh3: add support for QUIC and HTTP/3 using msh3

Considered experimental, as the other HTTP/3 backends.

Closes #8517

3 years agoTODO: "SFTP with SCP://"
Daniel Stenberg [Sun, 10 Apr 2022 08:35:39 +0000 (10:35 +0200)] 
TODO: "SFTP with SCP://"

3 years agoGHA: move bearssl jobs over from zuul
Daniel Stenberg [Thu, 7 Apr 2022 06:36:38 +0000 (08:36 +0200)] 
GHA: move bearssl jobs over from zuul

Closes #8684

3 years agodata/DISABLED: disable test 313 on bearssl builds
Daniel Stenberg [Thu, 7 Apr 2022 06:36:35 +0000 (08:36 +0200)] 
data/DISABLED: disable test 313 on bearssl builds

Closes #8684

3 years agoruntests: add 'bearssl' as testable feature
Daniel Stenberg [Thu, 7 Apr 2022 06:36:27 +0000 (08:36 +0200)] 
runtests: add 'bearssl' as testable feature

Closes #8684

3 years agoGHA: add openssl3 jobs moved over from zuul
Daniel Stenberg [Thu, 7 Apr 2022 06:35:08 +0000 (08:35 +0200)] 
GHA: add openssl3 jobs moved over from zuul

Closes #8683

3 years agoschannel: remove dead code that will never run
Daniel Stenberg [Wed, 6 Apr 2022 06:33:19 +0000 (08:33 +0200)] 
schannel: remove dead code that will never run

As the condition can't ever evaluate true

Reported-by: Andrey Alifanov
Ref: #8675
Closes #8677

3 years agoconnecache: remove duplicate connc->closure_handle check
Daniel Stenberg [Wed, 6 Apr 2022 06:32:03 +0000 (08:32 +0200)] 
connecache: remove duplicate connc->closure_handle check

The superfluous extra check could cause analyzer false positives
and doesn't serve any purpose.

Closes #8676

3 years agombedtls: remove server_fd from backend
MAntoniak [Tue, 5 Apr 2022 16:03:08 +0000 (18:03 +0200)] 
mbedtls: remove server_fd from backend

Closes #8682

3 years agongtcp2: use token when detecting :status header field
Tatsuhiro Tsujikawa [Tue, 5 Apr 2022 14:48:44 +0000 (16:48 +0200)] 
ngtcp2: use token when detecting :status header field

Closes #8679

3 years agongtcp2: make curl 1ms faster
Tatsuhiro Tsujikawa [Tue, 5 Apr 2022 14:47:18 +0000 (16:47 +0200)] 
ngtcp2: make curl 1ms faster

Pass 0 for an already expired timer.

Closes #8678

3 years agongtcp2: fix QUIC_IDLE_TIMEOUT
Tatsuhiro Tsujikawa [Tue, 5 Apr 2022 14:47:07 +0000 (16:47 +0200)] 
ngtcp2: fix QUIC_IDLE_TIMEOUT

QUIC_IDLE_TIMEOUT should be of type ngtcp2_duration which is
nanoseconds resolution.

Closes #8678

3 years agoEnglish: use American spelling consistently
Daniel Stenberg [Tue, 5 Apr 2022 11:32:26 +0000 (13:32 +0200)] 
English: use American spelling consistently

Authorization, Initialization, Organization etc.

Closes #8673

3 years agoBUGS: Fix incorrect punctuation
Sascha Zengler [Mon, 4 Apr 2022 19:35:47 +0000 (21:35 +0200)] 
BUGS: Fix incorrect punctuation

Closes #8672
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
3 years agotool_listhelp.c: uppercase URL
Daniel Stenberg [Mon, 4 Apr 2022 12:43:33 +0000 (14:43 +0200)] 
tool_listhelp.c: uppercase URL

3 years agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 4 Apr 2022 09:11:39 +0000 (11:11 +0200)] 
RELEASE-NOTES: synced

3 years agohttp: streamclose "already downloaded"
Daniel Stenberg [Fri, 1 Apr 2022 21:30:42 +0000 (23:30 +0200)] 
http: streamclose "already downloaded"

Instead of connclose()ing, since when HTTP/2 is used it doesn't need to
close the connection as stopping the current transfer is enough.

Reported-by: Evangelos Foutras
Closes #8665

3 years agoftp: fix error message for partial file upload
Jay Satiro [Tue, 29 Mar 2022 19:05:47 +0000 (15:05 -0400)] 
ftp: fix error message for partial file upload

- Show the count of bytes written on partial file upload.

Prior to this change the error message mistakenly showed the count of
bytes read, not written.

Bug: https://github.com/curl/curl/discussions/8637
Reported-by: Taras Kushnir
Closes https://github.com/curl/curl/pull/8649

3 years agohttp: correct the header error message to say colon
Daniel Stenberg [Fri, 1 Apr 2022 14:03:40 +0000 (16:03 +0200)] 
http: correct the header error message to say colon

Not semicolon

Reported-by: Gisle Vanem
Ref: #8666
Closes #8667

3 years agolib: #ifdef on USE_HTTP2 better
Daniel Stenberg [Fri, 1 Apr 2022 11:45:38 +0000 (13:45 +0200)] 
lib: #ifdef on USE_HTTP2 better

... as nghttp2 might not be the library that provides HTTP/2 support.

Closes #8661

3 years agombedtls: remove 'protocols' array from backend when ALPN is not used
MAntoniak [Fri, 1 Apr 2022 11:43:10 +0000 (13:43 +0200)] 
mbedtls: remove 'protocols' array from backend when ALPN is not used

Closes #8663

3 years agohttp2: RST the stream if we stop it on our own will
Daniel Stenberg [Fri, 1 Apr 2022 11:23:04 +0000 (13:23 +0200)] 
http2: RST the stream if we stop it on our own will

For the "simulated 304" case the done-call isn't considered "premature"
but since the server didn't close the stream it needs to be reset to
stop delivering data.

Closes #8664

3 years agohttp: close the stream (not connection) on time condition abort
Daniel Stenberg [Fri, 1 Apr 2022 11:22:58 +0000 (13:22 +0200)] 
http: close the stream (not connection) on time condition abort

Closes #8664

3 years agohttp2: handle DONE called for the paused stream
Daniel Stenberg [Fri, 1 Apr 2022 11:22:58 +0000 (13:22 +0200)] 
http2: handle DONE called for the paused stream

As it could otherwise stall all streams on the connection

Reported-by: Evangelos Foutras
Fixes #8626
Closes #8664

3 years agotls: make mbedtls and NSS check for h2, not nghttp2
Daniel Stenberg [Thu, 31 Mar 2022 14:04:00 +0000 (16:04 +0200)] 
tls: make mbedtls and NSS check for h2, not nghttp2

This makes them able to also negotiate HTTP/2 even when built to use
hyper for h2.

Closes #8656

3 years agotests/libtest/lib670.c: fixup the copyright year range
Daniel Stenberg [Thu, 31 Mar 2022 14:04:00 +0000 (16:04 +0200)] 
tests/libtest/lib670.c: fixup the copyright year range

follow-up to b54e18640ea4b7

3 years agolib670: avoid double check result
Leandro Coutinho [Thu, 31 Mar 2022 12:27:10 +0000 (14:27 +0200)] 
lib670: avoid double check result

Closes #8660

3 years agovtls: use a generic "ALPN, server accepted" message
Daniel Stenberg [Thu, 31 Mar 2022 12:21:01 +0000 (14:21 +0200)] 
vtls: use a generic "ALPN, server accepted" message

Closes #8657

3 years agovtls: use a backend standard message for "ALPN: offers %s"
Daniel Stenberg [Thu, 31 Mar 2022 12:20:55 +0000 (14:20 +0200)] 
vtls: use a backend standard message for "ALPN: offers %s"

I call it VTLS_INFOF_ALPN_OFFER_1STR, the '1str' meaning that the
infof() call also needs a string argument: the ALPN ID.

Closes #8657

3 years agostrcase.h: add comment about the return code
MonkeybreadSoftware [Thu, 31 Mar 2022 09:25:56 +0000 (11:25 +0200)] 
strcase.h: add comment about the return code

Tool often we run into expecting this to work like strcmp, but it
returns 1 instead of 0 for match.

Closes #8658

3 years agovtls: provide a unified APLN-disagree string for all backends
Daniel Stenberg [Wed, 30 Mar 2022 09:02:57 +0000 (11:02 +0200)] 
vtls: provide a unified APLN-disagree string for all backends

Also rephrase to make it sound less dangerous:

 "ALPN: server did not agree on a protocol. Uses default."

Reported-by: Nick Coghlan
Fixes #8643
Closes #8651

3 years agoprojects/README: converted to markdown
Daniel Stenberg [Wed, 30 Mar 2022 12:35:56 +0000 (14:35 +0200)] 
projects/README: converted to markdown

Closes #8652

3 years agomisc: spelling fixes
Daniel Stenberg [Wed, 30 Mar 2022 08:49:05 +0000 (10:49 +0200)] 
misc: spelling fixes

Mostly in comments but also in the -w documentation for headers_json.

Closes #8647

3 years agoKNOW_BUGS: HTTP3/Transfer closed with n bytes remaining to read
Daniel Stenberg [Wed, 30 Mar 2022 08:34:43 +0000 (10:34 +0200)] 
KNOW_BUGS: HTTP3/Transfer closed with n bytes remaining to read

"HTTP/3 does not support client certs" considered fixed, at least with
the ngtcp2 backend.

Closes #8523

3 years agoCURLOPT_PREQUOTE.3: only works for FTP file transfers, not dirs
Daniel Stenberg [Tue, 29 Mar 2022 16:11:03 +0000 (18:11 +0200)] 
CURLOPT_PREQUOTE.3: only works for FTP file transfers, not dirs

Also add to quote.d. Add to TODO as something to add in a future.

Reported-by: anon00000000 on github
Closes #8602
Closes #8648

3 years agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 29 Mar 2022 14:25:40 +0000 (16:25 +0200)] 
RELEASE-NOTES: synced

3 years agopop3/smtp: return *WEIRD_SERVER_REPLY when not understood 8506/head
Daniel Stenberg [Tue, 29 Mar 2022 12:01:48 +0000 (14:01 +0200)] 
pop3/smtp: return *WEIRD_SERVER_REPLY when not understood

This leaves the CURLE_RECV_ERROR error code for explicit failure to
receive network data and allows users to better separate the problems.

Ref #8356
Reported-by: Rianov Viacheslav
Closes #8506

3 years agodocs: lots of minor language polish
Daniel Stenberg [Tue, 29 Mar 2022 11:58:11 +0000 (13:58 +0200)] 
docs: lots of minor language polish

Mostly based on recent language decisions from "everything curl":

- remove contractions (isn't => is not)
- *an* HTTP (consistency)
- runtime (no hyphen)
- backend (no hyphen)
- URL is uppercase

Closes #8646

3 years agoprojects: Update VC version names for VS2017, VS2022
Jay Satiro [Sun, 13 Feb 2022 21:58:04 +0000 (16:58 -0500)] 
projects: Update VC version names for VS2017, VS2022

- Rename VC15 -> VC14.10, VC17 -> VC14.30.

The projects directory that holds the pre-generated Visual Studio
project files uses VC<ver> to indicate the MSVC version. At some point
support for Visual Studio 2017 (Visual Studio version 15 which uses MSVC
14.10) was added as VC15. Visual Studio 2022 (Visual Studio version 17
which uses MSVC 14.30) project files were recently added and followed
that same format using VC17.

There is no such MSVC version (yet) as VC15 or VC17.

For VS 2017 for example, the name we use is correct as either VS17,
VS2017, VC14.10. I opted for the latter since we use VC for earlier
versions (eg VC10, VC12, etc).

Ref: https://github.com/curl/curl/pull/8438#issuecomment-1037070192

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

3 years agomqtt: better handling of TCP disconnect mid-message
Daniel Stenberg [Tue, 29 Mar 2022 06:43:13 +0000 (08:43 +0200)] 
mqtt: better handling of TCP disconnect mid-message

Reported-by: Jenny Heino
Bug: https://hackerone.com/reports/1521610
Closes #8644

3 years agoCURLOPT_DISALLOW_USERNAME_IN_URL.3: use uppercase URL
Daniel Stenberg [Mon, 28 Mar 2022 17:40:47 +0000 (19:40 +0200)] 
CURLOPT_DISALLOW_USERNAME_IN_URL.3: use uppercase URL

3 years agodocs/DYNBUF: clarify documentation for Curl_dyn_ptr and Curl_dyn_uptr
Ian Blanes [Mon, 28 Mar 2022 07:39:09 +0000 (09:39 +0200)] 
docs/DYNBUF: clarify documentation for Curl_dyn_ptr and Curl_dyn_uptr

Closes #8606

3 years agocurl: fix segmentation fault for empty output file names.
Ian Blanes [Mon, 28 Mar 2022 07:39:09 +0000 (09:39 +0200)] 
curl: fix segmentation fault for empty output file names.

Function glob_match_url set *result to NULL when called with filename =
"", producing an indirect NULL pointer dereference.

Closes #8606

3 years agoTODO: Read keys from ~/.ssh/id_ecdsa, id_ed25519
Daniel Stenberg [Sun, 27 Mar 2022 14:21:29 +0000 (16:21 +0200)] 
TODO: Read keys from ~/.ssh/id_ecdsa, id_ed25519

It would be nice to expand the list of key locations curl uses for the
newer key types supported by libssh2.

Closes #8586

3 years agongtcp2: update to work after recent ngtcp2 updates
Daniel Stenberg [Sat, 26 Mar 2022 17:32:13 +0000 (18:32 +0100)] 
ngtcp2: update to work after recent ngtcp2 updates

Assisted-by: Tatsuhiro Tsujikawa
Reported-by: jurisuk on github
Fixes #8638
Closes #8639

3 years agoCURLOPT_PROGRESSFUNCTION.3: fix typo in example
Farzin [Fri, 25 Mar 2022 15:26:24 +0000 (19:56 +0430)] 
CURLOPT_PROGRESSFUNCTION.3: fix typo in example

Closes #8636

3 years agocurl/header_json: output the header names in lowercase
Daniel Stenberg [Fri, 25 Mar 2022 10:24:27 +0000 (11:24 +0100)] 
curl/header_json: output the header names in lowercase

To better allow json[“header”].

Reported-by: Peter Korsgaard
Bug: https://daniel.haxx.se/blog/2022/03/24/easier-header-picking-with-curl/comment-page-1/#comment-25878
Closes #8633

3 years agoRELEASE-NOTES: synced
Daniel Stenberg [Thu, 24 Mar 2022 14:51:43 +0000 (15:51 +0100)] 
RELEASE-NOTES: synced

3 years agoheaders.h: make Curl_headers_push() be CURLE_OK when not built
Daniel Stenberg [Wed, 23 Mar 2022 22:54:18 +0000 (23:54 +0100)] 
headers.h: make Curl_headers_push() be CURLE_OK when not built

... to avoid errors when the function isn't there.

Reported-by: Marcel Raad
Fixes #8627
Closes #8628

3 years agoscripts: move three scripts from lib/ to scripts/
Daniel Stenberg [Wed, 23 Mar 2022 14:26:09 +0000 (15:26 +0100)] 
scripts: move three scripts from lib/ to scripts/

Move checksrc.pl, firefox-db2pem.sh and mk-ca-bundle.pl since they don't
particularly belong in lib/

Also created an EXTRA_DIST= in scripts/Makefile.am instead of specifying
those files in the root Makefile.am

Closes #8625

3 years agolib/warnless.[ch]: only check for WIN32 and ignore _WIN32
Marc Hoersken [Mon, 14 Mar 2022 23:17:58 +0000 (00:17 +0100)] 
lib/warnless.[ch]: only check for WIN32 and ignore _WIN32

curl_setup.h automatically defines WIN32 if just _WIN32 is defined.

Therefore make sure curl_setup.h is included through warnless.h.

Reviewed-by: Daniel Stenberg
Reviewed-by: Jay Satiro
Closes #8594

3 years agotests/server/util.h: align WIN32 condition with util.c
Marc Hoersken [Mon, 14 Mar 2022 23:16:46 +0000 (00:16 +0100)] 
tests/server/util.h: align WIN32 condition with util.c

There is no need to test for both _WIN32 and WIN32 as curl_setup.h
automatically defines the later if the first one is defined.

Also tests/server/util.c is only checking for WIN32 arouund the
implementation of win32_perror, so just defining _WIN32
would not be sufficient for a successful compilation.

Reviewed-by: Daniel Stenberg
Reviewed-by: Jay Satiro
Closes #8594

3 years agofirefox-db2pem.sh: make the shell script safer
Philip H [Tue, 22 Mar 2022 22:13:41 +0000 (23:13 +0100)] 
firefox-db2pem.sh: make the shell script safer

Reported by lift

Closes #8616

3 years agogtls: fix build for disabled TLS-SRP
Jay Satiro [Thu, 17 Mar 2022 19:31:10 +0000 (15:31 -0400)] 
gtls: fix build for disabled TLS-SRP

Prior to this change if, at build time, the GnuTLS backend was found to
have TLS-SRP support (HAVE_GNUTLS_SRP) but TLS-SRP was disabled in curl
via --disable-tls-srp (!USE_TLS_SRP) then a build error would occur.

Bug: https://curl.se/mail/lib-2022-03/0046.html
Reported-by: Robert Brose
Closes https://github.com/curl/curl/pull/8604

3 years agowinbuild: Add a Visual Studio example to the README
Jay Satiro [Sun, 13 Mar 2022 22:45:39 +0000 (18:45 -0400)] 
winbuild: Add a Visual Studio example to the README

- Add an example that explains in detail how the user can add libcurl to
  their Visual Studio project.

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

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

3 years agodocs/opts: Mention Schannel client cert type is P12
Jay Satiro [Sat, 12 Mar 2022 23:23:12 +0000 (18:23 -0500)] 
docs/opts: Mention Schannel client cert type is P12

Schannel backend code behaves same as Secure Transport, it expects a P12
certificate file or the name of a certificate already in the user's OS
key store. Also, both backends ignore CURLOPT_SSLKEY (tool: --key)
because they expect the private key to already be available from the
keystore or P12 certificate.

Ref: https://github.com/curl/curl/discussions/8581#discussioncomment-2337260

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

3 years agolib1945: fix compiler warning 4706 on MSVC
Daniel Stenberg [Tue, 22 Mar 2022 14:29:55 +0000 (15:29 +0100)] 
lib1945: fix compiler warning 4706 on MSVC

Follow-up from d1e4a677340c

Closes #8623

3 years agoci/event-based.yml: improve impacket install
Philip H [Tue, 22 Mar 2022 11:25:34 +0000 (12:25 +0100)] 
ci/event-based.yml: improve impacket install

skip python3-pip
install impacket with library module

Closes #8621

3 years agotest1459: disable for oldlibssh
Daniel Stenberg [Tue, 22 Mar 2022 12:37:48 +0000 (13:37 +0100)] 
test1459: disable for oldlibssh

This test with libssh 0.9.3 works fine on github but fails on circleci.
Might as well disable this test for oldlibssh installations.

Closes #8622

3 years agotest1135: sync with recent API updates
Daniel Stenberg [Tue, 22 Mar 2022 10:14:45 +0000 (11:14 +0100)] 
test1135: sync with recent API updates

This test verifies that the order of functions in public headers remain
the same but hasn't been updated to care for recently added header
files. The order is important for some few platforms - or VERSIONINFO
needs to updated.

This fix also updates VERSIONINFO to be sure.

Closes #8620

3 years agocurl_easy_nextheader.3: fix two typos
Daniel Stenberg [Tue, 22 Mar 2022 10:52:37 +0000 (11:52 +0100)] 
curl_easy_nextheader.3: fix two typos

Reported-by: Timothe Litt
Bug: https://curl.se/mail/lib-2022-03/0060.html

3 years agooptions: remove mistaken space before paren in prototype
Daniel Stenberg [Tue, 22 Mar 2022 10:09:22 +0000 (11:09 +0100)] 
options: remove mistaken space before paren in prototype

3 years agocirrus: add --enable-headers-api for some windows builds
Daniel Stenberg [Sat, 19 Mar 2022 21:50:26 +0000 (22:50 +0100)] 
cirrus: add --enable-headers-api for some windows builds

3 years agoGHA: --enable-headers-api in all workflows
Daniel Stenberg [Sat, 19 Mar 2022 21:47:29 +0000 (22:47 +0100)] 
GHA: --enable-headers-api in all workflows

3 years agolib: make the headers API depend on --enable-headers-api
Daniel Stenberg [Sat, 19 Mar 2022 21:40:20 +0000 (22:40 +0100)] 
lib: make the headers API depend on --enable-headers-api

3 years agoconfigure: add --enable-headers-api to enable the headers API
Daniel Stenberg [Sat, 19 Mar 2022 21:34:19 +0000 (22:34 +0100)] 
configure: add --enable-headers-api to enable the headers API

Defaults to disabled while labeled EXPERIMENTAL.

Make all the headers API tests require 'headers-api' to run.

3 years agotest1671: verify -w '%{header_json}
Daniel Stenberg [Thu, 17 Mar 2022 22:11:22 +0000 (23:11 +0100)] 
test1671: verify -w '%{header_json}

3 years agotest1670: verify -w %header{}
Daniel Stenberg [Thu, 17 Mar 2022 22:07:56 +0000 (23:07 +0100)] 
test1670: verify -w %header{}

3 years agocurl: add %{header_json} support in -w handling
Daniel Stenberg [Thu, 17 Mar 2022 16:55:06 +0000 (17:55 +0100)] 
curl: add %{header_json} support in -w handling

Outputs all response headers as a JSON object.

3 years agocurl: add %header{name} support in -w handling
Daniel Stenberg [Thu, 17 Mar 2022 15:32:45 +0000 (16:32 +0100)] 
curl: add %header{name} support in -w handling

Outputs the response header 'name'

3 years agoheader api: add curl_easy_header and curl_easy_nextheader
Daniel Stenberg [Thu, 17 Mar 2022 09:20:19 +0000 (10:20 +0100)] 
header api: add curl_easy_header and curl_easy_nextheader

Add test 1940 to 1946 to verify.

Closes #8593