mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 12:20:24 +00:00
Handle lingering_data
This commit is contained in:
parent
d846827b2a
commit
ca32a22a55
1 changed files with 9 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}, StreamID, DataLen);
|
||||
{ok, {headers, StreamID, IsFin, Headers, PseudoHeaders, BodyLen}, HTTP2Machine} ->
|
||||
headers_frame(State#state{http2_machine=HTTP2Machine},
|
||||
StreamID, IsFin, Headers, PseudoHeaders, BodyLen);
|
||||
|
@ -287,6 +289,13 @@ maybe_ack(State=#state{socket=Socket, transport=Transport}, Frame) ->
|
|||
end,
|
||||
State.
|
||||
|
||||
lingering_data_frame(State=#state{socket=Socket, transport=Transport, http2_machine=HTTP2Machine0}, _StreamID, DataLen) ->
|
||||
Transport:send(Socket, [
|
||||
cow_http2:window_update(DataLen)
|
||||
]),
|
||||
HTTP2Machine1 = cow_http2_machine:update_window(DataLen, HTTP2Machine0),
|
||||
State#state{http2_machine=HTTP2Machine1}.
|
||||
|
||||
data_frame(State=#state{opts=Opts, streams=Streams}, StreamID, IsFin, Data) ->
|
||||
case Streams of
|
||||
#{StreamID := {running, StreamState0}} ->
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue