aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2019-07-18 12:47:29 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2019-07-18 12:47:29 +0300
commit6397dc5d4c3d4cfe44612bd7f4401ed520aa31a0 (patch)
tree6fb6f5120f5633628a82a1381d7bf998be6efb2c /src
parentAllow 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.erl15
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}.