diff options
Diffstat (limited to 'src/mod_admin_extra.erl')
-rw-r--r-- | src/mod_admin_extra.erl | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index 562087d96..2ad1cc28e 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -47,7 +47,7 @@ srg_delete/2, srg_list/1, srg_get_info/2, srg_get_members/2, srg_user_add/4, srg_user_del/4, send_message/5, send_stanza/3, send_stanza_c2s/4, privacy_set/3, - stats/1, stats/2, mod_opt_type/1, get_commands_spec/0]). + stats/1, stats/2, mod_opt_type/1, get_commands_spec/0, depends/2]). -include("ejabberd.hrl"). @@ -66,6 +66,8 @@ start(_Host, _Opts) -> stop(_Host) -> ejabberd_commands:unregister_commands(get_commands_spec()). +depends(_Host, _Opts) -> + []. %%% %%% Register commands @@ -861,12 +863,15 @@ connected_users_vhost(Host) -> %% Code copied from ejabberd_sm.erl and customized dirty_get_sessions_list2() -> - mnesia:dirty_select( - session, - [{#session{usr = '$1', sid = {'$2', '$3'}, priority = '$4', info = '$5', - _ = '_'}, - [{is_pid, '$3'}], - [['$1', {{'$2', '$3'}}, '$4', '$5']]}]). + Ss = mnesia:dirty_select( + session, + [{#session{usr = '$1', sid = '$2', priority = '$3', info = '$4', + _ = '_'}, + [], + [['$1', '$2', '$3', '$4']]}]), + lists:filter(fun([_USR, _SID, _Priority, Info]) -> + not proplists:get_bool(offline, Info) + end, Ss). %% Make string more print-friendly stringize(String) -> @@ -901,8 +906,8 @@ user_sessions_info(User, Host) -> {'EXIT', _Reason} -> []; Ss -> - lists:filter(fun(#session{sid = {_, Pid}}) -> - is_pid(Pid) + lists:filter(fun(#session{info = Info}) -> + not proplists:get_bool(offline, Info) end, Ss) end, lists:map( |