On Fri, Oct 9, 2015 at 10:16 PM, Noah Misch <n...@leadboat.com> wrote:
> On Fri, Oct 09, 2015 at 03:14:26PM -0400, Robert Haas wrote:
>> On Thu, Oct 8, 2015 at 11:26 PM, Noah Misch <n...@leadboat.com> wrote:
>> >> In particular, magically
>> >> substituting 127.0.0.1 for 0.0.0.0 seems utterly without principle.
>> >
>> > Binding a listening socket to "0.0.0.0" listens on every local IPv4 
>> > address,
>> > and 127.0.0.1 is one of those addresses.  That's the principle.  It's
>> > inelegant, but I expect it to work everywhere.
>>
>> But... what about the machine's other addresses?
>>
>> If Windows doesn't treat 0.0.0.0 to mean listen on every interface,
>> that's a shame.  But making it only listen on 127.0.0.1 and not any of
>> the others does not seem better.  Then, instead of 0.0.0.0 failing on
>> Windows, it would instead work but with different behavior.  That
>> doesn't seem good either.
>
> The listening side is in good shape today.  This thread is about the address
> that pg_ctl uses in PQping("host=...").  Listening on 0.0.0.0 is portable.
> PQping("host='0.0.0.0'") relies on non-portable semantics in the underlying
> connect() syscall.  PQping("host='127.0.0.1'") is a portable substitute.

Ah.  So in this case 0.0.0.0 is interpreted to mean "any IP that's a
way to reach the local host", and using 127.0.0.1 makes sense because
we know that will always be one of them?  I could buy that line of
reasoning.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to