From 98e195d23bbf08ec6a8c2b25e0eef6e518fb8124 Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Wed, 22 Nov 2000 01:41:14 +0000 Subject: [PATCH] Make socket option specify just the directory, not the full path. --- doc/src/sgml/libpq++.sgml | 10 +++++----- doc/src/sgml/libpq.sgml | 11 +++++------ doc/src/sgml/ref/createdb.sgml | 4 ++-- doc/src/sgml/ref/createlang.sgml | 4 ++-- doc/src/sgml/ref/createuser.sgml | 4 ++-- doc/src/sgml/ref/dropdb.sgml | 4 ++-- doc/src/sgml/ref/droplang.sgml | 4 ++-- doc/src/sgml/ref/dropuser.sgml | 4 ++-- doc/src/sgml/ref/pg_dump.sgml | 4 ++-- doc/src/sgml/ref/pg_dumpall.sgml | 4 ++-- doc/src/sgml/ref/pg_restore.sgml | 2 +- doc/src/sgml/ref/postmaster.sgml | 7 +++---- doc/src/sgml/ref/psql-ref.sgml | 4 ++-- doc/src/sgml/ref/vacuumdb.sgml | 4 ++-- doc/src/sgml/runtime.sgml | 9 ++++----- src/include/libpq/pqcomm.h | 9 ++++----- 16 files changed, 42 insertions(+), 46 deletions(-) diff --git a/doc/src/sgml/libpq++.sgml b/doc/src/sgml/libpq++.sgml index a3b045e219..43cf4ad1d5 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.18 2000/11/13 15:18:07 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.19 2000/11/22 01:41:12 momjian Exp $ --> <chapter id="libpqplusplus"> @@ -80,8 +80,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.18 2000/11/13 15:18: <listitem> <para> <envar>PGHOST</envar> sets the default server name. - If a non-zero-length string is specified, TCP/IP communication is used. - Without a host name, libpq will connect using a local Unix domain socket. + If it begins with a slash, it is used + as the directory for the unix domain socket. </para> </listitem> <listitem> @@ -93,8 +93,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.18 2000/11/13 15:18: </listitem> <listitem> <para> - <envar>PGUNIXSOCKET</envar> sets the full Unix domain socket - file name for communicating with the <productname>Postgres</productname> + <envar>PGUNIXSOCKET</envar> sets the Unix domain socket + directory for communicating with the <productname>Postgres</productname> backend. </para> </listitem> diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index bb6dc844a1..12da7edcca 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.47 2000/11/14 01:53:37 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.48 2000/11/22 01:41:12 momjian Exp $ --> <chapter id="libpq-chapter"> @@ -90,7 +90,7 @@ PGconn *PQconnectdb(const char *conninfo) 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 path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> @@ -138,7 +138,7 @@ PGconn *PQconnectdb(const char *conninfo) <term><literal>unixsocket</literal></term> <listitem> <para> - Full path to Unix-domain socket file to connect to at the server host. + Directory for Unix-domain socket file. </para> </listitem> </varlistentry> @@ -567,7 +567,7 @@ char *PQport(const PGconn *conn) <listitem> <para> <function>PQunixsocket</function> - Returns the name of the Unix-domain socket of the connection. + Returns the directory of the Unix-domain socket of the connection. <synopsis> char *PQunixsocket(const PGconn *conn) </synopsis> @@ -1839,9 +1839,8 @@ application programs. <listitem> <para> <envar>PGHOST</envar> sets the default server name. -If it beings with a slash, it is used as the path to a unix domain +If it beings with a slash, it is used as the directory for the unix domain socket. -Without a host name, libpq will connect using a local Unix domain socket. </para> </listitem> <listitem> diff --git a/doc/src/sgml/ref/createdb.sgml b/doc/src/sgml/ref/createdb.sgml index eb5292cdc4..edb5221006 100644 --- a/doc/src/sgml/ref/createdb.sgml +++ b/doc/src/sgml/ref/createdb.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.14 2000/11/13 23:57:19 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.15 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -41,7 +41,7 @@ Postgres documentation Specifies the hostname of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/createlang.sgml b/doc/src/sgml/ref/createlang.sgml index 3e8242481f..03aa19d3e7 100644 --- a/doc/src/sgml/ref/createlang.sgml +++ b/doc/src/sgml/ref/createlang.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.13 2000/11/13 23:57:19 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.14 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -86,7 +86,7 @@ Postgres documentation Specifies the hostname of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/createuser.sgml b/doc/src/sgml/ref/createuser.sgml index 2a735900a5..ee76f73abf 100644 --- a/doc/src/sgml/ref/createuser.sgml +++ b/doc/src/sgml/ref/createuser.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.13 2000/11/13 23:57:19 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.14 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -40,7 +40,7 @@ Postgres documentation Specifies the hostname of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/dropdb.sgml b/doc/src/sgml/ref/dropdb.sgml index ab57c8c883..fba806e035 100644 --- a/doc/src/sgml/ref/dropdb.sgml +++ b/doc/src/sgml/ref/dropdb.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropdb.sgml,v 1.7 2000/11/13 23:57:19 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropdb.sgml,v 1.8 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -40,7 +40,7 @@ Postgres documentation Specifies the hostname of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/droplang.sgml b/doc/src/sgml/ref/droplang.sgml index 531d9859f7..41ba3ae042 100644 --- a/doc/src/sgml/ref/droplang.sgml +++ b/doc/src/sgml/ref/droplang.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/droplang.sgml,v 1.7 2000/11/13 23:57:19 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/droplang.sgml,v 1.8 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -86,7 +86,7 @@ Postgres documentation Specifies the hostname of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/dropuser.sgml b/doc/src/sgml/ref/dropuser.sgml index 7b2a2ee9d4..4f7d1fc3a8 100644 --- a/doc/src/sgml/ref/dropuser.sgml +++ b/doc/src/sgml/ref/dropuser.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropuser.sgml,v 1.8 2000/11/13 23:57:20 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropuser.sgml,v 1.9 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -40,7 +40,7 @@ Postgres documentation Specifies the hostname of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml index 452cdbf253..925e5c72cf 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.24 2000/11/21 15:39:09 pjw Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.25 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -323,7 +323,7 @@ pg_dump [ -h <replaceable class="parameter">host</replaceable> ] Specifies the hostname of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/pg_dumpall.sgml b/doc/src/sgml/ref/pg_dumpall.sgml index a75a0c5e1c..907dcbb3b2 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.14 2000/11/13 23:57:20 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.15 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -144,7 +144,7 @@ pg_dumpall [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replac Specifies the hostname of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml index 1af53a4738..8af8226d94 100644 --- a/doc/src/sgml/ref/pg_restore.sgml +++ b/doc/src/sgml/ref/pg_restore.sgml @@ -308,7 +308,7 @@ pg_restore [ <replaceable class="parameter">archive-file</replaceable> ] Specifies the hostname of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/postmaster.sgml b/doc/src/sgml/ref/postmaster.sgml index 0c9d1eb32c..beb6c0ee93 100644 --- a/doc/src/sgml/ref/postmaster.sgml +++ b/doc/src/sgml/ref/postmaster.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.15 2000/11/14 18:11:31 petere Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.16 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -188,13 +188,12 @@ Postgres documentation <term>-k <replaceable class="parameter">filename</replaceable></term> <listitem> <para> - Specifies the Unix domain socket file name on which the + Specifies the directory for 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> constructed from the port - number. + file in <filename>/tmp</filename>. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index 69075391d6..a90e98cd7b 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.43 2000/11/13 23:57:20 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.44 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -1323,7 +1323,7 @@ Access permissions for database "test" Specifies the host name of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/vacuumdb.sgml b/doc/src/sgml/ref/vacuumdb.sgml index 69e9888f56..438af3159c 100644 --- a/doc/src/sgml/ref/vacuumdb.sgml +++ b/doc/src/sgml/ref/vacuumdb.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.13 2000/11/13 23:57:20 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.14 2000/11/22 01:41:13 momjian Exp $ Postgres documentation --> @@ -120,7 +120,7 @@ Postgres documentation Specifies the hostname of the machine on which the <application>postmaster</application> is running. If host begins with a slash, it is used - as the path to a unix domain socket. + as the directory for the unix domain socket. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index 510c49a62f..ffe87c5367 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.37 2000/11/15 18:36:03 petere Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.38 2000/11/22 01:41:12 momjian Exp $ --> <Chapter Id="runtime"> @@ -1063,13 +1063,12 @@ env PGOPTIONS='-c geqo=off' psql <term>UNIXSOCKET (<type>string</type>)</term> <listitem> <para> - Specifies the Unix domain socket file name 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> constructed from the port - number. + <envar>PGUNIXSOCKET</envar> is not set, then defaults to + <filename>/tmp</filename>. </para> </listitem> </varlistentry> diff --git a/src/include/libpq/pqcomm.h b/src/include/libpq/pqcomm.h index b013014ef3..4d55d4a94b 100644 --- a/src/include/libpq/pqcomm.h +++ b/src/include/libpq/pqcomm.h @@ -9,7 +9,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pqcomm.h,v 1.45 2000/11/15 18:36:06 petere Exp $ + * $Id: pqcomm.h,v 1.46 2000/11/22 01:41:14 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -51,17 +51,16 @@ typedef union SockAddr /* Configure the UNIX socket address for the well known port. */ #if defined(SUN_LEN) -#define UNIXSOCK_PATH(sun,port,defpath) \ - ((defpath && defpath[0] != '\0') ? (strncpy((sun).sun_path, defpath, sizeof((sun).sun_path)), (sun).sun_path[sizeof((sun).sun_path)-1] = '\0') : sprintf((sun).sun_path, "/tmp/.s.PGSQL.%d", (port))) #define UNIXSOCK_LEN(sun) \ (SUN_LEN(&(sun))) #else -#define UNIXSOCK_PATH(sun,port,defpath) \ - ((defpath && defpath[0] != '\0') ? (strncpy((sun).sun_path, defpath, sizeof((sun).sun_path)), (sun).sun_path[sizeof((sun).sun_path)-1] = '\0') : sprintf((sun).sun_path, "/tmp/.s.PGSQL.%d", (port))) #define UNIXSOCK_LEN(sun) \ (strlen((sun).sun_path)+ offsetof(struct sockaddr_un, sun_path)) #endif +#define UNIXSOCK_PATH(sun,port,defpath) \ + (snprintf((sun).sun_path, UNIXSOCK_LEN(sun), "%s/.s.PGSQL.%d", (defpath && *(defpath) != '\0') ? (defpath) : "/tmp", (port))) + /* * We do this because sun_len is in BSD's struct, while others don't. * We never actually set BSD's sun_len, and I can't think of a