Mercurial > prosody-modules
diff mod_carbons/mod_carbons.lua @ 888:f8d08f8ed7de
mod_carbons: Make support for v0 disabled by default, don't send v0 carbons for c2s
author | Michael Holzt <kju@fqdn.org> |
---|---|
date | Sun, 23 Dec 2012 19:30:28 +0100 |
parents | 2ece37bf9cc6 |
children | d24d87ca3f5f |
line wrap: on
line diff
--- a/mod_carbons/mod_carbons.lua Sun Dec 23 16:22:20 2012 +0100 +++ b/mod_carbons/mod_carbons.lua Sun Dec 23 19:30:28 2012 +0100 @@ -29,15 +29,17 @@ module:hook("iq/self/"..xmlns_carbons_old..":enable", toggle_carbons); -- COMPAT :( -module:hook("iq/self/"..xmlns_carbons_really_old..":carbons", function(event) - local origin, stanza = event.origin, event.stanza; - if stanza.attr.type == "set" then - local state = stanza.tags[1].attr.mode; - origin.want_carbons = state == "enable" and xmlns_carbons_really_old; - origin.send(st.reply(stanza)); - return true; - end -end); +if module:get_option_boolean("carbons_v0") then + module:hook("iq/self/"..xmlns_carbons_really_old..":carbons", function(event) + local origin, stanza = event.origin, event.stanza; + if stanza.attr.type == "set" then + local state = stanza.tags[1].attr.mode; + origin.want_carbons = state == "enable" and xmlns_carbons_really_old; + origin.send(st.reply(stanza)); + return true; + end + end); +end local function message_handler(event, c2s) local origin, stanza = event.origin, event.stanza; @@ -109,7 +111,9 @@ -- but not the resource that sent the message, or the one that it's directed to and session ~= target_session -- and isn't among the top resources that would receive the message per standard routing rules - and (c2s or session.priority ~= top_priority) then + and (c2s or session.priority ~= top_priority) + -- don't send v0 carbons (or copies) for c2s + and (not c2s or session.want_carbons ~= xmlns_carbons_really_old) then carbon.attr.to = session.full_jid; module:log("debug", "Sending carbon to %s", session.full_jid); local carbon = session.want_carbons == xmlns_carbons_old and carbon_old -- COMPAT @@ -133,4 +137,6 @@ module:add_feature(xmlns_carbons); module:add_feature(xmlns_carbons_old); -module:add_feature(xmlns_carbons_really_old); +if module:get_option_boolean("carbons_v0") then + module:add_feature(xmlns_carbons_really_old); +end