diff options
-rw-r--r-- | src/ejabberd_sm.erl | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index f7f7447bf..5771a5bbf 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -489,9 +489,13 @@ host_up(Host) -> -spec host_down(binary()) -> ok. host_down(Host) -> Mod = get_sm_backend(Host), + Err = case ejabberd_cluster:get_nodes() of + [Node] when Node == node() -> xmpp:serr_system_shutdown(); + _ -> xmpp:serr_reset() + end, lists:foreach( fun(#session{sid = {_, Pid}}) when node(Pid) == node() -> - ejabberd_c2s:send(Pid, xmpp:serr_system_shutdown()), + ejabberd_c2s:send(Pid, Err), ejabberd_c2s:stop(Pid); (_) -> ok |