summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFujii Masao2014-01-23 14:01:06 +0000
committerFujii Masao2014-01-23 14:01:06 +0000
commitea311bfdfdfc9aeae4c7ba18cfa875f4ad2e2345 (patch)
treed89d5e5f12c11557fc5ef2a3482ca10300ec239a
parentc0e6169e16a84a55f6b3c1f802fe74004cc81592 (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 0f0dd651eb3..4de86f28463 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -5148,7 +5148,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 *