aboutsummaryrefslogtreecommitdiff
path: root/src/mod_roster.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-05-20 22:36:32 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-05-20 22:36:32 +0300
commit35d19b32f40a4f6aedecca36c3145ab3013ecf87 (patch)
tree2d724e209978999b79fe69be9d0be679cf4fb559 /src/mod_roster.erl
parentexport_all is not needed here (diff)
Implement cache for mod_privacy/mod_blocking
Diffstat (limited to 'src/mod_roster.erl')
-rw-r--r--src/mod_roster.erl18
1 files changed, 6 insertions, 12 deletions
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} ->