mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 19:37:02 +00:00
[7485] Added support for PostgreSQL connection using Unix sockets.
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. Signed-off-by: ApoC <apoc@nymfe.net>
This commit is contained in:
parent
9ddb37c6c1
commit
3c819a6269
3 changed files with 16 additions and 9 deletions
|
|
@ -25,11 +25,15 @@ ConfVersion=2008080101
|
|||
# WorldDatabaseInfo
|
||||
# CharacterDatabaseInfo
|
||||
# Database connection settings for the world server.
|
||||
# Default: hostname;port;username;password;database
|
||||
# Default:
|
||||
# ---MYSQL---
|
||||
# hostname;port;username;password;database
|
||||
# .;somenumber;username;password;database - use named pipes at Windows
|
||||
# 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
|
||||
# Unix sockets: experimental, not tested
|
||||
# ---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
|
||||
# Settings for maximum database-ping interval (minutes between pings)
|
||||
|
|
|
|||
|
|
@ -77,14 +77,14 @@ bool DatabasePostgre::Initialize(const char *infoString)
|
|||
|
||||
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();
|
||||
|
||||
if(iter != tokens.end())
|
||||
host = *iter++;
|
||||
if(iter != tokens.end())
|
||||
port_or_socket = *iter++;
|
||||
port_or_socket_dir = *iter++;
|
||||
if(iter != tokens.end())
|
||||
user = *iter++;
|
||||
if(iter != tokens.end())
|
||||
|
|
@ -92,7 +92,10 @@ bool DatabasePostgre::Initialize(const char *infoString)
|
|||
if(iter != tokens.end())
|
||||
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 */
|
||||
if (PQstatus(mPGconn) != CONNECTION_OK)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "7484"
|
||||
#define REVISION_NR "7485"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue