aboutsummaryrefslogtreecommitdiff
path: root/src/mod_ping.erl
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2020-05-11 17:37:00 +0200
committerBadlop <badlop@process-one.net>2020-05-11 18:22:35 +0200
commit5e70a47f204ab62ff0250725753690662b6e4518 (patch)
tree8e6e2d70da8d20b333f7435934fd89836461d572 /src/mod_ping.erl
parentmod_stun_disco: Bump credentials_lifetime default (diff)
If new session Pid exists when sm_remove is called, then keep Ping (#3260)
Diffstat (limited to 'src/mod_ping.erl')
-rw-r--r--src/mod_ping.erl9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mod_ping.erl b/src/mod_ping.erl
index c83f471d2..5b4fab329 100644
--- a/src/mod_ping.erl
+++ b/src/mod_ping.erl
@@ -184,7 +184,14 @@ user_online(_SID, JID, _Info) ->
-spec user_offline(ejabberd_sm:sid(), jid(), ejabberd_sm:info()) -> ok.
user_offline(_SID, JID, _Info) ->
- stop_ping(JID#jid.lserver, JID).
+ case ejabberd_sm:get_session_pid(JID#jid.luser,
+ JID#jid.lserver,
+ JID#jid.lresource) of
+ none ->
+ stop_ping(JID#jid.lserver, JID);
+ _ ->
+ ok
+ end.
-spec user_send({stanza(), ejabberd_c2s:state()}) -> {stanza(), ejabberd_c2s:state()}.
user_send({Packet, #{jid := JID} = C2SState}) ->