varnish-cache:6.0

Last commit made on 2024-04-09
Get this branch:
git clone -b 6.0 https://git.launchpad.net/varnish-cache

Branch merges

Branch information

Name:
6.0
Repository:
lp:varnish-cache

Recent commits

ead236c... by Poul-Henning Kamp <email address hidden>

flexelinting

a8dd3c8... by Martin Blix Grydeland <email address hidden>

Cast to (u)intmax_t for %ju and %jd

This to silence errors on OSX where apparently int64_t isn't type
equivalent to intmax_t, causing printf-errors when using %jd.

Fixes: #3699

5c4fbcc... by Dridi Boukelmoune <email address hidden>

vtc(7): Misplaced double-quote

4e7fb1a... by Dridi Boukelmoune <email address hidden>

vtc: Coverage for initial h2 settings

There's no way to probe the current push status or maximum frame size.

fd9bf7e... by Dridi Boukelmoune <email address hidden>

param: Restore old default h2_max_header_list_size

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

fa84da3... by Dridi Boukelmoune <email address hidden>

vnum: Add test coverage for 32bit unsigned limits

62c525e... by Dridi Boukelmoune <email address hidden>

http2_hpack: Enforce h2_max_header_list_size

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

cf444b4... by Dridi Boukelmoune <email address hidden>

http2_session: Advertise http_req_size to clients

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

0e1e4ea... by Dridi Boukelmoune <email address hidden>

param: Document mapping to HTTP/2 settings

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

f69a70e... by Dridi Boukelmoune <email address hidden>

vtc: Add http_max_hdr coverage to r3709

For the sole purpose of having these limits tested in a single place.