aboutsummaryrefslogtreecommitdiff
path: root/src/mod_last.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_last.erl')
-rw-r--r--src/mod_last.erl26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/mod_last.erl b/src/mod_last.erl
index 3ea86b350..6e35938d2 100644
--- a/src/mod_last.erl
+++ b/src/mod_last.erl
@@ -32,7 +32,8 @@
-export([start/2, stop/1, process_local_iq/3, export/1,
process_sm_iq/3, on_presence_update/4, import/1, import/3,
- store_last_info/4, get_last_info/2, remove_user/2]).
+ store_last_info/4, get_last_info/2, remove_user/2,
+ transform_options/1]).
-include("ejabberd.hrl").
-include("logger.hrl").
@@ -101,18 +102,13 @@ process_local_iq(_From, _To,
%% @doc Get the uptime of the ejabberd node, expressed in seconds.
%% When ejabberd is starting, ejabberd_config:start/0 stores the datetime.
get_node_uptime() ->
- case ejabberd_config:get_local_option(
+ case ejabberd_config:get_option(
node_start,
- fun({MegaSecs, Secs, MicroSecs} = Now)
- when is_integer(MegaSecs), MegaSecs >= 0,
- is_integer(Secs), Secs >= 0,
- is_integer(MicroSecs), MicroSecs >= 0 ->
- Now
- end) of
+ fun(S) when is_integer(S), S >= 0 -> S end) of
undefined ->
trunc(element(1, erlang:statistics(wall_clock)) / 1000);
- StartNow ->
- now_to_seconds(now()) - now_to_seconds(StartNow)
+ Now ->
+ now_to_seconds(now()) - Now
end.
now_to_seconds({MegaSecs, Secs, _MicroSecs}) ->
@@ -319,3 +315,13 @@ import(_LServer, mnesia, #last_activity{} = LA) ->
mnesia:dirty_write(LA);
import(_, _, _) ->
pass.
+
+transform_options(Opts) ->
+ lists:foldl(fun transform_options/2, [], Opts).
+
+transform_options({node_start, {_, _, _} = Now}, Opts) ->
+ ?WARNING_MSG("Old 'node_start' format detected. This is still supported "
+ "but it is better to fix your config.", []),
+ [{node_start, now_to_seconds(Now)}|Opts];
+transform_options(Opt, Opts) ->
+ [Opt|Opts].