Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-23 10:12:19 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-23 10:12:19 +0300
commit7d6811226536fe260d83617a16fd741edb2d97f3 (patch)
tree4a0745ff2168078cf83233bcb68bafcf6cbd4e01 /src/ejabberd_s2s_in.erl
parented34b04e9ba345b6c00980760aa178d91eb783b0 (diff)
Start/stop virtual hosts when reloading configuration file
Diffstat (limited to 'src/ejabberd_s2s_in.erl')
-rw-r--r--src/ejabberd_s2s_in.erl37
1 files changed, 23 insertions, 14 deletions
diff --git a/src/ejabberd_s2s_in.erl b/src/ejabberd_s2s_in.erl
index f9d9e6f85..4289a8b34 100644
--- a/src/ejabberd_s2s_in.erl
+++ b/src/ejabberd_s2s_in.erl
@@ -42,7 +42,8 @@
-export([handle_unexpected_info/2, handle_unexpected_cast/2,
reject_unauthenticated_packet/2, process_closed/2]).
%% API
--export([stop/1, close/1, send/2, update_state/2, establish/1, add_hooks/0]).
+-export([stop/1, close/1, send/2, update_state/2, establish/1,
+ host_up/1, host_down/1]).
-include("ejabberd.hrl").
-include("xmpp.hrl").
@@ -90,19 +91,27 @@ establish(State) ->
update_state(Ref, Callback) ->
xmpp_stream_in:cast(Ref, {update_state, Callback}).
--spec add_hooks() -> ok.
-add_hooks() ->
- lists:foreach(
- fun(Host) ->
- ejabberd_hooks:add(s2s_in_closed, Host, ?MODULE,
- process_closed, 100),
- ejabberd_hooks:add(s2s_in_unauthenticated_packet, Host, ?MODULE,
- reject_unauthenticated_packet, 100),
- ejabberd_hooks:add(s2s_in_handle_info, Host, ?MODULE,
- handle_unexpected_info, 100),
- ejabberd_hooks:add(s2s_in_handle_cast, Host, ?MODULE,
- handle_unexpected_cast, 100)
- end, ?MYHOSTS).
+-spec host_up(binary()) -> ok.
+host_up(Host) ->
+ ejabberd_hooks:add(s2s_in_closed, Host, ?MODULE,
+ process_closed, 100),
+ ejabberd_hooks:add(s2s_in_unauthenticated_packet, Host, ?MODULE,
+ reject_unauthenticated_packet, 100),
+ ejabberd_hooks:add(s2s_in_handle_info, Host, ?MODULE,
+ handle_unexpected_info, 100),
+ ejabberd_hooks:add(s2s_in_handle_cast, Host, ?MODULE,
+ handle_unexpected_cast, 100).
+
+-spec host_down(binary()) -> ok.
+host_down(Host) ->
+ ejabberd_hooks:delete(s2s_in_closed, Host, ?MODULE,
+ process_closed, 100),
+ ejabberd_hooks:delete(s2s_in_unauthenticated_packet, Host, ?MODULE,
+ reject_unauthenticated_packet, 100),
+ ejabberd_hooks:delete(s2s_in_handle_info, Host, ?MODULE,
+ handle_unexpected_info, 100),
+ ejabberd_hooks:delete(s2s_in_handle_cast, Host, ?MODULE,
+ handle_unexpected_cast, 100).
%%%===================================================================
%%% Hooks