aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_sql.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_sql.erl')
-rw-r--r--src/ejabberd_sql.erl63
1 files changed, 13 insertions, 50 deletions
diff --git a/src/ejabberd_sql.erl b/src/ejabberd_sql.erl
index 8b9f81233..0dddcb03e 100644
--- a/src/ejabberd_sql.erl
+++ b/src/ejabberd_sql.erl
@@ -252,8 +252,7 @@ sqlite_db(Host) ->
-spec sqlite_file(binary()) -> string().
sqlite_file(Host) ->
- case ejabberd_config:get_option({sql_database, Host},
- fun iolist_to_binary/1) of
+ case ejabberd_config:get_option({sql_database, Host}) of
undefined ->
{ok, Cwd} = file:get_cwd(),
filename:join([Cwd, "sqlite", atom_to_list(node()),
@@ -266,9 +265,7 @@ sqlite_file(Host) ->
%%% Callback functions from gen_fsm
%%%----------------------------------------------------------------------
init([Host, StartInterval]) ->
- case ejabberd_config:get_option(
- {sql_keepalive_interval, Host},
- fun(I) when is_integer(I), I>0 -> I end) of
+ case ejabberd_config:get_option({sql_keepalive_interval, Host}) of
undefined ->
ok;
KeepaliveInterval ->
@@ -278,8 +275,7 @@ init([Host, StartInterval]) ->
[DBType | _] = db_opts(Host),
(?GEN_FSM):send_event(self(), connect),
ejabberd_sql_sup:add_pid(Host, self()),
- QueueType = case ejabberd_config:get_option(
- {sql_queue_type, Host}, opt_type(sql_queue_type)) of
+ QueueType = case ejabberd_config:get_option({sql_queue_type, Host}) of
undefined ->
ejabberd_config:default_queue_type(Host);
Type ->
@@ -927,20 +923,9 @@ log(Level, Format, Args) ->
end.
db_opts(Host) ->
- Type = ejabberd_config:get_option({sql_type, Host},
- fun(mysql) -> mysql;
- (pgsql) -> pgsql;
- (sqlite) -> sqlite;
- (mssql) -> mssql;
- (odbc) -> odbc
- end, odbc),
- Server = ejabberd_config:get_option({sql_server, Host},
- fun iolist_to_binary/1,
- <<"localhost">>),
- Transport = case ejabberd_config:get_option(
- {sql_ssl, Host},
- fun(B) when is_boolean(B) -> B end,
- false) of
+ Type = ejabberd_config:get_option({sql_type, Host}, odbc),
+ Server = ejabberd_config:get_option({sql_server, Host}, <<"localhost">>),
+ Transport = case ejabberd_config:get_option({sql_ssl, Host}, false) of
false -> tcp;
true -> ssl
end,
@@ -953,20 +938,16 @@ db_opts(Host) ->
_ ->
Port = ejabberd_config:get_option(
{sql_port, Host},
- fun(P) when is_integer(P), P > 0, P < 65536 -> P end,
case Type of
mssql -> ?MSSQL_PORT;
mysql -> ?MYSQL_PORT;
pgsql -> ?PGSQL_PORT
end),
DB = ejabberd_config:get_option({sql_database, Host},
- fun iolist_to_binary/1,
<<"ejabberd">>),
User = ejabberd_config:get_option({sql_username, Host},
- fun iolist_to_binary/1,
<<"ejabberd">>),
Pass = ejabberd_config:get_option({sql_password, Host},
- fun iolist_to_binary/1,
<<"">>),
SSLOpts = get_ssl_opts(Transport, Host),
case Type of
@@ -986,19 +967,15 @@ warn_if_ssl_unsupported(ssl, Type) ->
?WARNING_MSG("SSL connection is not supported for ~s", [Type]).
get_ssl_opts(ssl, Host) ->
- Opts1 = case ejabberd_config:get_option({sql_ssl_certfile, Host},
- fun iolist_to_binary/1) of
+ Opts1 = case ejabberd_config:get_option({sql_ssl_certfile, Host}) of
undefined -> [];
CertFile -> [{certfile, CertFile}]
end,
- Opts2 = case ejabberd_config:get_option({sql_ssl_cafile, Host},
- fun iolist_to_binary/1) of
+ Opts2 = case ejabberd_config:get_option({sql_ssl_cafile, Host}) of
undefined -> Opts1;
CAFile -> [{cacertfile, CAFile}|Opts1]
end,
- case ejabberd_config:get_option({sql_ssl_verify, Host},
- fun(B) when is_boolean(B) -> B end,
- false) of
+ case ejabberd_config:get_option({sql_ssl_verify, Host}, false) of
true ->
case lists:keymember(cacertfile, 1, Opts2) of
true ->
@@ -1017,16 +994,9 @@ get_ssl_opts(tcp, _) ->
[].
init_mssql(Host) ->
- Server = ejabberd_config:get_option({sql_server, Host},
- fun iolist_to_binary/1,
- <<"localhost">>),
- Port = ejabberd_config:get_option(
- {sql_port, Host},
- fun(P) when is_integer(P), P > 0, P < 65536 -> P end,
- ?MSSQL_PORT),
- DB = ejabberd_config:get_option({sql_database, Host},
- fun iolist_to_binary/1,
- <<"ejabberd">>),
+ Server = ejabberd_config:get_option({sql_server, Host}, <<"localhost">>),
+ Port = ejabberd_config:get_option({sql_port, Host}, ?MSSQL_PORT),
+ DB = ejabberd_config:get_option({sql_database, Host}, <<"ejabberd">>),
FreeTDS = io_lib:fwrite("[~s]~n"
"\thost = ~s~n"
"\tport = ~p~n"
@@ -1109,13 +1079,6 @@ opt_type(sql_password) -> fun iolist_to_binary/1;
opt_type(sql_port) ->
fun (P) when is_integer(P), P > 0, P < 65536 -> P end;
opt_type(sql_server) -> fun iolist_to_binary/1;
-opt_type(sql_type) ->
- fun (mysql) -> mysql;
- (pgsql) -> pgsql;
- (sqlite) -> sqlite;
- (mssql) -> mssql;
- (odbc) -> odbc
- end;
opt_type(sql_username) -> fun iolist_to_binary/1;
opt_type(sql_ssl) -> fun(B) when is_boolean(B) -> B end;
opt_type(sql_ssl_verify) -> fun(B) when is_boolean(B) -> B end;
@@ -1125,6 +1088,6 @@ opt_type(sql_queue_type) ->
fun(ram) -> ram; (file) -> file end;
opt_type(_) ->
[sql_database, sql_keepalive_interval,
- sql_password, sql_port, sql_server, sql_type,
+ sql_password, sql_port, sql_server,
sql_username, sql_ssl, sql_ssl_verify, sql_ssl_cerfile,
sql_ssl_cafile, sql_queue_type].