From 58f402851804ad85f6b74d0d47b5c6ee5e636246 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 19 Jan 2001 23:43:36 +0000 Subject: [PATCH] From Jason Tishler * doc/FAQ_MSWIN: Update to be consistent with software -- mainly change comment from lack of Cygwin UNIX domain socket support and to list of current Cygwin UNIX domain socket issues. * src/include/config.h.in: Enable UNIX domain sockets for Cygwin. * src/include/port/win.h: Disable UNIX domain sockets for Cygwin b20.1. * src/test/regress/pg_regress.sh: Use UNIX domain sockets for Cygwin instead of TCP/IP. --- doc/FAQ_MSWIN | 21 ++++++++++++--------- src/include/config.h.in | 4 ++-- src/include/port/win.h | 7 +++++++ src/test/regress/pg_regress.sh | 6 +++--- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/doc/FAQ_MSWIN b/doc/FAQ_MSWIN index eed29ff6a5..25b8fe51f0 100644 --- a/doc/FAQ_MSWIN +++ b/doc/FAQ_MSWIN @@ -1,19 +1,19 @@ How do I installing PostgreSQL on Windows NT or Windows 2000? ============================================================= -$Date: 2000/10/18 21:14:56 $ +$Date: 2001/01/19 23:43:35 $ 1. Install the Cygwin package. The Cygwin package provides a UNIX-like API on top of the Win32 API. It is available at . - The 1.1.x series is recommended (1.1.4 was the latest at the time + The 1.1.x series is recommended (1.1.7 was the latest at the time of this writing); using 1.0 or B20 might require extra efforts. For B20 you also need to download the separate crypt library at the same location. 2. Install the cygipc package, available at - . Do not use versions - prior to 1.04, they will not work. + . + Do not use versions prior to 1.04, they will not work. 3. Optional: The "Andy Piper Tools" at are a collection of pre-compiled libraries and utilities that you @@ -29,10 +29,13 @@ $Date: 2000/10/18 21:14:56 $ 6. Proceed according to the INSTALL file. (./configure; make; etc.) -NOTE: By default, PostgreSQL clients like psql communicate using Unix -domain sockets, which do not work on Windows. Start the postmaster -with -i, and when connecting to the database from a client, set the -PGHOST environment variable to `localhost' or supply the hostname on -the command line. +NOTE: There are two issues with Cygwin's current UNIX domain socket +support: + +1. psql (and other clients) will hang if postmaster is not running and + the socket file (e.g., /tmp/.s.PGSQL.5432) exists. + +2. Cygwin's AF_UNIX sockets are really implemented as AF_INET sockets + so they are inherently insecure. Problem reports can be sent to . diff --git a/src/include/config.h.in b/src/include/config.h.in index debd934672..1367a5ab4b 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.155 2001/01/09 18:40:15 petere Exp $ + * $Id: config.h.in,v 1.156 2001/01/19 23:43:35 petere Exp $ */ #ifndef CONFIG_H @@ -228,7 +228,7 @@ /* * Define this if your operating system supports AF_UNIX family sockets. */ -#if !defined(__CYGWIN__) && !defined(__QNX__) && !defined(__BEOS__) +#if !defined(__QNX__) && !defined(__BEOS__) # define HAVE_UNIX_SOCKETS 1 #endif diff --git a/src/include/port/win.h b/src/include/port/win.h index 91b1b1e6d6..ff02db1b5b 100644 --- a/src/include/port/win.h +++ b/src/include/port/win.h @@ -9,3 +9,10 @@ typedef unsigned char slock_t; #define HAVE_INT_TIMEZONE /* has int _timezone */ #include + +/* + * Check for b20.1 and disable AF_UNIX family socket support. + */ +#if CYGWIN_VERSION_DLL_MAJOR < 1001 +# undef HAVE_UNIX_SOCKETS +#endif diff --git a/src/test/regress/pg_regress.sh b/src/test/regress/pg_regress.sh index 3cef454a27..c80239eb62 100644 --- a/src/test/regress/pg_regress.sh +++ b/src/test/regress/pg_regress.sh @@ -1,5 +1,5 @@ #! /bin/sh -# $Header: /cvsroot/pgsql/src/test/regress/Attic/pg_regress.sh,v 1.17 2001/01/13 03:25:48 petere Exp $ +# $Header: /cvsroot/pgsql/src/test/regress/Attic/pg_regress.sh,v 1.18 2001/01/19 23:43:36 petere Exp $ me=`basename $0` : ${TMPDIR=/tmp} @@ -156,11 +156,11 @@ done # ---------- -# When on Windows, QNX or BeOS, don't use Unix sockets. +# When on QNX or BeOS, don't use Unix sockets. # ---------- case $host_platform in - *-*-cygwin* | *-*-qnx* | *beos*) + *-*-qnx* | *beos*) unix_sockets=no;; *) unix_sockets=yes;;