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);