Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2010-12-28 15:09:15 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2010-12-28 15:12:33 +0300
commita4728d14d5b565bd22ef8a777534bdf15d95b180 (patch)
treeabf96eca6eb63ad3e0ca16289539c665075c8535 /src/ejabberd_c2s.erl
parentf2925d8efc639bd9094720e0eec06003839b4f66 (diff)
Change c2s state before offline messages resending
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 53f02507f..8d2e6e39f 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -1772,35 +1772,32 @@ presence_update(From, Packet, StateData) ->
FromUnavail = (StateData#state.pres_last == undefined),
?DEBUG("from unavail = ~p~n", [FromUnavail]),
NewState =
+ NewStateData = StateData#state{pres_last = Packet,
+ pres_timestamp = Timestamp},
if
FromUnavail ->
ejabberd_hooks:run(user_available_hook,
- StateData#state.server,
- [StateData#state.jid]),
+ NewStateData#state.server,
+ [NewStateData#state.jid]),
if NewPriority >= 0 ->
- resend_offline_messages(StateData),
- resend_subscription_requests(StateData);
+ resend_offline_messages(NewStateData),
+ resend_subscription_requests(NewStateData);
true ->
ok
end,
- presence_broadcast_first(
- From, StateData#state{pres_last = Packet,
- pres_timestamp = Timestamp
- }, Packet);
+ presence_broadcast_first(From, NewStateData, Packet);
true ->
- presence_broadcast_to_trusted(StateData,
+ presence_broadcast_to_trusted(NewStateData,
From,
- StateData#state.pres_f,
- StateData#state.pres_a,
+ NewStateData#state.pres_f,
+ NewStateData#state.pres_a,
Packet),
if OldPriority < 0, NewPriority >= 0 ->
- resend_offline_messages(StateData);
+ resend_offline_messages(NewStateData);
true ->
ok
end,
- StateData#state{pres_last = Packet,
- pres_timestamp = Timestamp
- }
+ NewStateData
end,
NewState
end.