| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Since that header file is the only place that define can be defined.
Reported-by: Marc Deslauriers
Follow-up to 13718030ad4b3209
Closes #11121
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hook the new (1.11.0 or newer) libssh2 support for setting a read timeout
into the SERVER_RESPONSE_TIMEOUT option. With this done, clients can use
the standard curl response timeout setting to also control the time that
libssh2 will wait for packets from a slow server. This is necessary to
enable use of very slow SFTP servers.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
Closes #10965
|
|
|
|
|
|
|
|
|
|
|
| |
They are marked as deprecated in iOS 13.0, which might result in
warnings-as-errors.
Also, use `*_MIN_REQUIRED` instead of `*_MIN_ALLOWED`, which seems to
be what's currently used.
Bug: https://github.com/curl/curl/issues/11098
Closes https://github.com/curl/curl/pull/11102
|
|
|
|
|
|
|
|
| |
Its only usage in curl_ntlm_core.c is guarded by `USE_CURL_NTLM_CORE`,
so let's use this here too.
Ref: https://github.com/curl/curl/issues/11098
Closes https://github.com/curl/curl/pull/11102
|
|
|
|
| |
Closes #11106
|
|
|
|
|
|
|
|
|
|
| |
The "prevhead" pointer is used for the headers storage but was not
cleared correctly in init, which made it possible to act up when a
handle is reused.
Reported-by: Steve Herrell
Fixes #11101
Closes #11103
|
|
|
|
|
|
|
|
|
| |
- nghttp3 0.11.0
- nghttp2 1.53.0
Adapt to new API calls
Closes #11031
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Theoretically, the oldest time could overflow an int. In practice that
won't happen, but let's do this to please analyzers.
Follow-up to 9ed7d56e044f5aa1b2928ccde6245d0
Pointed out by Coverity.
Closes #11094
|
|
|
|
|
|
|
|
| |
To avoid a memory-leak.
Reported-by: Hiroki Kurosawa
Closes #11093
|
|
|
|
|
| |
Reported-by: Wei Chong Tan
Closes #11088
|
|
|
|
|
|
|
|
|
|
| |
To reduce the damage an application can cause if using -1 or other
ridiculous timeout values and letting the cache live long times.
The maximum number of entries in the DNS cache is now totally
arbitrarily and hard-coded set to 29999.
Closes #11084
|
|
|
|
|
| |
... because it set and held as an 'int' elsewhere and can never be
larger.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code assumes that such a resume is wanting to continue an upload
using the read callback, and since POSTFIELDS is done without callback
libcurl will just misbehave.
This combo will make the transfer fail with CURLE_BAD_FUNCTION_ARGUMENT
with an explanation in the error message.
Reported-by: Smackd0wn on github
Fixes #11081
Closes #11083
|
|
|
|
| |
Closes #11068
|
|
|
|
|
|
|
|
|
| |
By insisting that the passed in handle is "good" (the magic number is
intact), this can limit the potential damage if a bad pointer is passed
in. Like when this function is called twice on the same handle pointer.
Ref: #10964
Closes #11061
|
|
|
|
|
|
|
| |
AmiSSL stores certificates in `AmiSSL:Certs` and MorphOS stores them in
`MOSSYS:Data/SSL/curl-ca-bundle.crt`.
Closes https://github.com/curl/curl/pull/11059
|
|
|
|
|
|
| |
When h2_progress_egress() is called. Pointed out by Coverity.
Closes #11057
|
|
|
|
|
|
|
|
|
|
|
| |
If the previous line starts with if/while/for AND ends with a closed
parenthesis and there's an equal number of open and closed parentheses
on that line, verify that this line is indented $indent more steps, if
not a cpp line.
Also adjust the fall-out from this fix.
Closes #11054
|
|
|
|
|
|
|
|
|
|
|
|
| |
The multi-ignore logic that was previously applied to
curl_multi_perform() (#10750) is here applied to the loop within
curl_multi_socket_action() to make it use the same optimization: most
handles have the same signal-ignore option state so this drastically
reduces the number of ignore/unignore calls per libcurl function invoke.
Follow-up to bc90308328afb8
Closes #11045
|
|
|
|
|
|
|
|
|
|
| |
- nghttp2 does not free connection level window flow for
aborted streams
- when closing transfers, make sure that any buffered
response data is "given back" to the flow control window
- add tests test_02_22 and test_02_23 to reproduce
Closes #11052
|
|
|
|
| |
Closes #11050
|
|
|
|
| |
Closes #11047
|
|
|
|
|
|
| |
Reported-by: Andreas Huebner
Fixes #11020
Closes #11039
|
|
|
|
|
|
|
|
|
|
|
| |
- fixes stalled connections
- Make the connection window large enough, so that there is
some room left should 99/100 streams be PAUSED by the application
Reported-by: Paweł Wegner
Fixes #10988
Closes #11043
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The open paren check wants to warn for spaces before open parenthesis
for if/while/for but also for any function call. In order to avoid
catching function pointer declarations, the logic allows a space if the
first character after the open parenthesis is an asterisk.
I also spotted what we did not include "switch" in the check but we should.
This check is a little lame, but we reduce this problem by not allowing
that space for if/while/for/switch.
Reported-by: Emanuele Torre
Closes #11044
|
|
|
|
|
|
| |
Detected by Coverity. Follow-up to 930c00c259
Closes #11037
|
|
|
|
|
|
|
|
| |
Curl_url_set_authority() it is.
Follow-up to acd82c8bfd
Closes #11035
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IPV6_V6ONLY refs:
https://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses
https://github.com/golang/go/blob/master/src/net/ipsock_posix.go
https://en.wikipedia.org/wiki/Unix-like
https://learn.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options
default value refs:
https://datatracker.ietf.org/doc/html/rfc3493#section-5.3
https://www.kernel.org/doc/html/latest/networking/ip-sysctl.html#proc-sys-net-ipv6-variables
Closes #10975
|
|
|
|
|
|
|
|
|
|
| |
- dselect_bits
- cselect_bits
... are using less than 8 bits. Changed types and moved them towards
the end of the structs to fit better.
Closes #11025
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Makefile support for building test specific clients in tests/http/clients
- auto-make of clients when invoking pytest
- added test_09_02 for server PUSH_PROMISEs using clients/h2-serverpush
- added test_02_21 for lib based downloads and pausing/unpausing transfers
curl url parser:
- added internal method `curl_url_set_authority()` for setting the
authority part of a url (used for PUSH_PROMISE)
http2:
- made logging of PUSH_PROMISE handling nicer
Placing python test requirements in requirements.txt files
- separate files to base test suite and http tests since use
and module lists differ
- using the files in the gh workflows
websocket test cases, fixes for we and bufq
- bufq: account for spare chunks in space calculation
- bufq: reset chunks that are skipped empty
- ws: correctly encode frames with 126 bytes payload
- ws: update frame meta information on first call of collect
callback that fills user buffer
- test client ws-data: some test/reporting improvements
Closes #11006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Always set the libssh2 'abstract' user-pointer to the libcurl easy
handle associated with the ssh session, so it is always passed to the
ssh keyboard callback.
Prior to this change and since 8b5f100 (precedes curl 8.0.0), if libcurl
was built without CURL_DEBUG then it could crash during the ssh auth
phase due to a null dereference in the ssh keyboard callback.
Reported-by: Andreas Falkenhahn
Fixes https://github.com/curl/curl/pull/11024
Closes https://github.com/curl/curl/pull/11026
|
|
|
|
|
|
|
| |
When building with the sync name resolver and timeout ability we now
require thread-safety to be present to enable it.
Closes #11030
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libcurl used to do a directory listing for this case (even though the
documentation says a URL needs to end in a slash for this), but
4e2b52b5f7a3 modified the behavior.
This change brings back a directory listing for SFTP paths that are
specified exactly as /~ in the URL.
Reported-by: Pavel Mayorov
Fixes #11001
Closes #11023
|
|
|
|
|
|
|
|
|
|
|
| |
The leftmost "label" of the host name can now only match against single
'*'. Like the browsers have worked for a long time.
- extended unit test 1397 for this
- move some SOURCE variables from unit/Makefile.am to unit/Makefile.inc
Reported-by: Hiroki Kurosawa
Closes #11018
|
|
|
|
|
|
|
|
|
|
| |
- state is fully kept at connection, since curl_ws_send() and
curl_ws_rec() have lifetime beyond usual transfers
- no more limit on frame sizes
Reported-by: simplerobot on github
Fixes #10962
Closes #10999
|
|
|
|
|
|
|
|
|
|
| |
Prior to this change STRING_AWS_SIGV4 (CURLOPT_AWS_SIGV4) was wrongly
marked as binary data that could not be duplicated.
Without this fix, this option's value is not copied upon calling
curl_easy_duphandle().
Closes https://github.com/curl/curl/pull/11021
|
|
|
|
| |
Closes #11005
|
|
|
|
|
|
|
|
| |
- just increasing the http/2 flow window does not necessarily
make a server send new data. It may already have exhausted
the window before
Closes #11005
|
|
|
|
| |
Closes #11005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- `drain` was used by http/2 and http/3 implementations to indicate
that the transfer requires send/recv independant from its socket
poll state. Intended as a counter, it was used as bool flag only.
- a similar mechanism exists on `connectdata->cselect_bits` where
specific protocols can indicate something similar, only for the
whole connection.
- `cselect_bits` are cleard in transfer.c on use and, importantly,
also set when the transfer loop expended its `maxloops` tries.
`drain` was not cleared by transfer and the http2/3 implementations
had to take care of that.
- `dselect_bits` is cleared *and* set by the transfer loop. http2/3
does no longer clear it, only set when new events happen.
This change unifies the handling of socket poll overrides, extending
`cselect_bits` by a easy handle specific value and a common treatment in
transfers.
Closes #11005
|
|
|
|
|
|
|
|
|
|
| |
... instead of using the curl time struct, since it would use a few
uninitialized bytes and the sanitizers would complain. This is a neater
approach I think.
Reported-by: Boris Kuschel
Fixes #10993
Closes #11015
|
|
|
|
|
|
|
|
| |
By making sure we set state.upload based on the set.method value and not
independently as set.upload, we reduce confusion and mixup risks, both
internally and externally.
Closes #11017
|
|
|
|
|
|
|
| |
Typo from fc2f1e547a4a, detected by Coverity (because there's dead code
due to this).
Closes #11002
|
|
|
|
|
|
|
| |
- fixes a failure in test2501 where a response without body was missing
the final empty line
Closes #11003
|
|
|
|
|
|
|
| |
Follow-up to 544abeea which added the handling but wrongly left it
commented out.
Closes https://github.com/curl/curl/pull/11000
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- with `--proxy-http2` allow h2 ALPN negotiation to
forward proxies
- applies to http: requests against a https: proxy only,
as https: requests will auto-tunnel
- adding a HTTP/1 request parser in http1.c
- removed h2h3.c
- using new request parser in nghttp2 and all h3 backends
- adding test 2603 for request parser
- adding h2 proxy test cases to test_10_*
scorecard.py: request scoring accidentally always run curl
with '-v'. Removed that, expect double numbers.
labeller: added http1.* and h2-proxy sources to detection
Closes #10967
|
|
|
|
| |
Closes #10978
|
|
|
|
|
|
|
|
|
| |
Before checking for more users of the connection and possibly bailing
out.
Fixes #10971
Reported-by: Paweł Wegner
Closes #10972
|
|
|
|
|
|
|
|
|
|
| |
- expression 'hostptr' is always true
- a part of conditional expression is always true: proxypasswd
- expression 'proxyuser' is always true
- avoid multiple Curl_now() calls in allocate_conn
Ref: #10929
Closes #10959
|