OSDN Git Service

Repair residual sillinesses from UUNET virtual host/socket path patch.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 30 Nov 2000 23:20:51 +0000 (23:20 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 30 Nov 2000 23:20:51 +0000 (23:20 +0000)
I hope all the dust has settled out now ...

doc/src/sgml/environ.sgml
doc/src/sgml/libpq++.sgml
doc/src/sgml/libpq.sgml
doc/src/sgml/ref/pg_dump.sgml
doc/src/sgml/ref/pg_dumpall.sgml
doc/src/sgml/ref/pg_restore.sgml
doc/src/sgml/ref/postmaster.sgml
doc/src/sgml/runtime.sgml
doc/src/sgml/start.sgml
src/backend/postmaster/postmaster.c
src/interfaces/libpq/fe-connect.c

index 830502a..dc5741a 100644 (file)
@@ -47,17 +47,16 @@ $ export PATH
 </Para>
 
 <Para>
-
-If your site administrator has not set things up in the default  way, 
-you may have some more work to do.  For example, if the database server
-machine is a remote machine, you will need to set the
-<Acronym>PGHOST</Acronym> environment variable to the name of the
-database server machine.   The  environment  variable
-<Acronym>PGPORT</Acronym> or <envar>PGUNIXSOCKET</envar> may also have
-to be set.  The bottom line is this: if you try to start an application 
-program  and  it  complains that it cannot connect to the
-<Application>postmaster</Application>, you should immediately consult
-your site administrator to make sure that your environment is properly
-set up. </Para>
+If your site administrator has not set things up in the
+default  way,  you may have some more work to do.  For example, if the database
+ server machine is a remote machine, you
+will need to set the <Acronym>PGHOST</Acronym> environment variable to the name
+of the database server machine.   The  environment  variable
+<Acronym>PGPORT</Acronym> may also have to be set.  The bottom line is this: if
+you try to start an application  program  and  it  complains
+that it cannot connect to the <Application>postmaster</Application>,
+ you should immediately consult your site administrator to make sure that your
+environment is properly set up.
+</Para>
 
 </Chapter>
index 43cf4ad..eb71a50 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.19 2000/11/22 01:41:12 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.20 2000/11/30 23:20:50 tgl Exp $
 -->
 
  <chapter id="libpqplusplus">
@@ -80,22 +80,16 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.19 2000/11/22 01:41:
       <listitem>
        <para>
        <envar>PGHOST</envar> sets the default server name.
-        If it begins with a slash, it is used
-        as the directory for the unix domain socket.
+        If this begins with a slash, it specifies Unix-domain communication
+        rather than TCP/IP communication; the value is the name of the
+       directory in which the socket file is stored (default "/tmp").
        </para>
       </listitem>
       <listitem>
        <para>
-       <envar>PGPORT</envar>  sets the default port or local Unix domain socket
-       file extension for communicating with the <productname>Postgres</productname>
-       backend.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-       <envar>PGUNIXSOCKET</envar>  sets the Unix domain socket
-       directory for communicating with the <productname>Postgres</productname>
-       backend.
+       <envar>PGPORT</envar> sets the default TCP port number or Unix-domain
+       socket file extension for communicating with the
+       <productname>Postgres</productname> backend.
        </para>
       </listitem>
       <listitem>
index dc8d539..8366f19 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.50 2000/11/30 18:34:36 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.51 2000/11/30 23:20:50 tgl Exp $
 -->
 
  <chapter id="libpq-chapter">
@@ -88,9 +88,11 @@ PGconn *PQconnectdb(const char *conninfo)
      <listitem>
      <para>
       Name of host to connect to. 
-      Using this parameter causes a hostname look-up.  See hostaddr.
-      If it begins with a slash, it is used
-      as the directory for the unix domain socket.
+      If this begins with a slash, it specifies Unix-domain communication
+      rather than TCP/IP communication; the value is the name of the
+      directory in which the socket file is stored.
+      The default is to connect to a Unix-domain socket in
+      <filename>/tmp</filename>.
      </para>
      </listitem>
     </varlistentry>
@@ -118,7 +120,7 @@ PGconn *PQconnectdb(const char *conninfo)
       machine at hostaddr.
      </para>
      <para>
-      Without both a host name and host address, libpq will connect using a
+      Without either a host name or host address, libpq will connect using a
       local Unix domain socket.
      </para>
      </listitem>
@@ -1820,14 +1822,16 @@ application programs.
 <listitem>
 <para>
 <envar>PGHOST</envar> sets the default server name.
-If it beings with a slash, it is used as the directory for the unix domain
-socket.
+If this begins with a slash, it specifies Unix-domain communication
+rather than TCP/IP communication; the value is the name of the
+directory in which the socket file is stored (default "/tmp").
 </para>
 </listitem>
 <listitem>
 <para>
-<envar>PGPORT</envar> sets the default port for communicating with
-the <productname>Postgres</productname> backend.
+<envar>PGPORT</envar> sets the default TCP port number or Unix-domain
+socket file extension for communicating with the
+<productname>Postgres</productname> backend.
 </para>
 </listitem>
 <listitem>
index 925e5c7..465043a 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.25 2000/11/22 01:41:13 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.26 2000/11/30 23:20:50 tgl Exp $
 Postgres documentation
 -->
 
@@ -371,8 +371,9 @@ pg_dump [ -h <replaceable class="parameter">host</replaceable> ]
      <varlistentry>
       <term><computeroutput>
 Connection to database 'template1' failed.
-connectDB() failed: Is the postmaster running and accepting connections
-            at 'UNIX Socket' on port '<replaceable class="parameter">port</replaceable>'?
+connectDBStart() -- connect() failed: No such file or directory
+        Is the postmaster running locally
+        and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'?
        </computeroutput></term>
       <listitem>
        <para>
index 907dcbb..ac61de9 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.15 2000/11/22 01:41:13 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.16 2000/11/30 23:20:50 tgl Exp $
 Postgres documentation
 -->
 
@@ -192,7 +192,9 @@ pg_dumpall [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replac
      <varlistentry>
       <term><computeroutput>
 Connection to database 'template1' failed.
-connectDB() failed: Is the postmaster running and accepting connections at 'UNIX Socket' on port '<replaceable class="parameter">port</replaceable>'?
+connectDBStart() -- connect() failed: No such file or directory
+        Is the postmaster running locally
+        and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'?
        </computeroutput></term>
       <listitem>
        <para>
index 8af8226..f04a6a6 100644 (file)
@@ -345,8 +345,9 @@ pg_restore [ <replaceable class="parameter">archive-file</replaceable>  ]
      <varlistentry>
       <term><computeroutput>
 Connection to database 'template1' failed.
-connectDB() failed: Is the postmaster running and accepting connections
-            at 'UNIX Socket' on port '<replaceable class="parameter">port</replaceable>'?
+connectDBStart() -- connect() failed: No such file or directory
+        Is the postmaster running locally
+        and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'?
        </computeroutput></term>
       <listitem>
        <para>
index 5bf5e4c..8168ada 100644 (file)
@@ -1,11 +1,11 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.17 2000/11/28 23:27:54 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.18 2000/11/30 23:20:50 tgl Exp $
 Postgres documentation
 -->
 
 <refentry id="APP-POSTMASTER">
  <docinfo>
-  <date>2000-11-12</date>
+  <date>2000-11-30</date>
  </docinfo>
 
  <refmeta>
@@ -30,7 +30,7 @@ Postgres documentation
    <arg>-F</arg>
    <arg>-h <replaceable>hostname</replaceable></arg>
    <arg>-i</arg>
-   <arg>-k <replaceable>filename</replaceable></arg>
+   <arg>-k <replaceable>directory</replaceable></arg>
    <arg>-l</arg>
    <arg>-N <replaceable>max-connections</replaceable></arg>
    <arg>-o <replaceable>extra-options</replaceable></arg>
@@ -70,10 +70,10 @@ Postgres documentation
    starts it needs to know the location of the database cluster files
    (<quote>data area</quote>).  This is done with the
    <option>-D</option> invocation option or the <envar>PGDATA</envar>
-   environment variable, there is no default.  More than one
+   environment variable; there is no default.  More than one
    postmaster process can run on a system at one time, as long as they
-   use different data areas and different port numbers (see below).  A
-   data area is created with <xref linkend="app-initdb"
+   use different data areas and different communication ports (see below).
+   data area is created with <xref linkend="app-initdb"
    endterm="app-initdb-title">.
   </para>
 
@@ -165,10 +165,8 @@ Postgres documentation
        <para>
        Specifies the TCP/IP hostname or address on which the
        <application>postmaster</application> is to listen for
-       connections from client applications.  Defaults to the value
-       of the <envar>PGHOST</envar> environment variable, or if
-       <envar>PGHOST</envar> is not set, it defaults to listening on
-       all configured addresses (including localhost).
+       connections from client applications.  Defaults to
+       listening on all configured addresses (including localhost).
        </para>
       </listitem>
      </varlistentry>
@@ -185,15 +183,13 @@ Postgres documentation
      </varlistentry>
 
      <varlistentry>
-      <term>-k <replaceable class="parameter">filename</replaceable></term>
+      <term>-k <replaceable class="parameter">directoryname</replaceable></term>
       <listitem>
        <para>
-       Specifies the directory for Unix domain socket on which the
+       Specifies the directory of the Unix-domain socket on which the
        <application>postmaster</application> is to listen for
-       connections from client applications.  Defaults to the value
-       of the <envar>PGUNIXSOCKET</envar> environment variable, or if
-       <envar>PGUNIXSOCKET</envar> is not set, then defaults to a
-       file in <filename>/tmp</filename>.
+       connections from client applications.  The default is normally
+       <filename>/tmp</filename>, but can be changed at build time.
        </para>
       </listitem>
      </varlistentry>
index 3447cc6..bb65624 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.39 2000/11/25 20:33:47 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.40 2000/11/30 23:20:50 tgl Exp $
 -->
 
 <Chapter Id="runtime">
@@ -347,7 +347,7 @@ IpcSemaphoreCreate: semget(key=5440026, num=16, 01600) failed: No space left on
     <para>
 <screen>
 connectDB() -- connect() failed: Connection refused
-Is the postmaster running (with -i) at 'server.joe.com' and accepting connections on TCP/IP port '5432'?
+Is the postmaster running (with -i) at 'server.joe.com' and accepting connections on TCP/IP port 5432?
 </screen>
      This is the generic <quote>I couldn't find a server to talk
      to</quote> failure. It looks like the above when TCP/IP
@@ -361,7 +361,7 @@ Is the postmaster running (with -i) at 'server.joe.com' and accepting connection
      Unix-socket communication to a local postmaster:
 <screen>
 connectDB() -- connect() failed: No such file or directory
-Is the postmaster running at 'localhost' and accepting connections on Unix socket '5432'?
+Is the postmaster running locally and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'?
 </screen>
     </para>
 
@@ -1082,15 +1082,13 @@ env PGOPTIONS='-c geqo=off' psql
      </varlistentry>
 
      <varlistentry>
-      <term>UNIXSOCKET (<type>string</type>)</term>
+      <term>UNIX_SOCKET_DIRECTORY (<type>string</type>)</term>
       <listitem>
        <para>
-       Specifies the directory of the Unix domain socket on which the
+       Specifies the directory of the Unix-domain socket on which the
        <application>postmaster</application> is to listen for
-       connections from client applications.  Defaults to the value
-       of the <envar>PGUNIXSOCKET</envar> environment variable, or if
-       <envar>PGUNIXSOCKET</envar> is not set, then defaults to 
-        <filename>/tmp</filename>.
+       connections from client applications.  The default is normally
+       <filename>/tmp</filename>, but can be changed at build time.
        </para>
       </listitem>
      </varlistentry>
@@ -1151,23 +1149,8 @@ env PGOPTIONS='-c geqo=off' psql
        <para>
        Specifies the TCP/IP hostname or address on which the
        <application>postmaster</application> is to listen for
-       connections from client applications.  Defaults to the value
-       of the <envar>PGHOST</envar> environment variable, or if
-       <envar>PGHOST</envar> is not set, it defaults to listening on
-       all configured addresses (including localhost).
-       </para>
-       <para>
-       If you use a hostname do not try to run multiple instances of
-       <application>postmaster</application> on the same IP address
-       but different ports.  Doing so will result in them attempting
-       (incorrectly) to use the same shared memory segments.  Also,
-       if you use a hostname, all of the host's IP addresses on which
-       <application>postmaster</application> instances are listening
-       must be distinct in the two last octets.
-       </para>
-       <para>
-       If you do not use this option, then each instance must listen
-       on a different port.
+       connections from client applications.  Defaults to
+       listening on all configured addresses (including localhost).
        </para>
       </listitem>
      </varlistentry>
@@ -1221,6 +1204,11 @@ env PGOPTIONS='-c geqo=off' psql
         <entry></entry>
        </row>
        <row>
+        <entry>-k <replaceable>x</replaceable></entry>
+        <entry>unix_socket_directory = <replaceable>x</replaceable></entry>
+        <entry></entry>
+       </row>
+       <row>
         <entry>-l</entry>
         <entry>ssl = on</entry>
         <entry></entry>
index 3b484f5..12a413d 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/start.sgml,v 1.14 2000/11/13 15:18:07 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/start.sgml,v 1.15 2000/11/30 23:20:50 tgl Exp $
 -->
 
  <chapter id="start">
@@ -110,7 +110,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/start.sgml,v 1.14 2000/11/13 15:18:07 momji
     will need to set the <acronym>PGHOST</acronym> environment
     variable to the name
     of the database server machine.   The  environment  variable
-    <acronym>PGPORT</acronym> or <acronym>PGUNIXSOCKET</acronym> may also have to be set.
+    <acronym>PGPORT</acronym> may also have to be set.
     The bottom line is this: if
     you try to start an application  program  and  it  complains
     that it cannot connect to the <application>postmaster</application>,
@@ -154,18 +154,18 @@ $Header: /cvsroot/pgsql/doc/src/sgml/start.sgml,v 1.14 2000/11/13 15:18:07 momji
 
     <programlisting>
 % psql template1
-Connection to database 'postgres' failed.
-connectDB() failed: Is the postmaster running and accepting connections
-    at 'UNIX Socket' on port '5432'?
+psql: connectDBStart() -- connect() failed: No such file or directory
+        Is the postmaster running locally
+        and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'?
     </programlisting>
 
     or
 
     <programlisting>
 % psql -h localhost template1
-Connection to database 'postgres' failed.
-connectDB() failed: Is the postmaster running and accepting TCP/IP
-    (with -i) connections at 'localhost' on port '5432'?
+psql: PQconnectPoll() -- connect() failed: Connection refused
+        Is the postmaster running (with -i) at 'localhost'
+        and accepting connections on TCP/IP port 5432?
     </programlisting>
 
     it is usually because
index 6182283..4def999 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.196 2000/11/29 22:04:04 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.197 2000/11/30 23:20:51 tgl Exp $
  *
  * NOTES
  *
@@ -432,7 +432,6 @@ PostmasterMain(int argc, char *argv[])
                                NetServer = true;
                                break;
                        case 'k':
-                               /* Set PGUNIXSOCKET by hand. */
                                UnixSocketDir = optarg;
                                break;
 #ifdef USE_SSL
@@ -732,7 +731,7 @@ usage(const char *progname)
        printf("  -F              turn fsync off\n");
        printf("  -h HOSTNAME     host name or IP address to listen on\n");
        printf("  -i              enable TCP/IP connections\n");
-       printf("  -k FILENAME     Unix domain socket location\n");
+       printf("  -k DIRECTORY    Unix-domain socket location\n");
 #ifdef USE_SSL
        printf("  -l              enable SSL connections\n");
 #endif
index b2a4c2c..173ab6c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.151 2000/11/30 18:32:52 petere Exp $
+ *       $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.152 2000/11/30 23:20:51 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -742,6 +742,36 @@ connectNoDelay(PGconn *conn)
 
 
 /* ----------
+ * connectFailureMessage -
+ * create a friendly error message on connection failure.
+ * ----------
+ */
+static void
+connectFailureMessage(PGconn *conn, const char *caller, int errorno)
+{
+#ifdef HAVE_UNIX_SOCKETS
+       if (conn->raddr.sa.sa_family == AF_UNIX)
+               printfPQExpBuffer(&conn->errorMessage,
+                                                 "%s -- connect() failed: %s\n"
+                                                 "\tIs the postmaster running locally\n"
+                                                 "\tand accepting connections on Unix socket '%s'?\n",
+                                                 caller,
+                                                 strerror(errorno),
+                                                 conn->raddr.un.sun_path);
+       else
+#endif
+               printfPQExpBuffer(&conn->errorMessage,
+                                                 "%s -- connect() failed: %s\n"
+                                                 "\tIs the postmaster running (with -i) at '%s'\n"
+                                                 "\tand accepting connections on TCP/IP port %s?\n",
+                                                 caller,
+                                                 strerror(errorno),
+                                                 conn->pghost ? conn->pghost : "localhost",
+                                                 conn->pgport);
+}
+
+
+/* ----------
  * connectDBStart -
  * Start to make a connection to the backend so it is ready to receive
  * queries.
@@ -911,17 +941,7 @@ connectDBStart(PGconn *conn)
                else
                {
                        /* Something's gone wrong */
-                       printfPQExpBuffer(&conn->errorMessage,
-                                                         "connectDBStart() -- connect() failed: %s\n"
-                                                         "\tIs the postmaster running%s at '%s'\n"
-                                                         "\tand accepting connections on %s '%s'?\n",
-                                                         strerror(errno),
-                                                         (family == AF_INET) ? " (with -i)" : "",
-                                                         conn->pghost ? conn->pghost : "localhost",
-                                                         (family == AF_INET) ?
-                                                         "TCP/IP port" : "Unix socket",
-                                                         (family == AF_UNIX && conn->pgunixsocket) ?
-                                                         conn->pgunixsocket : conn->pgport);
+                       connectFailureMessage(conn, "connectDBStart()", errno);
                        goto connect_errReturn;
                }
        }
@@ -1213,17 +1233,7 @@ keep_going:                                              /* We will come back to here until there
                                         * see connect failures at this point, so provide a
                                         * friendly error message.
                                         */
-                                       printfPQExpBuffer(&conn->errorMessage,
-                                                         "PQconnectPoll() -- connect() failed: %s\n"
-                                                               "\tIs the postmaster running%s at '%s'\n"
-                                                        "\tand accepting connections on %s '%s'?\n",
-                                                                         strerror(optval),
-                                                                         (conn->raddr.sa.sa_family == AF_INET) ? " (with -i)" : "",
-                                                          conn->pghost ? conn->pghost : "localhost",
-                                                                 (conn->raddr.sa.sa_family == AF_INET) ?
-                                                                         "TCP/IP port" : "Unix socket",
-                                                         (conn->raddr.sa.sa_family == AF_UNIX && conn->pgunixsocket) ?
-                                                                         conn->pgunixsocket : conn->pgport);
+                                       connectFailureMessage(conn, "PQconnectPoll()", optval);
                                        goto error_return;
                                }