Software /
code /
prosody-modules
Annotate
mod_inject_ecaps2/mod_inject_ecaps2.lua @ 4941:e7b9bc629ecc
mod_rest: Add special handling to catch MAM results from remote hosts
Makes MAM queries to remote hosts works.
As the comment says, MAM results from users' local archives or local
MUCs are returned via origin.send() which is provided in the event and
thus already worked. Results from remote hosts go via normal stanza
routing and events, which need this extra handling to catch.
This pattern of iq-set, message+, iq-result is generally limited to MAM.
Closest similar thing might be MUC join, but to really handle that you
would need the webhook callback mechanism.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 16 May 2022 19:47:09 +0200 |
parent | 3105:ce946d9d982e |
rev | line source |
---|---|
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
1 module:depends("cache_c2s_caps"); |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
2 |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
3 local st = require "util.stanza"; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
4 local hashes = require "util.hashes"; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
5 local base64 = require "util.encodings".base64; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
6 local t_insert, t_sort, t_concat = table.insert, table.sort, table.concat; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
7 |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
8 local algorithms = module:get_option_set("ecaps2_hashes", { "sha-256", "sha-512" }); |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
9 |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
10 -- TODO: Add all of the other hashes supported. |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
11 local algorithm_map = { |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
12 ["sha-256"] = hashes.sha256; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
13 ["sha-512"] = hashes.sha512; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
14 }; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
15 |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
16 -- TODO: move that to util.caps maybe. |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
17 local function calculate_hash(disco_info) |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
18 local identities, features, extensions = {}, {}, {}; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
19 for _, tag in ipairs(disco_info) do |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
20 if tag.name == "identity" then |
2908
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
21 t_insert(identities, ((tag.attr.category or "").."\31".. |
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
22 (tag.attr.type or "").."\31".. |
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
23 (tag.attr["xml:lang"] or "").."\31".. |
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
24 (tag.attr.name or "").."\31\30")); |
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
25 elseif tag.name == "feature" then |
2908
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
26 t_insert(features, (tag.attr.var or "").."\31"); |
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
27 elseif tag.name == "x" and tag.attr.xmlns == "jabber:x:data" then |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
28 local form = {}; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
29 for _, field in ipairs(tag.tags) do |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
30 if field.name == "field" and field.attr.xmlns == "jabber:x:data" and field.attr.var then |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
31 local values = {}; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
32 for _, value in ipairs(field.tags) do |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
33 if value.name == "value" and value.attr.xmlns == "jabber:x:data" then |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
34 value = #value.tags == 0 and value:get_text(); |
2908
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
35 if value then t_insert(values, value.."\31"); end |
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
36 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
37 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
38 t_sort(values); |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
39 if #values > 0 then |
2908
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
40 t_insert(form, field.attr.var.."\31"..t_concat(values, "\31").."\31\30"); |
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
41 else |
2908
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
42 t_insert(form, field.attr.var.."\31\30"); |
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
43 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
44 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
45 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
46 t_sort(form); |
2908
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
47 form = t_concat(form, "\29").."\29"; |
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
48 t_insert(extensions, form); |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
49 else |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
50 return nil, "Unknown element in disco#info"; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
51 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
52 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
53 t_sort(identities); |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
54 t_sort(features); |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
55 t_sort(extensions); |
2908
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
56 if #identities > 0 then identities = t_concat(identities, "\28").."\28"; else identities = "\28"; end |
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
57 if #features > 0 then features = t_concat(features).."\28"; else features = "\28"; end |
5665d14dcc6e
mod_inject_ecaps2: Add Lua 5.1 compatibility by replacing \xHEX with \DECIMAL in strings
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2907
diff
changeset
|
58 if #extensions > 0 then extensions = t_concat(extensions, "\28").."\28"; else extensions = "\28"; end |
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
59 return features..identities..extensions; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
60 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
61 |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
62 local function caps_handler(event) |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
63 local origin = event.origin; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
64 |
2913
3fb4f72b3dfd
mod_inject_ecaps2: Check for unset presence
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2910
diff
changeset
|
65 if origin.presence == nil or origin.presence:get_child("c", "urn:xmpp:caps") then |
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
66 return; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
67 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
68 |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
69 local disco_info = origin.caps_cache; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
70 if disco_info == nil then |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
71 return; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
72 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
73 |
2910
415455faccae
mod_inject_ecaps2: Return if calculating the hash failed
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2909
diff
changeset
|
74 local extension_string, err = calculate_hash(disco_info); |
415455faccae
mod_inject_ecaps2: Return if calculating the hash failed
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2909
diff
changeset
|
75 if extension_string == nil then |
415455faccae
mod_inject_ecaps2: Return if calculating the hash failed
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2909
diff
changeset
|
76 module:log("warn", "Failed to calculate ecaps2 hash: %s", err) |
415455faccae
mod_inject_ecaps2: Return if calculating the hash failed
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2909
diff
changeset
|
77 return; |
415455faccae
mod_inject_ecaps2: Return if calculating the hash failed
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2909
diff
changeset
|
78 end |
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
79 |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
80 local ecaps2 = st.stanza("c", { xmlns = "urn:xmpp:caps" }); |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
81 for algo in algorithms do |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
82 local func = algorithm_map[algo]; |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
83 if func ~= nil then |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
84 local hash = base64.encode(func(extension_string)); |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
85 ecaps2:tag("hash", { xmlns = "urn:xmpp:hashes:2"; algo = algo }) |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
86 :text(hash) |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
87 :up(); |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
88 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
89 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
90 |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
91 module:log("debug", "Injected ecaps2 element in presence"); |
3105
ce946d9d982e
mod_inject_ecaps2: Inject the <c/> element in the presence, not util.hashes.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
2913
diff
changeset
|
92 origin.presence:add_child(ecaps2); |
2907
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
93 end |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
94 |
776017c92076
mod_inject_ecaps2: New module adding support for XEP-0390 to all local clients supporting XEP-0115
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
diff
changeset
|
95 module:hook("c2s-capabilities-changed", caps_handler); |