]> granicus.if.org Git - postgresql/commitdiff
Fix untranslatable assembly of libpq connection failure message
authorPeter Eisentraut <peter_e@gmx.net>
Thu, 19 May 2011 19:56:53 +0000 (22:56 +0300)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 19 May 2011 19:56:53 +0000 (22:56 +0300)
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.

src/interfaces/libpq/fe-connect.c

index 6648753da0a9e8226ecb77cbcc7138a934634254..f89ceb96642af7efe67097544b1e11dcaeb16089 100644 (file)
@@ -1012,7 +1012,7 @@ connectFailureMessage(PGconn *conn, int errorno)
 #endif   /* HAVE_UNIX_SOCKETS */
        {
                char            host_addr[NI_MAXHOST];
-               bool            display_host_addr;
+               const char *displayed_host;
                struct sockaddr_storage *addr = &conn->raddr.addr;
 
                /*
@@ -1042,30 +1042,36 @@ connectFailureMessage(PGconn *conn, int errorno)
                else
                        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
                 * '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));
-
-               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[0] != '\0')
-                                                 ? 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);
+               if ((conn->pghostaddr == NULL) &&
+                       (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) 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,
+                                                         libpq_gettext("could not connect to server: %s\n"
+                                                                                       "\tIs the server running on host \"%s\" and accepting\n"
+                                                                                       "\tTCP/IP connections on port %s?\n"),
+                                                         SOCK_STRERROR(errorno, sebuf, sizeof(sebuf)),
+                                                         displayed_host,
+                                                         conn->pgport);
        }
 }