Annotate

mod_require_otr/mod_require_otr.lua @ 5691:ecfd7aece33b

mod_measure_modules: Report module statuses via OpenMetrics Someone in the chat asked about a health check endpoint, which reminded me of mod_http_status, which provides access to module statuses with full details. After that, this idea came about, which seems natural. As noted in the README, it could be used to monitor that critical modules are in fact loaded correctly. As more modules use the status API, the more useful this module and mod_http_status becomes.
author Kim Alvefur <zash@zash.se>
date Fri, 06 Oct 2023 18:34:39 +0200 (17 months ago)
parent 1295:dfe1818962f5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1295
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local st = require "util.stanza";
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 local block_groupchat = module:get_option_boolean("otr_block_groupchat", false);
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 function reject_plaintext_messages(event)
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 local body = event.stanza:get_child_text("body");
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 if body and body:sub(1,4) ~= "?OTR" or (not block_groupchat and event.stanza.attr.type == "groupchat") then
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 return event.origin.send(st.error_reply(event.stanza, "modify", "policy-violation", "OTR encryption is required for conversations on this server"));
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 end
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 end
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 module:hook("pre-message/bare", reject_plaintext_messages, 300);
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 module:hook("pre-message/full", reject_plaintext_messages, 300);
dfe1818962f5 mod_require_otr: New module to (attempt to) require that all messages are encrypted with OTR (credit for the idea goes to Gregory Maxwell on the liberationtech mailing list)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 module:hook("pre-message/host", reject_plaintext_messages, 300);