[7485] Added support for PostgreSQL connection using Unix sockets. Author: ApoC
For using socket connection specify host name as . and port as
path to Unix socket directory or . for default path specified
in PostgreSQL compile time.
--HG--
branch : trunk
This commit is contained in:
@@ -25,11 +25,15 @@ ConfVersion=2008080101
|
|||||||
# WorldDatabaseInfo
|
# WorldDatabaseInfo
|
||||||
# CharacterDatabaseInfo
|
# CharacterDatabaseInfo
|
||||||
# Database connection settings for the world server.
|
# Database connection settings for the world server.
|
||||||
# Default: hostname;port;username;password;database
|
# Default:
|
||||||
# .;somenumber;username;password;database - use named pipes at Windows
|
# ---MYSQL---
|
||||||
# Named pipes: mySQL required adding "enable-named-pipe" to [mysqld] section my.ini
|
# hostname;port;username;password;database
|
||||||
# .;/path/to/unix_socket;username;password;database - use Unix sockets at Unix/Linux
|
# .;somenumber;username;password;database - use named pipes at Windows
|
||||||
# Unix sockets: experimental, not tested
|
# Named pipes: mySQL required adding "enable-named-pipe" to [mysqld] section my.ini
|
||||||
|
# .;/path/to/unix_socket;username;password;database - use Unix sockets at Unix/Linux
|
||||||
|
# ---PGSQL---
|
||||||
|
# hostname;port;username;password;database
|
||||||
|
# .;/path/to/unix_socket/DIRECTORY or . for default path;username;password;database - use Unix sockets at Unix/Linux
|
||||||
#
|
#
|
||||||
# MaxPingTime
|
# MaxPingTime
|
||||||
# Settings for maximum database-ping interval (minutes between pings)
|
# Settings for maximum database-ping interval (minutes between pings)
|
||||||
|
|||||||
@@ -79,14 +79,14 @@ bool DatabasePostgre::Initialize(const char *infoString)
|
|||||||
|
|
||||||
Tokens::iterator iter;
|
Tokens::iterator iter;
|
||||||
|
|
||||||
std::string host, port_or_socket, user, password, database;
|
std::string host, port_or_socket_dir, user, password, database;
|
||||||
|
|
||||||
iter = tokens.begin();
|
iter = tokens.begin();
|
||||||
|
|
||||||
if(iter != tokens.end())
|
if(iter != tokens.end())
|
||||||
host = *iter++;
|
host = *iter++;
|
||||||
if(iter != tokens.end())
|
if(iter != tokens.end())
|
||||||
port_or_socket = *iter++;
|
port_or_socket_dir = *iter++;
|
||||||
if(iter != tokens.end())
|
if(iter != tokens.end())
|
||||||
user = *iter++;
|
user = *iter++;
|
||||||
if(iter != tokens.end())
|
if(iter != tokens.end())
|
||||||
@@ -94,7 +94,10 @@ bool DatabasePostgre::Initialize(const char *infoString)
|
|||||||
if(iter != tokens.end())
|
if(iter != tokens.end())
|
||||||
database = *iter++;
|
database = *iter++;
|
||||||
|
|
||||||
mPGconn = PQsetdbLogin(host.c_str(), port_or_socket.c_str(), NULL, NULL, database.c_str(), user.c_str(), password.c_str());
|
if (host == ".")
|
||||||
|
mPGconn = PQsetdbLogin(NULL, port_or_socket_dir == "." ? NULL : port_or_socket_dir.c_str(), NULL, NULL, database.c_str(), user.c_str(), password.c_str());
|
||||||
|
else
|
||||||
|
mPGconn = PQsetdbLogin(host.c_str(), port_or_socket_dir.c_str(), NULL, NULL, database.c_str(), user.c_str(), password.c_str());
|
||||||
|
|
||||||
/* check to see that the backend connection was successfully made */
|
/* check to see that the backend connection was successfully made */
|
||||||
if (PQstatus(mPGconn) != CONNECTION_OK)
|
if (PQstatus(mPGconn) != CONNECTION_OK)
|
||||||
|
|||||||
Reference in New Issue
Block a user