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 |
