Comparison

mod_carbons/mod_carbons.lua @ 1184:0d3d15586d7e

mod_carbons: Use iq-type events
author Kim Alvefur <zash@zash.se>
date Thu, 05 Sep 2013 01:02:01 +0200
parent 1183:3acb01ca7e5c
child 1316:d3e75f6dde9b
comparison
equal deleted inserted replaced
1183:3acb01ca7e5c 1184:0d3d15586d7e
11 local xmlns_forward = "urn:xmpp:forward:0"; 11 local xmlns_forward = "urn:xmpp:forward:0";
12 local full_sessions, bare_sessions = full_sessions, bare_sessions; 12 local full_sessions, bare_sessions = full_sessions, bare_sessions;
13 13
14 local function toggle_carbons(event) 14 local function toggle_carbons(event)
15 local origin, stanza = event.origin, event.stanza; 15 local origin, stanza = event.origin, event.stanza;
16 if stanza.attr.type == "set" then 16 local state = stanza.tags[1].attr.mode or stanza.tags[1].name;
17 local state = stanza.tags[1].attr.mode or stanza.tags[1].name; 17 module:log("debug", "%s %sd carbons", origin.full_jid, state);
18 module:log("debug", "%s %sd carbons", origin.full_jid, state); 18 origin.want_carbons = state == "enable" and stanza.tags[1].attr.xmlns;
19 origin.want_carbons = state == "enable" and stanza.tags[1].attr.xmlns; 19 return origin.send(st.reply(stanza));
20 origin.send(st.reply(stanza));
21 return true
22 end
23 end 20 end
24 module:hook("iq/self/"..xmlns_carbons..":disable", toggle_carbons); 21 module:hook("iq-set/self/"..xmlns_carbons..":disable", toggle_carbons);
25 module:hook("iq/self/"..xmlns_carbons..":enable", toggle_carbons); 22 module:hook("iq-set/self/"..xmlns_carbons..":enable", toggle_carbons);
26 23
27 -- COMPAT 24 -- COMPAT
28 module:hook("iq/self/"..xmlns_carbons_old..":disable", toggle_carbons); 25 module:hook("iq-set/self/"..xmlns_carbons_old..":disable", toggle_carbons);
29 module:hook("iq/self/"..xmlns_carbons_old..":enable", toggle_carbons); 26 module:hook("iq-set/self/"..xmlns_carbons_old..":enable", toggle_carbons);
30 module:hook("iq/self/"..xmlns_carbons_really_old..":carbons", toggle_carbons); 27 module:hook("iq-set/self/"..xmlns_carbons_really_old..":carbons", toggle_carbons);
31 28
32 local function message_handler(event, c2s) 29 local function message_handler(event, c2s)
33 local origin, stanza = event.origin, event.stanza; 30 local origin, stanza = event.origin, event.stanza;
34 local orig_type = stanza.attr.type; 31 local orig_type = stanza.attr.type;
35 local orig_from = stanza.attr.from; 32 local orig_from = stanza.attr.from;