aboutsummaryrefslogtreecommitdiffstats
path: root/src/gun_event.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2019-07-02 17:28:44 +0200
committerLoïc Hoguin <[email protected]>2019-07-02 17:29:40 +0200
commit4a6503186bf3a72880e7c99be76406550aeded96 (patch)
tree3be68b90bc7813fc87a0ac6167793842fa4557d5 /src/gun_event.erl
parent1c03ef37c3b9060db8483e3870771d900e176c97 (diff)
downloadgun-4a6503186bf3a72880e7c99be76406550aeded96.tar.gz
gun-4a6503186bf3a72880e7c99be76406550aeded96.tar.bz2
gun-4a6503186bf3a72880e7c99be76406550aeded96.zip
Add response_inform/response_headers/response_end events
This covers many scenarios but more need to be added.
Diffstat (limited to 'src/gun_event.erl')
-rw-r--r--src/gun_event.erl27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/gun_event.erl b/src/gun_event.erl
index 56f1a36..8e66400 100644
--- a/src/gun_event.erl
+++ b/src/gun_event.erl
@@ -68,6 +68,27 @@
-callback request_end(request_end_event(), State) -> State.
+%% response_inform/response_headers.
+
+-type response_headers_event() :: #{
+ stream_ref := reference(),
+ reply_to := pid(),
+ status := non_neg_integer(),
+ headers := [{binary(), binary()}]
+}.
+
+-callback response_inform(response_headers_event(), State) -> State.
+-callback response_headers(response_headers_event(), State) -> State.
+
+%% response_end.
+
+-type response_end_event() :: #{
+ stream_ref := reference(),
+ reply_to := pid()
+}.
+
+-callback response_end(response_end_event(), State) -> State.
+
%% disconnect.
-type disconnect_event() :: #{
@@ -92,10 +113,8 @@
%% @todo origin_changed
%% @todo transport_changed
%% @todo protocol_changed
-%% @todo response_start (call it once per inform + one for the response)
-%% @todo response_inform
-%% @todo response_headers
-%% @todo response_end
+%% @todo response_start (needs changes in cow_http2_machine to have an event before decoding headers)
+%% @todo response_trailers (same)
%% @todo push_promise_start
%% @todo push_promise_end
%% @todo cancel_start