Re: listening addresses - Mailing list pgsql-patches

From Tom Lane
Subject Re: listening addresses
Date
Msg-id 26180.1079889573@sss.pgh.pa.us
Whole thread Raw
In response to listening addresses  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: listening addresses
Re: listening addresses
List pgsql-patches
Andrew Dunstan <andrew@dunslane.net> writes:
> Submitted for review.

Okay, some random comments:

> ! char       *ListenAddresses = "localhost";

I think you made this mistake in the log_line_prefix patch too.  The
contents of a GUC string var should always be either NULL or a pointer
to a malloc'd string --- ergo, its initial state must be NULL.  It's
pure luck that GUC doesn't dump core trying to free() this pointer.

> +     /*
> +      * check if ListenAddresses is empty or all spaces
> +      */

Why do you need this test (or the NetServer bool) at all?  Just scan
the string and bind to whatever it mentions.

BTW it'd be better to use isspace() instead of a hardwired test for ' '.

> !         if (strcmp(ListenAddresses,"*") != 0)

This seems a bit nonrobust since it will fail if any whitespace is
added.  I think it'd be better to test whether any individual hostname
extracted from the string is '*'.

> +     if (ListenSocket[0] == -1)
> +         ereport(FATAL,
> +                 (errmsg("not listening on any socket")));

Good but I don't like the wording of the error very much.  Maybe "could
not bind to any socket"?  Doesn't seem quite right either.  [thinks...]
There are really two cases here:
    * listen_addresses is empty and the machine doesn't have Unix
      sockets
    * listen_addresses contains (only) bogus addresses, and the
      machine doesn't have Unix sockets.
"not listening on any socket" seems to focus on the first case, "could
not bind to any socket" focuses on the second.  Can we cover both?

Please revise, and update the docs too.

            regards, tom lane

pgsql-patches by date:

Previous
From: Andrew Dunstan
Date:
Subject: listening addresses
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] listening addresses