annotate mod_block_s2s_subscriptions/mod_block_s2s_subscriptions.lua @ 6411:b00638d74f46

mod_unified_push: Allow additional CORS headers for unified push (fixes #1985) - Request header "TTL" is mandated by the HTTP Push specification RFC 8030: https://datatracker.ietf.org/doc/html/rfc8030#section-5 - Firefox sends "Content-Encoding" with a HTTP form submission, so it is required when using the Unified Push testing tool at https://unifiedpush.org/test_wp.html (with the full URL being delivered by the UP-Example Android app) Adding both headers makes the Unified Push testing tool work from the browser. Resolves: https://issues.prosody.im/1985
author Christian Weiske <cweiske@cweiske.de>
date Sat, 21 Feb 2026 19:13:08 +0100
parents 70ff25db37fa
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
775
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 local jid_split = require "util.jid".split;
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 local jid_bare = require "util.jid".bare;
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 local load_roster = require "core.rostermanager".load_roster;
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 local blocked_servers = module:get_option_set("block_s2s_subscriptions")._items;
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 function filter_presence(event)
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 if blocked_servers[event.origin.from_host] and event.stanza.attr.type == "subscribe" then
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 local stanza = event.stanza;
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 local to_user, to_host = jid_split(stanza.attr.to);
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 local roster = load_roster(to_user, to_host);
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 if roster and roster[jid_bare(stanza.attr.from)] then
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 return; -- In roster, pass through
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 end
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 return true; -- Drop
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 end
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 end
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19
70ff25db37fa mod_block_s2s_subscriptions: New module to block incoming presence subscriptions from non-contacts on selected remote hosts
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 module:hook("presence/bare", filter_presence, 200); -- Client receiving