diff options
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r-- | src/ejabberd_sm.erl | 20 |
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. + + |