Software / code / prosody
Annotate
plugins/muc/hats.lib.lua @ 12187:94253e02d47d
mod_http: Limit unencrypted http port (5280) to loopback by default
Since accessing this port directly over the wider Internet is unlikely
to intentional anymore. Most uses will likely be by reverse proxies, by
mistake or because of trouble configuring HTTPS.
Blocking mistaken uses is just a good thing, letting users send
potentially private things unencrypted tends to be Strongly Discouraged
these days.
Many reverse proxy setups operate over loopback, so listening there
instead of all interfaces is a net improvement.
Improved automatic certificate location and SNI support has mostly
eliminated the need for manual certificate configuration so HTTPS should
Just Work once certificates have been provided.
For local testing during development, connecting over loopback is likely
fine as well. When really needed, `http_interfaces` can still be set.
Suggested by Link Mauve
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 15 Jan 2022 15:13:41 +0100 |
| parent | 11245:43b43e7156b8 |
| child | 12977:74b9e05af71e |
| 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); |