diff options
Diffstat (limited to '')
-rw-r--r-- | src/ejabberd_commands.erl | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/src/ejabberd_commands.erl b/src/ejabberd_commands.erl index f56cfc146..d84a671d5 100644 --- a/src/ejabberd_commands.erl +++ b/src/ejabberd_commands.erl @@ -210,9 +210,11 @@ -module(ejabberd_commands). -author('badlop@process-one.net'). +-behaviour(gen_server). + -define(DEFAULT_VERSION, 1000000). --export([init/0, +-export([start_link/0, list_commands/0, list_commands/1, get_command_format/1, @@ -238,6 +240,9 @@ get_commands_definition/1, execute_command2/3, execute_command2/4]). +%% gen_server callbacks +-export([init/1, handle_call/3, handle_cast/2, handle_info/2, + terminate/2, code_change/3]). -include("ejabberd_commands.hrl"). -include("ejabberd.hrl"). @@ -246,6 +251,8 @@ -define(POLICY_ACCESS, '$policy'). +-record(state, {}). + get_commands_spec() -> [ #ejabberd_commands{name = gen_html_doc_for_commands, tags = [documentation], @@ -276,7 +283,11 @@ get_commands_spec() -> result_desc = "0 if command failed, 1 when succedded", args_example = ["/home/me/docs/api.html", "mod_admin", "java,json"], result_example = ok}]. -init() -> + +start_link() -> + gen_server:start_link({local, ?MODULE}, ?MODULE, [], []). + +init([]) -> try mnesia:transform_table(ejabberd_commands, ignore, record_info(fields, ejabberd_commands)) catch exit:{aborted, {no_exists, _}} -> ok @@ -288,7 +299,24 @@ init() -> {type, bag}]), mnesia:add_table_copy(ejabberd_commands, node(), ram_copies), register_commands(get_commands_spec()), - ejabberd_access_permissions:register_permission_addon(?MODULE, fun permission_addon/0). + ejabberd_access_permissions:register_permission_addon(?MODULE, fun permission_addon/0), + {ok, #state{}}. + +handle_call(_Request, _From, State) -> + Reply = ok, + {reply, Reply, State}. + +handle_cast(_Msg, State) -> + {noreply, State}. + +handle_info(_Info, State) -> + {noreply, State}. + +terminate(_Reason, _State) -> + ok. + +code_change(_OldVsn, State, _Extra) -> + {ok, State}. -spec register_commands([ejabberd_commands()]) -> ok. |