diff options
Diffstat (limited to 'src/ejabberd_app.erl')
-rw-r--r-- | src/ejabberd_app.erl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl index 2e6d04251..b563b6f6e 100644 --- a/src/ejabberd_app.erl +++ b/src/ejabberd_app.erl @@ -77,6 +77,8 @@ start(_, _) -> prep_stop(State) -> stop_modules(), ejabberd_admin:stop(), + broadcast_c2s_shutdown(), + timer:sleep(5000), State. %% All the processes were killed when this function is called @@ -198,6 +200,13 @@ add_windows_nameservers() -> lists:foreach(fun(IPT) -> inet_db:add_ns(IPT) end, IPTs). +broadcast_c2s_shutdown() -> + Children = supervisor:which_children(ejabberd_c2s_sup), + lists:foreach( + fun({_, C2SPid, _, _}) -> + C2SPid ! system_shutdown + end, Children). + %%% %%% PID file %%% |