summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* KNOWN_BUGS: remove two not-bugsDaniel Stenberg2023-04-261-23/+0
| | | | | | | | | | | | | - 11.7 signal-based resolver timeouts Not considered a bug anymore but just implementation details. People should avoid using timeouts with the synchronous name resolver. - 11.16 libcurl uses renames instead of locking for atomic operations Not a bug, just a description of how it works Closes #11032
* hostip: add locks around use of global buffer for alarm()Harry Sintonen2023-04-261-4/+15
| | | | | | | When building with the sync name resolver and timeout ability we now require thread-safety to be present to enable it. Closes #11030
* curl_path: bring back support for SFTP path ending in /~Daniel Stenberg2023-04-261-14/+17
| | | | | | | | | | | | | 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
* docs/libcurl/curl_*escape.3: rename "url" argument to "input"/"string"Emanuele Torre2023-04-263-14/+14
| | | | | | | Also reword the DESCRIPTION section to mention "input"/"string" argument in bold. Closes #11027
* docs/libcurl: minor cleanupsEmanuele Torre2023-04-265-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | I was reading curl_unescape(3) and I noticed that there was an extra space after the open parenthesis in the SYNOPSIS; I removed the extra space. I also ran a few grep -r commands to find and remove extra spaces after '(' in other files, and to find and replace uses of `T*' instead of `T *'. Some of the instances of `T*` where unnecessary casts that I removed. I also fixed a comment that was misaligned in CURLMOPT_SOCKETFUNCTION.3. And I fixed some formatting inconsistencies: in curl_unescape(3), all function parameter were mentioned with bold text except length, that was mentioned as 'length'; and, in curl_easy_unescape(3), all parameters were mentioned in bold text except url that was italicised. Now they are all mentioned in bold. Documentation is not very consistent in how function parameter are formatted: many pages italicise them, and others display them in bold text; but I think it makes sense to at least be consistent with formatting within the same page. Closes #11027
* man pages: simplify the .TH sectionsDaniel Stenberg2023-04-26487-488/+488
| | | | | | | | | | - remove the version numbers - simplify the texts The date and version number will be put there for releases when maketgz runs the updatemanpages.pl script. Closes #11029
* hostcheck: fix host name wildcard checkingDaniel Stenberg2023-04-265-180/+202
| | | | | | | | | | | 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
* smbserver: remove temporary files before exitDan Fandrich2023-04-251-1/+54
| | | | | | | | Each execution of test 1451 would leave a file in /tmp before. Since Windows can't delete a file while it's open, all the temporary file names are stored and deleted on exit. Closes #10990
* Websocket en-/decodingStefan Eissing2023-04-258-502/+879
| | | | | | | | | | - 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
* urldata: copy CURLOPT_AWS_SIGV4 value on handle duplicationPatrick Monnerat2023-04-251-2/+1
| | | | | | | | | | 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
* http3: expire unpaused transfers in all HTTP/3 backendsStefan Eissing2023-04-253-0/+46
| | | | Closes #11005
* http2: always EXPIRE_RUN_NOW unpaused http/2 transfersStefan Eissing2023-04-251-0/+9
| | | | | | | | - 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
* http2: pass `stream` to http2_handle_stream_close to avoid NULL checksStefan Eissing2023-04-251-5/+5
| | | | Closes #11005
* h2/h3: replace `state.drain` counter with `state.dselect_bits`Stefan Eissing2023-04-258-169/+151
| | | | | | | | | | | | | | | | | | | | | - `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
* socketpair: verify with a random valueDaniel Stenberg2023-04-252-6/+12
| | | | | | | | | | ... 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
* HTTP3: document the ngtcp2/nghttp3 versions to use for building curlStefan Eissing2023-04-251-6/+15
| | | | | | - refs #11011 to clarify this for people building curl themselves Closes #11019
* lib: unify the upload/method handlingDaniel Stenberg2023-04-2515-38/+36
| | | | | | | | 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
* RELEASE-NOTES: syncedDaniel Stenberg2023-04-251-0/+4
|
* CI: don't run CI jobs if only another CI was changedDan Fandrich2023-04-244-0/+35
| | | | | | | A few paths were missed in the last commit, as well as a job added since then. Followup-to 395b9175
* CI: adjust labeler match patternsDan Fandrich2023-04-241-1/+3
|
* runtests: support buffering log messages in runner & serversDan Fandrich2023-04-245-33/+100
| | | | | | | | | | | | | | | | | Log messages generated with logmsg can now be buffered and returned from the runner as a return value. This will be needed with parallel testing to allow all messages for one test to be displayed together instead of interspersed with messages of multiple tests. Buffering can be disabled by setting a logging callback function with setlogfunc, which is currently being done to preserve existing logging behaviour for now. Some additional output is generated in verbose and debugprotocol modes, which don't always use logmsg. These modes also impact some servers which generate extra messages. No attempt is made to buffer everything if these modes are enabled. Ref: #10818 Closes #11016
* runtests: more consistently use logmsg in server control codeDan Fandrich2023-04-241-15/+16
| | | | | | Also, display an error when sshversioninfo returns one. Ref: #10818
* runtests: create runner functions for clearlocks and stopserversDan Fandrich2023-04-243-6/+24
| | | | | | | runtests.pl now uses runner for all server actions beyond the initial variable configuration. Ref: #10818
* runtests: tightened servers package exportsDan Fandrich2023-04-243-8/+28
| | | | | The defaults are intended for runtests.pl, whereas runner.pm needs to explicitly specify them.
* runtests: display logs on server failure in singletest()Dan Fandrich2023-04-242-22/+29
| | | | | | | | | | This is closer to the place where logs are displayed on test failure. Also, only display these logs if -p is given, which is the same flag that controls display of test failure logs. Some server log files need to be deleted later so that they stay around long enough to be displayed on failure. Ref: #10818
* runtests: turn a print into a logmsgDan Fandrich2023-04-241-3/+4
| | | | | | Also enable another couple of useful messages in verbose mode. Ref: #10818
* http: store the password in the correct variableDaniel Stenberg2023-04-241-1/+1
| | | | | | | Typo from fc2f1e547a4a, detected by Coverity (because there's dead code due to this). Closes #11002
* HTTP3/quiche: terminate h1 response header when no body is sentStefan Eissing2023-04-241-0/+6
| | | | | | | - fixes a failure in test2501 where a response without body was missing the final empty line Closes #11003
* runtests: move showdiff into runtests.plDan Fandrich2023-04-222-45/+46
| | | | It's not used anywhere else.
* devtest: add a new script for testing the test harnessDan Fandrich2023-04-222-1/+194
| | | | | | | | | | This is currently useful for starting a test server on its own without an associated test, which can be used for interactive curl testing or for validating parts of the test harness itself. More commands can be added to perform additional functions in the future. Ref: #10818 Closes #11008