Commit 98e195d2 authored by Bruce Momjian's avatar Bruce Momjian

Make socket option specify just the directory, not the full path.

parent 9bc6fb37
<!-- <!--
$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"> <chapter id="libpqplusplus">
...@@ -80,8 +80,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.18 2000/11/13 15:18: ...@@ -80,8 +80,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.18 2000/11/13 15:18:
<listitem> <listitem>
<para> <para>
<envar>PGHOST</envar> sets the default server name. <envar>PGHOST</envar> sets the default server name.
If a non-zero-length string is specified, TCP/IP communication is used. If it begins with a slash, it is used
Without a host name, libpq will connect using a local Unix domain socket. as the directory for the unix domain socket.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
...@@ -93,8 +93,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.18 2000/11/13 15:18: ...@@ -93,8 +93,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpq++.sgml,v 1.18 2000/11/13 15:18:
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
<envar>PGUNIXSOCKET</envar> sets the full Unix domain socket <envar>PGUNIXSOCKET</envar> sets the Unix domain socket
file name for communicating with the <productname>Postgres</productname> directory for communicating with the <productname>Postgres</productname>
backend. backend.
</para> </para>
</listitem> </listitem>
......
<!-- <!--
$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"> <chapter id="libpq-chapter">
...@@ -90,7 +90,7 @@ PGconn *PQconnectdb(const char *conninfo) ...@@ -90,7 +90,7 @@ PGconn *PQconnectdb(const char *conninfo)
Name of host to connect to. Name of host to connect to.
Using this parameter causes a hostname look-up. See hostaddr. Using this parameter causes a hostname look-up. See hostaddr.
If it begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
...@@ -138,7 +138,7 @@ PGconn *PQconnectdb(const char *conninfo) ...@@ -138,7 +138,7 @@ PGconn *PQconnectdb(const char *conninfo)
<term><literal>unixsocket</literal></term> <term><literal>unixsocket</literal></term>
<listitem> <listitem>
<para> <para>
Full path to Unix-domain socket file to connect to at the server host. Directory for Unix-domain socket file.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
...@@ -567,7 +567,7 @@ char *PQport(const PGconn *conn) ...@@ -567,7 +567,7 @@ char *PQport(const PGconn *conn)
<listitem> <listitem>
<para> <para>
<function>PQunixsocket</function> <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> <synopsis>
char *PQunixsocket(const PGconn *conn) char *PQunixsocket(const PGconn *conn)
</synopsis> </synopsis>
...@@ -1839,9 +1839,8 @@ application programs. ...@@ -1839,9 +1839,8 @@ application programs.
<listitem> <listitem>
<para> <para>
<envar>PGHOST</envar> sets the default server name. <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. socket.
Without a host name, libpq will connect using a local Unix domain socket.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -41,7 +41,7 @@ Postgres documentation ...@@ -41,7 +41,7 @@ Postgres documentation
Specifies the hostname of the machine on which the Specifies the hostname of the machine on which the
<application>postmaster</application> <application>postmaster</application>
is running. If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -86,7 +86,7 @@ Postgres documentation ...@@ -86,7 +86,7 @@ Postgres documentation
Specifies the hostname of the machine on which the Specifies the hostname of the machine on which the
<application>postmaster</application> <application>postmaster</application>
is running. If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -40,7 +40,7 @@ Postgres documentation ...@@ -40,7 +40,7 @@ Postgres documentation
Specifies the hostname of the machine on which the Specifies the hostname of the machine on which the
<application>postmaster</application> <application>postmaster</application>
is running. If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -40,7 +40,7 @@ Postgres documentation ...@@ -40,7 +40,7 @@ Postgres documentation
Specifies the hostname of the machine on which the Specifies the hostname of the machine on which the
<application>postmaster</application> <application>postmaster</application>
is running. If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -86,7 +86,7 @@ Postgres documentation ...@@ -86,7 +86,7 @@ Postgres documentation
Specifies the hostname of the machine on which the Specifies the hostname of the machine on which the
<application>postmaster</application> <application>postmaster</application>
is running. If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -40,7 +40,7 @@ Postgres documentation ...@@ -40,7 +40,7 @@ Postgres documentation
Specifies the hostname of the machine on which the Specifies the hostname of the machine on which the
<application>postmaster</application> <application>postmaster</application>
is running. If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -323,7 +323,7 @@ pg_dump [ -h <replaceable class="parameter">host</replaceable> ] ...@@ -323,7 +323,7 @@ pg_dump [ -h <replaceable class="parameter">host</replaceable> ]
Specifies the hostname of the machine on which the Specifies the hostname of the machine on which the
<application>postmaster</application> <application>postmaster</application>
is running. If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -144,7 +144,7 @@ pg_dumpall [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replac ...@@ -144,7 +144,7 @@ pg_dumpall [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replac
Specifies the hostname of the machine on which the Specifies the hostname of the machine on which the
<application>postmaster</application> <application>postmaster</application>
is running. If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
...@@ -308,7 +308,7 @@ pg_restore [ <replaceable class="parameter">archive-file</replaceable> ] ...@@ -308,7 +308,7 @@ pg_restore [ <replaceable class="parameter">archive-file</replaceable> ]
Specifies the hostname of the machine on which the Specifies the hostname of the machine on which the
<application>postmaster</application> <application>postmaster</application>
is running. If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -188,13 +188,12 @@ Postgres documentation ...@@ -188,13 +188,12 @@ Postgres documentation
<term>-k <replaceable class="parameter">filename</replaceable></term> <term>-k <replaceable class="parameter">filename</replaceable></term>
<listitem> <listitem>
<para> <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 <application>postmaster</application> is to listen for
connections from client applications. Defaults to the value connections from client applications. Defaults to the value
of the <envar>PGUNIXSOCKET</envar> environment variable, or if of the <envar>PGUNIXSOCKET</envar> environment variable, or if
<envar>PGUNIXSOCKET</envar> is not set, then defaults to a <envar>PGUNIXSOCKET</envar> is not set, then defaults to a
file in <filename>/tmp</filename> constructed from the port file in <filename>/tmp</filename>.
number.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -1323,7 +1323,7 @@ Access permissions for database "test" ...@@ -1323,7 +1323,7 @@ Access permissions for database "test"
Specifies the host name of the machine on which the Specifies the host name of the machine on which the
<application>postmaster</application> is running. <application>postmaster</application> is running.
If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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 Postgres documentation
--> -->
...@@ -120,7 +120,7 @@ Postgres documentation ...@@ -120,7 +120,7 @@ Postgres documentation
Specifies the hostname of the machine on which the Specifies the hostname of the machine on which the
<application>postmaster</application> <application>postmaster</application>
is running. If host begins with a slash, it is used 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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- <!--
$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"> <Chapter Id="runtime">
...@@ -1063,13 +1063,12 @@ env PGOPTIONS='-c geqo=off' psql ...@@ -1063,13 +1063,12 @@ env PGOPTIONS='-c geqo=off' psql
<term>UNIXSOCKET (<type>string</type>)</term> <term>UNIXSOCKET (<type>string</type>)</term>
<listitem> <listitem>
<para> <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 <application>postmaster</application> is to listen for
connections from client applications. Defaults to the value connections from client applications. Defaults to the value
of the <envar>PGUNIXSOCKET</envar> environment variable, or if of the <envar>PGUNIXSOCKET</envar> environment variable, or if
<envar>PGUNIXSOCKET</envar> is not set, then defaults to a <envar>PGUNIXSOCKET</envar> is not set, then defaults to
file in <filename>/tmp</filename> constructed from the port <filename>/tmp</filename>.
number.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California * 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 ...@@ -51,17 +51,16 @@ typedef union SockAddr
/* Configure the UNIX socket address for the well known port. */ /* Configure the UNIX socket address for the well known port. */
#if defined(SUN_LEN) #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) \ #define UNIXSOCK_LEN(sun) \
(SUN_LEN(&(sun))) (SUN_LEN(&(sun)))
#else #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) \ #define UNIXSOCK_LEN(sun) \
(strlen((sun).sun_path)+ offsetof(struct sockaddr_un, sun_path)) (strlen((sun).sun_path)+ offsetof(struct sockaddr_un, sun_path))
#endif #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 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 * We never actually set BSD's sun_len, and I can't think of a
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment