diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-02-23 16:18:29 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-02-23 16:18:29 +0300 |
commit | 0542c65a079153e35d4543cebbb52616ab0eaad4 (patch) | |
tree | 9505a87294e321ea4b6a6740e5ffdd5aa48ec675 | |
parent | Fix elixir tests (diff) |
Stop all s2s connections via supervisor calls
-rw-r--r-- | src/ejabberd_s2s.erl | 14 |
1 files 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 |