aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2014-05-30 23:32:18 +0200
committerHolger Weiss <holger@zedat.fu-berlin.de>2014-05-30 23:32:18 +0200
commitad2d3964ef28011e36c1cdf0d5f8696c4504a91d (patch)
treeb8bcb41bfeaca4f8b44dd0b5331d8c2e1ec58bc3
parentFix 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.erl9
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