Changeset

7902:92b70a921acb

mod_mam: Strip stanza-id tags after carbons
author Kim Alvefur <zash@zash.se>
date Sun, 19 Feb 2017 23:39:53 +0100
parents 7901:fc859aed9279
children 7903:036c771b842a
files plugins/mod_mam/mod_mam.lua
diffstat 1 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_mam/mod_mam.lua	Sun Feb 19 13:44:47 2017 +0100
+++ b/plugins/mod_mam/mod_mam.lua	Sun Feb 19 23:39:53 2017 +0100
@@ -307,6 +307,19 @@
 	return message_handler(event, true);
 end
 
+
+local function strip_stanza_id(event)
+	local strip_by = jid_bare(event.origin.full_jid);
+	event.stanza:maptags(function(tag)
+		if not ( tag.attr.xmlns == xmlns_st_id and tag.attr.by == strip_by ) then
+			return tag;
+		end
+	end);
+end
+
+module:hook("pre-message/bare", strip_stanza_id, -1);
+module:hook("pre-message/full", strip_stanza_id, -1);
+
 local cleanup_after = module:get_option_string("archive_expires_after", "1w");
 local cleanup_interval = module:get_option_number("archive_cleanup_interval", 4 * 60 * 60);
 if cleanup_after ~= "never" then