mirror of
https://github.com/processone/ejabberd.git
synced 2024-07-04 23:15:31 +02:00
Check a node of a receiver, not a monitor.
This should fix the previous commit (EJABS-1798)
This commit is contained in:
parent
438dc57def
commit
2948cddebf
|
@ -1747,11 +1747,12 @@ handle_info({migrate, Node}, StateName, StateData) ->
|
|||
fsm_next_state(StateName, StateData)
|
||||
end;
|
||||
handle_info({migrate_shutdown, Node, After}, StateName, StateData) ->
|
||||
if StateData#state.sockmod == ejabberd_frontend_socket orelse
|
||||
StateData#state.xml_socket == true orelse
|
||||
node(StateData#state.socket_monitor) /= node() ->
|
||||
case StateData#state.sockmod == ejabberd_frontend_socket orelse
|
||||
StateData#state.xml_socket == true orelse
|
||||
is_remote_receiver(StateData#state.socket) of
|
||||
true ->
|
||||
migrate(self(), Node, After);
|
||||
true ->
|
||||
false ->
|
||||
self() ! system_shutdown
|
||||
end,
|
||||
fsm_next_state(StateName, StateData);
|
||||
|
@ -3609,3 +3610,8 @@ get_jid_from_opts(Opts) ->
|
|||
_ ->
|
||||
error
|
||||
end.
|
||||
|
||||
is_remote_receiver(#socket_state{receiver = Pid}) when is_pid(Pid) ->
|
||||
node(Pid) /= node();
|
||||
is_remote_receiver(_) ->
|
||||
false.
|
||||
|
|
Loading…
Reference in New Issue
Block a user