mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Replace the virtual_host and tcpip_socket parameters with a unified
listen_addresses parameter, as per recent discussion. The default behavior is now to listen on localhost, which eliminates the need for the -i postmaster switch in many scenarios. Andrew Dunstan
This commit is contained in:
@ -37,7 +37,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.375 2004/03/15 16:18:42 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.376 2004/03/23 01:23:48 tgl Exp $
|
||||
*
|
||||
* NOTES
|
||||
*
|
||||
@ -149,7 +149,7 @@ static Backend *ShmemBackendArray;
|
||||
/* The socket number we are listening for connections on */
|
||||
int PostPortNumber;
|
||||
char *UnixSocketDir;
|
||||
char *VirtualHost;
|
||||
char *ListenAddresses;
|
||||
|
||||
/*
|
||||
* MaxBackends is the limit on the number of backends we can start.
|
||||
@ -202,7 +202,6 @@ static bool Reinit = true;
|
||||
static int SendStop = false;
|
||||
|
||||
/* still more option variables */
|
||||
bool NetServer = false; /* listen on TCP/IP */
|
||||
bool EnableSSL = false;
|
||||
bool SilentMode = false; /* silent mode (-S) */
|
||||
|
||||
@ -513,10 +512,10 @@ PostmasterMain(int argc, char *argv[])
|
||||
SetConfigOption("fsync", "false", PGC_POSTMASTER, PGC_S_ARGV);
|
||||
break;
|
||||
case 'h':
|
||||
SetConfigOption("virtual_host", optarg, PGC_POSTMASTER, PGC_S_ARGV);
|
||||
SetConfigOption("listen_addresses", optarg, PGC_POSTMASTER, PGC_S_ARGV);
|
||||
break;
|
||||
case 'i':
|
||||
SetConfigOption("tcpip_socket", "true", PGC_POSTMASTER, PGC_S_ARGV);
|
||||
SetConfigOption("listen_addresses", "*", PGC_POSTMASTER, PGC_S_ARGV);
|
||||
break;
|
||||
case 'k':
|
||||
SetConfigOption("unix_socket_directory", optarg, PGC_POSTMASTER, PGC_S_ARGV);
|
||||
@ -704,11 +703,6 @@ PostmasterMain(int argc, char *argv[])
|
||||
* Initialize SSL library, if specified.
|
||||
*/
|
||||
#ifdef USE_SSL
|
||||
if (EnableSSL && !NetServer)
|
||||
{
|
||||
postmaster_error("TCP/IP connections must be enabled for SSL");
|
||||
ExitPostmaster(1);
|
||||
}
|
||||
if (EnableSSL)
|
||||
secure_initialize();
|
||||
#endif
|
||||
@ -753,68 +747,60 @@ PostmasterMain(int argc, char *argv[])
|
||||
for (i = 0; i < MAXLISTEN; i++)
|
||||
ListenSocket[i] = -1;
|
||||
|
||||
if (NetServer)
|
||||
if (ListenAddresses)
|
||||
{
|
||||
if (VirtualHost && VirtualHost[0])
|
||||
{
|
||||
char *curhost,
|
||||
*endptr;
|
||||
char c = 0;
|
||||
char *curhost,
|
||||
*endptr;
|
||||
char c;
|
||||
|
||||
curhost = VirtualHost;
|
||||
for (;;)
|
||||
{
|
||||
while (*curhost == ' ') /* skip any extra spaces */
|
||||
curhost++;
|
||||
if (*curhost == '\0')
|
||||
break;
|
||||
endptr = strchr(curhost, ' ');
|
||||
if (endptr)
|
||||
{
|
||||
c = *endptr;
|
||||
*endptr = '\0';
|
||||
}
|
||||
curhost = ListenAddresses;
|
||||
for (;;)
|
||||
{
|
||||
/* 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';
|
||||
if (strcmp(curhost,"*") == 0)
|
||||
status = StreamServerPort(AF_UNSPEC, NULL,
|
||||
(unsigned short) PostPortNumber,
|
||||
UnixSocketDir,
|
||||
ListenSocket, MAXLISTEN);
|
||||
else
|
||||
status = StreamServerPort(AF_UNSPEC, curhost,
|
||||
(unsigned short) PostPortNumber,
|
||||
UnixSocketDir,
|
||||
ListenSocket, MAXLISTEN);
|
||||
if (status != STATUS_OK)
|
||||
ereport(FATAL,
|
||||
(errmsg("could not create listen socket for \"%s\"",
|
||||
curhost)));
|
||||
if (endptr)
|
||||
{
|
||||
*endptr = c;
|
||||
curhost = endptr + 1;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
status = StreamServerPort(AF_UNSPEC, NULL,
|
||||
(unsigned short) PostPortNumber,
|
||||
UnixSocketDir,
|
||||
ListenSocket, MAXLISTEN);
|
||||
if (status != STATUS_OK)
|
||||
ereport(FATAL,
|
||||
(errmsg("could not create TCP/IP listen socket")));
|
||||
ereport(WARNING,
|
||||
(errmsg("could not create listen socket for \"%s\"",
|
||||
curhost)));
|
||||
*endptr = c;
|
||||
if (c != '\0')
|
||||
curhost = endptr+1;
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef USE_RENDEZVOUS
|
||||
if (rendezvous_name != NULL)
|
||||
{
|
||||
DNSServiceRegistrationCreate(rendezvous_name,
|
||||
"_postgresql._tcp.",
|
||||
"",
|
||||
htonl(PostPortNumber),
|
||||
"",
|
||||
(DNSServiceRegistrationReply) reg_reply,
|
||||
NULL);
|
||||
}
|
||||
#endif
|
||||
/* Register for Rendezvous only if we opened TCP socket(s) */
|
||||
if (ListenSocket[0] != -1 && rendezvous_name != NULL)
|
||||
{
|
||||
DNSServiceRegistrationCreate(rendezvous_name,
|
||||
"_postgresql._tcp.",
|
||||
"",
|
||||
htonl(PostPortNumber),
|
||||
"",
|
||||
(DNSServiceRegistrationReply) reg_reply,
|
||||
NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UNIX_SOCKETS
|
||||
status = StreamServerPort(AF_UNIX, NULL,
|
||||
@ -822,10 +808,17 @@ PostmasterMain(int argc, char *argv[])
|
||||
UnixSocketDir,
|
||||
ListenSocket, MAXLISTEN);
|
||||
if (status != STATUS_OK)
|
||||
ereport(FATAL,
|
||||
ereport(WARNING,
|
||||
(errmsg("could not create Unix-domain socket")));
|
||||
#endif
|
||||
|
||||
/*
|
||||
* check that we have some socket to listen on
|
||||
*/
|
||||
if (ListenSocket[0] == -1)
|
||||
ereport(FATAL,
|
||||
(errmsg("no socket configured to listen on")));
|
||||
|
||||
XLOGPathInit();
|
||||
|
||||
/*
|
||||
|
@ -10,7 +10,7 @@
|
||||
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.191 2004/03/22 03:15:29 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.192 2004/03/23 01:23:48 tgl Exp $
|
||||
*
|
||||
*--------------------------------------------------------------------
|
||||
*/
|
||||
@ -443,14 +443,6 @@ static struct config_bool ConfigureNamesBool[] =
|
||||
&session_auth_is_superuser,
|
||||
false, NULL, NULL
|
||||
},
|
||||
{
|
||||
{"tcpip_socket", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
|
||||
gettext_noop("Makes the server accept TCP/IP connections."),
|
||||
NULL
|
||||
},
|
||||
&NetServer,
|
||||
false, NULL, NULL
|
||||
},
|
||||
{
|
||||
{"ssl", PGC_POSTMASTER, CONN_AUTH_SECURITY,
|
||||
gettext_noop("Enables SSL connections."),
|
||||
@ -1711,12 +1703,12 @@ static struct config_string ConfigureNamesString[] =
|
||||
},
|
||||
|
||||
{
|
||||
{"virtual_host", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
|
||||
gettext_noop("Sets the host name or IP address to listen to."),
|
||||
{"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
|
||||
gettext_noop("Sets the host name or IP addresses to listen to."),
|
||||
NULL
|
||||
},
|
||||
&VirtualHost,
|
||||
"", NULL, NULL
|
||||
&ListenAddresses,
|
||||
"localhost", NULL, NULL
|
||||
},
|
||||
|
||||
{
|
||||
|
@ -27,17 +27,17 @@
|
||||
|
||||
# - Connection Settings -
|
||||
|
||||
#tcpip_socket = false
|
||||
#listen_addresses = 'localhost' # what IP interface(s) to listen on;
|
||||
# defaults to localhost, '*' = any
|
||||
#port = 5432
|
||||
#max_connections = 100
|
||||
# note: increasing max_connections costs about 500 bytes of shared
|
||||
# memory per connection slot, in addition to costs from shared_buffers
|
||||
# and max_locks_per_transaction.
|
||||
#superuser_reserved_connections = 2
|
||||
#port = 5432
|
||||
#unix_socket_directory = ''
|
||||
#unix_socket_group = ''
|
||||
#unix_socket_permissions = 0777 # octal
|
||||
#virtual_host = '' # what interface to listen on; defaults to any
|
||||
#rendezvous_name = '' # defaults to the computer name
|
||||
|
||||
# - Security & Authentication -
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.101 2004/02/03 17:34:03 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.102 2004/03/23 01:23:48 tgl Exp $
|
||||
*/
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
@ -560,7 +560,6 @@ psql_completion(char *text, int start, int end)
|
||||
"syslog",
|
||||
"syslog_facility",
|
||||
"syslog_ident",
|
||||
"tcpip_socket",
|
||||
"TimeZone",
|
||||
"trace_notify",
|
||||
"transform_null_equals",
|
||||
|
@ -12,7 +12,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/miscadmin.h,v 1.153 2004/02/10 03:42:45 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/include/miscadmin.h,v 1.154 2004/03/23 01:23:48 tgl Exp $
|
||||
*
|
||||
* NOTES
|
||||
* some of the information in this file should be moved to
|
||||
@ -212,7 +212,6 @@ extern bool VacuumCostActive;
|
||||
* A few postmaster startup options are exported here so the
|
||||
* configuration file processor can access them.
|
||||
*/
|
||||
extern bool NetServer;
|
||||
extern bool EnableSSL;
|
||||
extern bool SilentMode;
|
||||
extern int MaxBackends;
|
||||
@ -222,7 +221,7 @@ extern int PostPortNumber;
|
||||
extern int Unix_socket_permissions;
|
||||
extern char *Unix_socket_group;
|
||||
extern char *UnixSocketDir;
|
||||
extern char *VirtualHost;
|
||||
extern char *ListenAddresses;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
|
Reference in New Issue
Block a user