diff options
Diffstat (limited to 'src/ejabberd_rdbms.erl')
-rw-r--r-- | src/ejabberd_rdbms.erl | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/ejabberd_rdbms.erl b/src/ejabberd_rdbms.erl index 93bd9fc49..ae405db0a 100644 --- a/src/ejabberd_rdbms.erl +++ b/src/ejabberd_rdbms.erl @@ -5,7 +5,7 @@ %%% Created : 31 Jan 2003 by Alexey Shchepin <alexey@process-one.net> %%% %%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne +%%% ejabberd, Copyright (C) 2002-2016 ProcessOne %%% %%% This program is free software; you can redistribute it and/or %%% modify it under the terms of the GNU General Public License as @@ -25,14 +25,19 @@ -module(ejabberd_rdbms). +-behaviour(ejabberd_config). + -author('alexey@process-one.net'). --export([start/0]). +-export([start/0, opt_type/1]). -include("ejabberd.hrl"). -include("logger.hrl"). start() -> + file:delete(ejabberd_odbc:freetds_config()), + file:delete(ejabberd_odbc:odbc_config()), + file:delete(ejabberd_odbc:odbcinst_config()), case lists:any(fun(H) -> needs_odbc(H) /= false end, ?MYHOSTS) of true -> @@ -70,16 +75,27 @@ start_odbc(Host, App) -> %% Returns {true, App} if we have configured odbc for the given host needs_odbc(Host) -> - LHost = jlib:nameprep(Host), + LHost = jid:nameprep(Host), case ejabberd_config:get_option({odbc_type, LHost}, fun(mysql) -> mysql; (pgsql) -> pgsql; (sqlite) -> sqlite; + (mssql) -> mssql; (odbc) -> odbc end, undefined) of mysql -> {true, p1_mysql}; pgsql -> {true, p1_pgsql}; sqlite -> {true, sqlite3}; + mssql -> {true, odbc}; odbc -> {true, odbc}; undefined -> false end. + +opt_type(odbc_type) -> + fun (mysql) -> mysql; + (pgsql) -> pgsql; + (sqlite) -> sqlite; + (mssql) -> mssql; + (odbc) -> odbc + end; +opt_type(_) -> [odbc_type]. |