summaryrefslogtreecommitdiff
path: root/src/ejabberd_sql.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-04-29 11:39:40 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-04-29 11:39:40 +0300
commitb82b93f8f0c229e94a89469b0754bab0e28cd17c (patch)
tree56f5c7a25aa19254b4f30b1cf33fc34dcbadcbb7 /src/ejabberd_sql.erl
parentDon't re-define validation functions in multiple places (diff)
Don't validate an option in ejabberd_config:get_option() functions
The commit introduces the following changes: * Now there is no need to pass validating function in ejabberd_config:get_option() functions, because the configuration keeps already validated values. * New function ejabberd_config:get_option/1 is introduced * Function ejabberd_config:get_option/3 is deprecated. If the function is still called, the second argument (validating function) is simply ignored. * The second argument for ejabberd_config:get_option/2 is now a default value, not a validating function.
Diffstat (limited to 'src/ejabberd_sql.erl')
-rw-r--r--src/ejabberd_sql.erl54
1 files changed, 12 insertions, 42 deletions
diff --git a/src/ejabberd_sql.erl b/src/ejabberd_sql.erl
index 93cfa028..0dddcb03 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"