24
1
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:
Evgeniy Khramtsov 2010-12-28 21:09:15 +09:00
parent b47c50145d
commit 4c8b034874

View File

@ -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.