quic: convert incoming :status header to number - #63589
Conversation
|
Review requested:
|
|
@hallss93 Looks like the commit message here is failing the linting as it's not signed off, you'll need to update that with |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #63589 +/- ##
==========================================
- Coverage 90.32% 90.32% -0.01%
==========================================
Files 759 759
Lines 248320 248330 +10
Branches 46868 46862 -6
==========================================
- Hits 224296 224292 -4
Misses 15466 15466
- Partials 8558 8572 +14
🚀 New features to boost your workflow:
|
f442353 to
25644d0
Compare
fixed |
This comment was marked as outdated.
This comment was marked as outdated.
Commit Queue failed- Loading data for nodejs/node/pull/63589 ✔ Done loading data for nodejs/node/pull/63589 ----------------------------------- PR info ------------------------------------ Title quic: convert incoming :status header to number (#63589) Author Hallison Pereira Melo <hallss93@hotmail.com> (@hallss93, first-time contributor) Branch hallss93:quic-h3-status-number -> nodejs:main Labels needs-ci, quic, commit-queue-squash Commits 2 - quic: convert incoming :status header to number - Merge branch 'nodejs:main' into quic-h3-status-number Committers 2 - Hallison Melo <hallss93@hotmail.com> - GitHub <noreply@github.com> PR-URL: https://github.com/nodejs/node/pull/63589 Fixes: https://github.com/nodejs/node/issues/63557 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Tim Perry <pimterry@gmail.com> ------------------------------ Generated metadata ------------------------------ PR-URL: https://github.com/nodejs/node/pull/63589 Fixes: https://github.com/nodejs/node/issues/63557 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Tim Perry <pimterry@gmail.com> -------------------------------------------------------------------------------- ℹ This PR was created on Tue, 26 May 2026 18:45:32 GMT ✔ Approvals: 2 ✔ - Stephen Belanger (@Qard): https://github.com/nodejs/node/pull/63589#pullrequestreview-4378129270 ✔ - Tim Perry (@pimterry): https://github.com/nodejs/node/pull/63589#pullrequestreview-4449032505 ✔ Last GitHub CI successful ℹ Last Full PR CI on 2026-06-08T13:56:50Z: https://ci.nodejs.org/job/node-test-pull-request/73976/ - Querying data for job/node-test-pull-request/73976/ ✔ Build data downloaded ✔ Last Jenkins CI successful -------------------------------------------------------------------------------- ✔ No git cherry-pick in progress ✔ No git am in progress ✔ No git rebase in progress -------------------------------------------------------------------------------- - Bringing origin/main up to date... From https://github.com/nodejs/node * branch main -> FETCH_HEAD ✔ origin/main is now up-to-date - Downloading patch for 63589 From https://github.com/nodejs/node * branch refs/pull/63589/merge -> FETCH_HEAD ✔ Fetched commits as 45c7071b4a0d..04c9e28facb5 -------------------------------------------------------------------------------- Auto-merging doc/api/quic.md Auto-merging lib/internal/quic/quic.js error: commit 04c9e28facb599da6a23142450bbf8c85e32bcd0 is a merge but no -m option was given. fatal: cherry-pick failed [main dad2bd067b] quic: convert incoming :status header to number Author: Hallison Melo <hallss93@hotmail.com> Date: Tue May 26 15:40:36 2026 -0300 22 files changed, 117 insertions(+), 44 deletions(-) create mode 100644 test/parallel/test-quic-h3-status-code-type.mjs ✘ Failed to apply patcheshttps://github.com/nodejs/node/actions/runs/27160616586 |
|
@hallss93 Can you please rebase onto main and remove the merge commit? Instructions: https://github.com/nodejs/node/blob/main/doc/contributing/pull-requests.md#step-5-rebase |
This comment was marked as resolved.
This comment was marked as resolved.
04c9e28 to
861d2a4
Compare
|
Rebased to address the merge conflicts |
This comment was marked as outdated.
This comment was marked as outdated.
Signed-off-by: Hallison Melo <hallss93@hotmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
861d2a4 to
b9b662f
Compare
|
Landed in cbe18d8 |
Fixes: #63557
Summary
When receiving HTTP/3 headers via QUIC,
headers[':status']was exposed as astring. HTTP/2 converts the incoming
:statuspseudo-header to a number intoHeaderObject()(lib/internal/http2/util.js). This mismatch makes itawkward to port HTTP/2 code to HTTP/3.
Align HTTP/3 with HTTP/2 by converting
:statusto a number inparseHeaderPairs()when building the header object from C++ name/valuepairs. This applies to initial response headers, informational (
1xx)headers (
oninfo), andstream.headers.Outgoing headers are unchanged: callers may still pass
':status': '200'or':status': 200when callingsendHeaders()/sendInformationalHeaders().Test plan
Update existing QUIC H3 tests to expect numeric
:statuson receiveAdd
test/parallel/test-quic-h3-status-code-type.mjscovering 200, 204, and 404Run (with QUIC enabled):