]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
2 years agotests: test secure mail protocols with explicit SSL requests
Patrick Monnerat [Sat, 25 Feb 2023 10:49:31 +0000 (11:49 +0100)] 
tests: test secure mail protocols with explicit SSL requests

New tests 987, 988 and 989, disabled for rustls (hanging).

Closes #10077

2 years agotests: support for imaps/pop3s/smtps protocols
Patrick Monnerat [Sat, 25 Feb 2023 10:49:31 +0000 (11:49 +0100)] 
tests: support for imaps/pop3s/smtps protocols

Closes #10077

2 years agoruntests: use a hash table for server port numbers
Patrick Monnerat [Sat, 25 Feb 2023 10:49:31 +0000 (11:49 +0100)] 
runtests: use a hash table for server port numbers

Closes #10077

2 years agoINTERNALS.md: grammar
andy5995 [Sat, 25 Feb 2023 07:00:40 +0000 (01:00 -0600)] 
INTERNALS.md: grammar

Closes #10607

2 years agoRELEASE-NOTES: synced
Daniel Stenberg [Fri, 24 Feb 2023 23:20:06 +0000 (00:20 +0100)] 
RELEASE-NOTES: synced

2 years ago.cirrus.yml: Bump to FreeBSD 13.2
Philip H [Tue, 10 Jan 2023 11:11:23 +0000 (12:11 +0100)] 
.cirrus.yml: Bump to FreeBSD 13.2

Closes #10270

2 years agongtcp2-gnutls.yml: bump to gnutls 3.8.0
Philip H [Tue, 14 Feb 2023 10:27:31 +0000 (11:27 +0100)] 
ngtcp2-gnutls.yml: bump to gnutls 3.8.0

Closes #10507

2 years agoCI: update ngtcp2 and nghttp2 for pytest
Philip H [Tue, 14 Feb 2023 11:40:32 +0000 (12:40 +0100)] 
CI: update ngtcp2 and nghttp2 for pytest

Follow-up: https://github.com/curl/curl/commit/5c9ee8cef4b351a085b440f8178500124647f8e6

Closes #10508

2 years agoGHA: use same flags for Slackbuild as Slack package
andy5995 [Wed, 15 Feb 2023 19:27:51 +0000 (13:27 -0600)] 
GHA: use same flags for Slackbuild as Slack package

Closes #10526

2 years agortsp: avoid sscanf for parsing
Daniel Stenberg [Fri, 24 Feb 2023 16:31:43 +0000 (17:31 +0100)] 
rtsp: avoid sscanf for parsing

Closes #10605

2 years agohttp_proxy: parse the status line without sscanf
Daniel Stenberg [Fri, 24 Feb 2023 11:39:26 +0000 (12:39 +0100)] 
http_proxy: parse the status line without sscanf

Closes #10602

2 years agotelnet: error correctly for WS set to "x[num]"
Daniel Stenberg [Fri, 24 Feb 2023 17:38:32 +0000 (18:38 +0100)] 
telnet: error correctly for WS set to "x[num]"

Follow-up to e4f93be9d587
Reported-by: Harry Sintonen
Closes #10606

2 years agokrb5: avoid sscanf for parsing
Daniel Stenberg [Fri, 24 Feb 2023 07:38:19 +0000 (08:38 +0100)] 
krb5: avoid sscanf for parsing

Closes #10599

2 years agomisc: remove support for curl_off_t < 8 bytes
Daniel Stenberg [Thu, 23 Feb 2023 23:45:16 +0000 (00:45 +0100)] 
misc: remove support for curl_off_t < 8 bytes

Closes #10597

2 years agotelnet: parse NEW_ENVIRON without sscanf
Daniel Stenberg [Thu, 23 Feb 2023 17:26:50 +0000 (18:26 +0100)] 
telnet: parse NEW_ENVIRON without sscanf

Closes #10596

2 years agotelnet: parse the WS= argument without sscanf
Daniel Stenberg [Thu, 23 Feb 2023 17:20:16 +0000 (18:20 +0100)] 
telnet: parse the WS= argument without sscanf

Closes #10596

2 years agotelnet: parse telnet options without sscanf
Daniel Stenberg [Thu, 23 Feb 2023 17:14:35 +0000 (18:14 +0100)] 
telnet: parse telnet options without sscanf

