Tracks the 7-test node-http2-invalid-padding matrix from #66.\n\nCurrent raw client routing does not include this file, inbound parsing waits for complete frames, and PADDED or PRIORITY prefixes are not validated. Outbound PADDING_STRATEGY_MAX does not serialize real padded DATA.\n\nAcceptance criteria:\n- route the test through shared raw HTTP/2 transport logic\n- incrementally parse frame header, mandatory prefix, data, and padding across arbitrary chunk boundaries\n- report FRAME_SIZE_ERROR for missing mandatory HEADERS fields\n- report PROTOCOL_ERROR for invalid pad length\n- strip pad length and padding bytes while delivering data incrementally\n- serialize padded request DATA with intact bodies and zero-filled padding\n- pass all 7 byte-identical invalid-padding tests plus focused chunk-boundary regressions\n\nParent tracker: #66
Bun parity: implement incremental HTTP/2 padding parsing and padded DATA serialization
#425Implemented locally in b11bb50 (fix(runtime): validate incremental HTTP2 frames). The generic incremental codec now preserves parser state across socket reads, consumes the Pad Length octet once, strips zero and nonzero trailing padding, rejects invalid DATA/HEADERS padding and truncated HEADERS priority fields with the correct connection error, and emits bounded MAX-strategy DATA frames with zero-filled padding. Ordinary virtual net sockets also expose chainable setNoDelay/setKeepAlive, which the unchanged upstream transport case requires before it writes SETTINGS.\n\nVerification: focused codec 2/2; unchanged node-http2-invalid-padding.test.ts 7/7; combined exact node HTTP/2 selector green; cumulative bootstrap HTTP2 33/33; Zig fmt and diff checks green. Its FAIL expectation was removed in the same commit. Push remains pending only because github.com DNS is still failing; keep this issue open until the commit is visible remotely.
Completed across the HTTP/2 parity work now on main, with the final shared-parser integration in 7b12502.
The exact upstream node-http2-invalid-padding.test.ts fixture is green in both final configurations: 7 pass / 0 fail in Debug and 7 pass / 0 fail in ReleaseFast. The implementation incrementally validates PADDED and mandatory prefixes, rejects invalid pad lengths with the required errors, strips padding from delivered data, and serializes real zero-filled outbound DATA padding.
No test modifications or relaxed expectations were used.
Sign in to comment on this issue.