summaryrefslogtreecommitdiffstats
path: root/test/modules/http2 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Sync with v2.0.10 from github:Stefan Eissing2022-10-1111-13/+382
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Extensive testing in production done by Alessandro Bianchi (@alexskynet) on the v2.0.x versions for stability. Many thanks! * refactored stream response handling to reflect the different phases (response/data/trailers) more clearly and help resolving cpu busy loops. * Adding more negative tests for handling of errored responses to cover edge cases. * mod_http2: fixed handling of response where neiter an EOS nor an ERROR was received as a cause to reset the stream. * mod_proxy_http2: generating error buckets for fault response bodies, to signal failure to fron when response header were already sent. v2.0.9 -------------------------------------------------------------------------------- * Fixed a bug where errors during reponse body handling did not lead to a proper RST_STREAM. Instead processing went into an infinite loop. Extended test cases to catch this condition. v2.0.8 -------------------------------------------------------------------------------- * Delaying input setup of a stream just before processing starts. This allows any EOS indicator arriving from the client before that to take effect. Without knowing that a stream has no input, internal processing has to simulate chunked encoding. This is not wrong, but somewhat more expensive and mod_security has been reported to be allergic to seeing 'chunked' on some requests. See <https://bz.apache.org/bugzilla/show_bug.cgi?id=66282>. * mod_proxy_http2: fixed #235 by no longer forwarding 'Host:' header when request ':authority' is known. Improved test case that did not catch that the previous 'fix' was incorrect. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904522 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: new directive "H2HeaderStrictness" to control the complianceStefan Eissing2022-09-261-3/+3
| | | | | | | | | | | | | | | | level of header checks as defined in the HTTP/2 RFCs. Default is 7540. 9113 activates the checks for forbidden leading/trailing whitespace in field values (available from nghttp2 v1.50.0 on). - source sync with github version - fix for keepalive idle wait in mpm_worker setup - ensuring EOS when secondary connection has been handled - fixed race in late input EOS arrival when stream was already scheduled for execution. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904269 13f79535-47bb-0310-9956-ffa450edef68
* *) tests: load the top-level mod_aptest in all test suites.Stefan Eissing2022-09-214-3/+13
| | | | | | | | | | | - aptest logs the test name from the header 'AP-Test-Name' with the request line. LogLevel aptest:info is switched on. - pytest sets 'AP-Test-Name' for all curl/nghttp invocation against the server. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904188 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_proxy_http2: use only the ':authority' header to forward 'Host'Stefan Eissing2022-09-204-12/+53
| | | | | | | | | information to a backend. Deduce ':authority' from what the client sent when 'ProxyPreserveHost' is on. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904164 13f79535-47bb-0310-9956-ffa450edef68
* Make pytest error whitelist a bit more explicitRainer Jung2022-07-111-1/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1902660 13f79535-47bb-0310-9956-ffa450edef68
* *) test/modules/http2: adding tests for response trailers withStefan Eissing2022-07-023-26/+178
| | | | | | | | | | | or without a body. This reproduces a bug reported in <https://github.com/icing/mod_h2/issues/233> where trailers are not sent on an empty response body. This is used in gRPC. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1902408 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: using new session ids also in logging for connectionStefan Eissing2022-04-191-1/+1
| | | | | | | | contexts and bucket beams. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900031 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: use the new RESPONSE buckets introduced in r1899648.Stefan Eissing2022-04-071-13/+14
| | | | | | | | | | This replaces the internal H2_HEADERS bucket, removing its source file and also obsoletes any interim response parsing needs. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899649 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http: genereate HEADERS buckets for trailersStefan Eissing2022-04-041-5/+11
| | | | | | | | | mod_proxy: forward trailers on chunked request encoding test: add http/1.x test cases in pytest git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899552 13f79535-47bb-0310-9956-ffa450edef68
* *) test: verify that HTTP/2 response carry `Date` andStefan Eissing2022-03-301-0/+9
| | | | | | | | `Server` headers. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899379 13f79535-47bb-0310-9956-ffa450edef68
* *) test: making pytest option --repeat global as otherwiseStefan Eissing2022-03-251-13/+0
| | | | | | | | there are conflicts when individual modules add that. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899198 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: fixed a possible concurrency issue withStefan Eissing2022-03-241-3/+3
| | | | | | | | | | | registering h2_mplx at h2_workers. Improved h2_fifo internals efficiency inspired by ap_fdqueue. Made 711 tests repeatable. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899168 13f79535-47bb-0310-9956-ffa450edef68
* *) core: adding a new hook and method to the API:Stefan Eissing2022-03-181-3/+3
| | | | | | | | | | | | | | | | | create_secondary_connection and ap_create_secondary_connection() to setup connections related to a "master" one, as used in the HTTP/2 protocol implementation. *) mod_http2: using the new API calls to get rid of knowledge about how the core handles conn_rec specifics. Improvements in pollset stream handling to use less sets. Using atomic read/writes instead of volatiles now. Keeping a reserve of "transit" pools and bucket_allocs for use on secondary connections to avoid repeated setup/teardowns. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899032 13f79535-47bb-0310-9956-ffa450edef68
* *) test/modules/http2: enable tests again where they should be.Stefan Eissing2022-02-281-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898473 13f79535-47bb-0310-9956-ffa450edef68
* *) test: check for the mpm module used and disable http2 testsStefan Eissing2022-02-2528-25/+57
| | | | | | | | for prefork. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898417 13f79535-47bb-0310-9956-ffa450edef68
* *) test/modules/http2. convert bytes to string beforeStefan Eissing2022-02-241-1/+1
| | | | | | | | writing output of a failed transfer to file. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898373 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: preserve the port number given in a HTTP/1.1Stefan Eissing2022-02-172-0/+41
| | | | | | | | request that was Upgraded to HTTP/2. Fixes PR65881. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898146 13f79535-47bb-0310-9956-ffa450edef68
* *) test: capture and parse output from nghttp more reliably.Stefan Eissing2022-02-141-12/+16
| | | | | | | | add repeat param to certain proxy tests. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898068 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: :scheme pseudo-header values, not matching theStefan Eissing2022-02-101-1/+9
| | | | | | | | | | | | connection scheme, are forwarded via absolute uris to the http protocol processing to preserve semantics of the request. Checks on combinations of pseudo-headers values/absence have been added as described in RFC 7540. Fixes <https://github.com/icing/mod_h2/issues/230>. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897940 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: when a h2 request carries a ':scheme' pseudoheader,Stefan Eissing2022-02-081-0/+8
| | | | | | | | | it gives a 400 response if the scheme does not match the connection. Fixes <https://github.com/icing/mod_h2/issues/230>. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897872 13f79535-47bb-0310-9956-ffa450edef68
* *) core/mod_ssl/mpm_event: reverting changes to nonblocing SSL handshakesStefan Eissing2022-02-041-1/+0
| | | | | | | | | | to stabilize CI tests again. Previous revision of trunk has been copied to branches/trunk-ssl-handshake-unblocking to make those into a PR where changes can be discussed and tested separately. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897760 13f79535-47bb-0310-9956-ffa450edef68
* *) test casesStefan Eissing2022-02-013-13/+17
| | | | | | | | | | - disabling test_h2_105_02 due to handshake timeouts no longer working - adjusting some log levels - ignoring new handshake error AHLOGNOs git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897650 13f79535-47bb-0310-9956-ffa450edef68
* *) test: Stefan Eissing2022-01-201-0/+1
| | | | | | | | | | - modules/http2: ignore some SSL library error logs when using openssl 3.x - modules/tls: right now, we seem unable to force curl to use TLSv1.3, adjust test case expectations accordingly. Use --tls-max to force v1.2 where needed. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897257 13f79535-47bb-0310-9956-ffa450edef68
* Fix some typosChristophe Jaillet2021-12-253-3/+3
| | | | | | [skip ci] git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1896386 13f79535-47bb-0310-9956-ffa450edef68
* * When reaching server limits, such as MaxRequestsPerChild, the HTTP/2 ↵Stefan Eissing2021-12-092-0/+21
| | | | | | | | | | | | | | | | | connection send a GOAWAY frame much too early on new connections, leading to invalid protocol state and a client failing the request. See PR65731 at <https://bz.apache.org/bugzilla/show_bug.cgi?id=65731>. The module now initializes the HTTP/2 protocol correctly and allows the client to submit one request before the shutdown via a GOAWAY frame is being announced. No changes-entries, since this fix is proposed for backport on the 1.15.x module codebase in 2.4.x in a separate PR. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895724 13f79535-47bb-0310-9956-ffa450edef68
* * test: check the h2load version for test suite making useStefan Eissing2021-11-301-1/+3
| | | | | | | | of its --connect-to feature (available since 1.41.0). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895434 13f79535-47bb-0310-9956-ffa450edef68
* * test: allow more flexibility in the ssl modules usedStefan Eissing2021-11-303-6/+15
| | | | | | | | | for a vhost. Adjust http2 and md test cases for working with modules other than mod_ssl. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895429 13f79535-47bb-0310-9956-ffa450edef68
* * testsuite: possible now to issue client certificates and the chain file ↵Stefan Eissing2021-11-101-1/+1
| | | | | | | | | | | | for them * testsuite: handling of cert+key in same file improved * testsuite: using 'stop' configuration to terminate server in case test cases leave borked test configs lying around. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894919 13f79535-47bb-0310-9956-ffa450edef68
* * test: just general cleanup and separationStefan Eissing2021-11-0837-69/+361
| | | | | | | | | | - base modules loaded minimized - h2's htdocs/cgi setup now in test/modules/http2 - less args to constructors, more methods git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894832 13f79535-47bb-0310-9956-ffa450edef68
* * adjust acceptable log errors fro http2 test suite on travisStefan Eissing2021-10-291-0/+2
| | | | | | | | * disable building of pebble for ACME tests as golang shows trouble git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894612 13f79535-47bb-0310-9956-ffa450edef68
* * test: update of python test framework after integration with mod_mdStefan Eissing2021-10-2820-197/+234
| | | | | | | | test suite that should come here soonish. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894599 13f79535-47bb-0310-9956-ffa450edef68
* * mod_http2: hopeful (as always) fix for the stalling in 400_20.Stefan Eissing2021-10-141-1/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894252 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: disabling 400_20 again, seeing if 401_31 stays fixed.Stefan Eissing2021-10-141-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894242 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: another travis test of the 400_20 and 401_31 tests that ↵Stefan Eissing2021-10-142-2/+0
| | | | | | | | | | produce a timeout only on travis and never locally. sorry about the cycles. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894241 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: disabling the 2 test cases failing on travis is interim Stefan Eissing2021-10-142-0/+2
| | | | | | | | to not stand in other peoples way. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894235 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: H2HEADER buckets have the correct lenght of zero and noStefan Eissing2021-10-141-1/+1
| | | | | | | | | longer smuggle the contained field lengths in this field. Instead the bytes reportded to mod_logio are counted specifically. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894226 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: no longer splitting buckets on adding them to a beam,Stefan Eissing2021-10-143-5/+3
| | | | | | | | | | accepting the whole bucket since no memory is saved by a split. Also, allowing meta buckets to be added to a "full" beam. Re-enabled test cases for travis verification. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894220 13f79535-47bb-0310-9956-ffa450edef68
* * test/modules/http2: marking 3 test cases for skip as theyStefan Eissing2021-10-133-2/+5
| | | | | | | | fail on travis and need further analysis. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894200 13f79535-47bb-0310-9956-ffa450edef68
* * mod_http2: resurrecting check for nghttp functionStefan Eissing2021-10-132-2/+37
| | | | | | | | | | nghttp2_session_callbacks_set_on_invalid_header_callback adding test for proxy server header behaviour making test fixture package scoped for better performance git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894190 13f79535-47bb-0310-9956-ffa450edef68
* * mod_http2: checking for nghttp2 function 'set_no_closed_streams' on ↵Stefan Eissing2021-10-131-4/+6
| | | | | | | | | | | configure. adapting test result expectations for new nghttp2 1.45 change in checking pseudo header fields for invalid characters. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894189 13f79535-47bb-0310-9956-ffa450edef68
* * mod_http2: fixing some compiler warnings.Stefan Eissing2021-10-125-1414/+20
| | | | | | | | | | length of output written now correctly calculated after buckets have been read. test cases updated. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894172 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2:Stefan Eissing2021-10-122-4/+0
| | | | | | | | | | | | | | | | | | | | | | - Fixed an issue since 1.15.24 that "Server" headers in proxied requests were overwritten instead of preserved. [PR by @daum3ns] - Added directove 'H2StreamTimeout' to configure a separate value for HTTP/2 streams, overriding server's 'Timeout' configuration. [rpluem] - HTTP/2 connections now use pollsets to monitor the status of the ongoing streams and their main connection when host OS allows this. - Removed work-arounds for older versions of libnghttp2 and checking during configure that at least version 1.15.0 is present. - The HTTP/2 connection state handler, based on an experiment and draft at the IETF http working group (abandoned for some time), has been removed. - H2SerializeHeaders no longer has an effect. A warning is logged when it is set to "on". The switch enabled the internal writing of requests to be parsed by the internal HTTP/1.1 protocol handler and was introduced to avoid potential incompatibilities during the introduction of HTTP/2. - Removed the abort/redo of tasks when mood swings lower the active limit. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894163 13f79535-47bb-0310-9956-ffa450edef68
* * test infrastruture:Stefan Eissing2021-10-1192-9310/+329
| | | | | | | | | | | | - moved common pytest code into test/pyhttpd - does basic setup for a list of host names and some htdocs - added modules/core and moved encoding tests from http2 there - all test methods have module name in in prefix now, so to test only core, run > pytest -k test_core git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894134 13f79535-47bb-0310-9956-ffa450edef68
* test/modules/http2: more encoding tests.Yann Ylavic2021-10-072-3/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893972 13f79535-47bb-0310-9956-ffa450edef68
* * changed status expectations Stefan Eissing2021-10-071-4/+15
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893957 13f79535-47bb-0310-9956-ffa450edef68
* * another encoding test for a file with % in its nameStefan Eissing2021-10-062-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893946 13f79535-47bb-0310-9956-ffa450edef68
* * additional encoding testStefan Eissing2021-10-062-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893944 13f79535-47bb-0310-9956-ffa450edef68
* * extending h2 tests with url encodings, 3 of which currently fail.Stefan Eissing2021-10-0615-296/+562
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893934 13f79535-47bb-0310-9956-ffa450edef68
* * adding tests to verfiy header field name length checksStefan Eissing2021-09-131-0/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893306 13f79535-47bb-0310-9956-ffa450edef68
* test/modules/http2:Stefan Eissing2021-08-262-7/+2
| | | | | | | | | | * removing unneeded python imports for smaller footprint * fixing bug in waiting for stopped server to no longer accept new connections. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1892615 13f79535-47bb-0310-9956-ffa450edef68