From be5d4997437d185b1b7ca6e53a6e433810aee4f0 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Thu, 23 Jan 2014 23:00:30 +0900 Subject: [PATCH] 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. --- src/interfaces/libpq/fe-connect.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 18fcb0c237..7002242a1f 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -5183,7 +5183,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 * -- 2.40.0