aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/libpq/fe-connect.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 74e26edad66..eb5aaf70985 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -978,9 +978,18 @@ connectOptions2(PGconn *conn)
for (i = 0; i < conn->nconnhost; i++)
{
- /* Try to get a password for this host from pgpassfile */
+ /*
+ * Try to get a password for this host from pgpassfile. We use host
+ * name rather than host address in the same manner to PQhost().
+ */
+ char *pwhost = conn->connhost[i].host;
+
+ if (conn->connhost[i].type == CHT_HOST_ADDRESS &&
+ conn->pghost != NULL && conn->pghost[0] != '\0')
+ pwhost = conn->pghost;
+
conn->connhost[i].password =
- passwordFromFile(conn->connhost[i].host,
+ passwordFromFile(pwhost,
conn->connhost[i].port,
conn->dbName,
conn->pguser,