Closes #10596

2 years agoftp: replace sscanf for MDTM 213 response parsing
Daniel Stenberg [Thu, 23 Feb 2023 10:36:04 +0000 (11:36 +0100)] 
ftp: replace sscanf for MDTM 213 response parsing

Closes #10590

2 years agoftp: replace sscanf for PASV parsing
Daniel Stenberg [Thu, 23 Feb 2023 09:52:59 +0000 (10:52 +0100)] 
ftp: replace sscanf for PASV parsing

Closes #10590

2 years agoftp: make the EPSV response parser not use sscanf
Daniel Stenberg [Wed, 22 Feb 2023 23:29:47 +0000 (00:29 +0100)] 
ftp: make the EPSV response parser not use sscanf

Closes #10590

2 years agongtcp2: fix unwanted close of file descriptor 0
Stefan Eissing [Thu, 23 Feb 2023 15:54:02 +0000 (16:54 +0100)] 
ngtcp2: fix unwanted close of file descriptor 0

... causing macOS to hand out 0 as next socket handle and failing on
further operations.

Reported-by: Sergey Fionov
Fixes #10593
Closes #10595

2 years agoselect: stop treating POLLRDBAND as an error
Daniel Stenberg [Thu, 23 Feb 2023 11:19:26 +0000 (12:19 +0100)] 
select: stop treating POLLRDBAND as an error

POLLRDBAND does not seem to be an general error and on Windows the value
for POLLIN is 768 and the value for POLLRDBAND is 512.

Fixes #10501
Reported-by: opensslonzos-github on github
Closes #10592

2 years agotest978: mark file as text mode
Daniel Stenberg [Thu, 23 Feb 2023 13:45:57 +0000 (14:45 +0100)] 
test978: mark file as text mode

Follow-up to 4ea5702980cb

To fix test failures on Windows

Closes #10594

2 years agohttp: rewrite the status line parser without sscanf
Daniel Stenberg [Tue, 21 Feb 2023 22:59:18 +0000 (23:59 +0100)] 
http: rewrite the status line parser without sscanf

Closes #10585

2 years agotest978: verify that --stderr works for -w's stderr as well
Daniel Stenberg [Mon, 20 Feb 2023 23:01:04 +0000 (00:01 +0100)] 
test978: verify that --stderr works for -w's stderr as well

2 years agocurl: make -w's %{stderr} use the file set with --stderr
Jay Satiro [Mon, 20 Feb 2023 13:16:41 +0000 (14:16 +0100)] 
curl: make -w's %{stderr} use the file set with --stderr

Reported-by: u20221022 on github
Fixes #10491
Closes #10569

2 years agowinbuild: fix makefile clean
Jay Satiro [Tue, 21 Feb 2023 08:38:37 +0000 (03:38 -0500)] 
winbuild: fix makefile clean

- Fix and move 'clean' code that removes the output and obj directories
  trees from MakefileBuild.vc to Makefile.vc.

Prior to this change the 'clean' code did not work right because the
variables containing the directory names were not fully initialized and
the rmdir syntax was sometimes incorrect (typos). DIRDIST for example
was set to ..\builds\ and not ..\builds\$(CONFIG_NAME_LIB)\ so it would
remove the former and not the latter. If WITH_PREFIX was set then that
directory was removed instead.

Also, DIRDIST (the output directory) even if initialized should not be
removed by MakefileBuild.vc because by that time it could be set to a
user directory that may contain other files if WITH_PREFIX is set (eg we
don't want rmdir /s /q C:\usr\local). Therefore we remove from
Makefile.vc before any of that happens. I added a comment in both
makefiles explaining this.

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

2 years agosectransp: fix compiler warning c89 mixed code/declaration
Jay Satiro [Tue, 21 Feb 2023 04:28:14 +0000 (23:28 -0500)] 
sectransp: fix compiler warning c89 mixed code/declaration

Since cbf57176 the Cirrus CI 'macOS arm64 SecureTransport http2' has
been failing due to c89 warnings mixed code/declaration. That commit is
not the cause so I assume something has changed in the CI outside of our
configuration. Anyway, we don't mix code/declaration so this is the fix
for that.

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

2 years agoBINDINGS: add Fortran binding
Philipp Engel [Wed, 22 Feb 2023 15:13:35 +0000 (16:13 +0100)] 
BINDINGS: add Fortran binding

Closes #10589

2 years agotest2600: detect when ALARM_TIMEOUT is in use and adjust
Stefan Eissing [Fri, 17 Feb 2023 09:48:34 +0000 (10:48 +0100)] 
test2600: detect when ALARM_TIMEOUT is in use and adjust

- use higher timeout values > 1s
- skip duration checks

Assisted-by: Marcel Raad
Closes #10513

2 years agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 22 Feb 2023 14:39:16 +0000 (15:39 +0100)] 
RELEASE-NOTES: synced

