aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_pep.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2021-06-09 15:58:49 +0200
committerKim Alvefur <zash@zash.se>2021-06-09 15:58:49 +0200
commitc880dee2af4b1f5e184c3a3c7f70036694d9c1f8 (patch)
treef0bcecd7be12b067e31e7aa05354fc17a2d9cc64 /plugins/mod_pep.lua
parent351a197fbdd99b11505c283ae8c3f414bee38885 (diff)
downloadprosody-c880dee2af4b1f5e184c3a3c7f70036694d9c1f8.tar.gz
prosody-c880dee2af4b1f5e184c3a3c7f70036694d9c1f8.zip
mod_pubsub,mod_pep: Support "max" as 'pubsub#max_items'
Fixes #1643 API change: The argument to archive_itemstore() changes type to integer
Diffstat (limited to 'plugins/mod_pep.lua')
-rw-r--r--plugins/mod_pep.lua14
1 files changed, 11 insertions, 3 deletions
diff --git a/plugins/mod_pep.lua b/plugins/mod_pep.lua
index da74639e..f9e2f808 100644
--- a/plugins/mod_pep.lua
+++ b/plugins/mod_pep.lua
@@ -35,6 +35,13 @@ local known_nodes = module:open_store("pep");
local max_max_items = module:get_option_number("pep_max_items", 256);
+local function tonumber_max_items(n)
+ if n == "max" then
+ return max_max_items;
+ end
+ return tonumber(n);
+end
+
function module.save()
return {
services = services;
@@ -56,7 +63,7 @@ function is_item_stanza(item)
end
function check_node_config(node, actor, new_config) -- luacheck: ignore 212/node 212/actor
- if (new_config["max_items"] or 1) > max_max_items then
+ if (tonumber_max_items(new_config["max_items"]) or 1) > max_max_items then
return false;
end
if new_config["access_model"] ~= "presence"
@@ -102,13 +109,14 @@ end
local function simple_itemstore(username)
local driver = storagemanager.get_driver(module.host, "pep_data");
return function (config, node)
+ local max_items = tonumber_max_items(config["max_items"]);
if config["persist_items"] then
module:log("debug", "Creating new persistent item store for user %s, node %q", username, node);
local archive = driver:open("pep_"..node, "archive");
- return lib_pubsub.archive_itemstore(archive, config, username, node, false);
+ return lib_pubsub.archive_itemstore(archive, max_items, username, node, false);
else
module:log("debug", "Creating new ephemeral item store for user %s, node %q", username, node);
- return cache.new(tonumber(config["max_items"]));
+ return cache.new(max_items);
end
end
end