aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxmppjingle <barata7@gmail.com>2016-07-21 14:03:01 -0300
committerxmppjingle <barata7@gmail.com>2016-07-21 14:03:01 -0300
commit6983dfa21f2117ebb3d6c2921297708211fc2439 (patch)
tree7c2209a95727aec46d112e297453ea719daf8a0a
parentMerge remote-tracking branch 'processone/master' (diff)
External Component Hook
Changed Hook Trigger Event and included a Reason upon component_disconnected/2 Hook
-rw-r--r--src/ejabberd_service.erl10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/ejabberd_service.erl b/src/ejabberd_service.erl
index 360475565..9d72b17b4 100644
--- a/src/ejabberd_service.erl
+++ b/src/ejabberd_service.erl
@@ -290,19 +290,13 @@ stream_established({xmlstreamelement, El}, StateData) ->
end,
{next_state, stream_established, StateData};
stream_established({xmlstreamend, _Name}, StateData) ->
- ejabberd_hooks:run(component_disconnected,
- [StateData#state.host]),
{stop, normal, StateData};
stream_established({xmlstreamerror, _}, StateData) ->
- ejabberd_hooks:run(component_disconnected,
- [StateData#state.host]),
send_text(StateData,
<<(?INVALID_XML_ERR)/binary,
(?STREAM_TRAILER)/binary>>),
{stop, normal, StateData};
stream_established(closed, StateData) ->
- ejabberd_hooks:run(component_disconnected,
- [StateData#state.host]),
{stop, normal, StateData}.
%%----------------------------------------------------------------------
@@ -390,7 +384,9 @@ terminate(Reason, StateName, StateData) ->
case StateName of
stream_established ->
lists:foreach(fun (H) ->
- ejabberd_router:unregister_route(H)
+ ejabberd_router:unregister_route(H),
+ ejabberd_hooks:run(component_disconnected,
+ [StateData#state.host, Reason])
end,
dict:fetch_keys(StateData#state.host_opts));
_ -> ok