aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--src/odbc/ejabberd_odbc.erl24
2 files changed, 22 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index a39546fac..4cb1c8f4e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-22 Mickael Remond <mickael.remond@process-one.net>
+
+ * src/odbc/ejabberd_odbc.erl: Added error message on ODBC
+ connection to help ODBC configuration troubleshooting.
+
2005-12-22 Alexey Shchepin <alexey@sevcom.net>
* src/odbc/ejabberd_odbc.erl: Bugfix
diff --git a/src/odbc/ejabberd_odbc.erl b/src/odbc/ejabberd_odbc.erl
index e48d1e201..473446782 100644
--- a/src/odbc/ejabberd_odbc.erl
+++ b/src/odbc/ejabberd_odbc.erl
@@ -27,6 +27,8 @@
handle_info/2,
terminate/2]).
+-include("ejabberd.hrl").
+
-record(state, {db_ref, db_type}).
-define(STATE_KEY, ejabberd_odbc_state).
@@ -112,14 +114,22 @@ init([Host]) ->
SQLServer = ejabberd_config:get_local_option({odbc_server, Host}),
case SQLServer of
{pgsql, Server, DB, Username, Password} ->
- {ok, Ref} = pgsql:connect(Server, DB, Username, Password),
- {ok, #state{db_ref = Ref,
- db_type = pgsql}};
+ case pgsql:connect(Server, DB, Username, Password) of
+ {ok, Ref} ->
+ {ok, #state{db_ref = Ref, db_type = pgsql}};
+ {error, Reason} ->
+ ?ERROR_MSG("PostgreSQL connection failed: ~p~n", [Reason]),
+ {stop, pgsql_connection_failed}
+ end;
_ when is_list(SQLServer) ->
- {ok, Ref} = odbc:connect(SQLServer,
- [{scrollable_cursors, off}]),
- {ok, #state{db_ref = Ref,
- db_type = odbc}}
+ case odbc:connect(SQLServer,[{scrollable_cursors, off}]) of
+ {ok, Ref} ->
+ {ok, #state{db_ref = Ref, db_type = odbc}};
+ {error, Reason} ->
+ ?ERROR_MSG("ODBC connection (~s) failed: ~p~n",
+ [SQLServer, Reason]),
+ {stop, odbc_connection_failed}
+ end
end.
%%----------------------------------------------------------------------