From 35d19b32f40a4f6aedecca36c3145ab3013ecf87 Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Sat, 20 May 2017 22:36:32 +0300 Subject: Implement cache for mod_privacy/mod_blocking --- src/mod_roster.erl | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'src/mod_roster.erl') diff --git a/src/mod_roster.erl b/src/mod_roster.erl index d1dc714ef..28bc06171 100644 --- a/src/mod_roster.erl +++ b/src/mod_roster.erl @@ -368,15 +368,16 @@ get_roster_item(LUser, LServer, LJID) -> {ok, Item} -> Item; error -> - #roster{usj = {LUser, LServer, LJID}, - us = {LUser, LServer}, jid = LJID} + LBJID = jid:remove_resource(LJID), + #roster{usj = {LUser, LServer, LBJID}, + us = {LUser, LServer}, jid = LBJID} end. get_subscription_and_groups(LUser, LServer, LJID) -> + LBJID = jid:remove_resource(LJID), Mod = gen_mod:db_mod(LServer, ?MODULE), Res = case use_cache(Mod, LServer, roster) of true -> - LBJID = jid:remove_resource(LJID), ets_cache:lookup( ?ROSTER_ITEM_CACHE, {LUser, LServer, LBJID}, fun() -> @@ -384,19 +385,12 @@ get_subscription_and_groups(LUser, LServer, LJID) -> case lists:keyfind(LBJID, #roster.jid, Items) of #roster{subscription = Sub, groups = Groups} -> {ok, {Sub, Groups}}; - false when element(3, LJID) == <<"">> -> - error; false -> - case lists:keyfind(LJID, #roster.jid, Items) of - {Sub, Groups} -> - {ok, {Sub, Groups}}; - false -> - error - end + error end end); false -> - Mod:read_subscription_and_groups(LUser, LServer, LJID) + Mod:read_subscription_and_groups(LUser, LServer, LBJID) end, case Res of {ok, SubAndGroups} -> -- cgit v1.2.3