Mercurial > prosody-modules
view mod_spam_reporting/mod_spam_reporting.lua @ 4877:adc6241e5d16
mod_measure_process: Report the enforced limit
The soft limit is what the kernel actually enforces, while the hard
limit is is how far you can change the soft limit without privileges.
Unless the process dynamically adjusts the soft limit, knowing the hard
limit is not as useful as knowing the soft limit.
Reporting the soft limit and the number of in-use FDs allows placing
alerts on expressions like 'process_open_fds / process_max_fds >= 0.95'
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 18 Jan 2022 18:55:20 +0100 |
parents | a357c3e3bd32 |
children |
line wrap: on
line source
-- XEP-0377: Spam Reporting for Prosody -- Copyright (C) 2016-2021 Kim Alvefur -- -- This file is MIT/X11 licensed. local jid_prep = require "util.jid".prep; module:depends("blocklist"); module:add_feature("urn:xmpp:reporting:0"); module:add_feature("urn:xmpp:reporting:reason:spam:0"); module:add_feature("urn:xmpp:reporting:reason:abuse:0"); module:add_feature("urn:xmpp:reporting:1"); module:hook("iq-set/self/urn:xmpp:blocking:block", function (event) for item in event.stanza.tags[1]:childtags("item") do local report = item:get_child("report", "urn:xmpp:reporting:0") or item:get_child("report", "urn:xmpp:reporting:1"); local jid = jid_prep(item.attr.jid); if report and jid then local report_type, reason; if report.attr.xmlns == "urn:xmpp:reporting:0" then report_type = report:get_child("spam") and "spam" or report:get_child("abuse") and "abuse" or "unknown"; reason = report:get_child_text("text"); elseif report.attr.xmlns == "urn:xmpp:reporting:1" then report_type = "unknown"; if report.attr.reason == "urn:xmpp:reporting:abuse" then report_type = "abuse"; end if report.attr.reason == "urn:xmpp:reporting:spam" then report_type = "spam"; end reason = report:get_child_text("text"); end if report_type then module:log("warn", "Received report of %s from JID '%s', %s", report_type, jid, reason or "no reason given"); module:fire_event(module.name.."/"..report_type.."-report", { origin = event.origin, stanza = event.stanza, jid = jid, item = item, report = report, reason = reason, }); end end end end, 1);