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.
This commit is contained in:
Fujii Masao 2014-01-23 22:48:12 +09:00
parent 90afc7d805
commit 77035fa8a9
1 changed files with 10 additions and 1 deletions

View File

@ -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 *