Closed tatsuhiro-t closed 10 years ago
Receiving SETTINGS by the peer and receiving DATA from peer are asynchronous and inherently race condition. So I think we can not differentiate negative window size case by broken peer from SETTINGS frame. I am now leaning to leave the code as is and the application should decide to send RST_STREAM if the inbound buffer is full and the peer keeps sending DATA.
Decided to discontinue
Currently spdylay accepts DATA frame even if the window size is negative from the remote peer. To make flow control effective and rule out broken peer, we need to RST_STREAM with FLOW_CONTROL_ERROR if the peer ignores window size. Make sure that negative window size due to SETTINGS frame does not cause RST_STREAM.