From 80fc34fb0c603a033958f14ae7b5ccabaf8562e4 Mon Sep 17 00:00:00 2001 From: Nathan Bruning Date: Tue, 19 Jan 2016 23:48:48 +0100 Subject: [PATCH] Fix presence-based delivery --- src/mod_pubsub.erl | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index 616c64929..b6185852b 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -3170,17 +3170,15 @@ sub_option_can_deliver(_, _, _) -> true. presence_can_deliver(_, false) -> true; presence_can_deliver({User, Server, Resource}, true) -> - case mnesia:dirty_match_object({session, '_', '_', {User, Server}, '_', '_'}) of + case ejabberd_sm:get_user_present_resources(User, Server) of [] -> false; Ss -> lists:foldl(fun (_, true) -> true; - ({session, _, _, _, undefined, _}, _Acc) -> - false; - ({session, {_, _, R}, _, _, _Priority, _}, _Acc) -> - case Resource of + ({_, R}, _Acc) -> + case Resource of <<>> -> true; R -> true; _ -> false