From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | Magnus Hagander <magnus(at)hagander(dot)net> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Peter Eisentraut <peter_e(at)gmx(dot)net>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: duplicate connection failure messages |
Date: | 2010-11-14 01:36:31 |
Message-ID: | 201011140136.oAE1aVj02894@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Magnus Hagander wrote:
> On Fri, Nov 12, 2010 at 15:02, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> > Tom Lane wrote:
> >> Bruce Momjian <bruce(at)momjian(dot)us> writes:
> >> > I have developed the attached patch to report whether IPv4 or IPv6 are
> >> > being used.
> >>
> >> What's the use of that exactly? ?It doesn't really respond to Peter's
> >> concern, I think.
> >
> > Peter liked:
> >
> >> And I agree it's not very friendly in this specific case - I
> >> wonder if we should log it as "localhost (127.0.0.1) and "localhost
> >> (::1)" (and similar for any other case that returns more than one
> >> address).
> >
> > What this will show is:
> >
> > ? ? ? ?localhost (IPv4)
> > ? ? ? ?localhost (IPv6)
> >
> > Is that good? ?I can't figure out how to do ::1 because when you supply
> > a host _name_, there is no reverse mapping done. ?Looking at the code,
> > we test for a host name, then a host ip, and don't assume they are both
> > set.
>
> The address is in conn->raddr, no? When you've put in a host name, we
> do a forward lookup, so conn->raddr should contain ::1 already? You
> only need the reverse mapping to get the "localhost" part, if I read
> the code correctly?
OK, I found out how to get the IP address with the attached patch. The
problem is that only pghost is set, never pghostaddr. I am not even
sure how that would get set for this code because my tests show it is
not:
$ psql -h localhost test
pghost = localhost
--> pghostaddr = (null)
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
pghost = 127.0.0.1
pghostaddr = (null)
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?
To get this to work, I compared pghost with the raddr value, and printed
the IP address if it was not already printed. There is still a problem
about threading that I can fix.
Is this what we want?
--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +
Attachment | Content-Type | Size |
---|---|---|
/pgpatches/libpq_ipv6_2 | text/x-diff | 1.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2010-11-14 01:55:48 | Re: unlogged tables |
Previous Message | Tom Lane | 2010-11-14 01:15:15 | Re: unlogged tables |