Commit Graph

29932 Commits

Author SHA1 Message Date
Jan Engelhardt
73e9e6d767
build: drop the use of XC_AMEND_DISTCLEAN
Because automake used to delete depdirs at once (.deps) and there was an issue
with portability, curl's XC_AMEND_DISTCLEAN greps the Makefiles in an attempt
to build a list of all depfiles and delete them individually instead.

Since commit 08849db866b44510f6b8fd49e313c91a43a3dfd3, automake switched from
deleting directories to individual files. curl's custom logic now finds a lot
more results with the grep (the filtering of these results isn't great), which
causes a massive bloating of the Makefile in the order of O(n^2).

Also remove now-unused XC_AMEND_DISTCLEAN macro group

References: https://github.com/curl/curl/issues/9843
References: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59288

Reported-by: Ilmari Lauhakangas
Fixes #9843
Closes #10661
2023-03-03 09:54:44 +01:00
Balakrishnan Balasubramanian
351ea4ff53
test1470: test socks proxy using unix sockets and connect to https
Similar to test1468 except using https instead of http

Closes #10662
2023-03-03 09:18:21 +01:00
Daniel Stenberg
e4dfe6fc2f
test1960: verify CURL_SOCKOPT_ALREADY_CONNECTED
When returned from the CURLOPT_SOCKOPTFUNCTION, like when we have a
custom socket connected in the app, passed in to libcurl.

Verifies the fix in #10648

Closes #10651
2023-03-03 08:36:25 +01:00
Stefan Eissing
e497a96a0e
tests: rename tests/tests-httpd to tests/http
- httpd is only one server we test with
 - the suite coveres the HTTP protocol in general where
   the default test cases need a more beefy environment

Closes #10654
2023-03-02 14:05:19 +01:00
Stefan Eissing
9fd2d5aa72
socket: detect "dead" connections better, e.g. not fit for reuse
- refs #10646 where reuse was attempted on closed connections in the
  cache, leading to an exhaustion of retries on a transfer
- the mistake was that poll events like POLLHUP, POLLERR, etc
  were regarded as "not dead".
- change cf-socket filter check to regard such events as inidication
  of corpsiness.
- vtls filter checks: fixed interpretation of backend check result
  when inconclusive to interrogate status further down the filter
  chain.

Reported-by: SendSonS on github
Fixes #10646
Closes #10652
2023-03-02 09:03:06 +01:00
Stefan Eissing
9deebd311b
lib: give source files cf-http.* better fitting names
Closes #10656
2023-03-02 08:48:34 +01:00
Stefan Eissing
8151d7babc http2: fix code indent
Closes https://github.com/curl/curl/pull/10655
2023-03-02 00:09:53 -05:00
Shankar Jadhavar
233810bb5f
cf-socket: if socket is already connected, return CURLE_OK
In 7.87.0, if callback method for CURLOPT_SOCKOPTFUNCTION returns
CURL_SOCKOPT_ALREADY_CONNECTED then curl library used to return
CURLE_OK.  n 7.88.0, now even if callback returns
CURL_SOCKOPT_ALREADY_CONNECTED, curl library still tries to connect to
socket by invoking method do_connect().

This is regression caused by commit
https://github.com/curl/curl/commit/71b7e0161032927cdfb

Fix: Check if we are already connected and return CURLE_OK.

Fixes #10626
Closes #10648
2023-03-01 11:52:18 +01:00
Jay Satiro
d36c632c86 DYNBUF.md: note Curl_dyn_add* calls Curl_dyn_free on failure
This is the existing behavior and it has been widely assumed in the
codebase.

Closes https://github.com/curl/curl/pull/10645
2023-03-01 04:18:15 -05:00
Stefan Eissing
d9ccc75b00 http2: fix upload busy loop
- Set KEEP_SEND_PAUSE when exhausting remote HTTP/2 window size of a
  stream.

- Clear KEEP_SEND_PAUSE when receiving HTTP/2 window updates on a paused
  stream.

- Also fix http2 send compiler warnings reported in #10449.

Prior to this change, starting in 71b7e016 which precedes 7.88.0,
libcurl may eat CPU during HTTP/2 upload.

Reported-by: Jay Satiro

Fixes https://github.com/curl/curl/issues/10449
Fixes https://github.com/curl/curl/issues/10618
Closes https://github.com/curl/curl/pull/10627
2023-03-01 04:13:49 -05:00
Daniel Stenberg
c50a6eee04
sectransp: make read_cert() use a dynbuf when loading
Closes #10632
2023-03-01 09:38:43 +01:00
Jay Satiro
0b84d0cf1b transfer: limit Windows SO_SNDBUF updates to once a second
- Change readwrite_upload() to call win_update_buffer_size() no more
  than once a second to update SO_SNDBUF (send buffer limit).

Prior to this change during an upload readwrite_upload() could call
win_update_buffer_size() anywhere from hundreds of times per second to
an extreme test case of 100k per second (which is likely due to a bug,
see #10618). In the latter case WPA profiler showed
win_update_buffer_size was the highest capture count in
readwrite_upload. In any case the calls were excessive and unnecessary.

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

Closes https://github.com/curl/curl/pull/10611
2023-03-01 01:15:28 -05:00
Daniel Stenberg
a496d46a7b
RELEASE-NOTES: synced 2023-02-28 23:08:14 +01:00
Stefan Eissing
cbe9d82c22
http2: fix for http2-prior-knowledge when reusing connections
- refs #10634 where errors in the HTTP/2 framing layer are observed.
- the bug was that on connection reuse, the code attempted to switch
  in yet another layer of HTTP/2 handling instead of detecting that
  this was already in place.
- added pytest testcase reproducing the issue.

Reported-by: rwmjones on github
Fixes #10634
Closes #10643
2023-02-28 23:04:00 +01:00
Stefan Eissing
efa1aba97c
cf-socket: fix handling of remote addr for accepted tcp sockets
- do not try to determine the remote address of a listen socket. There
  is none.
- Update remote address of an accepted socket by getpeername() if
  available.

Reported-by: Harry Sintonen
Fixes #10622
Closes #10642
2023-02-28 23:03:17 +01:00
Stefan Eissing
a4d015e69f
http: fix unix domain socket use in https connects
- when h2/h3 eyeballing was involved, unix domain socket
  configurations were not honoured
- configuring --unix-socket will disable HTTP/3 as candidate for eyeballing
- combinatino of --unix-socket and --http3-only will fail during initialisation
- adding pytest test_11 to reproduce

Reported-by: Jelle van der Waa
Fixes #10633
Closes #10641
2023-02-28 22:59:19 +01:00
Daniel Stenberg
c9c3ec482b
setopt: move the CURLOPT_CHUNK_DATA pointer to the set struct
To make duphandle work etc

Closes #10635
2023-02-28 08:44:28 +01:00
Viktor Szakats
51211a31a5
quic/schannel: fix compiler warnings
Fixes #10603
Closes #10616
2023-02-28 08:43:16 +01:00
Daniel Stenberg
13afb87268
page-footer: add explanation for three missing exit codes
Added in 7.73.0, 7.77.0 and 7.84.0

Closes #10630
2023-02-28 08:26:36 +01:00
積丹尼 Dan Jacobson
8d708e4cad
rate.c: single URLs make no sense in --rate example
Here somehow you need to put more than one URL in these examples, else
they will make no sense, as --rate only affects the second and beyond
URLs. The first URL will always finish the same time no matter what
--rate is given.

Closes #10638
2023-02-28 08:24:23 +01:00
Daniel Stenberg
26c6d822bc
libcurl-errors.3: add the CURLHcode errors from curl_easy_header.3
Closes #10629
2023-02-28 08:21:34 +01:00
Daniel Stenberg
252fce70b1
mqtt: on send error, return error
Reported-by: Maciej Domanski

Closes #10623
2023-02-28 08:11:55 +01:00
Daniel Stenberg
3b23dbeec1
ws: keep the socket non-blocking
Reported-by: marski on github
Fixes #10615
Closes #10625
2023-02-28 00:38:21 +01:00
Daniel Stenberg
788c6b3864
hostip: avoid sscanf and extra buffer copies
Also made create_hostcache_id() return the id length.

Closes #10601
2023-02-27 20:43:13 +01:00
Daniel Stenberg
c5168365c7
PARALLEL-TRANSFERS.md: not "early days" for this anymore
Refresh the language as the support is now over three years old

Closes #10624
2023-02-27 20:08:54 +01:00
Daniel Stenberg
a26547b2a2
easy: remove infof() debug leftover from curl_easy_recv
It said "reached [path]/easy.c:1231"

Closes #10628
2023-02-27 19:50:25 +01:00
Daniel Stenberg
cf3e6ce92f
idn: return error if the conversion ends up with a blank host
Some IDN sequences are converted into "" (nothing), which can make this
function end up with a zero length host name and we cannot consider that
a valid host to continue with.

Reported-by: Maciej Domanski
Closes #10617
2023-02-27 15:12:29 +01:00
Daniel Stenberg
49a9f13c39
examples/http3.c: use CURL_HTTP_VERSION_3
and update the comment

Closes #10619
2023-02-27 15:11:13 +01:00
Daniel Stenberg
22eec78027
x509asn1.c: use correct format specifier for infof() call
Detected by Coverity

Closes #10614
2023-02-27 08:26:01 +01:00
Daniel Stenberg
aa31f9a856
Revert "GHA: add Microsoft C++ Code Analysis"
This reverts commit e0db842b2a.

This tool seems very restricted in how often it might be used by a
project and thus very quickly start to report fails simply because it
refuses to run when "there are more runs than allowed".

Closes #10613
2023-02-26 23:05:12 +01:00
Patrick Monnerat
90756d33d8
tests: test secure mail protocols with explicit SSL requests
New tests 987, 988 and 989, disabled for rustls (hanging).

Closes #10077
2023-02-25 11:49:31 +01:00
Patrick Monnerat
5855c478cb
tests: support for imaps/pop3s/smtps protocols
Closes #10077
2023-02-25 11:49:31 +01:00
Patrick Monnerat
8bfa4d66de
runtests: use a hash table for server port numbers
Closes #10077
2023-02-25 11:49:31 +01:00
andy5995
9fcc91006a
INTERNALS.md: grammar
Closes #10607
2023-02-25 10:54:49 +01:00
Daniel Stenberg
0232e160e1
RELEASE-NOTES: synced 2023-02-25 00:20:06 +01:00
Philip H
682854c790
.cirrus.yml: Bump to FreeBSD 13.2
Closes #10270
2023-02-25 00:15:57 +01:00
Philip H
4b3dc4b452
ngtcp2-gnutls.yml: bump to gnutls 3.8.0
Closes #10507
2023-02-25 00:12:44 +01:00
Philip H
8bd5a13dc3
CI: update ngtcp2 and nghttp2 for pytest
Follow-up: 5c9ee8cef4

Closes #10508
2023-02-25 00:11:46 +01:00
andy5995
8125822e6e
GHA: use same flags for Slackbuild as Slack package
Closes #10526
2023-02-25 00:10:25 +01:00
Daniel Stenberg
3b15ee1e34
rtsp: avoid sscanf for parsing
Closes #10605
2023-02-24 23:56:43 +01:00
Daniel Stenberg
3b8f5bb15b
http_proxy: parse the status line without sscanf
Closes #10602
2023-02-24 23:54:54 +01:00
Daniel Stenberg
cbd3fd7cbb
telnet: error correctly for WS set to "x[num]"
Follow-up to e4f93be9d5
Reported-by: Harry Sintonen
Closes #10606
2023-02-24 23:00:26 +01:00
Daniel Stenberg
5ed7417d2f
krb5: avoid sscanf for parsing
Closes #10599
2023-02-24 17:24:01 +01:00
Daniel Stenberg
835682661c
misc: remove support for curl_off_t < 8 bytes
Closes #10597
2023-02-24 17:05:33 +01:00
Daniel Stenberg
9672cc640c
telnet: parse NEW_ENVIRON without sscanf
Closes #10596
2023-02-24 16:45:58 +01:00
Daniel Stenberg
e4f93be9d5
telnet: parse the WS= argument without sscanf
Closes #10596
2023-02-24 16:45:56 +01:00
Daniel Stenberg
0c28ba2faa
telnet: parse telnet options without sscanf
Closes #10596
2023-02-24 16:45:42 +01:00
Daniel Stenberg
304b5183fd
ftp: replace sscanf for MDTM 213 response parsing
Closes #10590
2023-02-24 16:43:27 +01:00
Daniel Stenberg
dad74488fc
ftp: replace sscanf for PASV parsing
Closes #10590
2023-02-24 16:43:24 +01:00
Daniel Stenberg
b0f54f27a9
ftp: make the EPSV response parser not use sscanf
Closes #10590
2023-02-24 16:43:15 +01:00