Re: Unix-domain socket support on Windows

Peter Eisentraut <peter.eisentraut@2ndquadrant.com>

From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2019-12-18T13:52:15Z
Lists: pgsql-hackers

Attachments

Next patch:  This allows building *with* Unix-domain socket support but 
*without* a default Unix socket path.  This is needed because on Windows 
we don't have a good default location like "/tmp" and we probably don't 
want Unix sockets by default at run time so that older Windows versions 
continue to work out of the box with the same binaries.

We have code paths for Unix socket support and no Unix socket support. 
Now add a third variant: Unix socket support but do not use a Unix 
socket by default in the client or the server, only if you explicitly
specify one.

To implement this, tweak things so that setting DEFAULT_PGSOCKET_DIR
to "" has the desired effect.  This mostly already worked like that;
only a few places needed to be adjusted.  Notably, the reference to
DEFAULT_PGSOCKET_DIR in UNIXSOCK_PATH() could be removed because all
callers already resolve an empty socket directory setting with a
default if appropriate.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Commits

  1. Allow using Unix-domain sockets on Windows in tests

  2. pg_regress: Observe TMPDIR

  3. Enable Unix-domain sockets support on Windows

  4. psql: Remove one use of HAVE_UNIX_SOCKETS

  5. Allow building without default socket directory

  6. Sort out getpeereid() and peer auth handling on Windows