- 04 Apr, 2024 3 commits
-
-
Dridi Boukelmoune authored
There's no way to probe the current push status or maximum frame size.
-
Dridi Boukelmoune authored
Except that the old default value replaces the maximum one. Aligning with the literal maximum value for the underlying HTTP/2 setting breaks 32bit builds because the byte tweaks take a detour via ssize_t. When it casts to uintmax_t the MSB is propagated all the way, triggering the following error at build time: > 4294967295b is too large for this architecture. Instead of fighting a tweak that is clearly wrong, grant h2 clients a maximum of 2GB of uncompressed headers (instead of 4GB) that will never happen, because h2 is overall much wronger. Conflicts: include/tbl/params.h
-
Dridi Boukelmoune authored
-
- 29 Mar, 2024 35 commits
-
-
Dridi Boukelmoune authored
This parameter has a new role that consists in interrupting connections when decoding an HPACK block leads to a header list so large that the client must be stopped. By default, too large is 150% of http_req_size. Conflicts: include/tbl/params.h
-
Dridi Boukelmoune authored
Since http_req_size was already established for this purpose, and is now enforced for h2 traffic, it should naturally become the basis for the MAX_HEADER_LIST_SIZE setting in the initial SETTINGS frame sent to clients. The h2_max_header_list_size parameter will grow a new purpose. Conflicts: bin/varnishtest/tests/t02000.vtc bin/varnishtest/tests/t02005.vtc include/tbl/params.h
-
Dridi Boukelmoune authored
With the exception of h2_max_header_list_size that is not advertised as such despite being ent as part of the initial SETTINGS frame. The same parameter also sees its default and maximum values updated to 2^32-1. This is based on this sentence from rfc9113: > The initial value of this setting is unlimited. This aligns the h2_max_header_list_size parameter with the values set in h2_settings.h for MAX_HEADER_LIST_SIZE. Conflicts: include/tbl/params.h
-
Dridi Boukelmoune authored
For the sole purpose of having these limits tested in a single place.
-
Dridi Boukelmoune authored
Refs #3709 Refs #3892 Conflicts: bin/varnishd/http2/cache_http2_hpack.c
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
Refs #3709
-
Dridi Boukelmoune authored
-
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(). Conflicts: bin/varnishd/http2/cache_http2_hpack.c A warning triggered despite the presence of FALL_THROUGH.
-
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.
-
Walid Boudebouda authored
Control characters will be caught by vct_ishdrval() anyways, but this condition would also reject allowed obs-text non-ASCII characters. Signed-off-by: Dridi Boukelmoune <dridi.boukelmoune@gmail.com>
-
Walid Boudebouda authored
Signed-off-by: Dridi Boukelmoune <dridi.boukelmoune@gmail.com>
-
Walid Boudebouda authored
Signed-off-by: Dridi Boukelmoune <dridi.boukelmoune@gmail.com>
-
Walid Boudebouda authored
Signed-off-by: Dridi Boukelmoune <dridi.boukelmoune@gmail.com>
-
Poul-Henning Kamp authored
Fixes #3952
-
Dag Haavi Finstad authored
This requirement was dropped in the updated rfc 9113. Fixes: #3911
-
Dag Haavi Finstad authored
Conflicts: bin/varnishd/http2/cache_http2_proto.c
-
Dag Haavi Finstad authored
-
Nils Goroll authored
I accidentally committed an earlier, wrong version. o/ Dridi Ref #3407 https://github.com/varnishcache/varnish-cache/pull/3407#issuecomment-696146625 Conflicts: include/vct.h The previous commit introduces more than just this macro and was skipped on purpose.
-
Dridi Boukelmoune authored
Conflicts: include/vdef.h
-
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
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
There are other components than the cache process that could benefit from it, in particular libvcc. The relationship with vas.h is somewhat unfortunate but that also centralize the Tcheck() logic in pdiff() and doesn't actually require vas.h unless the macros are used, in which case it's almost guaranteed that the calling code already included vas.h in the first place. The benefits should outweigh the drawbacks. Conflicts: bin/varnishd/cache/cache.h bin/varnishtest/vtc_http.c
-
Dridi Boukelmoune authored
This way it can be used almost anywhere in the code base and out of tree, not just in the cache process. The function was slightly polished after prior discussions with phk and slink. Conflicts: include/vas.h
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
Its first action ${string,repeat,<uint>,<string>} helps simplify many unwieldy test cases that will hopefully be easier to edit from now on. Conflicts: bin/varnishtest/tests/c00071.vtc bin/varnishtest/tests/r02219.vtc bin/varnishtest/vtc_main.c
-
Dridi Boukelmoune authored
Conflicts: bin/varnishtest/vtc.c
-
Dridi Boukelmoune authored
Instead of having a mere value, these would be able to compute a macro expansion. We parse the contents inside the ${...} delimiters as a VAV, but there can't be (yet?) nested curly {braces}, even quoted. The first argument inside the delimiters is the macro name, and other VAV arguments are treated as arguments to the macro's function. For example ${foo,bar,baz} would call the a macro "foo"'s function with arguments "bar" and "baz". Simple macros don't take arguments and work as usual. Conflicts: bin/varnishtest/vtc.c bin/varnishtest/vtc_main.c
-
Dridi Boukelmoune authored
The latter operates on a VSB, which is always what call sites are doing anyway. It also takes the responsibility of ignoring unknown macros, in preparation for more responsibilities that will also require the ability to fail a test case. Conflicts: bin/varnishtest/vtc_http.c
-
Dridi Boukelmoune authored
I kept a variable called "s" to cut noise from the diff.
-
- 18 Mar, 2024 2 commits
-
-
Simon Stridsberg authored
-
Nils Goroll authored
-