diff options
author | Paweł Chmielowski <pchmielowski@process-one.net> | 2018-09-04 09:52:41 +0200 |
---|---|---|
committer | Paweł Chmielowski <pchmielowski@process-one.net> | 2018-09-04 09:52:41 +0200 |
commit | 57936bfa4e48958031b908cfe3596926c4441fb5 (patch) | |
tree | 976eef55383367675b6af0110585f0a9549591ac /src/mod_ping.erl | |
parent | Correctly handle empty result with RSM (diff) |
Don't stop sending pings when receiving timeout for timeout_action=none
Diffstat (limited to 'src/mod_ping.erl')
-rw-r--r-- | src/mod_ping.erl | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/mod_ping.erl b/src/mod_ping.erl index 88146b14b..e0b4a36a9 100644 --- a/src/mod_ping.erl +++ b/src/mod_ping.erl @@ -123,21 +123,22 @@ handle_cast({stop_ping, JID}, State) -> Timers = del_timer(JID, State#state.timers), {noreply, State#state{timers = Timers}}; handle_cast({iq_reply, timeout, JID}, State) -> - Timers = del_timer(JID, State#state.timers), ejabberd_hooks:run(user_ping_timeout, State#state.host, [JID]), - case State#state.timeout_action of - kill -> - #jid{user = User, server = Server, - resource = Resource} = - JID, - case ejabberd_sm:get_session_pid(User, Server, Resource) - of - Pid when is_pid(Pid) -> ejabberd_c2s:close(Pid, ping_timeout); - _ -> ok - end; - _ -> ok - end, + Timers = case State#state.timeout_action of + kill -> + #jid{user = User, server = Server, + resource = Resource} = + JID, + case ejabberd_sm:get_session_pid(User, Server, Resource) + of + Pid when is_pid(Pid) -> ejabberd_c2s:close(Pid, ping_timeout); + _ -> ok + end, + del_timer(JID, State#state.timers); + _ -> + State#state.timers + end, {noreply, State#state{timers = Timers}}; handle_cast({iq_reply, #iq{}, _JID}, State) -> {noreply, State}; |