Skip to content

Mask GOAWAY last stream id#30

Merged
ioquatix merged 1 commit into
mainfrom
goaway-last-stream-id-mask
Jul 24, 2026
Merged

Mask GOAWAY last stream id#30
ioquatix merged 1 commit into
mainfrom
goaway-last-stream-id-mask

Conversation

@ioquatix

Copy link
Copy Markdown
Member

Summary

  • Mask the reserved high bit when decoding GOAWAY last_stream_id.
  • Add a regression test for GOAWAY frames with the reserved bit set.
  • Add an Unreleased release note.

Testing

  • ruby -Ilib -e 'require "protocol/http2/goaway_frame"; frame = Protocol::HTTP2::GoawayFrame.new; frame.pack(0x80000003, 2, "debug"); last_stream_id, error_code, data = frame.unpack; abort last_stream_id.inspect unless last_stream_id == 3; abort error_code.inspect unless error_code == 2; abort data.inspect unless data == "debug"'

Note: Full bundle exec sus ... remains blocked locally by missing locked gem versions in this checkout.

@ioquatix
ioquatix merged commit d4ccc0a into main Jul 24, 2026
40 checks passed
@ioquatix
ioquatix deleted the goaway-last-stream-id-mask branch July 24, 2026 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant