25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-12-20 17:27:00 +01:00

#148 Carbon copy sends message back to original sender solved

This commit is contained in:
iulianlaz 2014-03-06 08:40:38 +00:00
parent afba5bc5f5
commit 9ef1ad0b6e

View File

@ -151,7 +151,19 @@ check_and_forward(JID, #xmlel{name = <<"message">>, attrs = Attrs} = Packet, Dir
false ->
case xml:get_subtag(Packet,<<"received">>) of
false ->
send_copies(JID, Packet, Direction);
%% We must check if a packet contains "<sent><forwarded></sent></forwarded>" tags in order to avoid
%% receiving message back to original sender.
SubTag = xml:get_subtag(Packet,<<"sent">>),
if SubTag == false ->
send_copies(JID, Packet, Direction);
true ->
case xml:get_subtag(SubTag,<<"forwarded">>) of
false->
send_copies(JID, Packet, Direction);
_ ->
stop
end
end;
_ ->
%% stop the hook chain, we don't want mod_logdb to register this message (duplicate)
stop