aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_muc_mam.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2020-05-05 22:21:39 +0200
committerKim Alvefur <zash@zash.se>2020-05-05 22:21:39 +0200
commitebf52208e4105478eebcac3440ceaf58f6630cff (patch)
tree11602e606c0142e3e21d1e665b21d60b824873a4 /plugins/mod_muc_mam.lua
parentd88904312b8f7a2582ce1eb0ee9204fdc2912038 (diff)
downloadprosody-ebf52208e4105478eebcac3440ceaf58f6630cff.tar.gz
prosody-ebf52208e4105478eebcac3440ceaf58f6630cff.zip
MAM: Remove 1% of contents when reaching limits, fix #1545
With mod\_storage\_internal this counts out to 100 messages out of 10 000, meaning should not hit the quota limit immediately until that many messages have been added again.
Diffstat (limited to 'plugins/mod_muc_mam.lua')
-rw-r--r--plugins/mod_muc_mam.lua3
1 files changed, 2 insertions, 1 deletions
diff --git a/plugins/mod_muc_mam.lua b/plugins/mod_muc_mam.lua
index 7eeada6d..a151931f 100644
--- a/plugins/mod_muc_mam.lua
+++ b/plugins/mod_muc_mam.lua
@@ -54,6 +54,7 @@ local archive_store = "muc_log";
local archive = module:open_store(archive_store, "archive");
local archive_item_limit = module:get_option_number("storage_archive_item_limit", archive.caps and archive.caps.quota or 1000);
+local archive_truncate = math.floor(archive_item_limit * 0.99);
if archive.name == "null" or not archive.find then
if not archive.find then
@@ -397,7 +398,7 @@ local function save_to_history(self, stanza)
if not id and (archive.caps and archive.caps.truncate) then
module:log("debug", "User '%s' over quota, truncating archive", room_node);
local truncated = archive:delete(room_node, {
- truncate = archive_item_limit - 1;
+ truncate = archive_truncate;
});
if truncated then
id, err = archive:append(room_node, nil, stored_stanza, time, with);