diff mod_pubsub_serverinfo/mod_pubsub_serverinfo.lua @ 5816:45d0802d0787

mod_pubsub_serverinfo: Allow configuration of node persistence/deletion
author Matthew Wild <mwild1@gmail.com>
date Mon, 08 Jan 2024 15:54:09 +0000
parents 77c5709bd57a
children 7905766d01f6
line wrap: on
line diff
--- a/mod_pubsub_serverinfo/mod_pubsub_serverinfo.lua	Mon Jan 08 15:53:21 2024 +0000
+++ b/mod_pubsub_serverinfo/mod_pubsub_serverinfo.lua	Mon Jan 08 15:54:09 2024 +0000
@@ -8,6 +8,8 @@
 local actor = module.host .. "/modules/" .. module.name;
 local publication_interval = module:get_option(module.name .. "_publication_interval") or 300;
 local cache_ttl = module:get_option(module.name .. "_cache_ttl") or 3600;
+local delete_node_on_unload = module:get_option_boolean(module.name.."_delete_node_on_unload", false);
+local persist_items = module:get_option_boolean(module.name.."_persist_items", true);
 
 local xmlns_pubsub = "http://jabber.org/protocol/pubsub";
 
@@ -39,7 +41,9 @@
 
 function module.unload()
 	-- This removes all subscribers, which may or may not be desirable, depending on the reason for the unload.
-	delete_node(); -- Should this block, to delay unload() until the node is deleted?
+	if delete_node_on_unload then
+		delete_node();
+	end
 end
 
 -- Returns a promise of a boolean
@@ -84,7 +88,7 @@
 						:text_tag("value", "1")
 						:up()
 					:tag("field", { var = "pubsub#persist_items" })
-						:text_tag("value", "0")
+						:text_tag("value", persist_items and "1" or "0")
 
 	module:log("debug", "Sending request to create pub/sub node '%s' at %s", node, service)
 	return module:send_iq(request):next(