aboutsummaryrefslogtreecommitdiff
path: root/src/mod_admin_extra.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_admin_extra.erl')
-rw-r--r--src/mod_admin_extra.erl21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl
index 013c342d8..799f0079f 100644
--- a/src/mod_admin_extra.erl
+++ b/src/mod_admin_extra.erl
@@ -44,7 +44,7 @@
kick_session/4, status_num/2, status_num/1,
status_list/2, status_list/1, connected_users_info/0,
connected_users_vhost/1, set_presence/7,
- get_presence/2, user_sessions_info/2, get_last/2,
+ get_presence/2, user_sessions_info/2, get_last/2, set_last/4,
% Accounts
set_password/3, check_password_hash/4, delete_old_users/1,
@@ -93,8 +93,13 @@
start(_Host, _Opts) ->
ejabberd_commands:register_commands(get_commands_spec()).
-stop(_Host) ->
- ejabberd_commands:unregister_commands(get_commands_spec()).
+stop(Host) ->
+ case gen_mod:is_loaded_elsewhere(Host, ?MODULE) of
+ false ->
+ ejabberd_commands:unregister_commands(get_commands_spec());
+ true ->
+ ok
+ end.
reload(_Host, _NewOpts, _OldOpts) ->
ok.
@@ -602,9 +607,9 @@ get_commands_spec() ->
]}}},
#ejabberd_commands{name = set_last, tags = [last],
desc = "Set last activity information",
- longdesc = "Timestamp is the seconds since"
+ longdesc = "Timestamp is the seconds since "
"1970-01-01 00:00:00 UTC, for example: date +%s",
- module = mod_last, function = store_last_info,
+ module = ?MODULE, function = set_last,
args = [{user, binary}, {host, binary}, {timestamp, integer}, {status, binary}],
args_example = [<<"user1">>,<<"myserver.com">>, 1500045311, <<"GoSleeping">>],
args_desc = ["User name", "Server name", "Number of seconds since epoch", "Status message"],
@@ -1437,6 +1442,12 @@ get_last(User, Server) ->
end,
{xmpp_util:encode_timestamp(Now), Status}.
+set_last(User, Server, Timestamp, Status) ->
+ case mod_last:store_last_info(User, Server, Timestamp, Status) of
+ {ok, _} -> ok;
+ Error -> Error
+ end.
+
%%%
%%% Private Storage
%%%