mirror of
https://github.com/processone/ejabberd.git
synced 2024-06-16 22:05:29 +02:00
Change c2s state before offline messages resending
This commit is contained in:
parent
b47c50145d
commit
4c8b034874
|
@ -1733,37 +1733,33 @@ presence_update(From, Packet, StateData) ->
|
||||||
StateData#state.pres_invis,
|
StateData#state.pres_invis,
|
||||||
?DEBUG("from unavail = ~p~n", [FromUnavail]),
|
?DEBUG("from unavail = ~p~n", [FromUnavail]),
|
||||||
NewState =
|
NewState =
|
||||||
|
NewStateData = StateData#state{pres_last = Packet,
|
||||||
|
pres_invis = false,
|
||||||
|
pres_timestamp = Timestamp},
|
||||||
if
|
if
|
||||||
FromUnavail ->
|
FromUnavail ->
|
||||||
ejabberd_hooks:run(user_available_hook,
|
ejabberd_hooks:run(user_available_hook,
|
||||||
StateData#state.server,
|
NewStateData#state.server,
|
||||||
[StateData#state.jid]),
|
[NewStateData#state.jid]),
|
||||||
if NewPriority >= 0 ->
|
if NewPriority >= 0 ->
|
||||||
resend_offline_messages(StateData),
|
resend_offline_messages(NewStateData),
|
||||||
resend_subscription_requests(StateData);
|
resend_subscription_requests(NewStateData);
|
||||||
true ->
|
true ->
|
||||||
ok
|
ok
|
||||||
end,
|
end,
|
||||||
presence_broadcast_first(
|
presence_broadcast_first(From, NewStateData, Packet);
|
||||||
From, StateData#state{pres_last = Packet,
|
|
||||||
pres_invis = false,
|
|
||||||
pres_timestamp = Timestamp
|
|
||||||
}, Packet);
|
|
||||||
true ->
|
true ->
|
||||||
presence_broadcast_to_trusted(StateData,
|
presence_broadcast_to_trusted(NewStateData,
|
||||||
From,
|
From,
|
||||||
StateData#state.pres_f,
|
NewStateData#state.pres_f,
|
||||||
StateData#state.pres_a,
|
NewStateData#state.pres_a,
|
||||||
Packet),
|
Packet),
|
||||||
if OldPriority < 0, NewPriority >= 0 ->
|
if OldPriority < 0, NewPriority >= 0 ->
|
||||||
resend_offline_messages(StateData);
|
resend_offline_messages(NewStateData);
|
||||||
true ->
|
true ->
|
||||||
ok
|
ok
|
||||||
end,
|
end,
|
||||||
StateData#state{pres_last = Packet,
|
NewStateData
|
||||||
pres_invis = false,
|
|
||||||
pres_timestamp = Timestamp
|
|
||||||
}
|
|
||||||
end,
|
end,
|
||||||
NewState
|
NewState
|
||||||
end.
|
end.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user