Merge pull request #107 from weiss/update-for-15.06

Update modules to work with ejabberd 15.06
This commit is contained in:
badlop 2015-06-29 14:00:29 +02:00
commit 2a953da2fb
6 changed files with 58 additions and 48 deletions

View File

@ -13,8 +13,8 @@
-export([start/2, -export([start/2,
init/1, init/1,
stop/1, stop/1,
log_packet_send/3, log_packet_send/4,
log_packet_receive/4]). log_packet_receive/5]).
-ifndef(LAGER). -ifndef(LAGER).
-define(LAGER, 1). -define(LAGER, 1).
@ -77,13 +77,15 @@ stop(Host) ->
gen_mod:get_module_proc(Host, ?PROCNAME) ! stop, gen_mod:get_module_proc(Host, ?PROCNAME) ! stop,
ok. ok.
log_packet_send(From, To, Packet) -> log_packet_send(Packet, _C2SState, From, To) ->
log_packet(From, To, Packet, From#jid.lserver). log_packet(From, To, Packet, From#jid.lserver),
Packet.
log_packet_receive(_JID, From, To, _Packet) when From#jid.lserver == To#jid.lserver-> log_packet_receive(Packet, _C2SState, _JID, From, To) when From#jid.lserver == To#jid.lserver->
ok; % only log at send time if the message is local to the server Packet; % only log at send time if the message is local to the server
log_packet_receive(_JID, From, To, Packet) -> log_packet_receive(Packet, _C2SState, _JID, From, To) ->
log_packet(From, To, Packet, To#jid.lserver). log_packet(From, To, Packet, To#jid.lserver),
Packet.
log_packet(From, To, Packet = #xmlel{name = <<"message">>, attrs = Attrs}, Host) -> log_packet(From, To, Packet = #xmlel{name = <<"message">>, attrs = Attrs}, Host) ->
case xml:get_attr_s(<<"type">>, Attrs) of case xml:get_attr_s(<<"type">>, Attrs) of

View File

@ -12,7 +12,7 @@
-behaviour(gen_mod). -behaviour(gen_mod).
-export([start/2, init/7, stop/1, -export([start/2, init/7, stop/1,
send_packet/3, receive_packet/4]). send_packet/4, receive_packet/5]).
-include("ejabberd.hrl"). -include("ejabberd.hrl").
-include("jlib.hrl"). -include("jlib.hrl").
@ -166,15 +166,17 @@ loop(Host, IoDevice, Filename, Logdir, CheckRKP, RotateO, PacketC,
Gregorian_day, Timezone, ShowIP, FilterO) Gregorian_day, Timezone, ShowIP, FilterO)
end. end.
send_packet(FromJID, ToJID, P) -> send_packet(P, _C2SState, FromJID, ToJID) ->
Host = FromJID#jid.lserver, Host = FromJID#jid.lserver,
Proc = gen_mod:get_module_proc(Host, ?PROCNAME), Proc = gen_mod:get_module_proc(Host, ?PROCNAME),
Proc ! {addlog, {send, FromJID, ToJID, P}}. Proc ! {addlog, {send, FromJID, ToJID, P}},
P.
receive_packet(_JID, From, To, P) -> receive_packet(P, _C2SState, _JID, From, To) ->
Host = To#jid.lserver, Host = To#jid.lserver,
Proc = gen_mod:get_module_proc(Host, ?PROCNAME), Proc = gen_mod:get_module_proc(Host, ?PROCNAME),
Proc ! {addlog, {recv, From, To, P}}. Proc ! {addlog, {recv, From, To, P}},
P.
add_log(Io, Timezone, ShowIP, {Orientation, From, To, Packet}, _OSD) -> add_log(Io, Timezone, ShowIP, {Orientation, From, To, Packet}, _OSD) ->
%%{Orientation, Stanza, Direction} = OSD, %%{Orientation, Stanza, Direction} = OSD,

View File

@ -51,8 +51,8 @@
%% ejabberd_hooks callbacks. %% ejabberd_hooks callbacks.
-export([disco_features/5, -export([disco_features/5,
receive_stanza/4, receive_stanza/5,
send_stanza/3, send_stanza/4,
remove_user/2]). remove_user/2]).
%% gen_iq_handler callback. %% gen_iq_handler callback.
@ -274,10 +274,10 @@ disco_features({result, OtherFeatures},
{result, OtherFeatures ++ [?NS_MAM]}; {result, OtherFeatures ++ [?NS_MAM]};
disco_features(Acc, _From, _To, _Node, _Lang) -> Acc. disco_features(Acc, _From, _To, _Node, _Lang) -> Acc.
-spec receive_stanza(jid(), jid(), jid(), xmlel()) -> ok. -spec receive_stanza(xmlel(), term(), jid(), jid(), jid()) -> xmlel().
receive_stanza(#jid{luser = U, lserver = S} = JID, From, To, receive_stanza(#xmlel{name = <<"message">>} = Stanza, _C2SState,
#xmlel{name = <<"message">>} = Stanza) -> #jid{luser = U, lserver = S} = JID, From, To) ->
case is_desired(incoming, JID, To, Stanza) of case is_desired(incoming, JID, To, Stanza) of
true -> true ->
Proc = gen_mod:get_module_proc(S, ?PROCNAME), Proc = gen_mod:get_module_proc(S, ?PROCNAME),
@ -288,15 +288,15 @@ receive_stanza(#jid{luser = U, lserver = S} = JID, From, To,
?GEN_SERVER:cast(Proc, {store, {U, S}, Msg}); ?GEN_SERVER:cast(Proc, {store, {U, S}, Msg});
false -> false ->
?DEBUG("Won't archive undesired incoming stanza for ~s", ?DEBUG("Won't archive undesired incoming stanza for ~s",
[jlib:jid_to_string(To)]), [jlib:jid_to_string(To)])
ok end,
end; Stanza;
receive_stanza(_JID, _From, _To, _Stanza) -> ok. receive_stanza(Stanza, _C2SState, _JID, _From, _To) -> Stanza.
-spec send_stanza(jid(), jid(), xmlel()) -> ok. -spec send_stanza(xmlel(), term(), jid(), jid()) -> xmlel().
send_stanza(#jid{luser = U, lserver = S} = From, To, send_stanza(#xmlel{name = <<"message">>} = Stanza, _C2SState,
#xmlel{name = <<"message">>} = Stanza) -> #jid{luser = U, lserver = S} = From, To) ->
case is_desired(outgoing, From, To, Stanza) of case is_desired(outgoing, From, To, Stanza) of
true -> true ->
Proc = gen_mod:get_module_proc(S, ?PROCNAME), Proc = gen_mod:get_module_proc(S, ?PROCNAME),
@ -307,10 +307,10 @@ send_stanza(#jid{luser = U, lserver = S} = From, To,
?GEN_SERVER:cast(Proc, {store, {U, S}, Msg}); ?GEN_SERVER:cast(Proc, {store, {U, S}, Msg});
false -> false ->
?DEBUG("Won't archive undesired outgoing stanza from ~s", ?DEBUG("Won't archive undesired outgoing stanza from ~s",
[jlib:jid_to_string(From)]), [jlib:jid_to_string(From)])
ok end,
end; Stanza;
send_stanza(_From, _To, _Stanza) -> ok. send_stanza(Stanza, _C2SState, _From, _To) -> Stanza.
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% Check whether stanza should be stored. %% Check whether stanza should be stored.

View File

@ -25,8 +25,8 @@
code_change/3]). code_change/3]).
%% ejabberd_hooks callbacks. %% ejabberd_hooks callbacks.
-export([log_packet_send/3, -export([log_packet_send/4,
log_packet_receive/4, log_packet_receive/5,
log_packet_offline/3, log_packet_offline/3,
reopen_log/0]). reopen_log/0]).
@ -140,15 +140,17 @@ code_change(_OldVsn, State, _Extra) ->
%% ejabberd_hooks callbacks. %% ejabberd_hooks callbacks.
%% ------------------------------------------------------------------- %% -------------------------------------------------------------------
-spec log_packet_send(jid(), jid(), xmlel()) -> any(). -spec log_packet_send(xmlel(), term(), jid(), jid()) -> xmlel().
log_packet_send(From, To, Packet) -> log_packet_send(Packet, _C2SState, From, To) ->
log_packet(outgoing, From, To, Packet). log_packet(outgoing, From, To, Packet),
Packet.
-spec log_packet_receive(jid(), jid(), jid(), xmlel()) -> any(). -spec log_packet_receive(xmlel(), term(), jid(), jid(), jid()) -> xmlel().
log_packet_receive(JID, From, _To, Packet) -> log_packet_receive(Packet, _C2SState, JID, From, _To) ->
log_packet(incoming, From, JID, Packet). log_packet(incoming, From, JID, Packet),
Packet.
-spec log_packet_offline(jid(), jid(), xmlel()) -> any(). -spec log_packet_offline(jid(), jid(), xmlel()) -> any().

View File

@ -14,7 +14,7 @@
-export([start/2, -export([start/2,
stop/1, stop/1,
log_user_send/3, log_user_send/4,
post_result/1]). post_result/1]).
-include("ejabberd.hrl"). -include("ejabberd.hrl").
@ -36,8 +36,9 @@ stop(Host) ->
?MODULE, log_user_send, 50), ?MODULE, log_user_send, 50),
ok. ok.
log_user_send(From, To, Packet) -> log_user_send(Packet, _C2SState, From, To) ->
ok = log_packet(From, To, Packet). ok = log_packet(From, To, Packet),
Packet.
log_packet(From, To, #xmlel{name = <<"message">>} = Packet) -> log_packet(From, To, #xmlel{name = <<"message">>} = Packet) ->
ok = log_message(From, To, Packet); ok = log_message(From, To, Packet);

View File

@ -22,8 +22,8 @@
web_menu_node/3, web_page_node/5, web_menu_node/3, web_page_node/5,
web_menu_host/3, web_page_host/3, web_menu_host/3, web_page_host/3,
%% Hooks %% Hooks
register_user/2, remove_user/2, user_send_packet/3, register_user/2, remove_user/2, user_send_packet/4,
user_send_packet_traffic/3, user_receive_packet_traffic/4, user_send_packet_traffic/4, user_receive_packet_traffic/5,
user_login/1, user_logout/4, user_logout_sm/3]). user_login/1, user_logout/4, user_logout_sm/3]).
-include("ejabberd.hrl"). -include("ejabberd.hrl").
@ -224,14 +224,15 @@ remove_user(_User, Host) ->
ets:update_counter(TableHost, {remove_user, Host}, 1), ets:update_counter(TableHost, {remove_user, Host}, 1),
ets:update_counter(TableServer, {remove_user, server}, 1). ets:update_counter(TableServer, {remove_user, server}, 1).
user_send_packet(FromJID, ToJID, NewEl) -> user_send_packet(NewEl, _C2SState, FromJID, ToJID) ->
%% Registrarse para tramitar Host/mod_stats2file %% Registrarse para tramitar Host/mod_stats2file
case catch binary_to_existing_atom(ToJID#jid.lresource, utf8) of case catch binary_to_existing_atom(ToJID#jid.lresource, utf8) of
?MODULE -> received_response(FromJID, ToJID, NewEl); ?MODULE -> received_response(FromJID, ToJID, NewEl);
_ -> ok _ -> ok
end. end,
NewEl.
user_send_packet_traffic(FromJID, ToJID, NewEl) -> user_send_packet_traffic(NewEl, _C2SState, FromJID, ToJID) ->
%% Only required for traffic stats %% Only required for traffic stats
Host = FromJID#jid.lserver, Host = FromJID#jid.lserver,
HostTo = ToJID#jid.lserver, HostTo = ToJID#jid.lserver,
@ -246,10 +247,11 @@ user_send_packet_traffic(FromJID, ToJID, NewEl) ->
false -> out false -> out
end, end,
Table = table_name(Host), Table = table_name(Host),
ets:update_counter(Table, {send, Host, Type2, Dest}, 1). ets:update_counter(Table, {send, Host, Type2, Dest}, 1),
NewEl.
%% Only required for traffic stats %% Only required for traffic stats
user_receive_packet_traffic(_JID, From, To, FixedPacket) -> user_receive_packet_traffic(FixedPacket, _C2SState, _JID, From, To) ->
HostFrom = From#jid.lserver, HostFrom = From#jid.lserver,
Host = To#jid.lserver, Host = To#jid.lserver,
{xmlel, Type, _, _} = FixedPacket, {xmlel, Type, _, _} = FixedPacket,
@ -263,7 +265,8 @@ user_receive_packet_traffic(_JID, From, To, FixedPacket) ->
false -> out false -> out
end, end,
Table = table_name(Host), Table = table_name(Host),
ets:update_counter(Table, {recv, Host, Type2, Dest}, 1). ets:update_counter(Table, {recv, Host, Type2, Dest}, 1),
FixedPacket.
%%%================================== %%%==================================