broadcast_c2s_shutdown() ->
- Children = supervisor:which_children(ejabberd_c2s_sup),
+ Children = ejabberd_sm:get_all_pids(),
lists:foreach(
- fun({_, C2SPid, _, _}) ->
- C2SPid ! system_shutdown
+ fun(C2SPid) when node(C2SPid) == node() ->
+ C2SPid ! system_shutdown;
+ (_) ->
+ ok
end, Children).
%%%
get_user_info/3,
get_user_ip/3,
get_max_user_sessions/2,
+ get_all_pids/0,
is_existing_resource/3
]).
[{'==', {node, '$1'}, node()}],
['$_']}]).
+-spec get_vh_session_list(binary()) -> [ljid()].
+
get_vh_session_list(Server) ->
LServer = jlib:nameprep(Server),
mnesia:dirty_select(session,
[{#session{usr = '$1', _ = '_'},
[{'==', {element, 2, '$1'}, LServer}], ['$1']}]).
--spec get_vh_session_list(binary()) -> [ljid()].
+-spec get_all_pids() -> [pid()].
+
+get_all_pids() ->
+ mnesia:dirty_select(
+ session,
+ ets:fun2ms(
+ fun(#session{sid = {_, Pid}}) ->
+ Pid
+ end)).
get_vh_session_number(Server) ->
LServer = jlib:nameprep(Server),