From 0542c65a079153e35d4543cebbb52616ab0eaad4 Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Thu, 23 Feb 2017 16:18:29 +0300 Subject: [PATCH] Stop all s2s connections via supervisor calls --- src/ejabberd_s2s.erl | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/ejabberd_s2s.erl b/src/ejabberd_s2s.erl index 76fb522f0..99ee6de9f 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