summaryrefslogtreecommitdiff
path: root/src/ejabberd_ctl.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-26 15:10:59 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-26 15:10:59 +0300
commitfadcc85553e2fa00c26233e36c0808f5d0089876 (patch)
treea1748f4fb465da1ec2a97c45517e731efec34894 /src/ejabberd_ctl.erl
parentDon't fail on elements decoding (diff)
Put more stuff under supervision
Diffstat (limited to 'src/ejabberd_ctl.erl')
-rw-r--r--src/ejabberd_ctl.erl30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/ejabberd_ctl.erl b/src/ejabberd_ctl.erl
index 32789956..f006ad5c 100644
--- a/src/ejabberd_ctl.erl
+++ b/src/ejabberd_ctl.erl
@@ -46,11 +46,15 @@
-module(ejabberd_ctl).
-behaviour(ejabberd_config).
+-behaviour(gen_server).
-author('alexey@process-one.net').
--export([start/0, init/0, process/1, process2/2,
+-export([start/0, start_link/0, process/1, process2/2,
register_commands/3, unregister_commands/3,
opt_type/1]).
+%% gen_server callbacks
+-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
+ terminate/2, code_change/3]).
-include("ejabberd_ctl.hrl").
-include("ejabberd_commands.hrl").
@@ -59,6 +63,7 @@
-define(DEFAULT_VERSION, 1000000).
+-record(state, {}).
%%-----------------------------
%% Module
@@ -103,10 +108,29 @@ start() ->
end,
halt(Status).
-init() ->
+start_link() ->
+ gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
+
+init([]) ->
ets:new(ejabberd_ctl_cmds, [named_table, set, public]),
- ets:new(ejabberd_ctl_host_cmds, [named_table, set, public]).
+ ets:new(ejabberd_ctl_host_cmds, [named_table, set, public]),
+ {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}.
%%-----------------------------
%% ejabberdctl Command managment