aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ejabberd_sm.erl6
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