aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFujii Masao <fujii@postgresql.org>2014-01-23 23:01:34 +0900
committerFujii Masao <fujii@postgresql.org>2014-01-23 23:01:34 +0900
commit1b384aff158a840fed4e9f4f366ba8d7c6ed42fb (patch)
tree9818cb806a5ffddeb681356541aa6d0f377ec6d5
parentcbd850bf609c5b1d51874ba9611723cb17da8626 (diff)
downloadpostgresql-1b384aff158a840fed4e9f4f366ba8d7c6ed42fb.tar.gz
postgresql-1b384aff158a840fed4e9f4f366ba8d7c6ed42fb.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 ab427c1964b..bd23e9d1434 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -4522,7 +4522,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 *