X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=plugins%2Fmod_carbons.lua;h=9ef14713553bf3fa7e60c38ef0853b7f88216807;hb=884ef2b33ffa8bc699fb7e6169a5b02b5e8f91f0;hp=51242809d3c2e91c5d96c3ceccab90457a023d1d;hpb=41977f3e683e553a2a96b23b467e2ac6b8c3cec3;p=prosody.git diff --git a/plugins/mod_carbons.lua b/plugins/mod_carbons.lua index 51242809..9ef14713 100644 --- a/plugins/mod_carbons.lua +++ b/plugins/mod_carbons.lua @@ -7,28 +7,27 @@ local st = require "util.stanza"; local jid_bare = require "util.jid".bare; local xmlns_carbons = "urn:xmpp:carbons:2"; local xmlns_forward = "urn:xmpp:forward:0"; -local full_sessions, bare_sessions = full_sessions, bare_sessions; +local full_sessions, bare_sessions = prosody.full_sessions, prosody.bare_sessions; local function toggle_carbons(event) local origin, stanza = event.origin, event.stanza; local state = stanza.tags[1].name; module:log("debug", "%s %sd carbons", origin.full_jid, state); origin.want_carbons = state == "enable" and stanza.tags[1].attr.xmlns; - return origin.send(st.reply(stanza)); + origin.send(st.reply(stanza)); + return true; end module:hook("iq-set/self/"..xmlns_carbons..":disable", toggle_carbons); module:hook("iq-set/self/"..xmlns_carbons..":enable", toggle_carbons); local function message_handler(event, c2s) local origin, stanza = event.origin, event.stanza; - local orig_type = stanza.attr.type; + local orig_type = stanza.attr.type or "normal"; local orig_from = stanza.attr.from; local orig_to = stanza.attr.to; - if not (orig_type == nil - or orig_type == "normal" - or orig_type == "chat") then - return -- No carbons for messages of type error or headline + if not(orig_type == "chat" or orig_type == "normal" and stanza:get_child("body")) then + return -- Only chat type messages end -- Stanza sent by a local client