diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-04-29 11:39:40 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-04-29 11:39:40 +0300 |
commit | b82b93f8f0c229e94a89469b0754bab0e28cd17c (patch) | |
tree | 56f5c7a25aa19254b4f30b1cf33fc34dcbadcbb7 /src/ejabberd_sql.erl | |
parent | Don'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.erl | 54 |
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" |