summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2000-11-30 23:20:51 +0000
committerTom Lane2000-11-30 23:20:51 +0000
commitb7c378441793fd0e245b18e06d1aad17bdfe2de6 (patch)
tree45d55f2023cbf8cd0aecdd9aeac3752fcab005e4
parent73d0514deab2d271f6281c9d4d8e526fee643b16 (diff)
Repair residual sillinesses from UUNET virtual host/socket path patch.
I hope all the dust has settled out now ...
-rw-r--r--doc/src/sgml/environ.sgml23
-rw-r--r--doc/src/sgml/libpq++.sgml20
-rw-r--r--doc/src/sgml/libpq.sgml22
-rw-r--r--doc/src/sgml/ref/pg_dump.sgml7
-rw-r--r--doc/src/sgml/ref/pg_dumpall.sgml6
-rw-r--r--doc/src/sgml/ref/pg_restore.sgml5
-rw-r--r--doc/src/sgml/ref/postmaster.sgml28
-rw-r--r--doc/src/sgml/runtime.sgml40
-rw-r--r--doc/src/sgml/start.sgml16
-rw-r--r--src/backend/postmaster/postmaster.c5
-rw-r--r--src/interfaces/libpq/fe-connect.c56
11 files changed, 111 insertions, 117 deletions
diff --git a/doc/src/sgml/environ.sgml b/doc/src/sgml/environ.sgml
index 830502a696d..dc5741a95d8 100644
--- a/doc/src/sgml/environ.sgml
+++ b/doc/src/sgml/environ.sgml
@@ -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>
diff --git a/doc/src/sgml/libpq++.sgml b/doc/src/sgml/libpq++.sgml
index 43cf4ad1d50..eb71a508ed0 100644
--- a/doc/src/sgml/libpq++.sgml
+++ b/doc/src/sgml/libpq++.sgml
@@ -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>
diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index dc8d539f0d8..8366f193848 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -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>
diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml
index 925e5c72cf8..465043a9a41 100644
--- a/doc/src/sgml/ref/pg_dump.sgml
+++ b/doc/src/sgml/ref/pg_dump.sgml
@@ -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>
diff --git a/doc/src/sgml/ref/pg_dumpall.sgml b/doc/src/sgml/ref/pg_dumpall.sgml
index 907dcbb3b2d..ac61de92b96 100644
--- a/doc/src/sgml/ref/pg_dumpall.sgml
+++ b/doc/src/sgml/ref/pg_dumpall.sgml
@@ -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>
diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml
index 8af8226d948..f04a6a62c89 100644
--- a/doc/src/sgml/ref/pg_restore.sgml
+++ b/doc/src/sgml/ref/pg_restore.sgml
@@ -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>
diff --git a/doc/src/sgml/ref/postmaster.sgml b/doc/src/sgml/ref/postmaster.sgml
index 5bf5e4cb92b..8168ada6f4e 100644
--- a/doc/src/sgml/ref/postmaster.sgml
+++ b/doc/src/sgml/ref/postmaster.sgml
@@ -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).
+ A 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>
diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml
index 3447cc694f5..bb65624859a 100644
--- a/doc/src/sgml/runtime.sgml
+++ b/doc/src/sgml/runtime.sgml
@@ -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>
diff --git a/doc/src/sgml/start.sgml b/doc/src/sgml/start.sgml
index 3b484f50f95..12a413d7ec3 100644
--- a/doc/src/sgml/start.sgml
+++ b/doc/src/sgml/start.sgml
@@ -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
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 618228364ce..4def9996f14 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -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
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index b2a4c2c0dc4..173ab6c659e 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -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;
}