mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-24 16:23:40 +01:00
* src/ejabberd_config.erl: Print error when the configuration
requires ODBC, MySQL or PostgreSQL libraries but are not installed (EJAB-210). SVN Revision: 986
This commit is contained in:
parent
f6848603f9
commit
2078c45656
@ -1,5 +1,9 @@
|
||||
2007-11-26 Badlop <badlop@process-one.net>
|
||||
|
||||
* src/ejabberd_config.erl: Print error when the configuration
|
||||
requires ODBC, MySQL or PostgreSQL libraries but are not
|
||||
installed (EJAB-210).
|
||||
|
||||
* src/web/ejabberd_web_admin.erl: Added a favicon (EJAB-379).
|
||||
|
||||
* src/msgs/wa.msg: New Walon translation (thanks to
|
||||
|
@ -161,6 +161,9 @@ process_host_term(Term, Host, State) ->
|
||||
State;
|
||||
{hosts, Hosts} ->
|
||||
State;
|
||||
{odbc_server, ODBC_server} ->
|
||||
odbc_modules_found = check_odbc_modules(ODBC_server),
|
||||
add_option({odbc_server, Host}, ODBC_server, State);
|
||||
{Opt, Val} ->
|
||||
add_option({Opt, Host}, Val, State)
|
||||
end.
|
||||
@ -269,3 +272,32 @@ get_local_option(Opt) ->
|
||||
end.
|
||||
|
||||
|
||||
check_odbc_modules(ODBC_server) ->
|
||||
case catch check_odbc_modules2(ODBC_server) of
|
||||
{'EXIT', {undef, [{Module, module_info, []} | _]}} ->
|
||||
?CRITICAL_MSG("ejabberd is configured to use ODBC, but the Erlang module '~p' is not installed.", [Module]),
|
||||
odbc_module_not_found;
|
||||
_ -> odbc_modules_found
|
||||
end.
|
||||
|
||||
check_odbc_modules2(ODBC_server) ->
|
||||
check_modules_exists([ejabberd_odbc, ejabberd_odbc_sup, odbc_queries]),
|
||||
case ODBC_server of
|
||||
{mysql, _Server, _DB, _Username, _Password} ->
|
||||
check_modules_exists([mysql, mysql_auth, mysql_conn, mysql_recv]);
|
||||
|
||||
{mysql, _Server, _Port, _DB, _Username, _Password} ->
|
||||
check_modules_exists([mysql, mysql_auth, mysql_conn, mysql_recv]);
|
||||
|
||||
{pgsql, _Server, _DB, _Username, _Password} ->
|
||||
check_modules_exists([pgsql, pgsql_proto, pgsql_tcp, pgsql_util]);
|
||||
|
||||
{pgsql, _Server, _Port, _DB, _Username, _Password} ->
|
||||
check_modules_exists([pgsql, pgsql_proto, pgsql_tcp, pgsql_util]);
|
||||
|
||||
Server when is_list(Server) ->
|
||||
ok
|
||||
end.
|
||||
|
||||
check_modules_exists(Modules) ->
|
||||
[true = is_list(Module:module_info()) || Module <- Modules].
|
||||
|
Loading…
Reference in New Issue
Block a user