Annotate

plugins/muc/hats.lib.lua @ 12557:ee5b061588ea 0.12

net.unbound: Merge luaunbound and prosody defaults in absence of user config (fixes #1763) (thanks rgd) add_defaults() is supposed to merge 3 tables, the defaults in luaunbound, the defaults from prosody and any config from the prosody config file. In the case where no `unbound={}` has been in the config, it skips over the merge and returns only the prosody built-in defaults. This results in libunbound skipping reading resolv.conf and uses its default behavior of full recursive resolution. Prior to #1737 there were only two tables, the luaunbound defaults and the prosody config, where bypassing the merge and returning the former did the right thing.
author Kim Alvefur <zash@zash.se>
date Sun, 19 Jun 2022 19:49:32 +0200
parent 11245:43b43e7156b8
child 12977:74b9e05af71e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10693
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local st = require "util.stanza";
10714
9ecad2304297 MUC: Switch hats to new presence APIs
Matthew Wild <mwild1@gmail.com>
parents: 10693
diff changeset
2 local muc_util = module:require "muc/util";
10693
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 local xmlns_hats = "xmpp:prosody.im/protocol/hats:1";
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
10714
9ecad2304297 MUC: Switch hats to new presence APIs
Matthew Wild <mwild1@gmail.com>
parents: 10693
diff changeset
6 -- Strip any hats claimed by the client (to prevent spoofing)
9ecad2304297 MUC: Switch hats to new presence APIs
Matthew Wild <mwild1@gmail.com>
parents: 10693
diff changeset
7 muc_util.add_filtered_namespace(xmlns_hats);
10693
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8
11245
43b43e7156b8 MUC: Add support for presence probes (fixes #1535)
JC Brand <jc@opkode.com>
parents: 10714
diff changeset
9
10714
9ecad2304297 MUC: Switch hats to new presence APIs
Matthew Wild <mwild1@gmail.com>
parents: 10693
diff changeset
10 module:hook("muc-build-occupant-presence", function (event)
11245
43b43e7156b8 MUC: Add support for presence probes (fixes #1535)
JC Brand <jc@opkode.com>
parents: 10714
diff changeset
11 local bare_jid = event.occupant and event.occupant.bare_jid or event.bare_jid;
43b43e7156b8 MUC: Add support for presence probes (fixes #1535)
JC Brand <jc@opkode.com>
parents: 10714
diff changeset
12 local aff_data = event.room:get_affiliation_data(bare_jid);
10693
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 local hats = aff_data and aff_data.hats;
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 if not hats then return; end
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 local hats_el;
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 for hat_id, hat_data in pairs(hats) do
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 if hat_data.active then
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 if not hats_el then
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 hats_el = st.stanza("hats", { xmlns = xmlns_hats });
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 end
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 hats_el:tag("hat", { uri = hat_id, title = hat_data.title }):up();
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 end
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 end
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 if not hats_el then return; end
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 event.stanza:add_direct_child(hats_el);
76bb806cdd4b MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 end);