diff options
author | Alexey Shchepin <alexey@process-one.net> | 2007-05-03 15:45:24 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2007-05-03 15:45:24 +0000 |
commit | 372944df6c495df219749870c2e8f57b62bbf21d (patch) | |
tree | 4124b23f2961cbd9de58af98e25bc16a4da0df9c | |
parent | * src/ejabberd_sm.erl: Added set_presence_hook (diff) |
* src/ejabberd_sm.erl: Added set_presence_hook
* src/ejabberd_c2s.erl: Likewise
SVN Revision: 761
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | src/ejabberd_c2s.erl | 7 | ||||
-rw-r--r-- | src/ejabberd_sm.erl | 6 |
3 files changed, 8 insertions, 6 deletions
@@ -1,6 +1,7 @@ 2007-05-03 Alexey Shchepin <alexey@sevcom.net> * src/ejabberd_sm.erl: Added set_presence_hook + * src/ejabberd_c2s.erl: Likewise * src/ejabberd_sm.erl: Added check for existence of incoming subscription destination 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), |