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.erl22
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].