diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/interfaces/libpq/fe-connect.c | 13 |
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, |