aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_sm.erl
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2018-06-15 11:28:44 +0200
committerBadlop <badlop@process-one.net>2018-06-15 11:28:57 +0200
commit3ec623f329bb1dd0829ec1c246bb655e569a737f (patch)
treeeb4c68a0848ce73c57c3f5852cf9542ce7b51285 /src/ejabberd_sm.erl
parentImprove type spec (diff)
Make connected_users_info and user_sessions_info DB-agnostic (#2448)
The result returned by connected_users_info command has changed, and is now similar to the result of user_sessions_info. Notice that num_active_users and process_rosteritems still require Mnesia.
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r--src/ejabberd_sm.erl13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl
index ef6a62979..936a3159b 100644
--- a/src/ejabberd_sm.erl
+++ b/src/ejabberd_sm.erl
@@ -242,10 +242,12 @@ get_user_info(User, Server) ->
LServer = jid:nameprep(Server),
Mod = get_sm_backend(LServer),
Ss = online(get_sessions(Mod, LUser, LServer)),
- [{LResource, [{node, node(Pid)}|Info]}
+ [{LResource, [{node, node(Pid)}, {ts, Ts}, {pid, Pid},
+ {priority, Priority} | Info]}
|| #session{usr = {_, _, LResource},
+ priority = Priority,
info = Info,
- sid = {_, Pid}} <- clean_session_list(Ss)].
+ sid = {Ts, Pid}} <- clean_session_list(Ss)].
-spec get_user_info(binary(), binary(), binary()) -> info() | offline.
@@ -259,8 +261,11 @@ get_user_info(User, Server, Resource) ->
offline;
Ss ->
Session = lists:max(Ss),
- Node = node(element(2, Session#session.sid)),
- [{node, Node}|Session#session.info]
+ {Ts, Pid} = Session#session.sid,
+ Node = node(Pid),
+ Priority = Session#session.priority,
+ [{node, Node}, {ts, Ts}, {pid, Pid}, {priority, Priority}
+ |Session#session.info]
end.
-spec set_presence(sid(), binary(), binary(), binary(),