summaryrefslogtreecommitdiff
path: root/src/ejabberd_s2s_in.erl
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
parentRemove unused macro (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 f9d9e6f8..4289a8b3 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