diff options
author | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-07-18 12:47:29 +0300 |
---|---|---|
committer | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-07-18 12:47:29 +0300 |
commit | 6397dc5d4c3d4cfe44612bd7f4401ed520aa31a0 (patch) | |
tree | 6fb6f5120f5633628a82a1381d7bf998be6efb2c /src | |
parent | Allow flexible timeout format in session_expiry option of mod_mqtt (diff) |
Reset net ticktime on config reload
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_cluster.erl | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/ejabberd_cluster.erl b/src/ejabberd_cluster.erl index c238efc10..9cb189248 100644 --- a/src/ejabberd_cluster.erl +++ b/src/ejabberd_cluster.erl @@ -32,6 +32,8 @@ %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). +%% hooks +-export([set_ticktime/0]). -include("logger.hrl"). @@ -157,18 +159,25 @@ subscribe(Proc) -> Mod:subscribe(Proc). %%%=================================================================== +%%% Hooks +%%%=================================================================== +set_ticktime() -> + Ticktime = ejabberd_option:net_ticktime() div 1000, + net_kernel:set_net_ticktime(Ticktime). + +%%%=================================================================== %%% gen_server API %%%=================================================================== init([]) -> - Ticktime = ejabberd_option:net_ticktime() div 1000, + set_ticktime(), Nodes = ejabberd_option:cluster_nodes(), - _ = net_kernel:set_net_ticktime(Ticktime), lists:foreach(fun(Node) -> net_kernel:connect_node(Node) end, Nodes), Mod = get_mod(), case Mod:init() of ok -> + ejabberd_hooks:add(config_reloaded, ?MODULE, set_ticktime, 50), Mod:subscribe(?MODULE), {ok, #state{}}; {error, Reason} -> @@ -194,7 +203,7 @@ handle_info(Info, State) -> {noreply, State}. terminate(_Reason, _State) -> - ok. + ejabberd_hooks:delete(config_reloaded, ?MODULE, set_ticktime, 50). code_change(_OldVsn, State, _Extra) -> {ok, State}. |