Software /
code /
prosody
Changeset
8786:adffadd88ff0
mod_muc_mam: Have stanza-id filtering over all groupchat messages, not just ones considered for history
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 28 Apr 2018 00:47:08 +0200 |
parents | 8785:82b889608503 |
children | 8787:5dbebb7627ef |
files | plugins/mod_muc_mam.lua |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_muc_mam.lua Fri Apr 27 15:26:29 2018 +0200 +++ b/plugins/mod_muc_mam.lua Sat Apr 28 00:47:08 2018 +0200 @@ -303,14 +303,13 @@ return true; end, 1); --- Handle messages -local function save_to_history(self, stanza) - local room_node, room_host = jid_split(self.jid); +module:hook("muc-broadcast-messages", function (event) + local room, stanza = event.room, event.stanza; -- Filter out <stanza-id> that claim to be from us stanza:maptags(function (tag) if tag.name == "stanza-id" and tag.attr.xmlns == xmlns_st_id - and jid_prep(tag.attr.by) == self.jid then + and jid_prep(tag.attr.by) == room.jid then return nil; end if tag.name == "x" and tag.attr.xmlns == xmlns_muc_user then @@ -319,6 +318,12 @@ return tag; end); +end, 0); + +-- Handle messages +local function save_to_history(self, stanza) + local room_node, room_host = jid_split(self.jid); + local stored_stanza = stanza; if stanza.name == "message" and self:get_whois() == "anyone" then