aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMickaël Rémond <mickael.remond@process-one.net>2007-03-10 15:53:53 +0000
committerMickaël Rémond <mickael.remond@process-one.net>2007-03-10 15:53:53 +0000
commit48c073abd27a9cf35d918dacc7721fc03945b709 (patch)
treea0c128f0f1d66ea79665eff0c7de7d0f97e249ba /src
parent* src/mod_muc/mod_muc_log.erl: Fix wrong return on check access log. (diff)
* src/odbc/ejabberd_odbc.erl: ejabberd admin can now choose the
relational database port to user from ejabberd configuration file (EJAB-195). * src/doc/guide.tex: Likewise. SVN Revision: 740
Diffstat (limited to 'src')
-rw-r--r--src/odbc/ejabberd_odbc.erl19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/odbc/ejabberd_odbc.erl b/src/odbc/ejabberd_odbc.erl
index b4fd41244..454c81708 100644
--- a/src/odbc/ejabberd_odbc.erl
+++ b/src/odbc/ejabberd_odbc.erl
@@ -34,6 +34,7 @@
-define(STATE_KEY, ejabberd_odbc_state).
-define(MAX_TRANSACTION_RESTARTS, 10).
+-define(PGSQL_PORT, 5432).
-define(MYSQL_PORT, 3306).
%%%----------------------------------------------------------------------
@@ -113,10 +114,16 @@ escape_like(C) -> odbc_queries:escape(C).
init([Host]) ->
SQLServer = ejabberd_config:get_local_option({odbc_server, Host}),
case SQLServer of
+ %% Default pgsql port
{pgsql, Server, DB, Username, Password} ->
- pgsql_connect(Server, DB, Username, Password);
+ pgsql_connect(Server, ?PGSQL_PORT, DB, Username, Password);
+ {pgsql, Server, Port, DB, Username, Password} when is_integer(Port) ->
+ pgsql_connect(Server, Port, DB, Username, Password);
+ %% Default mysql port
{mysql, Server, DB, Username, Password} ->
- mysql_connect(Server, DB, Username, Password);
+ mysql_connect(Server, ?MYSQL_PORT, DB, Username, Password);
+ {mysql, Server, Port, DB, Username, Password} when is_integer(Port) ->
+ mysql_connect(Server, Port, DB, Username, Password);
_ when is_list(SQLServer) ->
odbc_connect(SQLServer)
end.
@@ -229,8 +236,8 @@ odbc_connect(SQLServer) ->
%% part of init/1
%% Open a database connection to PostgreSQL
-pgsql_connect(Server, DB, Username, Password) ->
- case pgsql:connect(Server, DB, Username, Password) of
+pgsql_connect(Server, Port, DB, Username, Password) ->
+ case pgsql:connect(Server, DB, Username, Password, Port) of
{ok, Ref} ->
{ok, #state{db_ref = Ref, db_type = pgsql}};
{error, Reason} ->
@@ -267,9 +274,9 @@ pgsql_item_to_odbc(_) ->
%% part of init/1
%% Open a database connection to MySQL
-mysql_connect(Server, DB, Username, Password) ->
+mysql_connect(Server, Port, DB, Username, Password) ->
NoLogFun = fun(_Level,_Format,_Argument) -> ok end,
- case mysql_conn:start(Server, ?MYSQL_PORT, Username, Password, DB, NoLogFun) of
+ case mysql_conn:start(Server, Port, Username, Password, DB, NoLogFun) of
{ok, Ref} ->
erlang:monitor(process, Ref),
{ok, #state{db_ref = Ref, db_type = mysql}};