summaryrefslogtreecommitdiff
path: root/src/ejabberd_s2s.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-23 16:18:29 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-23 16:18:29 +0300
commit0542c65a079153e35d4543cebbb52616ab0eaad4 (patch)
tree9505a87294e321ea4b6a6740e5ffdd5aa48ec675 /src/ejabberd_s2s.erl
parentFix elixir tests (diff)
Stop all s2s connections via supervisor calls
Diffstat (limited to 'src/ejabberd_s2s.erl')
-rw-r--r--src/ejabberd_s2s.erl14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/ejabberd_s2s.erl b/src/ejabberd_s2s.erl
index 76fb522f..99ee6de9 100644
--- a/src/ejabberd_s2s.erl
+++ b/src/ejabberd_s2s.erl
@@ -595,14 +595,18 @@ supervisor_count(Supervisor) ->
length(Result)
end.
+-spec stop_all_connections() -> ok.
stop_all_connections() ->
lists:foreach(
fun({_Id, Pid, _Type, _Module}) ->
- exit(Pid, kill)
- end,
- supervisor:which_children(ejabberd_s2s_in_sup) ++
- supervisor:which_children(ejabberd_s2s_out_sup)),
- mnesia:clear_table(s2s).
+ supervisor:terminate_child(ejabberd_s2s_in_sup, Pid)
+ end, supervisor:which_children(ejabberd_s2s_in_sup)),
+ lists:foreach(
+ fun({_Id, Pid, _Type, _Module}) ->
+ supervisor:terminate_child(ejabberd_s2s_out_sup, Pid)
+ end, supervisor:which_children(ejabberd_s2s_out_sup)),
+ mnesia:clear_table(s2s),
+ ok.
%%%----------------------------------------------------------------------
%%% Update Mnesia tables