mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 20:30:23 +00:00
Data received after RST_STREAM counts toward window
This commit is contained in:
parent
504c7c55f7
commit
7708fc77cd
3 changed files with 79 additions and 0 deletions
|
@ -255,6 +255,8 @@ frame(State=#state{http2_machine=HTTP2Machine0}, Frame) ->
|
|||
maybe_ack(State#state{http2_machine=HTTP2Machine}, Frame);
|
||||
{ok, {data, StreamID, IsFin, Data}, HTTP2Machine} ->
|
||||
data_frame(State#state{http2_machine=HTTP2Machine}, StreamID, IsFin, Data);
|
||||
{ok, {lingering_data, _StreamID, DataLen}, HTTP2Machine} ->
|
||||
lingering_data_frame(State#state{http2_machine=HTTP2Machine}, DataLen);
|
||||
{ok, {headers, StreamID, IsFin, Headers, PseudoHeaders, BodyLen}, HTTP2Machine} ->
|
||||
headers_frame(State#state{http2_machine=HTTP2Machine},
|
||||
StreamID, IsFin, Headers, PseudoHeaders, BodyLen);
|
||||
|
@ -306,6 +308,12 @@ data_frame(State=#state{opts=Opts, streams=Streams}, StreamID, IsFin, Data) ->
|
|||
State
|
||||
end.
|
||||
|
||||
lingering_data_frame(State=#state{socket=Socket, transport=Transport,
|
||||
http2_machine=HTTP2Machine0}, DataLen) ->
|
||||
Transport:send(Socket, cow_http2:window_update(DataLen)),
|
||||
HTTP2Machine1 = cow_http2_machine:update_window(DataLen, HTTP2Machine0),
|
||||
State#state{http2_machine=HTTP2Machine1}.
|
||||
|
||||
headers_frame(State, StreamID, IsFin, Headers,
|
||||
PseudoHeaders=#{method := <<"CONNECT">>}, _)
|
||||
when map_size(PseudoHeaders) =:= 2 ->
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue