Ian Pilcher <i.pilcher@comcast.net> writes:
> Since 1.4.2 (I believe), Java uses IPv6 by default. When a connection
> is made to an IPv4 address, it actually makes an IPv6 connection to an
> "IPv4-mapped address". So when you request a connection to 127.0.0.1,
> you actually get a connection to ::ffff:127.0.0.1. PostgreSQL doesn't
> know this, however; it asks the ident daemon, "who's connecting from
> 127.0.0.1?" The daemon answers "nobody".
Hmm. I think you have mischaracterized the situation, because the
IDENT protocol doesn't actually mention IP addresses at all --- just
port numbers. It's up to Postgres to connect back to the same IP
address that the connection came from, and AFAIK we do that correctly
for IPv6 addresses.
This report could indicate a bug in our handling of the case, or it
could indicate a configuration error on the part of the OP, or it could
be that his ident daemon isn't handling the case correctly. There's
not enough info to tell. It would be useful to see the postmaster log
output when the connection is rejected.
regards, tom lane