Repository navigation
v0.10.3
Dependency release: quic 2.0.3 and hackney 4.8.4, with the HTTP/3 fixes
they call for.
Changed
- Bump
quic1.8.2 -> 2.0.3,webtransport0.4.5 -> 0.4.7,h2
0.12.0 -> 0.12.3 andhackney4.7.4 -> 4.8.4. hackney 4.8 is what
pulls quic 2.0 in. For livery's own code nothing changes; if your
handlers talk toquic_h3directly, a connection close now always
arrives as{quic_h3, Conn, {closed, Reason}}. - The outbound client reports a response body cut short by the server
closing as{error, {closed, Partial}}(buffered) or{error, closed}
(streamed), where it used to return the short body as a success. - Test and check profiles:
barrel_mcp4.1.1,barrel_a2a0.2.3.
Fixed
- On HTTP/3, a request body over
max_bodyno longer fires the
handler'son_disconnectcallbacks. quic 2.0 reports the reset livery
sends back to the stream, and the translator took it for a client
disconnect. - On HTTP/3, a response sent faster than the connection drains is no
longer cut. quic refuses a send while its connection send queue is
full ({error, send_queue_full}, nothing written); livery passed that
up, so a streamed body silently lost the refused chunk and a full body
left the stream open. The adapter now waits for the queue to drain,
sending bodies in 64 KiB pieces, and resets the stream if it is still
full after 30 seconds ({error, send_timeout}). WebSocket sends over
HTTP/3 wait the same way. - A response that fails part way (any emit error other than a closed
peer) now resets the stream instead of leaving it open. on_disconnectcallbacks no longer run when livery resets the stream
itself, for example when a file response cannot be read. HTTP/1.1
always ran them and HTTP/3 sometimes did; HTTP/2 never did.