aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_sm.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r--src/ejabberd_sm.erl20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl
index 896a1b9e6..7eb943d8f 100644
--- a/src/ejabberd_sm.erl
+++ b/src/ejabberd_sm.erl
@@ -10,7 +10,8 @@
-author('alexey@sevcom.net').
-vsn('$Revision$ ').
--export([start/0, init/0, open_session/2, close_session/2]).
+-export([start/0, init/0, open_session/2, close_session/2,
+ get_user_resources/1]).
-include_lib("mnemosyne/include/mnemosyne.hrl").
-include("ejabberd.hrl").
@@ -240,3 +241,20 @@ do_route(From, To, Packet) ->
false
end.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+get_user_resources(User) ->
+ F = fun() ->
+ mnemosyne:eval(query [X.resource || X <- table(user_resource),
+ X.user = User]
+ end)
+ end,
+ case mnesia:transaction(F) of
+ {atomic, Rs} ->
+ Rs;
+ {aborted, Reason} ->
+ ?DEBUG("delivery failed: ~p~n", [Reason]),
+ []
+ end.
+
+