You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Discarded DATA returns connection flow-control credit. A frame on a
retired stream, a frame that exceeds the stream receive window, or DATA
after the peer sent END_STREAM is counted against the connection window
and answered with WINDOW_UPDATE (RFC 9113 §6.9). A retired stream whose
frame exceeds the connection window is a FLOW_CONTROL_ERROR. Previously
the peer's connection send window shrank on every cancelled call and the
connection could stall.
One stream-slot predicate (StreamState.occupies_slot) now backs open_stream, the server's peer MAX_CONCURRENT_STREAMS check, live_stream_count, and retire_stream. The server no longer frees a
peer stream's slot when only its own side has sent END_STREAM.
queue_rst_stream marks a known stream reset once the frame is queued.
Readiness-driven resets now free the slot, and send_rst_stream keeps
the stream reset when its flush fails with the frame still queued.
A peer SETTINGS_INITIAL_WINDOW_SIZE change that pushes a stream's send
window above 2^31 - 1 is now a FLOW_CONTROL_ERROR connection error
(RFC 9113 §6.9.2). Streams we have reset or finished sending on are
exempt.
A request content-length must be one or more digits (RFC 9110 §8.6).
A non-digit value is a stream PROTOCOL_ERROR. Previously Int() accepted
signs, whitespace, and digit separators, and -1 matched the
absent-header sentinel, so the body-length check was skipped.