Skip to content

Commit 7e95337

Browse files
committed
Properly print the IP number and "localhost" for failed localhost
connections when the server is down, on Win32.
1 parent 4754dbf commit 7e95337

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/interfaces/libpq/fe-connect.c

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,20 +1030,25 @@ connectFailureMessage(PGconn *conn, int errorno)
10301030
else
10311031
strcpy(host_addr, "???");
10321032

1033+
/*
1034+
* If the user did not supply an IP address using 'hostaddr', and
1035+
* 'host' was missing or does not match our lookup, display the
1036+
* looked-up IP address.
1037+
*/
10331038
display_host_addr = (conn->pghostaddr == NULL) &&
1034-
(conn->pghost != NULL) &&
1035-
(strcmp(conn->pghost, host_addr) != 0);
1039+
((conn->pghost == NULL) ||
1040+
(strcmp(conn->pghost, host_addr) != 0));
10361041

10371042
appendPQExpBuffer(&conn->errorMessage,
10381043
libpq_gettext("could not connect to server: %s\n"
10391044
"\tIs the server running on host \"%s\"%s%s%s and accepting\n"
10401045
"\tTCP/IP connections on port %s?\n"),
10411046
SOCK_STRERROR(errorno, sebuf, sizeof(sebuf)),
1042-
conn->pghostaddr
1047+
(conn->pghostaddr && conn->pghostaddr[0] != '\0')
10431048
? conn->pghostaddr
1044-
: (conn->pghost
1049+
: (conn->pghost && conn->pghost[0] != '\0')
10451050
? conn->pghost
1046-
: "???"),
1051+
: DefaultHost,
10471052
/* display the IP address only if not already output */
10481053
display_host_addr ? " (" : "",
10491054
display_host_addr ? host_addr : "",
@@ -1304,7 +1309,7 @@ connectDBStart(PGconn *conn)
13041309
UNIXSOCK_PATH(portstr, portnum, conn->pgunixsocket);
13051310
#else
13061311
/* Without Unix sockets, default to localhost instead */
1307-
node = "localhost";
1312+
node = DefaultHost;
13081313
hint.ai_family = AF_UNSPEC;
13091314
#endif /* HAVE_UNIX_SOCKETS */
13101315
}
@@ -3388,7 +3393,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
33883393
/* hostname */
33893394
hostname = url + strlen(LDAP_URL);
33903395
if (*hostname == '/') /* no hostname? */
3391-
hostname = "localhost"; /* the default */
3396+
hostname = DefaultHost; /* the default */
33923397

33933398
/* dn, "distinguished name" */
33943399
p = strchr(url + strlen(LDAP_URL), '/');

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy