-
Notifications
You must be signed in to change notification settings - Fork 719
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
h3: add support for additional HEADERS #1027
Conversation
Oh wow. The build failure is in |
fca5a61
to
13401b4
Compare
@ghedo since there is no way to send DATA frames after headers, I tried addressing the broken test by sending more data on a different stream and basically interleaving operations to see if the DATA event rearms properly. A different approach might be, if we add an event for PRIORITY_UPDATE, to interleave that with DATA events. If we like the sound of that I can replace the |
0305fcb
to
b4c4a98
Compare
b4c4a98
to
897e019
Compare
d29e589
to
1ab5eaa
Compare
HTTP/3 request and response message exchanges allow multiple HEADERS frames to be sent, which allows for trailer sections or non-final responses. Previously, quiche has only supported generating a single HEADERS frame per request or response, and didn't support receiving them. This change adds support for sending and receiving multiple HEADERS frames on a request stream. It enforces the sequencing rules defined in https://www.rfc-editor.org/rfc/rfc9114.html#section-4.1. Sending additional HEADERS is done using the new `send_additional_headers()` method. On the receive side, rather than add a new Event enum variant for these additional uses of HEADERS, this change reuses Event::Headers. Previosuly, this event included a `has_body` boolean, which has been renamed to `more_frames` to better align with how HTTP/3 streams work.
1ab5eaa
to
0e72799
Compare
HTTP/3 request and response message exchanges allow multiple HEADERS
frames to be sent, which allows for trailer sections or non-final
responses. Previously, quiche has only supported generating a single
HEADERS frame per request or response, and didn't support receiving
them.
This change adds support for sending and receiving multiple HEADERS
frames on a request stream. It enforces the sequencing rules defined in
https://datatracker.ietf.org/doc/html/draft-ietf-quic-http-34#section-4.1.
Sending additional HEADERS is done using the new
send_additional_headers()
method. On the receive side, rather than adda new Event enum variant for these additional uses of HEADERS, this
change reuses Event::Headers. Previosuly, this event included a
has_body
boolean, which has been renamed tomore_frames
to betteralign with how HTTP/3 streams work.