aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2012-09-27 12:34:26 +1000
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2012-09-27 12:39:52 +1000
commit083dfe01ea4159cd9c0dcd407bd8e8aca12edf2f (patch)
treeba4649a44012f7f67590ab1eb4832b05fb97076a /src
parentadd OSX compatibility note (diff)
Check a node of a migrating process (EJABS-1908)
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_c2s.erl6
-rw-r--r--src/mod_muc/mod_muc_room.erl6
-rw-r--r--src/web/ejabberd_bosh.erl6
3 files changed, 12 insertions, 6 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 33563740d..c7be11e63 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -221,8 +221,10 @@ stop_or_detach(FsmRef) ->
end.
-migrate(FsmRef, Node, After) ->
- erlang:send_after(After, FsmRef, {migrate, Node}).
+migrate(FsmRef, Node, After) when node(FsmRef) == node() ->
+ erlang:send_after(After, FsmRef, {migrate, Node});
+migrate(_FsmRef, _Node, _After) ->
+ ok.
migrate_shutdown(FsmRef, Node, After) ->
FsmRef ! {migrate_shutdown, Node, After}.
diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl
index 6c139d5c5..77142ee67 100644
--- a/src/mod_muc/mod_muc_room.erl
+++ b/src/mod_muc/mod_muc_room.erl
@@ -117,8 +117,10 @@ start_link(StateName, StateData) ->
(?GEN_FSM):start_link(?MODULE, [StateName, StateData],
?FSMOPTS).
-migrate(FsmRef, Node, After) ->
- erlang:send_after(After, FsmRef, {migrate, Node}).
+migrate(FsmRef, Node, After) when node(FsmRef) == node() ->
+ erlang:send_after(After, FsmRef, {migrate, Node});
+migrate(_FsmRef, _Node, _After) ->
+ ok.
moderate_room_history(FsmRef, Nick) ->
(?GEN_FSM):sync_send_all_state_event(FsmRef,
diff --git a/src/web/ejabberd_bosh.erl b/src/web/ejabberd_bosh.erl
index c33b058a0..2264aa0eb 100644
--- a/src/web/ejabberd_bosh.erl
+++ b/src/web/ejabberd_bosh.erl
@@ -206,8 +206,10 @@ sockname(_Socket) -> {ok, {{0, 0, 0, 0}, 0}}.
peername({http_bind, _FsmRef, IP}) -> {ok, IP}.
-migrate(FsmRef, Node, After) ->
- erlang:send_after(After, FsmRef, {migrate, Node}).
+migrate(FsmRef, Node, After) when node(FsmRef) == node() ->
+ erlang:send_after(After, FsmRef, {migrate, Node});
+migrate(_FsmRef, _Node, _After) ->
+ ok.
process_request(Data, IP, Type) ->
Opts1 = ejabberd_c2s_config:get_c2s_limits(),