summaryrefslogtreecommitdiff
path: root/.github
Commit message (Collapse)AuthorAgeFilesLines
* http2: support HTTP/2 to forward proxies, non-tunnelingStefan Eissing2023-04-171-1/+2
| | | | | | | | | | | | | | | | | | | - 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
* GHA: suppress git clone outputPhilip H2023-04-131-1/+1
| | | | | | Follow-up: https://github.com/curl/curl/commit/8203aa6ed405ec832d2c62f18dfda293f89a23f9 Closes #10949
* GHA: suppress git clone outputPhilip H2023-04-134-26/+26
| | | | Closes #10939
* CI: retry failed downloads of aws-lcDan Fandrich2023-04-101-2/+2
| | | | Don't fail the build in case of a temporary server problem.
* tests: use %LOGDIR to refer to the log directoryDan Fandrich2023-03-301-0/+2
| | | | | | This will allow it be set dynamically. Ref: #10818
* docs: add documentation for bufqStefan Eissing2023-03-301-0/+1
| | | | Closes #10869
* GHA: update ngtcp2-*.yml to v0.10.0Philip H2023-03-303-3/+3
| | | | Closes #10612
* spellcheck.words: unify the AWS-LC spellingDaniel Stenberg2023-03-301-3/+0
| | | | | | Follow-up to 34ef4fab22d93 Closes #10867
* openssl: interop with AWS-LCJim King2023-03-302-0/+111
| | | | | | | | | | | | | * Configure changes to detect AWS-LC * CMakeLists.txt changes to detect AWS-LC * Compile-time branches needed to support AWS-LC * Correctly set OSSL_VERSION and report AWS-LC release number * GitHub Actions script to build with autoconf and cmake against AWS-LC AWS-LC is a BoringSSL/OpenSSL derivative For more information see https://github.com/awslabs/aws-lc/ Closes #10320
* wolfssl.yml: bump to version 5.6.0Philip H2023-03-281-1/+1
| | | | Closes #10843
* CI: skip some more builds when possibleDan Fandrich2023-03-247-0/+30
| | | | | | | | | When a commit only contains tests, documentation, or cmake files, skip those builds that aren't affected by those. The file filters available on the CI services don't seem to allow skipping individual jobs, only the entire workflow, so we can't get any more fine-grained than this.
* CI: add and adjust labeler match patternsDan Fandrich2023-03-241-5/+6
| | | | Allow cmdline tool alongside other labels.
* GHA: add a memory-sanitizer jobDaniel Stenberg2023-03-241-0/+13
| | | | Closes #10815
* CI: fix brew retries on GHADan Fandrich2023-03-231-2/+2
| | | | | | | The fix in the previous commit was complete for Cirrus but accidentally left off a part for GHA. Follow-up to c2b7249d
* GHA: run all linux test jobs with valgrindDaniel Stenberg2023-03-221-12/+12
| | | | Closes #10798
* GHA-linux: add an address-sanitizer buildDaniel Stenberg2023-03-221-0/+10
| | | | Closes #10810
* tests/http: add pytest to GHA and improve testsStefan Eissing2023-03-135-142/+82
| | | | | | | | | | | | | | | | | | | | | | | | - added to: ngtcp2-quictls, ngtcp2-gnutls and the linux varians quiche, bearssl, libressl, mbedtls, openssl3, rustls - added disabled in ngtcp2-wolfssl due to weird SSL_connect() errors not reproducable locally Improvements on pytest: - handling of systems with nghttpx in $PATH - configure will seach $PATH got nghttpx used in pytest - pytest fixes for managing nghttpx without h3 support - ngtcp2-wolfssl: use a fully enabled wolfssl build - lower parallel count for http/1.1 tests, since we do not want to test excessive connections. - check built curl for HTTPS-proxy support in proxy tests - bearssl does not like one of our critical cert extensions, making it non-critical now - bearssl is too slow for test_12, skipping - making sure we do h3 tests only when curl and server support is there Closes #10699
* CI: don't run CI jobs if only another CI was changedDan Fandrich2023-03-1110-0/+163
| | | | | | | | | | | Also skip builds on non-Windows platforms when only Windows build files have changed. This should reduce the number of useless builds and the associated waiting time and chance of spurious failures, freeing resources for new PRs. Closes #10742
* CI: fix retrying on brew failuresDan Fandrich2023-03-101-2/+2
| | | | | | | The previous attempt didn't consider that the shell would exit immediately after the false statement in the retry case. Follow-up to dc141a37
* CI: retry a failed brew update too, not just brew installDan Fandrich2023-03-101-2/+2
| | | | | Also, make sure an eventual failure ends up returning a failure code so the job stops.
* CI: Add more labeler match patternsDan Fandrich2023-03-081-11/+23
| | | | | Also, add the CI, tests or libcurl API tags in conjunction with any others that might also apply.
* GHA: minor improvements to spellcheckandy59952023-03-091-6/+9
| | | | Closes #10640
* tests: rename tests/tests-httpd to tests/httpStefan Eissing2023-03-021-1/+1
| | | | | | | | - 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
* Revert "GHA: add Microsoft C++ Code Analysis"Daniel Stenberg2023-02-261-65/+0
| | | | | | | | | | This reverts commit e0db842b2a082dffad4a9fbe31321e9a75c74041. 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
* ngtcp2-gnutls.yml: bump to gnutls 3.8.0Philip H2023-02-251-1/+1
| | | | Closes #10507
* CI: update ngtcp2 and nghttp2 for pytestPhilip H2023-02-251-2/+2
| | | | | | Follow-up: https://github.com/curl/curl/commit/5c9ee8cef4b351a085b440f8178500124647f8e6 Closes #10508
* GHA: use same flags for Slackbuild as Slack packageandy59952023-02-251-2/+4
| | | | Closes #10526
* GHA: add Microsoft C++ Code AnalysisDaniel Stenberg2023-02-211-0/+65
| | | | Closes #10583
* GHA: update rustls dependency to 0.9.2Jacob Hoffman-Andrews2023-02-181-1/+1
| | | | | | This allows re-enabling test 312 for the rustls backend. Closes #10553
* test: add test for HTTP/2 corruption as reported in #10525Stefan Eissing2023-02-171-0/+9
| | | | | | | | | | | | - 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
* CI: update wolfssl / wolfssh to 5.5.4 / 1.4.12Philip H2023-02-131-3/+4
| | | | Closes #10493
* GHA: bump ngtcp2 workflow dependenciesTatsuhiro Tsujikawa2023-02-133-6/+6
| | | | Closes #10494
* Linux CI: Bump rustls-ffi to v0.9.1Philip H2023-02-121-1/+1
| | | | Closes #10476
* Linux CI: update some dependecies to latest tagPhilip H2023-02-105-5/+5
| | | | Closes #10458
* CI: Add more labeler match patternsDan Fandrich2023-02-091-2/+94
|
* CI: Retry failed downloads to reduce spurious failuresDan Fandrich2023-02-092-4/+4
| | | | | | | A temporary error with a remote server shouldn't cause a CI run to fail. Also, put a cap on the time to download to fail faster on a misbehaving server or connection and use HTTP compression where possible to reduce download times.
* GHA: enable websockets in the torture jobDaniel Stenberg2023-02-091-1/+1
| | | | Closes #10448
* GHA: move Slackware test into matrixandy59952023-02-061-24/+8
| | | | Closes #10412
* GHA/macos.yml: bump to gcc-12Philip H2023-02-061-2/+2
| | | | Closes #10415
* connections: introduce http/3 happy eyeballsStefan Eissing2023-02-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New cfilter HTTP-CONNECT for h3/h2/http1.1 eyeballing. - filter is installed when `--http3` in the tool is used (or the equivalent CURLOPT_ done in the library) - starts a QUIC/HTTP/3 connect right away. Should that not succeed after 100ms (subject to change), a parallel attempt is started for HTTP/2 and HTTP/1.1 via TCP - both attempts are subject to IPv6/IPv4 eyeballing, same as happens for other connections - tie timeout to the ip-version HAPPY_EYEBALLS_TIMEOUT - use a `soft` timeout at half the value. When the soft timeout expires, the HTTPS-CONNECT filter checks if the QUIC filter has received any data from the server. If not, it will start the HTTP/2 attempt. HTTP/3(ngtcp2) improvements. - setting call_data in all cfilter calls similar to http/2 and vtls filters for use in callback where no stream data is available. - returning CURLE_PARTIAL_FILE for prematurely terminated transfers - enabling pytest test_05 for h3 - shifting functionality to "connect" UDP sockets from ngtcp2 implementation into the udp socket cfilter. Because unconnected UDP sockets are weird. For example they error when adding to a pollset. HTTP/3(quiche) improvements. - fixed upload bug in quiche implementation, now passes 251 and pytest - error codes on stream RESET - improved debug logs - handling of DRAIN during connect - limiting pending event queue HTTP/2 cfilter improvements. - use LOG_CF macros for dynamic logging in debug build - fix CURLcode on RST streams to be CURLE_PARTIAL_FILE - enable pytest test_05 for h2 - fix upload pytests and improve parallel transfer performance. GOAWAY handling for ngtcp2/quiche - during connect, when the remote server refuses to accept new connections and closes immediately (so the local conn goes into DRAIN phase), the connection is torn down and a another attempt is made after a short grace period. This is the behaviour observed with nghttpx when we tell it to shut down gracefully. Tested in pytest test_03_02. TLS improvements - ALPN selection for SSL/SSL-PROXY filters in one vtls set of functions, replaces copy of logic in all tls backends. - standardized the infof logging of offered ALPNs - ALPN negotiated: have common function for all backends that sets alpn proprty and connection related things based on the negotiated protocol (or lack thereof). - new tests/tests-httpd/scorecard.py for testing h3/h2 protocol implementation. Invoke: python3 tests/tests-httpd/scorecard.py --help for usage. Improvements on gathering connect statistics and socket access. - new CF_CTRL_CONN_REPORT_STATS cfilter control for having cfilters report connection statistics. This is triggered when the connection has completely connected. - new void Curl_pgrsTimeWas(..) method to report a timer update with a timestamp of when it happend. This allows for updating timers "later", e.g. a connect statistic after full connectivity has been reached. - in case of HTTP eyeballing, the previous changes will update statistics only from the filter chain that "won" the eyeballing. - new cfilter query CF_QUERY_SOCKET for retrieving the socket used by a filter chain. Added methods Curl_conn_cf_get_socket() and Curl_conn_get_socket() for convenient use of this query. - Change VTLS backend to query their sub-filters for the socket when checks during the handshake are made. HTTP/3 documentation on how https eyeballing works. TLS improvements - ALPN selection for SSL/SSL-PROXY filters in one vtls set of functions, replaces copy of logic in all tls backends. - standardized the infof logging of offered ALPNs - ALPN negotiated: have common function for all backends that sets alpn proprty and connection related things based on the negotiated protocol (or lack thereof). Scorecard with Caddy. - configure can be run with `--with-test-caddy=path` to specify which caddy to use for testing - tests/tests-httpd/scorecard.py now measures download speeds with caddy pytest improvements - adding Makfile to clean gen dir - adding nghttpx rundir creation on start - checking httpd version 2.4.55 for test_05 cases where it is needed. Skipping with message if too old. - catch exception when checking for caddy existance on system. Closes #10349
* CODEOWNERS: remove the peeps mentioned as CI ownersDaniel Stenberg2023-02-021-10/+0
| | | | | | | | | | These owners do not have the bandwidth/energy to do the reviews which makes PRs stall and this ownership claim flawed. We can bring people back when the situation is different. Follow-up to c04c78ac87c4d46737934345a Closes #10386
* GHA/macos: use Xcode_14.0.1 for cmake buildsPhilip H2023-02-011-0/+3
| | | | | Fixes #10356 Closes #10381
* CI: add pytest github workflow to CI test/tests-httpd on a HTTP/3 setupStefan Eissing2023-01-311-0/+103
| | | | Closes #10317
* zuul: stop using this CI serviceDaniel Stenberg2023-01-301-1/+0
| | | | | | | The important jobs have already transitioned. The remaining ones we can skip for now. Closes #10368
* CI: Work around a labeler bug that removes labelsDan Fandrich2023-01-281-0/+2
|
* CI: Add even more paths to the labeler config (#10326)Dan Fandrich2023-01-251-2/+14
|
* CI: Add a few more paths to the labeler config (#10326)Dan Fandrich2023-01-251-2/+4
|
* CI: Switch the labeler event to pull_request_targetDan Fandrich2023-01-251-1/+1
| | | | | Otherwise, the action won't work on PRs from forked repositories (#10326).
* CI: Add a workflow to automatically label pull requestsDan Fandrich2023-01-232-0/+207
| | | | | | | The labeler language is quite restrictive right now so labels are added quite conservatively, meaning that many PRs won't get labels when it's "obvious" they should. It will still save some manual work on those that it can label.
* msh3: update to v0.6Nick Banks2023-01-101-1/+1
| | | | Closes #10192