Skip to content

v0.2.4

Choose a tag to compare

@github-actions github-actions released this 30 Aug 08:41
· 62 commits to master since this release
Correctness fixes, all of them cases where shb reported something that was
not true.

HTTP/3 no longer tears down a connection on EMSGSIZE from recv. That errno
means a datagram shb sent was too big for the path and the ICMP reply landed
on whichever operation ran next; since MTU discovery probes well past the
Ethernet default, drawing one is normal. www.bing.com failed every HTTP/3
request because of it.

HTTP/3 no longer records a 1xx as the final status, and HTTP/2 no longer
rejects trailers. Both stacks had half the rule: HTTP/3 kept the first header
section, so a 103 Early Hints buried the real response, and HTTP/2 raised an
error on a section with no :status, which is what trailers look like. All
three protocols now share one definition of an interim response.

The chunked parser no longer underflows when a read stops inside the CRLF that
ends a chunk. In release that wrapped, and the parser then waited for 2^64
more bytes.

HTTP/2 no longer asks peers to index the :authority header. The dynamic
indexing added in 0.2.2 measured no faster and broke OpenLiteSpeed, which
answered half the requests.

HTTP/2 and HTTP/3 now count a stream that ends without a :status as an error
rather than a success, so a protocol failure is reported as one.