diff options
author | Christophe Romain <christophe.romain@process-one.net> | 2007-06-15 15:23:26 +0000 |
---|---|---|
committer | Christophe Romain <christophe.romain@process-one.net> | 2007-06-15 15:23:26 +0000 |
commit | d62cd3a128313f94595a93ead9bbba56f8f10347 (patch) | |
tree | 628ba5a20a36135ff9c5b60f13769458d6dda0db | |
parent | * Adding missing ejabberd-1.1.3 tag. (diff) | |
parent | make install does not overwrites existing ejabberd.cfg anymore, ejabberd.cfg-... (diff) |
added 1.1.3 tag for package generation
SVN Revision: 784
-rw-r--r-- | src/ejabberd_c2s.erl | 7 | ||||
-rw-r--r-- | src/ejabberd_sm.erl | 8 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 84c855c30..056a07c97 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -1354,7 +1354,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]), @@ -1633,12 +1633,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 7f4d6b87a..c020c0463 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -18,7 +18,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, @@ -101,8 +101,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_session(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, Presence]). unset_presence(SID, User, Server, Resource, Status) -> set_session(SID, User, Server, Resource, undefined), |