Tom Lane wrote:


Please revise, and update the docs too.





Second attempt attached. The fatal message now reads "no configured listening socket available", but I am not wedded to the wording. I also was not sure how to mark up * in the docs.


cheers

andrew
Index: doc/src/sgml/runtime.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql-server/doc/src/sgml/runtime.sgml,v
retrieving revision 1.251
diff -c -r1.251 runtime.sgml
*** doc/src/sgml/runtime.sgml   15 Mar 2004 17:57:51 -0000      1.251
--- doc/src/sgml/runtime.sgml   22 Mar 2004 17:26:36 -0000
***************
*** 571,588 ****
  
       <variablelist>
       
-      <varlistentry id="guc-tcpip-socket" xreflabel="tcpip_socket">
-       <term><varname>tcpip_socket</varname> (<type>boolean</type>)</term>
-       <listitem>
-        <para>
-         If this is true, then the server will accept TCP/IP 
connections.<indexterm><primary>TCP/IP</></>
-         Otherwise only local Unix domain socket connections are
-         accepted. It is off by default. This option can only be set at
-         server start.
-        </para>
-       </listitem>
-      </varlistentry>
-   
       <varlistentry id="guc-max-connections" xreflabel="max_connections">
        <term><varname>max_connections</varname> (<type>integer</type>)</term>
        <listitem>
--- 571,576 ----
***************
*** 702,717 ****
        </listitem>
       </varlistentry>
  
!      <varlistentry id="guc-virtual-host" xreflabel="virtual_host">
!       <term><varname>virtual_host</varname> (<type>string</type>)</term>
        <listitem>
         <para>
!         Specifies the IP address(es) on which the server is
!         to listen for connections from client applications.  If specified,
!         it takes the form of a space-separated list of host names and/or
!         numeric IP addresses.  If the list is empty, the server listens
!         on all available addresses (including
!         <systemitem class="systemname">localhost</>).
         </para>
        </listitem>
       </varlistentry>
--- 690,707 ----
        </listitem>
       </varlistentry>
  
!      <varlistentry id="guc-listen-addresses" xreflabel="listen_addresses">
!       <term><varname>listen_addresses</varname> (<type>string</type>)</term>
        <listitem>
         <para>
!        Specifies the IP address(es) on which the server is
!        to listen for connections from client applications.  
!        The default is <systemitem class="systemname">localhost</>.
!        The item takes the form of a space-separated list of host names and/or
!        numeric IP addresses.  The special entry * corresponds to all
!        available IP interfaces.
!        If the list is empty, the server  does not 
!        listen on any IP interface at all.
         </para>
        </listitem>
       </varlistentry>
***************
*** 3009,3019 ****
         </row>
         <row>
          <entry><option>-h <replaceable>x</replaceable></option></entry>
!         <entry><literal>virtual_host = <replaceable>x</replaceable></></entry>
         </row>
         <row>
          <entry><option>-i</option></entry>
!         <entry><literal>tcpip_socket = on</></entry>
         </row>
         <row>
          <entry><option>-k <replaceable>x</replaceable></option></entry>
--- 2999,3009 ----
         </row>
         <row>
          <entry><option>-h <replaceable>x</replaceable></option></entry>
!         <entry><literal>listen_addresses = <replaceable>x</replaceable></></entry>
         </row>
         <row>
          <entry><option>-i</option></entry>
!         <entry><literal>listen_addresses = '*'</></entry>
         </row>
         <row>
          <entry><option>-k <replaceable>x</replaceable></option></entry>
Index: src/backend/postmaster/postmaster.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/postmaster/postmaster.c,v
retrieving revision 1.375
diff -c -r1.375 postmaster.c
*** src/backend/postmaster/postmaster.c 15 Mar 2004 16:18:42 -0000      1.375
--- src/backend/postmaster/postmaster.c 22 Mar 2004 17:26:38 -0000
***************
*** 149,155 ****
  /* The socket number we are listening for connections on */
  int                   PostPortNumber;
  char     *UnixSocketDir;
