Mercurial > prosody-modules
comparison mod_carbons/mod_carbons.lua @ 835:07cc1efde2f8
mod_carbons: Fix handling of messages from remote hosts
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 19 Sep 2012 16:36:32 +0200 |
parents | 30d49c26d219 |
children | a86131581180 |
comparison
equal
deleted
inserted
replaced
834:21e99dc949ee | 835:07cc1efde2f8 |
---|---|
24 module:hook("iq/self/"..xmlns_carbons..":enable", toggle_carbons); | 24 module:hook("iq/self/"..xmlns_carbons..":enable", toggle_carbons); |
25 | 25 |
26 local function message_handler(event, c2s) | 26 local function message_handler(event, c2s) |
27 local origin, stanza = event.origin, event.stanza; | 27 local origin, stanza = event.origin, event.stanza; |
28 local orig_type = stanza.attr.type; | 28 local orig_type = stanza.attr.type; |
29 local orig_from = stanza.attr.from; | |
29 local orig_to = stanza.attr.to; | 30 local orig_to = stanza.attr.to; |
30 | 31 |
31 if not (orig_type == nil | 32 if not (orig_type == nil |
32 or orig_type == "normal" | 33 or orig_type == "normal" |
33 or orig_type == "chat") then | 34 or orig_type == "chat") then |
34 return -- No carbons for messages of type error or headline | 35 return -- No carbons for messages of type error or headline |
35 end | 36 end |
36 | 37 |
37 -- Stanza sent by a local client | 38 -- Stanza sent by a local client |
38 local bare_jid = origin.username .. "@" .. origin.host; | 39 local bare_jid = origin.type == "c2s" and origin.username .. "@" .. origin.host or jid_bare(orig_from); |
39 local target_session = origin; | 40 local target_session = origin; |
40 local top_priority = false; | 41 local top_priority = false; |
41 local user_sessions = host_sessions[origin.username]; | 42 local user_sessions = host_sessions[origin.username]; |
42 | 43 |
43 -- Stanza about to be delivered to a local client | 44 -- Stanza about to be delivered to a local client |