Re: duplicate connection failure messages

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: duplicate connection failure messages
Дата
Msg-id 201011261653.oAQGrOm15841@momjian.us
обсуждение исходный текст
Ответ на Re: duplicate connection failure messages  (Peter Eisentraut <peter_e@gmx.net>)
Ответы Re: duplicate connection failure messages  (Peter Eisentraut <peter_e@gmx.net>)
Список pgsql-hackers
Peter Eisentraut wrote:
> On l?r, 2010-11-20 at 18:07 -0500, Bruce Momjian wrote:
> > The output is as expected:
> >
> >     $ psql -h localhost test
> >     psql: could not connect to server: Connection refused
> >             Is the server running on host "localhost" (127.0.0.1) and accepting
> >             TCP/IP connections on port 5432?
> >     $ psql -h 127.0.0.1 test
> >     psql: could not connect to server: Connection refused
> >             Is the server running on host "127.0.0.1" and accepting
> >             TCP/IP connections on port 5432?
>
> Thanks for working on this.  However, the example I posted at the
> beginning of this thread now does this:
>
> $ ./psql -p 55555 -h localhost
> psql: could not connect to server: Connection refused
>         Is the server running on host "localhost" (???) and accepting
>         TCP/IP connections on port 55555?
> could not connect to server: Connection refused
>         Is the server running on host "localhost" (127.0.0.1) and accepting
>         TCP/IP connections on port 55555?
>
> The "???" should presumably be "::1".

OK, I updated the code to always use cur_addr in the code --- let me
know if that doesn't fix it.

> Also, this comment should be updated:
>
>     /*
>      * Try to initiate a connection to one of the addresses
>      * returned by pg_getaddrinfo_all().  conn->addr_cur is the
>      * next one to try. We fail when we run out of addresses
>      * (reporting the error returned for the *last* alternative,
>      * which may not be what users expect :-().
>      */

Thanks, comment udpated.  It was wrong even before because we were
reporting all failures even before I Started.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 6593f21..8b55167 100644
*** /tmp/HkJ20a_fe-connect.c    Fri Nov 26 11:48:13 2010
--- src/interfaces/libpq/fe-connect.c    Fri Nov 26 11:36:28 2010
*************** connectFailureMessage(PGconn *conn, int
*** 989,996 ****
      {
          char    host_addr[NI_MAXHOST];
          bool     display_host_addr;
-         struct sockaddr_in *host_addr_struct = (struct sockaddr_in *)
-                                                 &conn->raddr.addr;

          /*
           *    Optionally display the network address with the hostname.
--- 989,994 ----
*************** connectFailureMessage(PGconn *conn, int
*** 998,1005 ****
           */
          if (conn->pghostaddr != NULL)
              strlcpy(host_addr, conn->pghostaddr, NI_MAXHOST);
!         else if (inet_net_ntop(conn->addr_cur->ai_family, &host_addr_struct->sin_addr,
!                  host_addr_struct->sin_family == AF_INET ? 32 : 128,
                   host_addr, sizeof(host_addr)) == NULL)
              strcpy(host_addr, "???");

--- 996,1004 ----
           */
          if (conn->pghostaddr != NULL)
              strlcpy(host_addr, conn->pghostaddr, NI_MAXHOST);
!         else if (inet_net_ntop(conn->addr_cur->ai_family,
!                  &conn->addr_cur->ai_addr,
!                  conn->addr_cur->ai_family == AF_INET ? 32 : 128,
                   host_addr, sizeof(host_addr)) == NULL)
              strcpy(host_addr, "???");


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: SQL/MED - core functionality
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: duplicate connection failure messages