Diff

plugins/mod_pubsub/pubsub.lib.lua @ 8336:587305c0ff85

mod_pubsub: Fix namespace conflict with the pubsub#owner namespace
author Kim Alvefur <zash@zash.se>
date Wed, 18 Oct 2017 07:49:44 +0200
parent 8334:036e46d12b78
child 8337:dc4ea43ac463
line wrap: on
line diff
--- a/plugins/mod_pubsub/pubsub.lib.lua	Wed Oct 18 07:47:00 2017 +0200
+++ b/plugins/mod_pubsub/pubsub.lib.lua	Wed Oct 18 07:49:44 2017 +0200
@@ -60,7 +60,11 @@
 	if not action then
 		return origin.send(st.error_reply(stanza, "cancel", "bad-request"));
 	end
-	local handler = handlers[stanza.attr.type.."_"..action.name];
+	local prefix = "";
+	if pubsub_tag.attr.xmlns == xmlns_pubsub_owner then
+		prefix = "owner_";
+	end
+	local handler = handlers[prefix..stanza.attr.type.."_"..action.name];
 	if handler then
 		handler(origin, stanza, action, service);
 		return true;
@@ -142,7 +146,7 @@
 	return true;
 end
 
-function handlers.set_delete(origin, stanza, delete, service)
+function handlers.owner_set_delete(origin, stanza, delete, service)
 	local node = delete.attr.node;
 
 	local reply;
@@ -260,7 +264,7 @@
 	return true;
 end
 
-function handlers.set_purge(origin, stanza, purge, service)
+function handlers.owner_set_purge(origin, stanza, purge, service)
 	local node, notify = purge.attr.node, purge.attr.notify;
 	notify = (notify == "1") or (notify == "true");
 	local reply;
@@ -278,7 +282,7 @@
 	return true;
 end
 
-function handlers.get_configure(origin, stanza, config, service)
+function handlers.owner_get_configure(origin, stanza, config, service)
 	local node = config.attr.node;
 	if not node then
 		origin.send(pubsub_error_reply(stanza, "nodeid-required"));
@@ -309,7 +313,7 @@
 	return true;
 end
 
-function handlers.set_configure(origin, stanza, config, service)
+function handlers.owner_set_configure(origin, stanza, config, service)
 	local node = config.attr.node;
 	if not node then
 		origin.send(pubsub_error_reply(stanza, "nodeid-required"));
@@ -342,7 +346,7 @@
 	return true;
 end
 
-function handlers.get_default(origin, stanza, default, service)
+function handlers.owner_get_default(origin, stanza, default, service) -- luacheck: ignore 212/default
 	local pubsub_form_data = {
 		["pubsub#max_items"] = tostring(service.node_defaults["max_items"]);
 		["pubsub#persist_items"] = service.node_defaults["persist_items"]