aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/mod_pep.lua3
-rw-r--r--plugins/mod_pubsub/mod_pubsub.lua4
2 files changed, 7 insertions, 0 deletions
diff --git a/plugins/mod_pep.lua b/plugins/mod_pep.lua
index 4239ce66..777783da 100644
--- a/plugins/mod_pep.lua
+++ b/plugins/mod_pep.lua
@@ -124,6 +124,9 @@ end
local function get_broadcaster(username)
local user_bare = jid_join(username, host);
local function simple_broadcast(kind, node, jids, item)
+ if kind == "retract" then
+ kind = "items"; -- XEP-0060 signals retraction in an <items> container
+ end
local message = st.message({ from = user_bare, type = "headline" })
:tag("event", { xmlns = xmlns_pubsub_event })
:tag(kind, { node = node });
diff --git a/plugins/mod_pubsub/mod_pubsub.lua b/plugins/mod_pubsub/mod_pubsub.lua
index cea4e6b2..d18d5f9f 100644
--- a/plugins/mod_pubsub/mod_pubsub.lua
+++ b/plugins/mod_pubsub/mod_pubsub.lua
@@ -47,6 +47,10 @@ local function create_simple_itemstore(node_config, node_name)
end
function simple_broadcast(kind, node, jids, item, actor, node_obj)
+ if kind == "retract" then
+ kind = "items"; -- XEP-0060 signals retraction in an <items> container
+ end
+
if item then
item = st.clone(item);
item.attr.xmlns = nil; -- Clear the pubsub namespace