aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxmppjingle <barata7@gmail.com>2016-07-18 17:55:10 -0300
committerxmppjingle <barata7@gmail.com>2016-07-18 17:55:10 -0300
commitfca2f24231928593234630f255753c3b98341c54 (patch)
treeaf968c3da5ec684af2c104bca6c6bf8826f88c8a
parentOmit [info] message with number of queued stanzas (diff)
External Component Connection Hooks
-rw-r--r--src/ejabberd_service.erl12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/ejabberd_service.erl b/src/ejabberd_service.erl
index 465fb587a..360475565 100644
--- a/src/ejabberd_service.erl
+++ b/src/ejabberd_service.erl
@@ -224,8 +224,10 @@ wait_for_handshake({xmlstreamelement, El}, StateData) ->
fun (H) ->
ejabberd_router:register_route(H, ?MYNAME),
?INFO_MSG("Route registered for service ~p~n",
- [H])
- end, dict:fetch_keys(StateData#state.host_opts)),
+ [H]),
+ ejabberd_hooks:run(component_connected,
+ [H])
+ end, dict:fetch_keys(StateData#state.host_opts)),
{next_state, stream_established, StateData};
_ ->
send_text(StateData, ?INVALID_HANDSHAKE_ERR),
@@ -288,13 +290,19 @@ 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}.
%%----------------------------------------------------------------------