Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFujii Masao2014-01-23 13:48:12 +0000
committerFujii Masao2014-01-23 13:58:58 +0000
commit77035fa8a92d8c39f4c689e54f46813f203f09a8 (patch)
treec329bb30f8b73caa27e9c6f83c0bed25c8920bf2
parent90afc7d805657f6913935913a5bbd2462da80388 (diff)
Fix bugs in PQhost().
In the platform that doesn't support Unix-domain socket, when neither host nor hostaddr are specified, the default host 'localhost' is used to connect to the server and PQhost() must return that, but it didn't. This patch fixes PQhost() so that it returns the default host in that case. Also this patch fixes PQhost() so that it doesn't return Unix-domain socket directory path in the platform that doesn't support Unix-domain socket. Back-patch to all supported versions.
-rw-r--r--src/interfaces/libpq/fe-connect.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index fa88c874945..92cdd2cbe35 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -5188,7 +5188,16 @@ PQhost(const PGconn *conn)
{
if (!conn)
return NULL;
- return conn->pghost ? conn->pghost : conn->pgunixsocket;
+ if (conn->pghost != NULL && conn->pghost[0] != '\0')
+ return conn->pghost;
+ else
+ {
+#ifdef HAVE_UNIX_SOCKETS
+ return conn->pgunixsocket;
+#else
+ return DefaultHost;
+#endif
+ }
}
char *