aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-08-08 20:17:36 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-08-08 20:17:36 +0000
commit33bf242a8a30a5294b3aa8034d71e6a49be5320c (patch)
tree00c189868e988abe492b9569fd104d72b05a4695 /src
parentdc199eafa7193992a8b03b3b1fcb14fdbea277f5 (diff)
downloadpostgresql-33bf242a8a30a5294b3aa8034d71e6a49be5320c.tar.gz
postgresql-33bf242a8a30a5294b3aa8034d71e6a49be5320c.zip
Make listen_addresses be a comma-separated list instead of a space-separated
list. More consistent with our other list-containing GUC variables.
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/postmaster.c44
-rw-r--r--src/backend/utils/misc/guc.c7
2 files changed, 27 insertions, 24 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 870ad318a83..f4ee0c8937c 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.420 2004/08/05 23:32:10 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.421 2004/08/08 20:17:34 tgl Exp $
*
* NOTES
*
@@ -113,6 +113,7 @@
#include "storage/bufmgr.h"
#include "access/xlog.h"
#include "tcop/tcopprot.h"
+#include "utils/builtins.h"
#include "utils/guc.h"
#include "utils/memutils.h"
#include "utils/ps_status.h"
@@ -698,23 +699,26 @@ PostmasterMain(int argc, char *argv[])
if (ListenAddresses)
{
- char *curhost,
- *endptr;
- char c;
+ char *rawstring;
+ List *elemlist;
+ ListCell *l;
- curhost = ListenAddresses;
- for (;;)
+ /* Need a modifiable copy of ListenAddresses */
+ rawstring = pstrdup(ListenAddresses);
+
+ /* Parse string into list of identifiers */
+ if (!SplitIdentifierString(rawstring, ',', &elemlist))
{
- /* ignore whitespace */
- while (isspace((unsigned char) *curhost))
- curhost++;
- if (*curhost == '\0')
- break;
- endptr = curhost;
- while (*endptr != '\0' && !isspace((unsigned char) *endptr))
- endptr++;
- c = *endptr;
- *endptr = '\0';
+ /* syntax error in list */
+ ereport(FATAL,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("invalid list syntax for \"listen_addresses\"")));
+ }
+
+ foreach(l, elemlist)
+ {
+ char *curhost = (char *) lfirst(l);
+
if (strcmp(curhost, "*") == 0)
status = StreamServerPort(AF_UNSPEC, NULL,
(unsigned short) PostPortNumber,
@@ -729,12 +733,10 @@ PostmasterMain(int argc, char *argv[])
ereport(WARNING,
(errmsg("could not create listen socket for \"%s\"",
curhost)));
- *endptr = c;
- if (c != '\0')
- curhost = endptr + 1;
- else
- break;
}
+
+ list_free(elemlist);
+ pfree(rawstring);
}
#ifdef USE_RENDEZVOUS
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index d619501850e..5c4908f27da 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.229 2004/08/08 15:37:06 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.230 2004/08/08 20:17:36 tgl Exp $
*
*--------------------------------------------------------------------
*/
@@ -1740,8 +1740,9 @@ static struct config_string ConfigureNamesString[] =
{
{"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
- gettext_noop("Sets the host name or IP addresses to listen to."),
- NULL
+ gettext_noop("Sets the host name or IP address(es) to listen to."),
+ NULL,
+ GUC_LIST_INPUT
},
&ListenAddresses,
"localhost", NULL, NULL