aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2010-12-18 11:25:41 -0500
committerBruce Momjian <bruce@momjian.us>2010-12-18 11:26:17 -0500
commit7e95337d586185c91f8af3fbcb0a6b380b4ba1c7 (patch)
tree63cec1b91b9768660c4bbff7f86436a228793ae0
parent4754dbf4c3f857a496b0d29af74786c73d1a8401 (diff)
downloadpostgresql-7e95337d586185c91f8af3fbcb0a6b380b4ba1c7.tar.gz
postgresql-7e95337d586185c91f8af3fbcb0a6b380b4ba1c7.zip
Properly print the IP number and "localhost" for failed localhost
connections when the server is down, on Win32.
-rw-r--r--src/interfaces/libpq/fe-connect.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 8d9400be0fc..bf8beb7b899 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -1030,20 +1030,25 @@ connectFailureMessage(PGconn *conn, int errorno)
else
strcpy(host_addr, "???");
+ /*
+ * If the user did not supply an IP address using 'hostaddr', and
+ * 'host' was missing or does not match our lookup, display the
+ * looked-up IP address.
+ */
display_host_addr = (conn->pghostaddr == NULL) &&
- (conn->pghost != NULL) &&
- (strcmp(conn->pghost, host_addr) != 0);
+ ((conn->pghost == NULL) ||
+ (strcmp(conn->pghost, host_addr) != 0));
appendPQExpBuffer(&conn->errorMessage,
libpq_gettext("could not connect to server: %s\n"
"\tIs the server running on host \"%s\"%s%s%s and accepting\n"
"\tTCP/IP connections on port %s?\n"),
SOCK_STRERROR(errorno, sebuf, sizeof(sebuf)),
- conn->pghostaddr
+ (conn->pghostaddr && conn->pghostaddr[0] != '\0')
? conn->pghostaddr
- : (conn->pghost
+ : (conn->pghost && conn->pghost[0] != '\0')
? conn->pghost
- : "???"),
+ : DefaultHost,
/* display the IP address only if not already output */
display_host_addr ? " (" : "",
display_host_addr ? host_addr : "",
@@ -1304,7 +1309,7 @@ connectDBStart(PGconn *conn)
UNIXSOCK_PATH(portstr, portnum, conn->pgunixsocket);
#else
/* Without Unix sockets, default to localhost instead */
- node = "localhost";
+ node = DefaultHost;
hint.ai_family = AF_UNSPEC;
#endif /* HAVE_UNIX_SOCKETS */
}
@@ -3388,7 +3393,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
/* hostname */
hostname = url + strlen(LDAP_URL);
if (*hostname == '/') /* no hostname? */
- hostname = "localhost"; /* the default */
+ hostname = DefaultHost; /* the default */
/* dn, "distinguished name" */
p = strchr(url + strlen(LDAP_URL), '/');