From 73d0514deab2d271f6281c9d4d8e526fee643b16 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 30 Nov 2000 23:19:04 +0000 Subject: [PATCH] Make default socket directory location configurable from config.h. If we're going to let it be run-time configurable, might as well allow this too... --- src/include/config.h.in | 12 +++++++++++- src/include/libpq/pqcomm.h | 24 +++++++++++++----------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/include/config.h.in b/src/include/config.h.in index 13745c07f3..ed98a5ea70 100644 --- a/src/include/config.h.in +++ b/src/include/config.h.in @@ -8,7 +8,7 @@ * or in config.h afterwards. Of course, if you edit config.h, then your * changes will be overwritten the next time you run configure. * - * $Id: config.h.in,v 1.151 2000/11/30 08:46:25 vadim Exp $ + * $Id: config.h.in,v 1.152 2000/11/30 23:19:04 tgl Exp $ */ #ifndef CONFIG_H @@ -234,6 +234,16 @@ # define HAVE_UNIX_SOCKETS 1 #endif +/* + * This is the default directory in which AF_UNIX socket files are placed. + * Caution: changing this risks breaking your existing client applications, + * which are likely to continue to look in the old directory. But if you + * just hate the idea of sockets in /tmp, here's where to twiddle it. + * You can also override this at runtime with the postmaster's -k switch. + */ +#define DEFAULT_PGSOCKET_DIR "/tmp" + + /* *------------------------------------------------------------------------ * These hand-configurable symbols are for enabling debugging code, diff --git a/src/include/libpq/pqcomm.h b/src/include/libpq/pqcomm.h index 90caf8ff5c..c4f607234e 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.51 2000/11/25 22:34:14 momjian Exp $ + * $Id: pqcomm.h,v 1.52 2000/11/30 23:19:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -48,24 +48,26 @@ typedef union SockAddr } SockAddr; -/* Configure the UNIX socket address for the well known port. */ - -#if defined(SUN_LEN) -#define UNIXSOCK_LEN(sun) \ - (SUN_LEN(&(sun))) -#else -#define UNIXSOCK_LEN(sun) \ - (strlen((sun).sun_path)+ offsetof(struct sockaddr_un, sun_path)) -#endif +/* Configure the UNIX socket location for the well known port. */ #define UNIXSOCK_PATH(sun,port,defpath) \ - (sprintf((sun).sun_path, "%s/.s.PGSQL.%d", ((defpath) && *(defpath) != '\0') ? (defpath) : "/tmp", (port))) + sprintf((sun).sun_path, "%s/.s.PGSQL.%d", \ + ((defpath) && *(defpath) != '\0') ? (defpath) : \ + DEFAULT_PGSOCKET_DIR, \ + (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 * platform-safe way of doing it, but the code still works. bjm */ +#if defined(SUN_LEN) +#define UNIXSOCK_LEN(sun) \ + (SUN_LEN(&(sun))) +#else +#define UNIXSOCK_LEN(sun) \ + (strlen((sun).sun_path) + offsetof(struct sockaddr_un, sun_path)) +#endif /* * These manipulate the frontend/backend protocol version number.