aboutsummaryrefslogtreecommitdiffstats
path: root/src/gun.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2019-07-26 15:25:53 +0200
committerLoïc Hoguin <[email protected]>2019-07-26 15:25:53 +0200
commitcd50a0d3f42afd5e12a1470902a60b4fa9d84f73 (patch)
treef78d527802a4e939de18258eb210b72745944289 /src/gun.erl
parent56b7fdd6eb15564ad821885937b03516a03dce4b (diff)
downloadgun-cd50a0d3f42afd5e12a1470902a60b4fa9d84f73.tar.gz
gun-cd50a0d3f42afd5e12a1470902a60b4fa9d84f73.tar.bz2
gun-cd50a0d3f42afd5e12a1470902a60b4fa9d84f73.zip
Add the origin_changed event
Diffstat (limited to 'src/gun.erl')
-rw-r--r--src/gun.erl13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/gun.erl b/src/gun.erl
index d158a53..a548a5d 100644
--- a/src/gun.erl
+++ b/src/gun.erl
@@ -1081,8 +1081,14 @@ commands([{state, ProtoState}|Tail], State) ->
%% of the intermediaries properly.
commands([{origin, Scheme, Host, Port, Type}|Tail],
State=#state{transport=Transport, protocol=Protocol,
- origin_host=IntermediateHost, origin_port=IntermediatePort,
- intermediaries=Intermediaries}) ->
+ origin_host=IntermediateHost, origin_port=IntermediatePort, intermediaries=Intermediaries,
+ event_handler=EvHandler, event_handler_state=EvHandlerState0}) ->
+ EvHandlerState = EvHandler:origin_changed(#{
+ type => Type,
+ origin_scheme => Scheme,
+ origin_host => Host,
+ origin_port => Port
+ }, EvHandlerState0),
Info = #{
type => Type,
host => IntermediateHost,
@@ -1091,7 +1097,8 @@ commands([{origin, Scheme, Host, Port, Type}|Tail],
protocol => Protocol:name()
},
commands(Tail, State#state{origin_scheme=Scheme,
- origin_host=Host, origin_port=Port, intermediaries=[Info|Intermediaries]});
+ origin_host=Host, origin_port=Port, intermediaries=[Info|Intermediaries],
+ event_handler_state=EvHandlerState});
commands([{switch_transport, Transport, Socket}|Tail], State=#state{
event_handler=EvHandler, event_handler_state=EvHandlerState0}) ->
EvHandlerState = EvHandler:transport_changed(#{