Mercurial > prosody-hg
annotate plugins/muc/hats.lib.lua @ 13491:cf367ab36fcc
util.prosodyctl: Use notify socket to wait for Prosody to be ready
Previously, prosodyctl only waits for the pidfile to appear, which does
not necessarily mean that Prosody is fully ready to receive traffic.
By waiting until Prosody says it's ready via the systemd notify socket
we know for sure that Prosody is really ready.
Notably this should ensure that when running `make integration-test`
Prosody is really ready when Scansion starts running tests.
Not sure if this timeout handling is optimal.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 19 May 2024 13:06:55 +0200 |
| parents | f9171624fd03 |
| children | 365212120b82 |
| rev | line source |
|---|---|
|
12977
74b9e05af71e
plugins: Prefix module imports with prosody namespace
Kim Alvefur <zash@zash.se>
parents:
11245
diff
changeset
|
1 local st = require "prosody.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 |
|
13468
98806cac64c3
MUC: Switch to official XEP-0317 namespace for Hats (including compat) (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
12977
diff
changeset
|
4 local hats_compat = module:get_option_boolean("muc_hats_compat", true); -- COMPAT for pre-XEP namespace, TODO reconsider default for next release |
|
98806cac64c3
MUC: Switch to official XEP-0317 namespace for Hats (including compat) (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
12977
diff
changeset
|
5 |
|
98806cac64c3
MUC: Switch to official XEP-0317 namespace for Hats (including compat) (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
12977
diff
changeset
|
6 local xmlns_hats_legacy = "xmpp:prosody.im/protocol/hats:1"; |
|
98806cac64c3
MUC: Switch to official XEP-0317 namespace for Hats (including compat) (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
12977
diff
changeset
|
7 local xmlns_hats = "urn:xmpp:hats:0"; |
|
10693
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 |
|
10714
9ecad2304297
MUC: Switch hats to new presence APIs
Matthew Wild <mwild1@gmail.com>
parents:
10693
diff
changeset
|
9 -- 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
|
10 muc_util.add_filtered_namespace(xmlns_hats); |
|
10693
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 |
|
11245
43b43e7156b8
MUC: Add support for presence probes (fixes #1535)
JC Brand <jc@opkode.com>
parents:
10714
diff
changeset
|
12 |
|
10714
9ecad2304297
MUC: Switch hats to new presence APIs
Matthew Wild <mwild1@gmail.com>
parents:
10693
diff
changeset
|
13 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
|
14 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
|
15 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
|
16 local hats = aff_data and aff_data.hats; |
|
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 if not hats then return; end |
|
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 local hats_el; |
|
13469
f9171624fd03
MUC: Fix legacy hats (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
13468
diff
changeset
|
19 local legacy_hats_el; |
|
10693
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 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
|
21 if hat_data.active then |
|
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 if not hats_el then |
|
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 hats_el = st.stanza("hats", { xmlns = xmlns_hats }); |
|
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 end |
|
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 hats_el:tag("hat", { uri = hat_id, title = hat_data.title }):up(); |
|
13469
f9171624fd03
MUC: Fix legacy hats (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
13468
diff
changeset
|
26 |
|
13468
98806cac64c3
MUC: Switch to official XEP-0317 namespace for Hats (including compat) (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
12977
diff
changeset
|
27 if hats_compat then |
|
98806cac64c3
MUC: Switch to official XEP-0317 namespace for Hats (including compat) (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
12977
diff
changeset
|
28 if not hats_el then |
|
13469
f9171624fd03
MUC: Fix legacy hats (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
13468
diff
changeset
|
29 legacy_hats_el = st.stanza("hats", { xmlns = xmlns_hats_legacy }); |
|
13468
98806cac64c3
MUC: Switch to official XEP-0317 namespace for Hats (including compat) (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
12977
diff
changeset
|
30 end |
|
13469
f9171624fd03
MUC: Fix legacy hats (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
13468
diff
changeset
|
31 legacy_hats_el:tag("hat", { uri = hat_id, title = hat_data.title }):up(); |
|
13468
98806cac64c3
MUC: Switch to official XEP-0317 namespace for Hats (including compat) (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
12977
diff
changeset
|
32 end |
|
10693
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
33 end |
|
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
34 end |
|
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
35 if not hats_el then return; end |
|
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
36 event.stanza:add_direct_child(hats_el); |
|
13469
f9171624fd03
MUC: Fix legacy hats (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
13468
diff
changeset
|
37 |
|
f9171624fd03
MUC: Fix legacy hats (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
13468
diff
changeset
|
38 if legacy_hats_el then |
|
f9171624fd03
MUC: Fix legacy hats (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
13468
diff
changeset
|
39 event.stanza:add_direct_child(legacy_hats_el); |
|
f9171624fd03
MUC: Fix legacy hats (thanks nicoco)
Kim Alvefur <zash@zash.se>
parents:
13468
diff
changeset
|
40 end |
|
10693
76bb806cdd4b
MUC: Add initial hats support (broadcast only)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
41 end); |
