Commit fcd45759 authored by Peter Eisentraut's avatar Peter Eisentraut

Fix untranslatable assembly of libpq connection failure message

Even though this only affects the insertion of a parenthesized word,
it's unwise to assume that parentheses can pass through untranslated.
And in any case, the new version is clearer in the code and for
translators.
parent 8d895493
...@@ -1012,7 +1012,7 @@ connectFailureMessage(PGconn *conn, int errorno) ...@@ -1012,7 +1012,7 @@ connectFailureMessage(PGconn *conn, int errorno)
#endif /* HAVE_UNIX_SOCKETS */ #endif /* HAVE_UNIX_SOCKETS */
{ {
char host_addr[NI_MAXHOST]; char host_addr[NI_MAXHOST];
bool display_host_addr; const char *displayed_host;
struct sockaddr_storage *addr = &conn->raddr.addr; struct sockaddr_storage *addr = &conn->raddr.addr;
/* /*
...@@ -1042,29 +1042,35 @@ connectFailureMessage(PGconn *conn, int errorno) ...@@ -1042,29 +1042,35 @@ connectFailureMessage(PGconn *conn, int errorno)
else else
strcpy(host_addr, "???"); strcpy(host_addr, "???");
if (conn->pghostaddr && conn->pghostaddr[0] != '\0')
displayed_host = conn->pghostaddr;
else if (conn->pghost && conn->pghost[0] != '\0')
displayed_host = conn->pghost;
else
displayed_host = DefaultHost;
/* /*
* If the user did not supply an IP address using 'hostaddr', and * If the user did not supply an IP address using 'hostaddr', and
* 'host' was missing or does not match our lookup, display the * 'host' was missing or does not match our lookup, display the
* looked-up IP address. * looked-up IP address.
*/ */
display_host_addr = (conn->pghostaddr == NULL) && if ((conn->pghostaddr == NULL) &&
((conn->pghost == NULL) || (conn->pghost == NULL || strcmp(conn->pghost, host_addr) != 0))
(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) and accepting\n"
"\tTCP/IP connections on port %s?\n"),
SOCK_STRERROR(errorno, sebuf, sizeof(sebuf)),
displayed_host,
host_addr,
conn->pgport);
else
appendPQExpBuffer(&conn->errorMessage, appendPQExpBuffer(&conn->errorMessage,
libpq_gettext("could not connect to server: %s\n" libpq_gettext("could not connect to server: %s\n"
"\tIs the server running on host \"%s\"%s%s%s and accepting\n" "\tIs the server running on host \"%s\" and accepting\n"
"\tTCP/IP connections on port %s?\n"), "\tTCP/IP connections on port %s?\n"),
SOCK_STRERROR(errorno, sebuf, sizeof(sebuf)), SOCK_STRERROR(errorno, sebuf, sizeof(sebuf)),
(conn->pghostaddr && conn->pghostaddr[0] != '\0') displayed_host,
? conn->pghostaddr
: (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 : "",
display_host_addr ? ")" : "",
conn->pgport); conn->pgport);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment