view mod_deny_omemo/mod_deny_omemo.lua @ 4326:f6fdefc5c6ac

mod_roster_command: Fix subscription when the "user JID" is a bare domain. Do not attempt to update the roster when the user is bare domain (e.g. a component), since they don't have rosters and the attempt results in an error: $ prosodyctl mod_roster_command subscribe proxy.example.com contact@example.com xxxxxxxxxxFailed to execute command: Error: /usr/lib/prosody/core/rostermanager.lua:104: attempt to concatenate local 'username' (a nil value) stack traceback: /usr/lib/prosody/core/rostermanager.lua:104: in function 'load_roster' /usr/lib/prosody/core/rostermanager.lua:305: in function 'set_contact_pending_out' mod_roster_command.lua:44: in function 'subscribe'
author Boris Grozev <boris@jitsi.org>
date Tue, 05 Jan 2021 13:15:00 -0600
parents 2ad35f08bd57
children
line wrap: on
line source

local st = require "util.stanza";

local omemo_namespace_prefix = "eu.siacs.conversations.axolotl."

module:hook("iq/bare/http://jabber.org/protocol/pubsub:pubsub", function (event)
	local origin, stanza = event.origin, event.stanza;

	local node = stanza.tags[1].tags[1].attr.node;
	if node and node:sub(1, #omemo_namespace_prefix) == omemo_namespace_prefix then
		origin.send(st.error_reply(stanza, "cancel", "item-not-found", "OMEMO is disabled"));
		return true;
	end
end, 10);