diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_c2s.erl | 7 | ||||
-rw-r--r-- | src/ejabberd_sm.erl | 6 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index bf4a3ac05..98232cf09 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -1362,7 +1362,7 @@ presence_update(From, Packet, StateData) -> get_priority_from_presence(OldPresence) end, NewPriority = get_priority_from_presence(Packet), - update_priority(NewPriority, StateData), + update_priority(NewPriority, Packet, StateData), FromUnavail = (StateData#state.pres_last == undefined) or StateData#state.pres_invis, ?DEBUG("from unavail = ~p~n", [FromUnavail]), @@ -1641,12 +1641,13 @@ roster_change(IJID, ISubscription, StateData) -> end. -update_priority(Pri, StateData) -> +update_priority(Priority, Packet, StateData) -> ejabberd_sm:set_presence(StateData#state.sid, StateData#state.user, StateData#state.server, StateData#state.resource, - Pri). + Priority, + Packet). get_priority_from_presence(PresencePacket) -> case xml:get_subtag(PresencePacket, "priority") of diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index cfc1bb957..fc1706da3 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -19,7 +19,7 @@ bounce_offline_message/3, disconnect_removed_user/2, get_user_resources/2, - set_presence/5, + set_presence/6, unset_presence/5, close_session_unset_presence/5, dirty_get_sessions_list/0, @@ -110,10 +110,10 @@ get_user_resources(User, Server) -> [element(3, S#session.usr) || S <- clean_session_list(Ss)] end. -set_presence(SID, User, Server, Resource, Priority) -> +set_presence(SID, User, Server, Resource, Priority, Presence) -> set_session(SID, User, Server, Resource, Priority), ejabberd_hooks:run(set_presence_hook, jlib:nameprep(Server), - [User, Server, Resource, Priority]). + [User, Server, Resource, Presence]). unset_presence(SID, User, Server, Resource, Status) -> set_session(SID, User, Server, Resource, undefined), |