[HTTP/3] Fix QPACK status decode #57236
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix "Literal Header Field With Name Reference" parsing for Status code. Add tests for QPACK-ed and not QPACK-ed status receiving for all status codes (except informational).
Fix
QPackStaticTable.HeaderLookup
to comply with spec https://quicwg.org/base-drafts/draft-ietf-quic-qpack.html#name-static-table-2 (the order was off, so lookup didn't work correctly in some cases).Fixes #55988
Notes:
While checking spec compliance, I noticed that index 34 should
access-control-allow-headers
instead ofaccess-control-allow-origin
(inH3StaticTable.s_staticTable
). It seems to be shared code, so I guess after this PR Kestrel will need to sync with the update? cc @JamesNKIt would be nice to get rid of
QPackStaticTable.HeaderLookup
in favor ofH3StaticTable.s_staticTable
, or use a generation of some sort, but I didn't check whether it will be easy to achieve, and I don't know why there are two of them in the first place.