]> granicus.if.org Git - ejabberd/commitdiff
Fix previous commit
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>
Thu, 2 Mar 2017 12:34:26 +0000 (15:34 +0300)
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>
Thu, 2 Mar 2017 12:34:26 +0000 (15:34 +0300)
src/mod_service_log.erl

index d29cd132934cd2a8311c5ef5ec7aa102cfe6c2d7..46fae921782102e12170fcaec868c22579a40cdb 100644 (file)
@@ -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) ->