annotate mod_carbons/mod_carbons.lua @ 4738:5aee8d86629a

mod_bookmarks2: Fix handling of nick and password elements This form of child retrieval fails when the stanza elements internally don't have an 'xmlns' attribute, which can happen sometimes for some reason, including when they have been constructed via the stanza builder API. When that is the case then the explicit namespace arguemnt does not match the nil value of the internal attribute. Calling `:get_child()` without the namespace argument does the right thing here, with both nil and the parent namespace as valid values for the internal attribute.
author Kim Alvefur <zash@zash.se>
date Wed, 03 Nov 2021 21:11:55 +0100
parents 704e4845267b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
521
6d0d2673f95e mod_carbons: Add MIT license statement.
Kim Alvefur <zash@zash.se>
parents: 520
diff changeset
1 -- XEP-0280: Message Carbons implementation for Prosody
2307
ad7f87bd30c8 mod_carbons: Make the conditions for ignoring MUC PMs more specific (fixes #744)
Kim Alvefur <zash@zash.se>
parents: 1865
diff changeset
2 -- Copyright (C) 2011-2016 Kim Alvefur
521
6d0d2673f95e mod_carbons: Add MIT license statement.
Kim Alvefur <zash@zash.se>
parents: 520
diff changeset
3 --
6d0d2673f95e mod_carbons: Add MIT license statement.
Kim Alvefur <zash@zash.se>
parents: 520
diff changeset
4 -- This file is MIT/X11 licensed.
6d0d2673f95e mod_carbons: Add MIT license statement.
Kim Alvefur <zash@zash.se>
parents: 520
diff changeset
5
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 local st = require "util.stanza";
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 local jid_bare = require "util.jid".bare;
850
0900ba54991e mod_carbons: Update to latest version of XEP-0280, while supporting the old version.
Kim Alvefur <zash@zash.se>
parents: 837
diff changeset
8 local xmlns_carbons = "urn:xmpp:carbons:2";
0900ba54991e mod_carbons: Update to latest version of XEP-0280, while supporting the old version.
Kim Alvefur <zash@zash.se>
parents: 837
diff changeset
9 local xmlns_carbons_old = "urn:xmpp:carbons:1";
884
2ece37bf9cc6 mod_carbons: Support the pre-forwarding version of Carbons. Please don't implement this.
Kim Alvefur <zash@zash.se>
parents: 854
diff changeset
10 local xmlns_carbons_really_old = "urn:xmpp:carbons:0";
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 local xmlns_forward = "urn:xmpp:forward:0";
1795
91c01ef82807 mod_carbons: Get full_ and bare_sessions from the prosody global [luacheck]
Kim Alvefur <zash@zash.se>
parents: 1794
diff changeset
12 local full_sessions, bare_sessions = prosody.full_sessions, prosody.bare_sessions;
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13
804
9927d88a1b2a mod_carbons: Merge enable and disable handlers
Kim Alvefur <zash@zash.se>
parents: 743
diff changeset
14 local function toggle_carbons(event)
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 local origin, stanza = event.origin, event.stanza;
1184
0d3d15586d7e mod_carbons: Use iq-type events
Kim Alvefur <zash@zash.se>
parents: 1183
diff changeset
16 local state = stanza.tags[1].attr.mode or stanza.tags[1].name;
0d3d15586d7e mod_carbons: Use iq-type events
Kim Alvefur <zash@zash.se>
parents: 1183
diff changeset
17 module:log("debug", "%s %sd carbons", origin.full_jid, state);
0d3d15586d7e mod_carbons: Use iq-type events
Kim Alvefur <zash@zash.se>
parents: 1183
diff changeset
18 origin.want_carbons = state == "enable" and stanza.tags[1].attr.xmlns;
1865
db8b256f51ff mod_admin_web,mod_carbons,mod_csi_compat,mod_mam_muc,mod_tcpproxy: Explicitly return true
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
19 origin.send(st.reply(stanza));
db8b256f51ff mod_admin_web,mod_carbons,mod_csi_compat,mod_mam_muc,mod_tcpproxy: Explicitly return true
Kim Alvefur <zash@zash.se>
parents: 1795
diff changeset
20 return true;
804
9927d88a1b2a mod_carbons: Merge enable and disable handlers
Kim Alvefur <zash@zash.se>
parents: 743
diff changeset
21 end
1184
0d3d15586d7e mod_carbons: Use iq-type events
Kim Alvefur <zash@zash.se>
parents: 1183
diff changeset
22 module:hook("iq-set/self/"..xmlns_carbons..":disable", toggle_carbons);
0d3d15586d7e mod_carbons: Use iq-type events
Kim Alvefur <zash@zash.se>
parents: 1183
diff changeset
23 module:hook("iq-set/self/"..xmlns_carbons..":enable", toggle_carbons);
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24
850
0900ba54991e mod_carbons: Update to latest version of XEP-0280, while supporting the old version.
Kim Alvefur <zash@zash.se>
parents: 837
diff changeset
25 -- COMPAT
1184
0d3d15586d7e mod_carbons: Use iq-type events
Kim Alvefur <zash@zash.se>
parents: 1183
diff changeset
26 module:hook("iq-set/self/"..xmlns_carbons_old..":disable", toggle_carbons);
0d3d15586d7e mod_carbons: Use iq-type events
Kim Alvefur <zash@zash.se>
parents: 1183
diff changeset
27 module:hook("iq-set/self/"..xmlns_carbons_old..":enable", toggle_carbons);
0d3d15586d7e mod_carbons: Use iq-type events
Kim Alvefur <zash@zash.se>
parents: 1183
diff changeset
28 module:hook("iq-set/self/"..xmlns_carbons_really_old..":carbons", toggle_carbons);
884
2ece37bf9cc6 mod_carbons: Support the pre-forwarding version of Carbons. Please don't implement this.
Kim Alvefur <zash@zash.se>
parents: 854
diff changeset
29
480
0cef5be669de mod_carbons: Consolidate message handlers
Kim Alvefur <zash@zash.se>
parents: 463
diff changeset
30 local function message_handler(event, c2s)
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 local origin, stanza = event.origin, event.stanza;
1789
dbce8a7726ef mod_carbons: Carbon chat messages or normal messages that have a body
Kim Alvefur <zash@zash.se>
parents: 1343
diff changeset
32 local orig_type = stanza.attr.type or "normal";
835
07cc1efde2f8 mod_carbons: Fix handling of messages from remote hosts
Kim Alvefur <zash@zash.se>
parents: 833
diff changeset
33 local orig_from = stanza.attr.from;
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 local orig_to = stanza.attr.to;
1343
7dbde05b48a9 all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 1325
diff changeset
35
2338
51beecac93c2 mod_carbons: Fix logic presendence
Kim Alvefur <zash@zash.se>
parents: 2309
diff changeset
36 if not(orig_type == "chat" or (orig_type == "normal" and stanza:get_child("body"))) then
1789
dbce8a7726ef mod_carbons: Carbon chat messages or normal messages that have a body
Kim Alvefur <zash@zash.se>
parents: 1343
diff changeset
37 return -- Only chat type messages
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38 end
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39
833
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
40 -- Stanza sent by a local client
836
a86131581180 mod_carbons: Less complicated assignments (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 835
diff changeset
41 local bare_jid = jid_bare(orig_from);
833
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
42 local target_session = origin;
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
43 local top_priority = false;
836
a86131581180 mod_carbons: Less complicated assignments (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 835
diff changeset
44 local user_sessions = bare_sessions[bare_jid];
833
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
45
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
46 -- Stanza about to be delivered to a local client
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
47 if not c2s then
480
0cef5be669de mod_carbons: Consolidate message handlers
Kim Alvefur <zash@zash.se>
parents: 463
diff changeset
48 bare_jid = jid_bare(orig_to);
836
a86131581180 mod_carbons: Less complicated assignments (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 835
diff changeset
49 target_session = full_sessions[orig_to];
833
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
50 user_sessions = bare_sessions[bare_jid];
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
51 if not target_session and user_sessions then
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
52 -- The top resources will already receive this message per normal routing rules,
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
53 -- so we are going to skip them in order to avoid sending duplicated messages.
480
0cef5be669de mod_carbons: Consolidate message handlers
Kim Alvefur <zash@zash.se>
parents: 463
diff changeset
54 local top_resources = user_sessions.top_resources;
833
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
55 top_priority = top_resources and top_resources[1].priority
480
0cef5be669de mod_carbons: Consolidate message handlers
Kim Alvefur <zash@zash.se>
parents: 463
diff changeset
56 end
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
57 end
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
58
585
ce2798a1bc56 mod_carbons: Don't try to send carbons for entirely offline users.
Kim Alvefur <zash@zash.se>
parents: 545
diff changeset
59 if not user_sessions then
605
5175f6d33470 mod_carbons: Add more debug logging
Kim Alvefur <zash@zash.se>
parents: 585
diff changeset
60 module:log("debug", "Skip carbons for offline user");
585
ce2798a1bc56 mod_carbons: Don't try to send carbons for entirely offline users.
Kim Alvefur <zash@zash.se>
parents: 545
diff changeset
61 return -- No use in sending carbons to an offline user
ce2798a1bc56 mod_carbons: Don't try to send carbons for entirely offline users.
Kim Alvefur <zash@zash.se>
parents: 545
diff changeset
62 end
ce2798a1bc56 mod_carbons: Don't try to send carbons for entirely offline users.
Kim Alvefur <zash@zash.se>
parents: 545
diff changeset
63
1325
b21236b6b8d8 Backed out changeset 853a382c9bd6
Kim Alvefur <zash@zash.se>
parents: 1324
diff changeset
64 if stanza:get_child("private", xmlns_carbons) then
1317
35c57db6877f mod_carbons: Ignore messages tagged as private in both directions (thanks hoedlmoser)
Kim Alvefur <zash@zash.se>
parents: 1316
diff changeset
65 if not c2s then
35c57db6877f mod_carbons: Ignore messages tagged as private in both directions (thanks hoedlmoser)
Kim Alvefur <zash@zash.se>
parents: 1316
diff changeset
66 stanza:maptags(function(tag)
1325
b21236b6b8d8 Backed out changeset 853a382c9bd6
Kim Alvefur <zash@zash.se>
parents: 1324
diff changeset
67 if not ( tag.attr.xmlns == xmlns_carbons and tag.name == "private" ) then
1317
35c57db6877f mod_carbons: Ignore messages tagged as private in both directions (thanks hoedlmoser)
Kim Alvefur <zash@zash.se>
parents: 1316
diff changeset
68 return tag;
35c57db6877f mod_carbons: Ignore messages tagged as private in both directions (thanks hoedlmoser)
Kim Alvefur <zash@zash.se>
parents: 1316
diff changeset
69 end
35c57db6877f mod_carbons: Ignore messages tagged as private in both directions (thanks hoedlmoser)
Kim Alvefur <zash@zash.se>
parents: 1316
diff changeset
70 end);
35c57db6877f mod_carbons: Ignore messages tagged as private in both directions (thanks hoedlmoser)
Kim Alvefur <zash@zash.se>
parents: 1316
diff changeset
71 end
605
5175f6d33470 mod_carbons: Add more debug logging
Kim Alvefur <zash@zash.se>
parents: 585
diff changeset
72 module:log("debug", "Message tagged private, ignoring");
480
0cef5be669de mod_carbons: Consolidate message handlers
Kim Alvefur <zash@zash.se>
parents: 463
diff changeset
73 return
1151
28d4b58bcc3b mod_carbons: Add support for XEP-0334: Message Processing Hints
Kim Alvefur <zash@zash.se>
parents: 900
diff changeset
74 elseif stanza:get_child("no-copy", "urn:xmpp:hints") then
28d4b58bcc3b mod_carbons: Add support for XEP-0334: Message Processing Hints
Kim Alvefur <zash@zash.se>
parents: 900
diff changeset
75 module:log("debug", "Message has no-copy hint, ignoring");
28d4b58bcc3b mod_carbons: Add support for XEP-0334: Message Processing Hints
Kim Alvefur <zash@zash.se>
parents: 900
diff changeset
76 return
2309
feebb38c670d mod_carbons: Fix inverted logic (Thanks Ge0rg)
Kim Alvefur <zash@zash.se>
parents: 2308
diff changeset
77 elseif not c2s and bare_jid == orig_from and stanza:get_child("x", "http://jabber.org/protocol/muc#user") then
1316
d3e75f6dde9b mod_carbons: Ignore MUC PMs if tagged as such
Kim Alvefur <zash@zash.se>
parents: 1184
diff changeset
78 module:log("debug", "MUC PM, ignoring");
d3e75f6dde9b mod_carbons: Ignore MUC PMs if tagged as such
Kim Alvefur <zash@zash.se>
parents: 1184
diff changeset
79 return
480
0cef5be669de mod_carbons: Consolidate message handlers
Kim Alvefur <zash@zash.se>
parents: 463
diff changeset
80 end
0cef5be669de mod_carbons: Consolidate message handlers
Kim Alvefur <zash@zash.se>
parents: 463
diff changeset
81
832
9087431d35f6 mod_carbons: Add comments and rename some variables to make it clearer
Kim Alvefur <zash@zash.se>
parents: 804
diff changeset
82 -- Create the carbon copy and wrap it as per the Stanza Forwarding XEP
9087431d35f6 mod_carbons: Add comments and rename some variables to make it clearer
Kim Alvefur <zash@zash.se>
parents: 804
diff changeset
83 local copy = st.clone(stanza);
9087431d35f6 mod_carbons: Add comments and rename some variables to make it clearer
Kim Alvefur <zash@zash.se>
parents: 804
diff changeset
84 copy.attr.xmlns = "jabber:client";
9087431d35f6 mod_carbons: Add comments and rename some variables to make it clearer
Kim Alvefur <zash@zash.se>
parents: 804
diff changeset
85 local carbon = st.message{ from = bare_jid, type = orig_type, }
896
d24d87ca3f5f mod_carbons: <forwarded/> should be nested in <sent/>/<received/>
Florian Zeitz <florob@babelmonkeys.de>
parents: 888
diff changeset
86 :tag(c2s and "sent" or "received", { xmlns = xmlns_carbons })
664
2f11d2473afd mod_carbons: Move creation of the carbon stanza out of the loop.
Kim Alvefur <zash@zash.se>
parents: 618
diff changeset
87 :tag("forwarded", { xmlns = xmlns_forward })
832
9087431d35f6 mod_carbons: Add comments and rename some variables to make it clearer
Kim Alvefur <zash@zash.se>
parents: 804
diff changeset
88 :add_child(copy):reset();
664
2f11d2473afd mod_carbons: Move creation of the carbon stanza out of the loop.
Kim Alvefur <zash@zash.se>
parents: 618
diff changeset
89
850
0900ba54991e mod_carbons: Update to latest version of XEP-0280, while supporting the old version.
Kim Alvefur <zash@zash.se>
parents: 837
diff changeset
90 -- COMPAT
0900ba54991e mod_carbons: Update to latest version of XEP-0280, while supporting the old version.
Kim Alvefur <zash@zash.se>
parents: 837
diff changeset
91 local carbon_old = st.message{ from = bare_jid, type = orig_type, }
0900ba54991e mod_carbons: Update to latest version of XEP-0280, while supporting the old version.
Kim Alvefur <zash@zash.se>
parents: 837
diff changeset
92 :tag(c2s and "sent" or "received", { xmlns = xmlns_carbons_old }):up()
0900ba54991e mod_carbons: Update to latest version of XEP-0280, while supporting the old version.
Kim Alvefur <zash@zash.se>
parents: 837
diff changeset
93 :tag("forwarded", { xmlns = xmlns_forward })
0900ba54991e mod_carbons: Update to latest version of XEP-0280, while supporting the old version.
Kim Alvefur <zash@zash.se>
parents: 837
diff changeset
94 :add_child(copy):reset();
0900ba54991e mod_carbons: Update to latest version of XEP-0280, while supporting the old version.
Kim Alvefur <zash@zash.se>
parents: 837
diff changeset
95
884
2ece37bf9cc6 mod_carbons: Support the pre-forwarding version of Carbons. Please don't implement this.
Kim Alvefur <zash@zash.se>
parents: 854
diff changeset
96 -- COMPAT
2ece37bf9cc6 mod_carbons: Support the pre-forwarding version of Carbons. Please don't implement this.
Kim Alvefur <zash@zash.se>
parents: 854
diff changeset
97 local carbon_really_old = st.clone(stanza)
2ece37bf9cc6 mod_carbons: Support the pre-forwarding version of Carbons. Please don't implement this.
Kim Alvefur <zash@zash.se>
parents: 854
diff changeset
98 :tag(c2s and "sent" or "received", { xmlns = xmlns_carbons_really_old }):up()
2ece37bf9cc6 mod_carbons: Support the pre-forwarding version of Carbons. Please don't implement this.
Kim Alvefur <zash@zash.se>
parents: 854
diff changeset
99
618
267548522810 mod_carbons: Remove useless protection against loop that can't happen
Kim Alvefur <zash@zash.se>
parents: 617
diff changeset
100 user_sessions = user_sessions and user_sessions.sessions;
833
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
101 for _, session in pairs(user_sessions) do
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
102 -- Carbons are sent to resources that have enabled it
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
103 if session.want_carbons
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
104 -- but not the resource that sent the message, or the one that it's directed to
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
105 and session ~= target_session
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
106 -- and isn't among the top resources that would receive the message per standard routing rules
888
f8d08f8ed7de mod_carbons: Make support for v0 disabled by default, don't send v0 carbons for c2s
Michael Holzt <kju@fqdn.org>
parents: 884
diff changeset
107 and (c2s or session.priority ~= top_priority)
f8d08f8ed7de mod_carbons: Make support for v0 disabled by default, don't send v0 carbons for c2s
Michael Holzt <kju@fqdn.org>
parents: 884
diff changeset
108 -- don't send v0 carbons (or copies) for c2s
f8d08f8ed7de mod_carbons: Make support for v0 disabled by default, don't send v0 carbons for c2s
Michael Holzt <kju@fqdn.org>
parents: 884
diff changeset
109 and (not c2s or session.want_carbons ~= xmlns_carbons_really_old) then
833
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
110 carbon.attr.to = session.full_jid;
30d49c26d219 mod_carbons: Optimize and clarify (thanks waqas)
Kim Alvefur <zash@zash.se>
parents: 832
diff changeset
111 module:log("debug", "Sending carbon to %s", session.full_jid);
884
2ece37bf9cc6 mod_carbons: Support the pre-forwarding version of Carbons. Please don't implement this.
Kim Alvefur <zash@zash.se>
parents: 854
diff changeset
112 local carbon = session.want_carbons == xmlns_carbons_old and carbon_old -- COMPAT
2ece37bf9cc6 mod_carbons: Support the pre-forwarding version of Carbons. Please don't implement this.
Kim Alvefur <zash@zash.se>
parents: 854
diff changeset
113 or session.want_carbons == xmlns_carbons_really_old and carbon_really_old -- COMPAT
2ece37bf9cc6 mod_carbons: Support the pre-forwarding version of Carbons. Please don't implement this.
Kim Alvefur <zash@zash.se>
parents: 854
diff changeset
114 or carbon;
832
9087431d35f6 mod_carbons: Add comments and rename some variables to make it clearer
Kim Alvefur <zash@zash.se>
parents: 804
diff changeset
115 session.send(carbon);
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
116 end
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
117 end
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
118 end
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
119
480
0cef5be669de mod_carbons: Consolidate message handlers
Kim Alvefur <zash@zash.se>
parents: 463
diff changeset
120 local function c2s_message_handler(event)
0cef5be669de mod_carbons: Consolidate message handlers
Kim Alvefur <zash@zash.se>
parents: 463
diff changeset
121 return message_handler(event, true)
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
122 end
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
123
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
124 -- Stanzas sent by local clients
2373
704e4845267b mod_carbons: Comment about the priority
Kim Alvefur <zash@zash.se>
parents: 2371
diff changeset
125 module:hook("pre-message/host", c2s_message_handler, 0.05); -- priority between mod_message (0 in 0.9) and mod_firewall (0.1)
2371
b41957bf4fd3 mod_carbons: Adjust event hook priorities to be between mod_message and mod_firewall (see #669)
Kim Alvefur <zash@zash.se>
parents: 2338
diff changeset
126 module:hook("pre-message/bare", c2s_message_handler, 0.05);
b41957bf4fd3 mod_carbons: Adjust event hook priorities to be between mod_message and mod_firewall (see #669)
Kim Alvefur <zash@zash.se>
parents: 2338
diff changeset
127 module:hook("pre-message/full", c2s_message_handler, 0.05);
510
59e80326f2b3 mod_carbons: Fix a typo and unindent a line.
Kim Alvefur <zash@zash.se>
parents: 480
diff changeset
128 -- Stanzas to local clients
2371
b41957bf4fd3 mod_carbons: Adjust event hook priorities to be between mod_message and mod_firewall (see #669)
Kim Alvefur <zash@zash.se>
parents: 2338
diff changeset
129 module:hook("message/bare", message_handler, 0.05);
b41957bf4fd3 mod_carbons: Adjust event hook priorities to be between mod_message and mod_firewall (see #669)
Kim Alvefur <zash@zash.se>
parents: 2338
diff changeset
130 module:hook("message/full", message_handler, 0.05);
462
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
131
f28a3f260fc2 mod_carbons: Initial commit.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
132 module:add_feature(xmlns_carbons);
854
1c64ab8ae374 mod_carbons: Advertise support for the previous version
Kim Alvefur <zash@zash.se>
parents: 850
diff changeset
133 module:add_feature(xmlns_carbons_old);
888
f8d08f8ed7de mod_carbons: Make support for v0 disabled by default, don't send v0 carbons for c2s
Michael Holzt <kju@fqdn.org>
parents: 884
diff changeset
134 if module:get_option_boolean("carbons_v0") then
f8d08f8ed7de mod_carbons: Make support for v0 disabled by default, don't send v0 carbons for c2s
Michael Holzt <kju@fqdn.org>
parents: 884
diff changeset
135 module:add_feature(xmlns_carbons_really_old);
f8d08f8ed7de mod_carbons: Make support for v0 disabled by default, don't send v0 carbons for c2s
Michael Holzt <kju@fqdn.org>
parents: 884
diff changeset
136 end