diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2014-05-30 23:32:18 +0200 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2014-05-30 23:32:18 +0200 |
commit | ad2d3964ef28011e36c1cdf0d5f8696c4504a91d (patch) | |
tree | b8bcb41bfeaca4f8b44dd0b5331d8c2e1ec58bc3 | |
parent | Fix previous commit (diff) |
Don't send XEP-0280 v1 copies back to sender
An earlier version of XEP-0280 specified the <received/> and <sent/>
tags to be siblings of the <forwarded/> element, whereas the current
version mandates them to be parents of <forwarded/>. The mod_carboncopy
module supports both variants. However, the check that makes sure
clients won't receive a copy of the messages they sent didn't work for
the old-style schema. This is now fixed.
-rw-r--r-- | src/mod_carboncopy.erl | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mod_carboncopy.erl b/src/mod_carboncopy.erl index 124a15f35..009d17ed2 100644 --- a/src/mod_carboncopy.erl +++ b/src/mod_carboncopy.erl @@ -153,9 +153,14 @@ check_and_forward(JID, To, #xmlel{name = <<"message">>, attrs = Attrs} = Packet, if SubTag == false -> send_copies(JID, To, Packet, Direction); true -> - case xml:get_subtag(SubTag,<<"forwarded">>) of + case xml:get_subtag(Packet,<<"forwarded">>) of false-> - send_copies(JID, To, Packet, Direction); + case xml:get_subtag(SubTag,<<"forwarded">>) of + false -> + send_copies(JID, To, Packet, Direction); + _ -> + stop + end; _ -> stop end |