From 63a60f1cd895b2d86265cf31323adaca53c176e8 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Tue, 19 Dec 2017 18:59:25 +0100 Subject: [PATCH] ejabberd_sm: Fix get_session_sid/3 Let get_session_sid/3 cope with multiple session table entries for a given resource. --- src/ejabberd_sm.erl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index 3df1d88e0..97e599253 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -314,8 +314,11 @@ get_session_sid(User, Server, Resource) -> LResource = jid:resourceprep(Resource), Mod = get_sm_backend(LServer), case online(get_sessions(Mod, LUser, LServer, LResource)) of - [#session{sid = SID}] -> SID; - _ -> none + [] -> + none; + Ss -> + #session{sid = SID} = lists:max(Ss), + SID end. -spec get_session_sids(binary(), binary()) -> [sid()].