aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2017-12-19 18:59:25 +0100
committerHolger Weiss <holger@zedat.fu-berlin.de>2017-12-19 18:59:25 +0100
commit63a60f1cd895b2d86265cf31323adaca53c176e8 (patch)
tree32485b57cafb6d81ddcc377b58e392741f262958 /src
parentChange loglevel of TLS failures (diff)
ejabberd_sm: Fix get_session_sid/3
Let get_session_sid/3 cope with multiple session table entries for a given resource.
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_sm.erl7
1 files 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()].