diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2012-09-27 12:34:26 +1000 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2012-09-27 12:39:52 +1000 |
commit | 083dfe01ea4159cd9c0dcd407bd8e8aca12edf2f (patch) | |
tree | ba4649a44012f7f67590ab1eb4832b05fb97076a /src | |
parent | add OSX compatibility note (diff) |
Check a node of a migrating process (EJABS-1908)
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_c2s.erl | 6 | ||||
-rw-r--r-- | src/mod_muc/mod_muc_room.erl | 6 | ||||
-rw-r--r-- | src/web/ejabberd_bosh.erl | 6 |
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(), |