hyperium / h2

HTTP 2.0 client & server implementation for Rust.
MIT License
1.34k stars 265 forks source link

fix: stream flow control insufficient size before ack #746

Closed dswij closed 5 months ago

dswij commented 5 months ago

closes #630

This PR makes the Recv stream use the default window size before receiving ACK from the other party.

This matters as a server when we want the stream initial_window_size <= default settings. In some cases, the client will eagerly send some data frames before ACK-ing settings, thus resulting in a flow control error if the size of data frames is greater than the set initial_window_size.