diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mod_ping.erl | 9 |
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}) -> |