! char     *VirtualHost;
  
  /*
   * MaxBackends is the limit on the number of backends we can start.
--- 149,155 ----
  /* The socket number we are listening for connections on */
  int                   PostPortNumber;
  char     *UnixSocketDir;
! char     *ListenAddresses;
  
  /*
   * MaxBackends is the limit on the number of backends we can start.
***************
*** 202,208 ****
  static int    SendStop = false;
  
  /* still more option variables */
- bool          NetServer = false;      /* listen on TCP/IP */
  bool          EnableSSL = false;
  bool          SilentMode = false; /* silent mode (-S) */
  
--- 202,207 ----
***************
*** 513,522 ****
                                SetConfigOption("fsync", "false", PGC_POSTMASTER, 
PGC_S_ARGV);
                                break;
                        case 'h':
!                               SetConfigOption("virtual_host", optarg, 
PGC_POSTMASTER, PGC_S_ARGV);
                                break;
                        case 'i':
!                               SetConfigOption("tcpip_socket", "true", 
PGC_POSTMASTER, PGC_S_ARGV);
                                break;
                        case 'k':
                                SetConfigOption("unix_socket_directory", optarg, 
PGC_POSTMASTER, PGC_S_ARGV);
--- 512,521 ----
                                SetConfigOption("fsync", "false", PGC_POSTMASTER, 
PGC_S_ARGV);
                                break;
                        case 'h':
!                               SetConfigOption("listen_addresses", optarg, 
PGC_POSTMASTER, PGC_S_ARGV);
                                break;
                        case 'i':
!                               SetConfigOption("listen_addresses", "*", 
PGC_POSTMASTER, PGC_S_ARGV);
                                break;
                        case 'k':
                                SetConfigOption("unix_socket_directory", optarg, 
PGC_POSTMASTER, PGC_S_ARGV);
***************
*** 704,714 ****
         * 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
--- 703,708 ----
***************
*** 753,820 ****
        for (i = 0; i < MAXLISTEN; i++)
                ListenSocket[i] = -1;
  
