annotate mod_unsubscriber/mod_unsubscriber.lua @ 6403:13c61a068c71

mod_pubsub_serverinfo: Include hostname in default pubsub node name This change ensures that every host publishes to a unique node by default, which is important when publishing info about multiple hosts. The old default node name was "serverinfo" The new default node name is in the format "serverinfo/example.com" where example.com is automatically replaced by the publishing host's name. This affects existing deployments in the following ways: - If you already configured pubsub_serverinfo_node explicitly in your config, then nothing will change, your current configuration will still be used. - If you did not specify it in your config (i.e. used the default) then the module will switch to publishing to the new node. If your configuration is correct this shouldn't be noticed, because the new node will automatically be created and configured by the module. If you want, you can clean up the old 'serverinfo' node using: prosodyctl shell pubsub delete_node pubsub.example.com serverinfo
author Matthew Wild <mwild1@gmail.com>
date Wed, 11 Feb 2026 09:40:30 +0000
parents 9c9889ad4302
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5168
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 assert(module:get_host_type() == "component", "This module should be loaded as a Component");
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 local st = require "util.stanza";
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 module:hook("presence/bare", function(event)
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 local origin, stanza = event.origin, event.stanza;
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 if stanza.attr.type == "probe" then
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 -- they are subscribed and want our current presence
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 -- tell them we denied their subscription
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 local reply = st.reply(stanza)
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 reply.attr.type = "unsubcribed";
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 origin.send(reply);
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 return true;
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 elseif stanza.attr.type == nil then
6398
9c9889ad4302 mod_unsubscriber: Add MUC support
Kim Alvefur <zash@zash.se>
parents: 5168
diff changeset
15 if stanza:get_child("x", "http://jabber.org/protocol/muc") then
9c9889ad4302 mod_unsubscriber: Add MUC support
Kim Alvefur <zash@zash.se>
parents: 5168
diff changeset
16 -- attempting to join a MUC
9c9889ad4302 mod_unsubscriber: Add MUC support
Kim Alvefur <zash@zash.se>
parents: 5168
diff changeset
17 -- tell them it's gone
9c9889ad4302 mod_unsubscriber: Add MUC support
Kim Alvefur <zash@zash.se>
parents: 5168
diff changeset
18 local reply = st.error_reply(stanza, "cancel", "gone");
9c9889ad4302 mod_unsubscriber: Add MUC support
Kim Alvefur <zash@zash.se>
parents: 5168
diff changeset
19 origin.send(reply);
9c9889ad4302 mod_unsubscriber: Add MUC support
Kim Alvefur <zash@zash.se>
parents: 5168
diff changeset
20 return true;
9c9889ad4302 mod_unsubscriber: Add MUC support
Kim Alvefur <zash@zash.se>
parents: 5168
diff changeset
21 end
5168
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 -- they think we are subscribed and sent their current presence
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 -- tell them we unsubscribe
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 local reply = st.reply(stanza)
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 reply.attr.type = "unsubcribe";
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 origin.send(reply);
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 return true;
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 end
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 -- fall trough to default error
e00dc913d965 mod_unsubscriber: Revoke roster subscriptions of unreachable hosts
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 end);