aboutsummaryrefslogtreecommitdiff
path: root/src/mod_pres_counter.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_pres_counter.erl')
-rw-r--r--src/mod_pres_counter.erl20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/mod_pres_counter.erl b/src/mod_pres_counter.erl
index e904ab95f..1118b7bbc 100644
--- a/src/mod_pres_counter.erl
+++ b/src/mod_pres_counter.erl
@@ -5,7 +5,7 @@
%%% Created : 23 Sep 2010 by Ahmed Omar
%%%
%%%
-%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
+%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
@@ -27,7 +27,8 @@
-behavior(gen_mod).
--export([start/2, stop/1, check_packet/6]).
+-export([start/2, stop/1, check_packet/6,
+ mod_opt_type/1]).
-include("ejabberd.hrl").
-include("logger.hrl").
@@ -51,7 +52,7 @@ check_packet(_, _User, Server, _PrivacyList,
{From, To, #xmlel{name = Name, attrs = Attrs}}, Dir) ->
case Name of
<<"presence">> ->
- IsSubscription = case xml:get_attr_s(<<"type">>, Attrs)
+ IsSubscription = case fxml:get_attr_s(<<"type">>, Attrs)
of
<<"subscribe">> -> true;
<<"subscribed">> -> true;
@@ -77,8 +78,7 @@ update(Server, JID, Dir) ->
TimeInterval = gen_mod:get_module_opt(Server, ?MODULE, interval,
fun(I) when is_integer(I), I>0 -> I end,
60),
- {MegaSecs, Secs, _MicroSecs} = now(),
- TimeStamp = MegaSecs * 1000000 + Secs,
+ TimeStamp = p1_time_compat:system_time(seconds),
case read(Dir) of
undefined ->
write(Dir,
@@ -98,14 +98,14 @@ update(Server, JID, Dir) ->
in ->
?WARNING_MSG("User ~s is being flooded, ignoring received "
"presence subscriptions",
- [jlib:jid_to_string(JID)]);
+ [jid:to_string(JID)]);
out ->
IP = ejabberd_sm:get_user_ip(JID#jid.luser,
JID#jid.lserver,
JID#jid.lresource),
?WARNING_MSG("Flooder detected: ~s, on IP: ~s ignoring "
"sent presence subscriptions~n",
- [jlib:jid_to_string(JID),
+ [jid:to_string(JID),
jlib:ip_to_list(IP)])
end,
{stop, deny};
@@ -119,3 +119,9 @@ update(Server, JID, Dir) ->
read(K) -> get({pres_counter, K}).
write(K, V) -> put({pres_counter, K}, V).
+
+mod_opt_type(count) ->
+ fun (I) when is_integer(I), I > 0 -> I end;
+mod_opt_type(interval) ->
+ fun (I) when is_integer(I), I > 0 -> I end;
+mod_opt_type(_) -> [count, interval].