Diff

mod_block_subscriptions/mod_block_subscriptions.lua @ 773:107eb83aa732

mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
author Matthew Wild <mwild1@gmail.com>
date Sun, 05 Aug 2012 01:49:03 +0100
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_block_subscriptions/mod_block_subscriptions.lua	Sun Aug 05 01:49:03 2012 +0100
@@ -0,0 +1,13 @@
+local allowed_presence_types = { probe = true, unavailable = true };
+
+function filter_presence(event)
+	local stanza = event.stanza;
+	local presence_type = stanza.attr.type;
+	if presence_type == nil or allowed_presence_types[presence_type] then
+		return;
+	end
+	return true; -- Drop
+end
+
+module:hook("pre-presence/bare", filter_presence, 200); -- Client sending
+module:hook("presence/bare", filter_presence, 200); -- Client receiving