aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2007-06-15 15:23:26 +0000
committerChristophe Romain <christophe.romain@process-one.net>2007-06-15 15:23:26 +0000
commitd62cd3a128313f94595a93ead9bbba56f8f10347 (patch)
tree628ba5a20a36135ff9c5b60f13769458d6dda0db
parent* Adding missing ejabberd-1.1.3 tag. (diff)
parentmake 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.erl7
-rw-r--r--src/ejabberd_sm.erl8
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),