Mercurial > prosody-modules
view mod_spam_report_forwarder/mod_spam_report_forwarder.lua @ 5381:32a9817c7516
mod_firewall: Initialize compiled chunk just once for all handlers
This should fix a case where some stateful dependencies (such as throttles)
produce separate instances for every call to new_handler(), leading to
surprising behaviour (e.g. rules executed via JUMP CHAIN vs ::deliver would
have separate rate limits).
This also adds better error handling in case the compiled code fails to run
for some reason.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 28 Apr 2023 13:27:06 +0100 |
parents | 94472eb41d0a |
children |
line wrap: on
line source
local st = require "util.stanza"; local destinations = module:get_option_set("spam_report_destinations", {}); function forward_report(event) local report = st.clone(event.report); report:text_tag("jid", event.jid, { xmlns = "urn:xmpp:jid:0" }); local message = st.message({ from = module.host }) :add_child(report); for destination in destinations do local m = st.clone(message); m.attr.to = destination; module:send(m); end end module:hook("spam_reporting/abuse-report", forward_report, -1); module:hook("spam_reporting/spam-report", forward_report, -1); module:hook("spam_reporting/unknown-report", forward_report, -1);