diff options
author | Loïc Hoguin <[email protected]> | 2019-07-03 17:22:43 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2019-07-03 17:22:43 +0200 |
commit | 071599cbcd25cd2669e26d23a6e202e0275f191a (patch) | |
tree | 58805ebdf34d3f2830b9d5ef6817e1e077d94790 /src/gun_http2.erl | |
parent | d6b7ec654a876531dc0cfc7c65350d354bda2f52 (diff) | |
download | gun-071599cbcd25cd2669e26d23a6e202e0275f191a.tar.gz gun-071599cbcd25cd2669e26d23a6e202e0275f191a.tar.bz2 gun-071599cbcd25cd2669e26d23a6e202e0275f191a.zip |
Add the response_trailers event
Diffstat (limited to 'src/gun_http2.erl')
-rw-r--r-- | src/gun_http2.erl | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/gun_http2.erl b/src/gun_http2.erl index 4814818..a1ba46e 100644 --- a/src/gun_http2.erl +++ b/src/gun_http2.erl @@ -124,10 +124,7 @@ frame(State=#http2_state{http2_machine=HTTP2Machine0}, Frame, EvHandler, EvHandl stream_ref => StreamRef, reply_to => ReplyTo }, EvHandlerState0); - {ok, nofin} -> - %% @todo response_trailers. - EvHandlerState0; - %% This is an invalid headers frame. + %% Trailers or invalid header frame. _ -> EvHandlerState0 end; @@ -259,10 +256,12 @@ trailers_frame(State, StreamID, Trailers, EvHandler, EvHandlerState0) -> #stream{ref=StreamRef, reply_to=ReplyTo} = get_stream_by_id(State, StreamID), %% @todo We probably want to pass this to gun_content_handler? ReplyTo ! {gun_trailers, self(), StreamRef, Trailers}, - EvHandlerState = EvHandler:response_end(#{ + ResponseEvent = #{ stream_ref => StreamRef, reply_to => ReplyTo - }, EvHandlerState0), + }, + EvHandlerState1 = EvHandler:response_trailers(ResponseEvent#{headers => Trailers}, EvHandlerState0), + EvHandlerState = EvHandler:response_end(ResponseEvent, EvHandlerState1), {maybe_delete_stream(State, StreamID, remote, fin), EvHandlerState}. rst_stream_frame(State=#http2_state{streams=Streams0}, StreamID, Reason) -> |