2 years agotest686: verify return code for no URL after --next
Daniel Stenberg [Tue, 21 Feb 2023 11:12:06 +0000 (12:12 +0100)] 
test686: verify return code for no URL after --next

2 years agotool_operate: propagate error codes for missing URL after --next
Daniel Stenberg [Tue, 21 Feb 2023 11:09:37 +0000 (12:09 +0100)] 
tool_operate: propagate error codes for missing URL after --next

Fixes #10558
Reported-by: u20221022 on github
Closes #10580

2 years agotest1278: verify that an extra --no-remote-name cause no warning
Daniel Stenberg [Tue, 21 Feb 2023 12:31:59 +0000 (13:31 +0100)] 
test1278: verify that an extra --no-remote-name cause no warning

2 years agotool_getparam: don't add a new node for just --no-remote-name
Daniel Stenberg [Tue, 21 Feb 2023 11:32:48 +0000 (12:32 +0100)] 
tool_getparam: don't add a new node for just --no-remote-name

Unless --remote-name-all is used.

Fixes #10564
Reported-by: u20221022 on github
Closes #10582

2 years agogen.pl: add '%GLOBALS' as a variable for mainpage
Daniel Stenberg [Tue, 21 Feb 2023 16:17:49 +0000 (17:17 +0100)] 
gen.pl: add '%GLOBALS' as a variable for mainpage

And use it in page-header to list all global command line options.

2 years agodocs/cmdline-opts: mark all global options
Daniel Stenberg [Tue, 21 Feb 2023 15:42:26 +0000 (16:42 +0100)] 
docs/cmdline-opts: mark all global options

gen.pl now outputs a generic explanations for them for each option

Fixes #10566
Reported-by: u20221022 on github
Closes #10584

2 years agoGHA: add Microsoft C++ Code Analysis
Daniel Stenberg [Tue, 21 Feb 2023 12:52:30 +0000 (13:52 +0100)] 
GHA: add Microsoft C++ Code Analysis

Closes #10583

2 years agotool_progress: shut off progress meter for --silent in parallel
Daniel Stenberg [Tue, 21 Feb 2023 10:38:03 +0000 (11:38 +0100)] 
tool_progress: shut off progress meter for --silent in parallel

Reported-by: finkjsc on github
Fixes #10573
Closes #10579

2 years agolib1560: add a test using %25 in the userinfo in a URL
Daniel Stenberg [Tue, 21 Feb 2023 09:02:34 +0000 (10:02 +0100)] 
lib1560: add a test using %25 in the userinfo in a URL

Closes #10578

2 years agoCURLOPT_PIPEWAIT: allow waited reuse also for subsequent connections
Stefan Eissing [Thu, 9 Feb 2023 15:07:34 +0000 (16:07 +0100)] 
CURLOPT_PIPEWAIT: allow waited reuse also for subsequent connections

As tested in test_02_07, when firing off 200 urls with --parallel, 199
wait for the first connection to be established. if that is multiuse,
urls are added up to its capacity.

The first url over capacity opens another connection. But subsequent
urls found the same situation and open a connection too. They should
have waited for the second connection to actually connect and make its
capacity known.

This change fixes that by

- setting `connkeep()` early in the HTTP setup handler. as otherwise
  a new connection is marked as closeit by default and not considered
  for multiuse at all
- checking the "connected" status for a candidate always and continuing
  to PIPEWAIT if no alternative is found.

pytest:
- removed "skip" from test_02_07
- added test_02_07b to check that http/1.1 continues to work as before

Closes #10456

2 years agotest419: verify --dump-header to file that cannot be created
Daniel Stenberg [Mon, 20 Feb 2023 22:19:06 +0000 (23:19 +0100)] 
test419: verify --dump-header to file that cannot be created

Closes #10571

2 years agotool_operate: avoid fclose(NULL) on bad header dump file
Daniel Stenberg [Mon, 20 Feb 2023 17:35:13 +0000 (18:35 +0100)] 
tool_operate: avoid fclose(NULL) on bad header dump file

Fixes #10570
Reported-by: Jérémy Rabasco
Closes #10571

2 years agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 20 Feb 2023 22:54:13 +0000 (23:54 +0100)] 
RELEASE-NOTES: synced

Starting the journey towards 8.0.0

2 years agocookie: parse without sscanf()
Daniel Stenberg [Mon, 20 Feb 2023 22:49:51 +0000 (23:49 +0100)] 
cookie: parse without sscanf()

Saves us from using 2*4096 bytes buffers on stack, the extra copies and
more.

Closes #10550

2 years agolib517: verify time stamps without leading zeroes plus some more
Daniel Stenberg [Fri, 17 Feb 2023 09:39:36 +0000 (10:39 +0100)] 
lib517: verify time stamps without leading zeroes plus some more

2 years agoparsedate: replace sscanf( for time stamp parsing
Daniel Stenberg [Fri, 17 Feb 2023 10:23:12 +0000 (11:23 +0100)] 
parsedate: replace sscanf( for time stamp parsing

Closes #10547

2 years agoparsedate: parse strings without using sscanf()
Daniel Stenberg [Fri, 17 Feb 2023 09:04:31 +0000 (10:04 +0100)] 
parsedate: parse strings without using sscanf()

- sscanf is slow and complex, avoid it
- give up already if the string is 12 bytes or longer as no valid string
  can be that long
- this can now be done without copy

Closes #10547

2 years agotests: HTTP server fixups
Matt Jolly [Mon, 20 Feb 2023 08:29:03 +0000 (19:29 +1100)] 
tests: HTTP server fixups

- httpserver.pl -> http-server.pl for consistency
- add http3-server.pl to EXTRA_DIST; alphabetise for maintainability
- nghttpx proxy invocation scripts should not use getcwd

Closes #10568

2 years agoRELEASE-NOTES: synced curl-7_88_1
Daniel Stenberg [Mon, 20 Feb 2023 07:23:23 +0000 (08:23 +0100)] 
RELEASE-NOTES: synced

7.88.1 release

2 years agoTHANKS: add contributors from 7.88.1
Daniel Stenberg [Mon, 20 Feb 2023 07:24:31 +0000 (08:24 +0100)] 
THANKS: add contributors from 7.88.1

2 years agosocketpair: allow EWOULDBLOCK when reading the pair check bytes
Daniel Stenberg [Sun, 19 Feb 2023 10:03:21 +0000 (11:03 +0100)] 
socketpair: allow EWOULDBLOCK when reading the pair check bytes

Reported-by: Gunamoi Software
Co-authored-by: Jay Satiro
Fixes #10561
Closes #10562

2 years agotool_operate: fix scanbuild compiler warning
Jay Satiro [Sat, 18 Feb 2023 21:06:11 +0000 (16:06 -0500)] 
tool_operate: fix scanbuild compiler warning

Prior to this change Azure CI scanbuild warned of a potential NULL
pointer string passed to strtol when CURLDEBUG enabled, even though the
way the code was written it wouldn't have happened.

Bug: https://github.com/curl/curl/commit/5479d991#r101159711
Reported-by: Marcel Raad
Closes https://github.com/curl/curl/pull/10559

2 years agocurl_setup: Suppress OpenSSL 3 deprecation warnings
Jay Satiro [Fri, 17 Feb 2023 08:40:05 +0000 (03:40 -0500)] 
curl_setup: Suppress OpenSSL 3 deprecation warnings

- Define OPENSSL_SUPPRESS_DEPRECATED.

OpenSSL 3 has deprecated some of the functions libcurl uses such as
those with DES, MD5 and ENGINE prefix. We don't have replacements for
those functions so the warnings were disabled in autotools and cmake
builds, but still showed in other builds.

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

2 years agobuild-openssl.bat: keep OpenSSL 3 engine binaries
Jay Satiro [Fri, 17 Feb 2023 08:26:07 +0000 (03:26 -0500)] 
build-openssl.bat: keep OpenSSL 3 engine binaries

Prior to this change copying the OpenSSL 3 engine binaries failed
because 'engines-1_1' (OpenSSL 1.1.x folder name) was erroneously used
instead of 'engines-3'. The OpenSSL 3 builds would complete successfully
but without the engine binaries.

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

2 years agocmake: fix Windows check for CryptAcquireContext
ALittleDruid [Sat, 28 Jan 2023 12:23:25 +0000 (20:23 +0800)] 
cmake: fix Windows check for CryptAcquireContext

Check for CryptAcquireContext in windows.h and wincrypt.h only, since
otherwise this check may fail due to third party headers not found.

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

2 years agoremote-header-name.d: mention that filename* is not supported
Daniel Stenberg [Sat, 18 Feb 2023 09:18:57 +0000 (10:18 +0100)] 
remote-header-name.d: mention that filename* is not supported

and that you can use --clobber to allow overwriting.

Ref: #10533
Closes #10555

Co-authored-by: Jay Satiro <raysatiro@yahoo.com>
2 years agoCURLOPT_WS_OPTIONS.3: fix the availability version
Pierrick Charron [Sat, 18 Feb 2023 17:38:36 +0000 (12:38 -0500)] 
CURLOPT_WS_OPTIONS.3: fix the availability version

Closes #10557

2 years agoGHA: update rustls dependency to 0.9.2
Jacob Hoffman-Andrews [Fri, 17 Feb 2023 20:59:44 +0000 (12:59 -0800)] 
GHA: update rustls dependency to 0.9.2

This allows re-enabling test 312 for the rustls backend.

Closes #10553

2 years agoHTTP3.md: update git branches
Philip H [Fri, 17 Feb 2023 21:42:31 +0000 (22:42 +0100)] 
HTTP3.md: update git branches

Closes #10554

2 years agourldata: remove `now` from struct SingleRequest - not needed
Stefan Eissing [Fri, 17 Feb 2023 11:53:13 +0000 (12:53 +0100)] 
urldata: remove `now` from struct SingleRequest - not needed

Closes #10549

2 years agolib1560: add IPv6 canonicalization tests
Daniel Stenberg [Fri, 17 Feb 2023 16:43:25 +0000 (17:43 +0100)] 
lib1560: add IPv6 canonicalization tests

Closes #10552

2 years agoRELEASE-NOTES: synced
Daniel Stenberg [Thu, 16 Feb 2023 13:53:47 +0000 (14:53 +0100)] 
RELEASE-NOTES: synced

2 years agourlapi: do the port number extraction without using sscanf()
Daniel Stenberg [Thu, 16 Feb 2023 23:16:39 +0000 (00:16 +0100)] 
urlapi: do the port number extraction without using sscanf()

- sscanf() is rather complex and slow, strchr() much simpler

- the port number function does not need to fully verify the IPv6 address
  anyway as it is done later in the hostname_check() function and doing
  it twice is unnecessary.

Closes #10541

2 years agosetopt: allow HTTP3 when HTTP2 is not defined
Stefan Eissing [Fri, 17 Feb 2023 09:17:06 +0000 (10:17 +0100)] 
setopt: allow HTTP3 when HTTP2 is not defined

Reported-by: Karthikdasari0423 on github
Fixes #10538
Closes #10544

2 years agoos400: correct Curl_os400_sendto()
jonrumsey [Thu, 16 Feb 2023 20:46:49 +0000 (20:46 +0000)] 
os400: correct Curl_os400_sendto()

Add const qualifier to 5th argument of Curl_os400_sendto()

Make OS400 wrapper for sendto match the normal prototype of sendto()
with a const qualifier.

Fixes #10539
Closes #10548

2 years agotests-httpd: add proxy tests
Stefan Eissing [Wed, 15 Feb 2023 11:39:46 +0000 (12:39 +0100)] 
tests-httpd: add proxy tests

for direct and tunneling checks on http: and https:

Closes #10519

2 years agocurl: make --silent work stand-alone
Daniel Stenberg [Thu, 16 Feb 2023 15:34:36 +0000 (16:34 +0100)] 
curl: make --silent work stand-alone

- renamed the struct field to 'silent' to match the cmdline option
- make --show-error toggle independently of --silent
- make --silent independent of ->noprogress as well

By doing this, the three options --silent, --no-progress-meter and
--show-error should work independently of each other and also work with
and without '--no-' prefix as documented.

Reported-by: u20221022 on github
Fixes #10535
Closes #10536

2 years agosocks: allow using DoH to resolve host names
Daniel Stenberg [Thu, 16 Feb 2023 22:52:22 +0000 (23:52 +0100)] 
socks: allow using DoH to resolve host names

For SOCKS modes where a local host resolve is done.

It was previously disabled in 12d655d4561, but a few local tests seem to
indicate that it works fine. Works now because of the SOCKS refactor of
4a4b63daaa01ef59 that made it non-blocking.

Reported-by: roughtex on github
Fixes #10537
Closes #10540

2 years agotest: add test for HTTP/2 corruption as reported in #10525
Stefan Eissing [Thu, 16 Feb 2023 13:09:16 +0000 (14:09 +0100)] 
test: add test for HTTP/2 corruption as reported in #10525

- adding test_02_20 for reproducing the situation
- using recently released mod_h2 Apache module
- skipping test if an older version is installed
- adding installation of current mod_h2 to github pytest workflow

This reproduces the error reliable (for me) on the lib/http2.c version
of curl 7.88.0. And passes with the recent curl master.

Closes #10534

2 years agotool_operate: allow debug builds to set buffersize
Daniel Stenberg [Thu, 16 Feb 2023 08:26:55 +0000 (09:26 +0100)] 
tool_operate: allow debug builds to set buffersize

Using the CURL_BUFFERSIZE environment variable.

Closes #10532

2 years agoconnnect: fix timeout handling to use full duration
Stefan Eissing [Wed, 15 Feb 2023 09:31:52 +0000 (10:31 +0100)] 
connnect: fix timeout handling to use full duration

- connect timeout was used at half the configured value, if the
  destination had 1 ip version 4 and other version 6 addresses
  (or the other way around)
- extended test2600 to reproduce these cases

Reported-by: Michael Kaufmann
Fixes #10514
Closes #10517

2 years agotool_getparam: make --get a true boolean
Daniel Stenberg [Thu, 16 Feb 2023 07:19:06 +0000 (08:19 +0100)] 
tool_getparam: make --get a true boolean

To match how it is documented in the man page.

Fixes #10527
Reported-by: u20221022 on github
Closes #10531

2 years agohttp:: include stdint.h more readily
Harry Sintonen [Thu, 16 Feb 2023 00:29:37 +0000 (02:29 +0200)] 
http:: include stdint.h more readily

Closes #10516

2 years agotests: make the telnet server shut down a socket gracefully
Stefan Eissing [Tue, 14 Feb 2023 13:29:13 +0000 (14:29 +0100)] 
tests: make the telnet server shut down a socket gracefully

- test 1452 failed occasionally with ECONNRESET errnos in curl when the
  server closed the connection in an unclean state.

Closes #10509

2 years agohttp2: set drain on stream end
Harry Sintonen [Thu, 16 Feb 2023 04:26:26 +0000 (06:26 +0200)] 
http2: set drain on stream end

Ensure that on_frame_recv() stream end will trigger a read if there is
pending data. Without this it could happen that the pending data is
never consumed.

This combined with https://github.com/curl/curl/pull/10529 should fix
https://github.com/curl/curl/issues/10525

Ref: https://github.com/curl/curl/issues/10525
Closes #10530

2 years agohttp2: buffer/pausedata and output flush fix.
Stefan Eissing [Wed, 15 Feb 2023 21:11:13 +0000 (22:11 +0100)] 
http2: buffer/pausedata and output flush fix.

 * do not process pending input data when copying pausedata to the
   caller
 * return CURLE_AGAIN if the output buffer could not be completely
   written out.

Ref: #10525
Closes #10529

2 years agokrb5: silence cast-align warning
Marcel Raad [Wed, 15 Feb 2023 20:48:24 +0000 (21:48 +0100)] 
krb5: silence cast-align warning

Add an intermediate cast to `void *`, as done everywhere else when
casting from `sockaddr *` to `sockaddr_in *`.

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

2 years agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 15 Feb 2023 22:46:46 +0000 (23:46 +0100)] 
RELEASE-NOTES: synced

bumped to 7.88.1

2 years agotests: make sure gnuserv-tls has SRP support before using it
Daniel Stenberg [Wed, 15 Feb 2023 14:04:07 +0000 (15:04 +0100)] 
tests: make sure gnuserv-tls has SRP support before using it

Reported-by: fundawang on github
Fixes #10522
Closes #10524

2 years agoruntests: fix "uninitialized value $port"
Daniel Stenberg [Wed, 15 Feb 2023 12:03:21 +0000 (13:03 +0100)] 
runtests: fix "uninitialized value $port"

by using a more appropriate variable

Reported-by: fundawang on github
Fixes #10518
Closes #10520

2 years agoRELEASE-NOTES: synced curl-7_88_0
Daniel Stenberg [Wed, 15 Feb 2023 07:10:01 +0000 (08:10 +0100)] 
RELEASE-NOTES: synced

7.88.0 release

2 years agoTHANKS: added contributors from 7.88.0
Daniel Stenberg [Wed, 15 Feb 2023 07:10:01 +0000 (08:10 +0100)] 
THANKS: added contributors from 7.88.0

2 years agoopenssl: rename 'errcode_t' to 'sslerr_t'
Daniel Stenberg [Mon, 13 Feb 2023 20:05:05 +0000 (21:05 +0100)] 
openssl: rename 'errcode_t' to 'sslerr_t'

Turns out "/usr/include/et/com_err.h" typedefs this type (without proper
variable scoping).

comerr is the "common error description library" that apparently might be used
by krb5 code, which then makes this header get used in a curl build.

Reported-by: Bruno Henrique Batista Cruz da Silva
Fixed #10502
Closes #10500

2 years agoCONTRIBUTE: More formally specify the commit description
Dan Fandrich [Sat, 11 Feb 2023 19:05:42 +0000 (11:05 -0800)] 
CONTRIBUTE: More formally specify the commit description

This codifies what people have actually used in git commits over the
past 6 years. I've left off some lesser-used headers that appear to
duplicate others and tried to describe a consistent use for several
others that were used more arbitrarily.

This makes it easier for new committers to find out the kinds of things
we want to acknowledge, makes it easier to perform statistical analysis
on commits, and opens the possibility of performing lint checks on
descriptions before submission.

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

2 years agoopenssl: test and fix for forward proxy handling (non-tunneling).
Stefan Eissing [Mon, 13 Feb 2023 15:15:20 +0000 (16:15 +0100)] 
openssl: test and fix for forward proxy handling (non-tunneling).

- adding pytest test_10 cases for proxy httpd setup tests
- fixing openssl bug in https: proxy hostname verification that
  used the hostname of the request and not the proxy name.

Closes #10498

2 years agocmdline-opts/Makefile: on error, do not leave a partial
Daniel Stenberg [Mon, 13 Feb 2023 14:34:54 +0000 (15:34 +0100)] 
cmdline-opts/Makefile: on error, do not leave a partial

And support 'make V=1' to show the full command line

Closes #10497

2 years agocurl.1: make help, version and manual sections "custom"
Daniel Stenberg [Mon, 13 Feb 2023 14:33:13 +0000 (15:33 +0100)] 
curl.1: make help, version and manual sections "custom"

Instead of using "multi: boolean", as these are slightly special as in
they do are not enable/disable ones.

Fixes #10490
Reported-by: u20221022 on github
Closes #10497

2 years agotests: add tests for HTTP/2 and HTTP/3 to verify the header API
Stefan Eissing [Mon, 13 Feb 2023 13:22:37 +0000 (14:22 +0100)] 
tests: add tests for HTTP/2 and HTTP/3 to verify the header API

Test 2403 and 2503 check "header_json" output and therefore use of
header-api

Closes #10495

2 years agoCI: update wolfssl / wolfssh to 5.5.4 / 1.4.12
Philip H [Mon, 13 Feb 2023 08:04:51 +0000 (09:04 +0100)] 
CI: update wolfssl / wolfssh to 5.5.4 / 1.4.12

Closes #10493

2 years agoKNOW_BUGS: cleanups with some changed to TODOs
Daniel Stenberg [Sun, 12 Feb 2023 17:07:08 +0000 (18:07 +0100)] 
KNOW_BUGS: cleanups with some changed to TODOs

- remove "Excessive HTTP/2 packets with TCP_NODELAY"

  This is not a bug. Rather room for improvement.

I believe these have been fixed:

- 17.4 Connection failures with parallel HTTP/2
- 17.5 HTTP/2 connections through HTTPS proxy frequently stall

- remove "FTPS needs session reuse"

That is still true, but curl should also do session reuse now.

- remove "ASCII FTP"

It is documented behavior, and not single user has asked for extended
functionality here the last decade or so.

- remove "Passive transfer tries only one IP address"

add as a TODO

- remove "DoH leaks memory after followlocation"

With a recipe on how to reproduce, this is pointless to keep around

- remove "DoH does not inherit all transfer options"

add it as a TODO

Closes #10487

2 years agoGHA: bump ngtcp2 workflow dependencies
Tatsuhiro Tsujikawa [Mon, 13 Feb 2023 12:40:30 +0000 (21:40 +0900)] 
GHA: bump ngtcp2 workflow dependencies

Closes #10494

2 years agocontent_encoding: do not reset stage counter for each header
Patrick Monnerat [Mon, 13 Feb 2023 07:33:09 +0000 (08:33 +0100)] 
content_encoding: do not reset stage counter for each header

Test 418 verifies

Closes #10492

2 years agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 13 Feb 2023 10:31:28 +0000 (11:31 +0100)] 
RELEASE-NOTES: synced

2 years agomulti: stop sending empty HTTP/3 UDP datagrams on Windows
Jay Satiro [Tue, 7 Feb 2023 08:14:34 +0000 (03:14 -0500)] 
multi: stop sending empty HTTP/3 UDP datagrams on Windows

- Limit the 0-sized send procedure that is used to reset a SOCKET's
  FD_WRITE to TCP sockets only.

Prior to this change the reset was used on UDP sockets as well, but
unlike TCP sockets a 0-sized send actually sends out a datagram.

Assisted-by: Marc Hörsken
Ref: https://github.com/curl/curl/pull/9203

Fixes https://github.com/curl/curl/issues/9086
Closes https://github.com/curl/curl/pull/10430

2 years agoh3: silence compiler warnings
Viktor Szakats [Sun, 12 Feb 2023 17:11:46 +0000 (17:11 +0000)] 
h3: silence compiler warnings

Reviewed-by: Daniel Stenberg
Fixes #10485
Closes #10486

2 years agosmb: return error on upload without size
Daniel Stenberg [Sun, 12 Feb 2023 12:24:08 +0000 (13:24 +0100)] 
smb: return error on upload without size

The protocol needs to know the size ahead of time, this is now a known
restriction and not a bug.

Also output a clearer error if the URL path does not contain proper
share.

