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:
authorBadlop <badlop@process-one.net>2010-04-27 14:33:56 +0400
committerBadlop <badlop@process-one.net>2010-04-27 14:33:56 +0400
commit1c00a9713d575fc505ef1e89ab76471985bb452a (patch)
treebccb8458a7e1456f19e159a30a4bd7f343eda588 /src/ejabberd_sm.erl
parent5e7d8868c0e9c69fde32a53f619a9975f2bfccc5 (diff)
Automatic vcard avatar addition in presence (thanks to Igor Goryachev)(EJAB-208)
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r--src/ejabberd_sm.erl11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl
index 296400f84..782732603 100644
--- a/src/ejabberd_sm.erl
+++ b/src/ejabberd_sm.erl
@@ -47,6 +47,7 @@
register_iq_handler/4,
register_iq_handler/5,
unregister_iq_handler/2,
+ force_update_presence/1,
connected_users/0,
connected_users_number/0,
user_resources/2,
@@ -711,6 +712,16 @@ process_iq(From, To, Packet) ->
ok
end.
+force_update_presence({LUser, _LServer} = US) ->
+ case catch mnesia:dirty_index_read(session, US, #session.us) of
+ {'EXIT', _Reason} ->
+ ok;
+ Ss ->
+ lists:foreach(fun(#session{sid = {_, Pid}}) ->
+ Pid ! {force_update_presence, LUser}
+ end, Ss)
+ end.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% ejabberd commands