!       if (NetServer)
        {
!               if (VirtualHost && VirtualHost[0])
                {
!                       char       *curhost,
!                                          *endptr;
!                       char            c = 0;
! 
!                       curhost = VirtualHost;
!                       for (;;)
!                       {
!                               while (*curhost == ' ') /* skip any extra spaces */
!                                       curhost++;
!                               if (*curhost == '\0')
!                                       break;
!                               endptr = strchr(curhost, ' ');
!                               if (endptr)
!                               {
!                                       c = *endptr;
!                                       *endptr = '\0';
!                               }
                                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")));
                }
  
  #ifdef USE_RENDEZVOUS
!               if (rendezvous_name != NULL)
!               {
!                       DNSServiceRegistrationCreate(rendezvous_name,
!                                                                                
"_postgresql._tcp.",
!                                                                                "",
!                                                                                
htonl(PostPortNumber),
!                                                                                "",
!                                                                
(DNSServiceRegistrationReply) reg_reply,
!                                                                                NULL);
!               }
! #endif
        }
  
  #ifdef HAVE_UNIX_SOCKETS
        status = StreamServerPort(AF_UNIX, NULL,
--- 747,805 ----
        for (i = 0; i < MAXLISTEN; i++)
                ListenSocket[i] = -1;
  
!       if (ListenAddresses)
        {
!               char       *curhost,
!                       *endptr;
!               char            c = 0;
! 
!               curhost = ListenAddresses;
!               for (;;)
                {
!                       while (isspace(*curhost)) /* skip any extra spaces */
!                               curhost++;
!                       if (*curhost == '\0')
!                               break;
!                       endptr = curhost;
!                       while(*endptr != '\0' && !isspace(*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(WARNING,
!                                               (errmsg("could not create listen 
socket for \"%s\"",
!                                                               curhost)));
!                       *endptr = c;
!                       if(c != '\0')
!                               curhost = endptr+1;
!                       else
!                               break;
                }
+       }
  
  #ifdef USE_RENDEZVOUS
!       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,830 ****
                                                          UnixSocketDir,
                                                          ListenSocket, MAXLISTEN);
        if (status != STATUS_OK)
!               ereport(FATAL,
                                (errmsg("could not create Unix-domain socket")));
  #endif
  
        XLOGPathInit();
  
--- 807,823 ----
                                                          UnixSocketDir,
                                                          ListenSocket, MAXLISTEN);
        if (status != STATUS_OK)
!               ereport(WARNING,
                                (errmsg("could not create Unix-domain socket")));
  #endif
+ 
+     /*
+        * check that we have some socket to talk on 
+        */
+ 
+       if (ListenSocket[0] == -1)
+               ereport(FATAL,
+                               (errmsg("no configured listening socket available")));
  
        XLOGPathInit();
  
Index: src/backend/utils/misc/guc.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/utils/misc/guc.c,v
retrieving revision 1.191
diff -c -r1.191 guc.c
*** src/backend/utils/misc/guc.c        22 Mar 2004 03:15:29 -0000      1.191
--- src/backend/utils/misc/guc.c        22 Mar 2004 17:26:39 -0000
***************
*** 444,457 ****
                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."),
                        NULL
--- 444,449 ----
***************
*** 1711,1722 ****
        },
  
        {
!               {"virtual_host", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
!                       gettext_noop("Sets the host name or IP address to listen to."),
                        NULL
                },
!               &VirtualHost,
!               "", NULL, NULL
        },
  
        {
--- 1703,1714 ----
        },
  
        {
!               {"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
!                       gettext_noop("Sets the host name or IP addresses to listen 
to."),
                        NULL
                },
!               &ListenAddresses,
!               "localhost", NULL, NULL
        },
  
        {
Index: src/backend/utils/misc/postgresql.conf.sample
===================================================================
RCS file: 
/projects/cvsroot/pgsql-server/src/backend/utils/misc/postgresql.conf.sample,v
retrieving revision 1.108
diff -c -r1.108 postgresql.conf.sample
*** src/backend/utils/misc/postgresql.conf.sample       15 Mar 2004 15:56:26 -0000     
 1.108
--- src/backend/utils/misc/postgresql.conf.sample       22 Mar 2004 17:26:40 -0000
***************
*** 27,33 ****
  
  # - Connection Settings -
  
- #tcpip_socket = false
  #max_connections = 100
        # note: increasing max_connections costs about 500 bytes of shared
        # memory per connection slot, in addition to costs from shared_buffers
--- 27,32 ----
***************
*** 37,43 ****
  #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 -
--- 36,43 ----
  #unix_socket_directory = ''
  #unix_socket_group = ''
  #unix_socket_permissions = 0777       # octal
! #listen_addresses = 'localhost'       # what interface to listen on; 
!                               # defaults to localhost, '*' = any
  #rendezvous_name = ''         # defaults to the computer name
  
  # - Security & Authentication -
Index: src/include/miscadmin.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/include/miscadmin.h,v
retrieving revision 1.153
diff -c -r1.153 miscadmin.h
*** src/include/miscadmin.h     10 Feb 2004 03:42:45 -0000      1.153
--- src/include/miscadmin.h     22 Mar 2004 17:26:40 -0000
***************
*** 212,218 ****
   *    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;
--- 212,217 ----
***************
*** 222,228 ****
  extern int    Unix_socket_permissions;
  extern char *Unix_socket_group;
  extern char *UnixSocketDir;
! extern char *VirtualHost;
  
  
  /*****************************************************************************
--- 221,227 ----
  extern int    Unix_socket_permissions;
  extern char *Unix_socket_group;
  extern char *UnixSocketDir;
! extern char *ListenAddresses;
  
  
  /*****************************************************************************

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to