Mercurial > prosody-modules
comparison mod_carbons/mod_carbons.lua @ 463:7d6a05f94941
mod_carbons: Fix top_resources loop and correctly stamp sent messages (thanks xnyhps)
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 30 Oct 2011 01:41:33 +0200 |
parents | f28a3f260fc2 |
children | 0cef5be669de |
comparison
equal
deleted
inserted
replaced
462:f28a3f260fc2 | 463:7d6a05f94941 |
---|---|
59 from = bare_jid, | 59 from = bare_jid, |
60 to = full_jid, | 60 to = full_jid, |
61 type = orig_type, | 61 type = orig_type, |
62 } | 62 } |
63 :tag("forwarded", { xmlns = xmlns_forward }) | 63 :tag("forwarded", { xmlns = xmlns_forward }) |
64 :tag("received", { xmlns = xmlns_carbons }):up() | 64 :tag("sent", { xmlns = xmlns_carbons }):up() |
65 :add_child(msg); | 65 :add_child(msg); |
66 core_route_stanza(origin, fwd); | 66 core_route_stanza(origin, fwd); |
67 end | 67 end |
68 end | 68 end |
69 end | 69 end |
90 local no_carbon_to = {}; | 90 local no_carbon_to = {}; |
91 if resource then | 91 if resource then |
92 no_carbon_to[resource] = true; | 92 no_carbon_to[resource] = true; |
93 else | 93 else |
94 local top_resources = user_sessions.top_resources; | 94 local top_resources = user_sessions.top_resources; |
95 for i=1,top_resources do | 95 for i, session in ipairs(top_resources) do |
96 no_carbon_to[top_resources[i]] = true; | 96 no_carbon_to[session.resource] = true; |
97 module:log("debug", "not going to send to /%s", resource); | |
97 end | 98 end |
98 end | 99 end |
99 | 100 |
100 if not stanza:get_child("private", xmlns_carbons) | 101 if not stanza:get_child("private", xmlns_carbons) |
101 and not stanza:get_child("forwarded", xmlns_forward) then | 102 and not stanza:get_child("forwarded", xmlns_forward) then |
121 | 122 |
122 -- Stanzas sent by local clients | 123 -- Stanzas sent by local clients |
123 module:hook("pre-message/bare", c2s_message_handler, 1); | 124 module:hook("pre-message/bare", c2s_message_handler, 1); |
124 module:hook("pre-message/full", c2s_message_handler, 1); | 125 module:hook("pre-message/full", c2s_message_handler, 1); |
125 -- Stanszas to local clients | 126 -- Stanszas to local clients |
126 module:hook("message/bare", s2c_message_handler, 1); -- this will suck | 127 module:hook("message/bare", s2c_message_handler, 1); |
127 module:hook("message/full", s2c_message_handler, 1); | 128 module:hook("message/full", s2c_message_handler, 1); |
128 | 129 |
129 module:add_feature(xmlns_carbons); | 130 module:add_feature(xmlns_carbons); |