summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* compressed.d: clarify the words on "not notifying headers"Daniel Stenberg2023-05-091-1/+5
| | | | | | Reported-by: Dylan Anthony Fixes #11091 Closes #11092
* libssh2: free fingerprint betterDaniel Stenberg2023-05-081-2/+1
| | | | | Reported-by: Wei Chong Tan Closes #11088
* CURLOPT_IPRESOLVE.3: clarify that this for host names, not IP addressesDaniel Stenberg2023-05-081-2/+7
| | | | | Reported-by: Harry Sintonen Closes #11087
* hostip: enforce a maximum DNS cache size independent of timeout valueDaniel Stenberg2023-05-082-13/+42
| | | | | | | | | | 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
* hostip: store dns timeout as 'int'Daniel Stenberg2023-05-081-2/+2
| | | | | ... because it set and held as an 'int' elsewhere and can never be larger.
* RELEASE-NOTES: syncedDaniel Stenberg2023-05-081-10/+51
|
* tool_operate: refuse (--data or --form) and --continue-at comboDaniel Stenberg2023-05-083-9/+54
| | | | | | | | | | | | | libcurl assumes that a --continue-at resumption is done to continue an upload using the read callback and neither --data nor --form use that and thus won't do what the user wants. Whatever the user wants with this strange combination. Add test 426 to verify. Reported-by: Smackd0wn on github Fixes #11081 Closes #11083
* transfer: refuse POSTFIELDS + RESUME_FROM comboDaniel Stenberg2023-05-081-0/+6
| | | | | | | | | | | | | 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
* ipv4.d/ipv6.d: they are "mutex", not "boolean"Daniel Stenberg2023-05-082-6/+6
| | | | | | | | ... which for example means they do not have --no-* versions. Reported-by: Harry Sintonen Fixes #11085 Closes #11086
* docs/SECURITY-ADVISORY.md: how to write a curl security advisoryDaniel Stenberg2023-05-083-1/+132
| | | | Closes #11080
* MANUAL.md: add dict example for looking up a single definitionnobedee on github2023-05-051-2/+5
| | | | Closes #11077
* runtests: fix -c option when run with valgrindDan Fandrich2023-05-053-10/+27
| | | | | | | | | | The curl binary argument wasn't being quoted properly. This seems to have broken at some point after quoting was added in commit 606b29fe. Reported-by: Daniel Stenberg Ref: #11073 Fixes #11074 Closes #11076
* runtests: support creating more than one runner processDan Fandrich2023-05-052-33/+72
| | | | | | | The controller currently only creates and uses one, but more are now possible. Ref: #10818
* runtests: spawn a new process for the test runnerDan Fandrich2023-05-053-21/+110
| | | | | | | | | | | When the -j option is given, a new process is spawned in which the test programs are run and from which test servers are started. Only one process can be started at once, but this is sufficient to test that the infrastructure can isolate those functions in a new task. There should be no visible difference between the two modes at the moment. Ref: #10818 Closes #11064
* runtests: turn singletest() into a state machineDan Fandrich2023-05-052-140/+210
| | | | | | This allows it to run in a non-blocking manner. Ref: #10818
* runtests: change runner interface to be asynchronousDan Fandrich2023-05-052-14/+210
| | | | | | | | | | | | | | Program arguments are marshalled and then written to the end of a pipe which is later read from and the arguments unmarshalled before the desired function is called normally. The function return values are then marshalled and written into another pipe when is later read from and unmarshalled before being returned to the caller. The implementation is currently blocking but can be made non-blocking without any changes to the API. This allows calling multiple runners without blocking in the future. Ref: #10818
* runtests: call citest_finishtest in singletestDan Fandrich2023-05-051-8/+21
| | | | | | This is where citest_starttest is called. Ref: #10818
* runtests: add a runner initialization functionDan Fandrich2023-05-052-16/+37
| | | | | | This sets up the runner environment to start running tests. Ref: #10818
* runtests: remove directory from server filename variablesDan Fandrich2023-05-054-54/+58
| | | | | | | | There will soon be multiple log directories so the paths will no longer be static in runtests.pl. Also, get rid of $SERVER2IN which was not used. Ref: #10818
* runtests: reduce package exports after refactoringDan Fandrich2023-05-052-36/+15
| | | | | | | | Some recent refactoring made these export no longer necessary. Also, stop displaying the Unix socket paths at startup since there will soon be many of them and they're not that interesting. Ref: #10818
* runtests: use a function to obtain $LOGDIR for a testDan Fandrich2023-05-052-21/+44
| | | | | | This will no longer be static soon. Ref: #10818
* tool_cb_hdr: Fix 'Location:' formatting for early VTE terminalsJay Satiro2023-05-051-0/+9
| | | | | | | | | | | | | - Disable hyperlink formatting for the 'Location:' header value in VTE 0.48.1 and earlier, since it is buggy in some of those versions. Prior to this change those terminals may show the location header value as gibberish or show it twice. Ref: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda#backward-compatibility Fixes https://github.com/curl/curl/issues/10428 Closes https://github.com/curl/curl/pull/11071
* quiche: disable pacing while pacing is not actually performedFrançois Michel2023-05-031-0/+1
| | | | Closes #11068
* easy_cleanup: require a "good" handle to actDaniel Stenberg2023-05-021-8/+6
| | | | | | | | | 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
* amiga: Fix CA certificate paths for AmiSSL and MorphOSAndreas Falkenhahn2023-05-011-0/+8
| | | | | | | 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
* http2: (void)-mark when we explicitly ignore the return codeDaniel Stenberg2023-04-301-2/+2
| | | | | | When h2_progress_egress() is called. Pointed out by Coverity. Closes #11057
* checksrc: find bad indentation in conditions without open braceDaniel Stenberg2023-04-2817-23/+49
| | | | | | | | | | | 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
* CI: Set minimal permissions on workflow ngtcp2-quictls.ymlDiogo Teles Sant'Anna2023-04-281-0/+2
| | | | | | Signed-off-by: Diogo Teles Sant'Anna <diogoteles@google.com> Closes #11055
* CI: use another glob syntax for matching files on AppveyorDan Fandrich2023-04-281-4/+4
| | | | | | The previous globbing syntax was not matching files recursively in directories, so try appending a /* to more closely match the examples at https://www.appveyor.com/docs/how-to/filtering-commits/
* multi: add multi-ignore logic to multi_socket_actionDaniel Stenberg2023-04-281-5/+16
| | | | | | | | | | | | 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
* http2: do flow window accounting for cancelled streamsStefan Eissing2023-04-283-33/+162
| | | | | | | | | | - 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
* pingpong: fix compiler warning "assigning an enum to unsigned char"Stefan Eissing2023-04-281-2/+2
| | | | Closes #11050
* configure: fix detection of apxs (for httpd)Daniel Stenberg2023-04-281-1/+1
| | | | | | The condition check was turned the wrong way around! Closes #11051
* ci: `-Wno-vla` no longer necessaryViktor Szakats2023-04-281-2/+1
| | | | | | | | | | We handle this issue in the source now. Follow-up to b725fe1944b45406676ea3aff333ae3085a848d9 Reviewed-by: Marcel Raad Reviewed-by: Daniel Stenberg Closes #11048
* tests/http: make curl_setup.h the first includeMarcel Raad2023-04-284-18/+20
| | | | | | | | | | | This is required for the macros there to take effect for system libraries. Specifically, including the system libraries first led to warnings about `_FILE_OFFSET_BITS` being redefined in curl_config.h on the Solaris autobuilds for ws-data.c and ws-pingpong.c. Also make the curl includes come first for the other source files here for consistency. Closes https://github.com/curl/curl/pull/11046
* checksrc: check for spaces before the colon of switch labelsEmanuele Torre2023-04-274-4/+11
| | | | Closes #11047
* RELEASE-NOTES: syncedDaniel Stenberg2023-04-271-11/+60
|
* libssh: tell it to use SFTP non-blockingDaniel Stenberg2023-04-271-1/+1
| | | | | | Reported-by: Andreas Huebner Fixes #11020 Closes #11039
* http2: enlarge the connection windowStefan Eissing2023-04-271-4/+11
| | | | | | | | | | | - 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
* checksrc: fix SPACEBEFOREPAREN for conditions starting with "*"Daniel Stenberg2023-04-2714-20/+22
| | | | | | | | | | | | | | | 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
* docs: minor polishDaniel Stenberg2023-04-2711-25/+24
| | | | | | | | | - "an HTTP*" (not "a") - remove a few contractions - remove a spurious "a" - reduce use of "I" in texts Closes #11040
* ws: fix CONT opcode checkDaniel Stenberg2023-04-271-1/+2
| | | | | | Detected by Coverity. Follow-up to 930c00c259 Closes #11037
* CI: switch the awslc builds to build out-of-treeDan Fandrich2023-04-271-7/+11
| | | | | | | | This is a common configuration that should be tested to avoid regressions. The awsls cmake build was already out-of-tree so the automake build now joins it. Ref: #11006
* tests/http: fix out-of-tree buildsDan Fandrich2023-04-273-2/+4
| | | | | | | | | | Add both lib/ directories (src & build) to the search path so curl_setup.h and its dependencies can be found. Followup-to acd82c8b Ref: #11006 Closes #11036
* urlapi: make internal function start with Curl_Daniel Stenberg2023-04-273-3/+3
| | | | | | | | Curl_url_set_authority() it is. Follow-up to acd82c8bfd Closes #11035
* cf-socket: turn off IPV6_V6ONLY on Windows if it is supportedYX Hao2023-04-261-1/+19
| | | | | | | | | | | | | | 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
* urldata: shrink *select_bits int => unsigned charDaniel Stenberg2023-04-266-16/+16
| | | | | | | | | | - 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
* tests/http: more tests with specific clientsStefan Eissing2023-04-2632-102/+1678
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* libssh2: fix crash in keyboard callbackJay Satiro2023-04-261-1/+1
| | | | | | | | | | | | | | | - 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
* docs: clarify that more backends have HTTPS proxy supportDaniel Stenberg2023-04-263-3/+11
| | | | Closes #11033