diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-02-23 10:12:19 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-02-23 10:12:19 +0300 |
commit | 7d6811226536fe260d83617a16fd741edb2d97f3 (patch) | |
tree | 4a0745ff2168078cf83233bcb68bafcf6cbd4e01 /src/ejabberd_c2s.erl | |
parent | Remove unused macro (diff) |
Start/stop virtual hosts when reloading configuration file
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r-- | src/ejabberd_c2s.erl | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 59b5c32a9..daf9c85a1 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -48,7 +48,8 @@ %% API -export([get_presence/1, get_subscription/2, get_subscribed/1, open_session/1, call/3, send/2, close/1, close/2, stop/1, - reply/2, copy_state/2, set_timeout/2, route/2, add_hooks/1]). + reply/2, copy_state/2, set_timeout/2, route/2, + host_up/1, host_down/1]). -include("ejabberd.hrl"). -include("xmpp.hrl"). @@ -145,8 +146,8 @@ route(Pid, Term) -> set_timeout(State, Timeout) -> xmpp_stream_in:set_timeout(State, Timeout). --spec add_hooks(binary()) -> ok. -add_hooks(Host) -> +-spec host_up(binary()) -> ok. +host_up(Host) -> ejabberd_hooks:add(c2s_closed, Host, ?MODULE, process_closed, 100), ejabberd_hooks:add(c2s_terminated, Host, ?MODULE, process_terminated, 100), @@ -157,6 +158,18 @@ add_hooks(Host) -> ejabberd_hooks:add(c2s_handle_cast, Host, ?MODULE, handle_unexpected_cast, 100). +-spec host_down(binary()) -> ok. +host_down(Host) -> + ejabberd_hooks:delete(c2s_closed, Host, ?MODULE, process_closed, 100), + ejabberd_hooks:delete(c2s_terminated, Host, ?MODULE, + process_terminated, 100), + ejabberd_hooks:delete(c2s_unauthenticated_packet, Host, ?MODULE, + reject_unauthenticated_packet, 100), + ejabberd_hooks:delete(c2s_handle_info, Host, ?MODULE, + process_info, 100), + ejabberd_hooks:delete(c2s_handle_cast, Host, ?MODULE, + handle_unexpected_cast, 100). + %% Copies content of one c2s state to another. %% This is needed for session migration from one pid to another. -spec copy_state(state(), state()) -> state(). |