annotate mod_block_subscriptions/mod_block_subscriptions.lua @ 4537:53ee391ca689

mod_smacks: Fix traceback due to session being destroyed in send() Sending something can cause the OS to notice that the connection is dead and then the connection can be dead at this point. More likely if opportunistic_writes is enabled.
author Kim Alvefur <zash@zash.se>
date Thu, 01 Apr 2021 11:35:26 +0200
parents 107eb83aa732
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
773
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local allowed_presence_types = { probe = true, unavailable = true };
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 function filter_presence(event)
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 local stanza = event.stanza;
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 local presence_type = stanza.attr.type;
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 if presence_type == nil or allowed_presence_types[presence_type] then
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 return;
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 end
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 return true; -- Drop
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 end
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 module:hook("pre-presence/bare", filter_presence, 200); -- Client sending
107eb83aa732 mod_block_subscriptions: Block incoming and outgoing presence subscriptions (useful in conjunction with mod_readonly)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 module:hook("presence/bare", filter_presence, 200); -- Client receiving