1
0
Fork 0
mirror of https://github.com/processone/ejabberd synced 2025-10-05 19:42:11 +02:00

*** empty log message ***

SVN Revision: 47
This commit is contained in:
Alexey Shchepin 2003-01-22 20:40:40 +00:00
parent f0427ecab5
commit dcfaa68b7d
15 changed files with 241 additions and 97 deletions

View file

@ -12,8 +12,9 @@
-export([]).
-export([start/0, init/0,
-export([start/1,
process_iq/3,
process_local_iq/3,
get_subscription_lists/1,
in_subscription/3,
out_subscription/3]).
@ -32,40 +33,19 @@
xattrs = [],
xs = []}).
-define(ME, ejabberd_mod_roster).
start() ->
register(?ME, spawn(mod_roster, init, [])).
init() ->
start(Type) ->
mnesia:create_table(roster,[{disc_copies, [node()]},
{attributes, record_info(fields, roster)}]),
mnesia:add_table_index(roster, user),
ejabberd_local:register_iq_handler(?NS_ROSTER,
?MODULE, process_iq),
loop().
gen_iq_handler:add_iq_handler(ejabberd_local, ?NS_ROSTER,
?MODULE, process_local_iq, Type).
loop() ->
receive
{process_iq, From, To, {iq, ID, Type, XMLNS, SubEl}} ->
case Type of
set ->
ResIQ = process_iq_set(From, To,
{iq, ID, Type, XMLNS, SubEl}),
ejabberd_router ! {route,
To,
From,
jlib:iq_to_xml(ResIQ)},
loop();
get ->
ResIQ = process_iq_get(From, To,
{iq, ID, Type, XMLNS, SubEl}),
ejabberd_router ! {route,
To,
From,
jlib:iq_to_xml(ResIQ)},
loop()
end
process_local_iq(From, To, {iq, _, Type, _, _} = IQ) ->
case Type of
set ->
process_iq_set(From, To, IQ);
get ->
process_iq_get(From, To, IQ)
end.
@ -75,7 +55,7 @@ process_iq(From, To, IQ) ->
{_, Server, _} = From,
case ?MYNAME of
Server ->
?ME ! {process_iq, From, To, IQ},
process_local_iq(From, To, IQ),
ignore;
_ ->
{iq, ID, error, XMLNS,