]> granicus.if.org Git - ejabberd/commitdiff
External Component Connection Hooks
authorxmppjingle <barata7@gmail.com>
Mon, 18 Jul 2016 20:55:10 +0000 (17:55 -0300)
committerxmppjingle <barata7@gmail.com>
Mon, 18 Jul 2016 20:55:10 +0000 (17:55 -0300)
src/ejabberd_service.erl

index 465fb587a3a680babe7bc0793213e10beb5f4d47..36047556599631651cade981dfa58583c5dc7f34 100644 (file)
@@ -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}.
 
 %%----------------------------------------------------------------------