aboutsummaryrefslogtreecommitdiff
path: root/src/mod_carboncopy.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_carboncopy.erl')
-rw-r--r--src/mod_carboncopy.erl20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/mod_carboncopy.erl b/src/mod_carboncopy.erl
index 009d17ed2..4cf3bed71 100644
--- a/src/mod_carboncopy.erl
+++ b/src/mod_carboncopy.erl
@@ -57,15 +57,19 @@
version :: binary() | matchspec_atom()}).
is_carbon_copy(Packet) ->
- case xml:get_subtag(Packet, <<"sent">>) of
- #xmlel{name= <<"sent">>, attrs = AAttrs} ->
- case xml:get_attr_s(<<"xmlns">>, AAttrs) of
- ?NS_CC_2 -> true;
- ?NS_CC_1 -> true;
- _ -> false
- end;
+ is_carbon_copy(Packet, <<"sent">>) orelse
+ is_carbon_copy(Packet, <<"received">>).
+
+is_carbon_copy(Packet, Direction) ->
+ case xml:get_subtag(Packet, Direction) of
+ #xmlel{name = Direction, attrs = Attrs} ->
+ case xml:get_attr_s(<<"xmlns">>, Attrs) of
+ ?NS_CC_2 -> true;
+ ?NS_CC_1 -> true;
_ -> false
- end.
+ end;
+ _ -> false
+ end.
start(Host, Opts) ->
IQDisc = gen_mod:get_opt(iqdisc, Opts,fun gen_iq_handler:check_type/1, one_queue),