From 1c8775258422f1c51f4aa363191f2386ff01cd08 Mon Sep 17 00:00:00 2001 From: megamage Date: Wed, 18 Mar 2009 20:39:21 -0600 Subject: [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 --- src/shared/Database/DatabasePostgre.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/shared/Database/DatabasePostgre.cpp') diff --git a/src/shared/Database/DatabasePostgre.cpp b/src/shared/Database/DatabasePostgre.cpp index 502808b7933..79e1c87f5e3 100644 --- a/src/shared/Database/DatabasePostgre.cpp +++ b/src/shared/Database/DatabasePostgre.cpp @@ -79,14 +79,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()) @@ -94,7 +94,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) -- cgit v1.2.3