aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_rdbms.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_rdbms.erl')
-rw-r--r--src/ejabberd_rdbms.erl28
1 files changed, 9 insertions, 19 deletions
diff --git a/src/ejabberd_rdbms.erl b/src/ejabberd_rdbms.erl
index c6f5536d7..3acb044f0 100644
--- a/src/ejabberd_rdbms.erl
+++ b/src/ejabberd_rdbms.erl
@@ -26,11 +26,10 @@
-module(ejabberd_rdbms).
-behaviour(supervisor).
--behaviour(ejabberd_config).
-author('alexey@process-one.net').
--export([start_link/0, init/1, opt_type/1,
+-export([start_link/0, init/1,
config_reloaded/0, start_host/1, stop_host/1]).
-include("logger.hrl").
@@ -55,7 +54,7 @@ get_specs() ->
{ok, Spec} -> [Spec];
undefined -> []
end
- end, ejabberd_config:get_myhosts()).
+ end, ejabberd_option:hosts()).
-spec get_spec(binary()) -> {ok, supervisor:child_spec()} | undefined.
get_spec(Host) ->
@@ -71,7 +70,7 @@ get_spec(Host) ->
-spec config_reloaded() -> ok.
config_reloaded() ->
- lists:foreach(fun reload_host/1, ejabberd_config:get_myhosts()).
+ lists:foreach(fun reload_host/1, ejabberd_option:hosts()).
-spec start_host(binary()) -> ok.
start_host(Host) ->
@@ -89,12 +88,13 @@ start_host(Host) ->
ok
end.
--spec stop_host(binary()) -> ok.
+-spec stop_host(binary()) -> ok | {error, atom()}.
stop_host(Host) ->
SupName = gen_mod:get_module_proc(Host, ejabberd_sql_sup),
- supervisor:terminate_child(?MODULE, SupName),
- supervisor:delete_child(?MODULE, SupName),
- ok.
+ case supervisor:terminate_child(?MODULE, SupName) of
+ ok -> supervisor:delete_child(?MODULE, SupName);
+ Err -> Err
+ end.
-spec reload_host(binary()) -> ok.
reload_host(Host) ->
@@ -106,7 +106,7 @@ reload_host(Host) ->
%% Returns {true, App} if we have configured sql for the given host
needs_sql(Host) ->
LHost = jid:nameprep(Host),
- case ejabberd_config:get_option({sql_type, LHost}, undefined) of
+ case ejabberd_option:sql_type(LHost) of
mysql -> {true, p1_mysql};
pgsql -> {true, p1_pgsql};
sqlite -> {true, sqlite3};
@@ -114,13 +114,3 @@ needs_sql(Host) ->
odbc -> {true, odbc};
undefined -> false
end.
-
--spec opt_type(atom()) -> fun((any()) -> any()) | [atom()].
-opt_type(sql_type) ->
- fun (mysql) -> mysql;
- (pgsql) -> pgsql;
- (sqlite) -> sqlite;
- (mssql) -> mssql;
- (odbc) -> odbc
- end;
-opt_type(_) -> [sql_type].