diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2014-05-08 21:28:12 +0400 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2014-05-08 21:39:53 +0400 |
commit | 181e7a823e73140fc67db4acbcedd2567f079a12 (patch) | |
tree | 337d564bc65ed638440c09afe68bbaf1631ddfb6 /src/ejabberd_sm.erl | |
parent | TURN support (EJAB-1017) (diff) |
Fix C2S session close on server shutdown
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r-- | src/ejabberd_sm.erl | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index 094918cd9..9fc6a86ef 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -59,6 +59,7 @@ get_user_info/3, get_user_ip/3, get_max_user_sessions/2, + get_all_pids/0, is_existing_resource/3 ]). @@ -283,13 +284,23 @@ dirty_get_my_sessions_list() -> [{'==', {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), |