Ref: #7896
Closes #10484

2 years agowindows: always use curl's basename() implementation
Viktor Szakats [Sun, 12 Feb 2023 12:52:59 +0000 (12:52 +0000)] 
windows: always use curl's basename() implementation

The `basename()` [1][2] implementation provided by mingw-w64 [3] makes
assumptions about input encoding and may break with non-ASCII strings.

`basename()` was auto-detected with CMake, autotools and since
68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6 (2022-10-13), also in
`Makefile.mk` after syncing its behaviour with the mainline build
methods. A similar patch for curl-for-win broke official Windows
builds earlier, in release 7.83.1_4 (2022-06-15).

This patch forces all Windows builds to use curl's internal
`basename()` implementation to avoid such problems.

[1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/basename.html
[2]: https://www.man7.org/linux/man-pages/man3/basename.3.html
[3]: https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-crt/misc/basename.c

Reported-by: UnicornZhang on Github
Assisted-by: Cherish98 on Github
Reviewed-by: Daniel Stenberg
Fixes #10261
Closes #10475

2 years agoLinux CI: Bump rustls-ffi to v0.9.1
Philip H [Sat, 11 Feb 2023 16:30:26 +0000 (17:30 +0100)] 
Linux CI: Bump rustls-ffi to v0.9.1

Closes #10476

2 years agolibtest: build lib2305 with multibyte as well
Daniel Stenberg [Sat, 11 Feb 2023 22:16:46 +0000 (23:16 +0100)] 
libtest: build lib2305 with multibyte as well

Fixes a build regression.

Follow-up to 5a9a04d5567
Reported-by: Viktor Szakats
Ref: https://github.com/curl/curl/pull/10475#issuecomment-1426831800

Closes #10477