From: Evgeniy Khramtsov Date: Thu, 2 Mar 2017 12:34:26 +0000 (+0300) Subject: Fix previous commit X-Git-Tag: 17.03~47 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4e014b4c5c09e7b981d2694f9e8cd30581c1594f;p=ejabberd Fix previous commit --- diff --git a/src/mod_service_log.erl b/src/mod_service_log.erl index d29cd1329..46fae9217 100644 --- a/src/mod_service_log.erl +++ b/src/mod_service_log.erl @@ -57,41 +57,27 @@ depends(_Host, _Opts) -> -spec log_user_send({stanza(), ejabberd_c2s:state()}) -> {stanza(), ejabberd_c2s:state()}. log_user_send({Packet, C2SState}) -> From = xmpp:get_from(Packet), - To = xmpp:get_to(Packet), - log_packet(From, To, Packet, From#jid.lserver), + log_packet(Packet, From#jid.lserver), {Packet, C2SState}. -spec log_user_receive({stanza(), ejabberd_c2s:state()}) -> {stanza(), ejabberd_c2s:state()}. log_user_receive({Packet, C2SState}) -> - From = xmpp:get_from(Packet), To = xmpp:get_to(Packet), - log_packet(From, To, Packet, To#jid.lserver), + log_packet(Packet, To#jid.lserver), {Packet, C2SState}. --spec log_packet(jid(), jid(), stanza(), binary()) -> ok. -log_packet(From, To, Packet, Host) -> +-spec log_packet(stanza(), binary()) -> ok. +log_packet(Packet, Host) -> Loggers = gen_mod:get_module_opt(Host, ?MODULE, loggers, - fun(L) -> - lists:map( - fun(S) -> - B = iolist_to_binary(S), - N = jid:nameprep(B), - if N /= error -> - N - end - end, L) - end, []), - ServerJID = jid:make(Host), - FixedPacket = xmpp:set_from_to(Packet, From, To), - lists:foreach(fun (Logger) -> - ejabberd_router:route(ServerJID, - jid:make(Logger), - #xmlel{name = <<"route">>, - attrs = [], - children = - [FixedPacket]}) - end, - Loggers). + mod_opt_type(loggers), []), + ForwardedMsg = #message{from = jid:make(Host), + id = randoms:get_string(), + sub_els = [#forwarded{ + xml_els = [xmpp:encode(Packet)]}]}, + lists:foreach( + fun(Logger) -> + ejabberd_router:route(xmpp:set_to(ForwardedMsg, jid:make(Logger))) + end, Loggers). mod_opt_type(loggers) -> fun (L) ->