- 29 Mar, 2024 12 commits
-
-
Dridi Boukelmoune authored
Fixes #3709 Closes #3892
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
Refs #3709
-
Dridi Boukelmoune authored
It does a first pass on header names and values, and only logs errors, so the signature is updated accordingly and the call site is moved into h2h_addhdr().
-
Dridi Boukelmoune authored
Better diff with the --ignore-all-space option.
-
Dridi Boukelmoune authored
It became explicit in rfc9113: > The same pseudo-header field name MUST NOT appear more than once in a > field block. While at it, the duplicate pseudo-header error can be consolidated in a single location instead of adding one more branch.
-
Dridi Boukelmoune authored
Instead of passing both a decoder and individual decoder fields, the signature for h2h_addhdr() changed to only take the decoder. The order of parameters is destination first, then the source following the calling conventon of functions like memcpy(). Internally the function is reorganized with a bunch of txt variables to keep track of the header being added, its name and value. In addition to clarity, this also helps improve safety and correctness. For example the :authority pseudo-header name is erased in place to turn it into a regular host header, but having a dedicated txt for the header name allows its preservation.
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
The extra space before the colon looked uncanny. The rest is just code indentation improvements. Better diff with the --ignore-all-space --word-diff options.
-
Dridi Boukelmoune authored
There is room for further improvement in the dynamic between HPACK and the HTTP/2 session, but this will serve as the first step. Conflicts: include/tbl/h2_error.h
-
Asad Sajjad Ahmed authored
The :scheme pseudo header is not optional in H/2 except when doing CONNECT. There is also a strict requirement for it appear only once. Signed-off-by: Asad Sajjad Ahmed <asadsa@varnish-software.com> Conflicts: bin/varnishtest/tests/t02025.vtc
-
- 18 Mar, 2024 19 commits
-
-
Simon Stridsberg authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
Before the h2 frame dispatch we only need to check that coming from a HEADERS frame the very next frame is a CONTINUATION, when the HPACK block didn't fit in the former. The CONTINUATION dispatch will then make the stream consistency check.
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
When a stream times out waiting for window credits, and all the other streams are broke, declare the whole connection bankrupt.
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
It replaces idle_send_timeout when the stream is waiting for window credits before sending more DATA frames. The idle_send_timeout will still apply to individual writes to the socket, but triggering it is considered a failure condition (this was already the case). The two loops are merged into a single one to better deal with the lack of ordering guarantees of request vs connection stream control flow window crediting. Refs #2980
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
This parameter needs to be somewhat high because web browsers may for example only credit streams for image resources just enough to parse metadata like width and height of a picture in order to perform layout computations and fetch resources more sensitive to latency before the effective image payloads.
-
Dridi Boukelmoune authored
Conflicts: include/tbl/h2_error.h
-
Dridi Boukelmoune authored
The new meaning for h2->sess->t_idle is now the time since the last complete frame, except before the first frame where it corresponds to the creation of the session.
-
Dridi Boukelmoune authored
And after issuing or receiving a goaway, stop processing frames when there are no streams left. Initially submitted as part of listen sockets management. Refs #3959
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
- 05 Dec, 2023 2 commits
-
-
Dridi Boukelmoune authored
Since Python 3.12 unknown escape sequences trigger a warning.
-
Dridi Boukelmoune authored
The 503 synth and 500 minimal response status codes are too misleading in this context, where the failure is attributed to the client. Among existing 4XX status codes, this is the closest if we stretch the timeout definition to "didn't complete rapidly enough before the client went away".
-
- 21 Nov, 2023 1 commit
-
-
Dridi Boukelmoune authored
A VCL failure on the client side transitions to vcl_synth, except failures from vcl_synth that lead to minimal errors. The ESI transport is not allowed to reply with minimal responses so this would lead to a panic. On top of that, the vcl_req_reset feature flag emulates `return (fail)` statements when an HTTP/2 client disconnected, resulting in the same panic scenario. For sub-requests, we masquerade the fail transition as a deliver and trade the illegal minimal response for the synthetic response. Fixes #4022
-
- 13 Nov, 2023 4 commits
-
-
Dag Haavi Finstad authored
-
Dag Haavi Finstad authored
-
Dag Haavi Finstad authored
-
Nils Goroll authored
-
- 24 Oct, 2023 1 commit
-
-
Dridi Boukelmoune authored
-
- 23 Oct, 2023 1 commit
-
-
Dridi Boukelmoune authored
-