Re: duplicate connection failure messages
Bruce Momjian <bruce@momjian.us>
From: Bruce Momjian <bruce@momjian.us>
To: Magnus Hagander <magnus@hagander.net>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>, pgsql-hackers@postgresql.org
Date: 2010-11-14T01:36:31Z
Lists: pgsql-hackers
Attachments
- /pgpatches/libpq_ipv6_2 (text/x-diff) patch
Magnus Hagander wrote: > On Fri, Nov 12, 2010 at 15:02, Bruce Momjian <bruce@momjian.us> wrote: > > Tom Lane wrote: > >> Bruce Momjian <bruce@momjian.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@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +