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.erl13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/mod_carboncopy.erl b/src/mod_carboncopy.erl
index 2cc495aec..186aca5e3 100644
--- a/src/mod_carboncopy.erl
+++ b/src/mod_carboncopy.erl
@@ -34,7 +34,7 @@
-export([start/2,
stop/1]).
--export([user_send_packet/3, user_receive_packet/4,
+-export([user_send_packet/4, user_receive_packet/5,
iq_handler2/3, iq_handler1/3, remove_connection/4,
is_carbon_copy/1, mod_opt_type/1]).
@@ -124,10 +124,10 @@ iq_handler(From, _To, #iq{type=set, sub_el = #xmlel{name = Operation, children
iq_handler(_From, _To, IQ, _CC)->
IQ#iq{type=error, sub_el = [?ERR_NOT_ALLOWED]}.
-user_send_packet(From, To, Packet) ->
+user_send_packet(Packet, _C2SState, From, To) ->
check_and_forward(From, To, Packet, sent).
-user_receive_packet(JID, _From, To, Packet) ->
+user_receive_packet(Packet, _C2SState, JID, _From, To) ->
check_and_forward(JID, To, Packet, received).
% verifier si le trafic est local
@@ -142,14 +142,15 @@ check_and_forward(JID, To, Packet, Direction)->
true ->
case is_carbon_copy(Packet) of
false ->
- send_copies(JID, To, Packet, Direction);
+ send_copies(JID, To, Packet, Direction),
+ Packet;
true ->
%% stop the hook chain, we don't want mod_logdb to register
%% this message (duplicate)
- stop
+ {stop, Packet}
end;
_ ->
- ok
+ Packet
end.
remove_connection(User, Server, Resource, _Status)->