diff options
author | Tom Lane | 2000-11-30 23:20:51 +0000 |
---|---|---|
committer | Tom Lane | 2000-11-30 23:20:51 +0000 |
commit | b7c378441793fd0e245b18e06d1aad17bdfe2de6 (patch) | |
tree | 45d55f2023cbf8cd0aecdd9aeac3752fcab005e4 | |
parent | 73d0514deab2d271f6281c9d4d8e526fee643b16 (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.sgml | 23 | ||||
-rw-r--r-- | doc/src/sgml/libpq++.sgml | 20 | ||||
-rw-r--r-- | doc/src/sgml/libpq.sgml | 22 | ||||
-rw-r--r-- | doc/src/sgml/ref/pg_dump.sgml | 7 | ||||
-rw-r--r-- | doc/src/sgml/ref/pg_dumpall.sgml | 6 | ||||
-rw-r--r-- | doc/src/sgml/ref/pg_restore.sgml | 5 | ||||
-rw-r--r-- | doc/src/sgml/ref/postmaster.sgml | 28 | ||||
-rw-r--r-- | doc/src/sgml/runtime.sgml | 40 | ||||
-rw-r--r-- | doc/src/sgml/start.sgml | 16 | ||||
-rw-r--r-- | src/backend/postmaster/postmaster.c | 5 | ||||
-rw-r--r-- | src/interfaces/libpq/fe-connect.c | 56 |
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; } |