aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2017-10-18 07:49:44 +0200
committerKim Alvefur <zash@zash.se>2017-10-18 07:49:44 +0200
commit27f92b41f1fe8f42d4730bb874ac869f7c6c308f (patch)
treea051cc5805862dfff7e6ad6baa0ac5463d5df7fc
parent8f1fbd902e481a8afc2f5fdfa70e858ace4f77f8 (diff)
downloadprosody-im-server-27f92b41f1fe8f42d4730bb874ac869f7c6c308f.zip
prosody-im-server-27f92b41f1fe8f42d4730bb874ac869f7c6c308f.tar
mod_pubsub: Fix namespace conflict with the pubsub#owner namespace
-rw-r--r--plugins/mod_pubsub/pubsub.lib.lua16
1 files changed, 10 insertions, 6 deletions
diff --git a/plugins/mod_pubsub/pubsub.lib.lua b/plugins/mod_pubsub/pubsub.lib.lua
index 5d173e4f..e9801e89 100644
--- a/plugins/mod_pubsub/pubsub.lib.lua
+++ b/plugins/mod_pubsub/pubsub.lib.lua
@@ -60,7 +60,11 @@ function _M.handle_pubsub_iq(event, service)
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 @@ function handlers.set_create(origin, stanza, create, service)
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 @@ function handlers.set_retract(origin, stanza, retract, service)
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 @@ function handlers.set_purge(origin, stanza, purge, service)
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 @@ function handlers.get_configure(origin, stanza, config, service)
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 @@ function handlers.set_configure(origin, stanza, config, service)
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"]