diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl index 2b501166b8..a9bbb80e63 100644 --- a/src/bin/pg_dump/t/002_pg_dump.pl +++ b/src/bin/pg_dump/t/002_pg_dump.pl @@ -3460,7 +3460,7 @@ foreach my $db (sort keys %create_sql) command_fails_like( [ 'pg_dump', '-p', "$port", 'qqq' ], - qr/pg_dump: error: connection to database "qqq" failed: could not connect to .*: FATAL: database "qqq" does not exist/, + qr/pg_dump: error: connection to database "qqq" failed: connection to server .* failed: FATAL: database "qqq" does not exist/, 'connecting to a non-existent database'); ######################################### diff --git a/src/interfaces/ecpg/test/expected/connect-test5.stderr b/src/interfaces/ecpg/test/expected/connect-test5.stderr index 4dbf2c0fc4..db3cd9c228 100644 --- a/src/interfaces/ecpg/test/expected/connect-test5.stderr +++ b/src/interfaces/ecpg/test/expected/connect-test5.stderr @@ -36,7 +36,7 @@ [NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ECPGconnect: opening database on port for user regress_ecpg_user2 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ECPGconnect: could not open database: could not connect: FATAL: database "regress_ecpg_user2" does not exist +[NO_PID]: ECPGconnect: could not open database: connection to server failed: FATAL: database "regress_ecpg_user2" does not exist [NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ecpg_finish: connection main closed @@ -73,7 +73,7 @@ [NO_PID]: sqlca: code: -220, state: 08003 [NO_PID]: ECPGconnect: opening database on port for user regress_ecpg_user2 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ECPGconnect: could not open database: could not connect: FATAL: database "regress_ecpg_user2" does not exist +[NO_PID]: ECPGconnect: could not open database: connection to server failed: FATAL: database "regress_ecpg_user2" does not exist [NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ecpg_finish: connection main closed diff --git a/src/interfaces/ecpg/test/pg_regress_ecpg.c b/src/interfaces/ecpg/test/pg_regress_ecpg.c index 8d43fd65ba..15f588a802 100644 --- a/src/interfaces/ecpg/test/pg_regress_ecpg.c +++ b/src/interfaces/ecpg/test/pg_regress_ecpg.c @@ -80,7 +80,7 @@ ecpg_filter_source(const char *sourcefile, const char *outfile) } /* - * Remove the details of "could not connect to ...: " error messages + * Remove the details of connection failure error messages * in a test result file, since the target host/pathname and/or port * can vary. Rewrite the result file in-place. * @@ -113,15 +113,15 @@ ecpg_filter_stderr(const char *resultfile, const char *tmpfile) while (pg_get_line_buf(s, &linebuf)) { - char *p1 = strstr(linebuf.data, "could not connect to "); + char *p1 = strstr(linebuf.data, "connection to server "); if (p1) { - char *p2 = strstr(p1, ": "); + char *p2 = strstr(p1, "failed: "); if (p2) { - memmove(p1 + 17, p2, strlen(p2) + 1); + memmove(p1 + 21, p2, strlen(p2) + 1); /* we don't bother to fix up linebuf.len */ } } diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 2b78ed8ec3..8ca0583aa9 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -1668,17 +1668,16 @@ getHostaddr(PGconn *conn, char *host_addr, int host_addr_len) host_addr[0] = '\0'; } -/* ---------- - * emitCouldNotConnect - - * Speculatively append "could not connect to ...: " to conn->errorMessage - * once we've identified the current connection target address. This ensures - * that any subsequent error message will be properly attributed to the - * server we couldn't connect to. conn->raddr must be valid, and the result - * of getHostaddr() must be supplied. - * ---------- +/* + * emitHostIdentityInfo - + * Speculatively append "connection to server so-and-so failed: " to + * conn->errorMessage once we've identified the current connection target + * address. This ensures that any subsequent error message will be properly + * attributed to the server we couldn't connect to. conn->raddr must be + * valid, and the result of getHostaddr() must be supplied. */ static void -emitCouldNotConnect(PGconn *conn, const char *host_addr) +emitHostIdentityInfo(PGconn *conn, const char *host_addr) { #ifdef HAVE_UNIX_SOCKETS if (IS_AF_UNIX(conn->raddr.addr.ss_family)) @@ -1690,7 +1689,7 @@ emitCouldNotConnect(PGconn *conn, const char *host_addr) service, sizeof(service), NI_NUMERICSERV); appendPQExpBuffer(&conn->errorMessage, - libpq_gettext("could not connect to socket \"%s\": "), + libpq_gettext("connection to server on socket \"%s\" failed: "), service); } else @@ -1717,12 +1716,12 @@ emitCouldNotConnect(PGconn *conn, const char *host_addr) host_addr[0] && strcmp(displayed_host, host_addr) != 0) appendPQExpBuffer(&conn->errorMessage, - libpq_gettext("could not connect to host \"%s\" (%s), port %s: "), + libpq_gettext("connection to server at \"%s\" (%s), port %s failed: "), displayed_host, host_addr, displayed_port); else appendPQExpBuffer(&conn->errorMessage, - libpq_gettext("could not connect to host \"%s\", port %s: "), + libpq_gettext("connection to server at \"%s\", port %s failed: "), displayed_host, displayed_port); } @@ -2524,7 +2523,7 @@ keep_going: /* We will come back to here until there is conn->try_next_addr = true; goto keep_going; } - emitCouldNotConnect(conn, host_addr); + emitHostIdentityInfo(conn, host_addr); appendPQExpBuffer(&conn->errorMessage, libpq_gettext("could not create socket: %s\n"), SOCK_STRERROR(errorno, sebuf, sizeof(sebuf))); @@ -2534,9 +2533,11 @@ keep_going: /* We will come back to here until there is /* * Once we've identified a target address, all errors * except the preceding socket()-failure case should be - * prefixed with "could not connect to : ". + * prefixed with host-identity information. (If the + * connection succeeds, the contents of conn->errorMessage + * won't matter, so this is harmless.) */ - emitCouldNotConnect(conn, host_addr); + emitHostIdentityInfo(conn, host_addr); /* * Select socket options: no delay of outgoing data for