aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFujii Masao <fujii@postgresql.org>2014-01-23 23:02:30 +0900
committerFujii Masao <fujii@postgresql.org>2014-01-23 23:02:30 +0900
commit5525529db191b6f4b893d445e5c801bc456ba3bb (patch)
tree9f55454ce1843998a1d6c86a38e9c7a86fed5d66
parent0fb4e3cebb32628bdd92d8445ff61d23eb73af48 (diff)
downloadpostgresql-5525529db191b6f4b893d445e5c801bc456ba3bb.tar.gz
postgresql-5525529db191b6f4b893d445e5c801bc456ba3bb.zip
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 4981ad52a15..e0636167f4d 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -3520,7 +3520,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 *