From: Evgeniy Khramtsov Date: Thu, 23 Feb 2017 13:18:29 +0000 (+0300) Subject: Stop all s2s connections via supervisor calls X-Git-Tag: 17.03-beta~12 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0542c65a079153e35d4543cebbb52616ab0eaad4;p=ejabberd Stop all s2s connections via supervisor calls --- 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