Comparison

mod_carbons/mod_carbons.lua @ 618:267548522810

mod_carbons: Remove useless protection against loop that can't happen
author Kim Alvefur <zash@zash.se>
date Tue, 28 Feb 2012 14:33:35 +0100
parent 617:3ca933c9d8ff
child 664:2f11d2473afd
comparison
equal deleted inserted replaced
617:3ca933c9d8ff 618:267548522810
78 end); 78 end);
79 module:log("debug", "Message tagged private, ignoring"); 79 module:log("debug", "Message tagged private, ignoring");
80 return 80 return
81 end 81 end
82 82
83 if not stanza:get_child("forwarded", xmlns_forward) then 83 user_sessions = user_sessions and user_sessions.sessions;
84 user_sessions = user_sessions and user_sessions.sessions; 84 for resource, session in pairs(user_sessions) do
85 for resource, session in pairs(user_sessions) do 85 local full_jid = bare_jid .. "/" .. resource;
86 local full_jid = bare_jid .. "/" .. resource; 86 module:log("debug", "%s wants carbons: %s", session.full_jid, tostring(session.want_carbons));
87 module:log("debug", "%s wants carbons: %s", session.full_jid, tostring(session.want_carbons)); 87 if session.want_carbons then
88 if session.want_carbons then 88 if c2s then
89 if c2s then 89 module:log("debug", "Session is origin: %s", tostring(session == origin));
90 module:log("debug", "Session is origin: %s", tostring(session == origin)); 90 else
91 else 91 module:log("debug", "Session is in ignore list: %s", tostring(no_carbon_to[resource]));
92 module:log("debug", "Session is in ignore list: %s", tostring(no_carbon_to[resource])); 92 end
93 end 93 if (c2s and session ~= origin) or (not c2s and not no_carbon_to[resource]) then
94 if (c2s and session ~= origin) or (not c2s and not no_carbon_to[resource]) then 94 local msg = st.clone(stanza);
95 local msg = st.clone(stanza); 95 msg.attr.xmlns = msg.attr.xmlns or "jabber:client";
96 msg.attr.xmlns = msg.attr.xmlns or "jabber:client"; 96 local fwd = st.message{
97 local fwd = st.message{ 97 from = bare_jid,
98 from = bare_jid, 98 to = full_jid,
99 to = full_jid, 99 type = orig_type,
100 type = orig_type, 100 }
101 } 101 :tag(c2s and "sent" or "received", { xmlns = xmlns_carbons }):up()
102 :tag(c2s and "sent" or "received", { xmlns = xmlns_carbons }):up() 102 :tag("forwarded", { xmlns = xmlns_forward })
103 :tag("forwarded", { xmlns = xmlns_forward }) 103 :add_child(msg);
104 :add_child(msg); 104 module:log("debug", "Sending carbon");
105 module:log("debug", "Sending carbon"); 105 session.send(fwd);
106 session.send(fwd);
107 end
108 end 106 end
109 end 107 end
110 end 108 end
111 end 109 end
112 110