aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2017-01-21 00:14:56 +0100
committerHolger Weiss <holger@zedat.fu-berlin.de>2017-01-21 00:14:56 +0100
commit14e771d8714038320cfb1c9b562cf4bf11f8691c (patch)
tree2074eb3fc487b005ab3afea08a185e8e965c498c /src
parentAdd stanza-id to every archived message (#1477) (diff)
mod_pubsub: Fix last item cache for multiple hosts
Don't let the last item cache intermix PubSub items of different virtual domains.
Diffstat (limited to 'src')
-rw-r--r--src/mod_pubsub.erl10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl
index eba2cab29..93c9abe7a 100644
--- a/src/mod_pubsub.erl
+++ b/src/mod_pubsub.erl
@@ -177,7 +177,7 @@
-type(pubsubLastItem() ::
#pubsub_last_item{
- nodeid :: mod_pubsub:nodeIdx(),
+ nodeid :: {binary(), mod_pubsub:nodeIdx()},
itemid :: mod_pubsub:itemId(),
creation :: {erlang:timestamp(), ljid()},
payload :: mod_pubsub:payload()
@@ -3426,7 +3426,7 @@ set_cached_item({_, ServerHost, _}, Nidx, ItemId, Publisher, Payload) ->
set_cached_item(ServerHost, Nidx, ItemId, Publisher, Payload);
set_cached_item(Host, Nidx, ItemId, Publisher, Payload) ->
case is_last_item_cache_enabled(Host) of
- true -> mnesia:dirty_write({pubsub_last_item, Nidx, ItemId,
+ true -> mnesia:dirty_write({pubsub_last_item, {Host, Nidx}, ItemId,
{p1_time_compat:timestamp(), jid:tolower(jid:remove_resource(Publisher))},
Payload});
_ -> ok
@@ -3437,7 +3437,7 @@ unset_cached_item({_, ServerHost, _}, Nidx) ->
unset_cached_item(ServerHost, Nidx);
unset_cached_item(Host, Nidx) ->
case is_last_item_cache_enabled(Host) of
- true -> mnesia:dirty_delete({pubsub_last_item, Nidx});
+ true -> mnesia:dirty_delete({pubsub_last_item, {Host, Nidx}});
_ -> ok
end.
@@ -3447,8 +3447,8 @@ get_cached_item({_, ServerHost, _}, Nidx) ->
get_cached_item(Host, Nidx) ->
case is_last_item_cache_enabled(Host) of
true ->
- case mnesia:dirty_read({pubsub_last_item, Nidx}) of
- [#pubsub_last_item{itemid = ItemId, creation = Creation, payload = Payload}] ->
+ case mnesia:dirty_read({pubsub_last_item, {Host, Nidx}}) of
+ [#pubsub_last_item{itemid = {Host, ItemId}, creation = Creation, payload = Payload}] ->
% [{pubsub_last_item, Nidx, ItemId, Creation,
% Payload}] ->
#pubsub_item{itemid = {ItemId, Nidx},