On Thu, Dec 25, 2014 at 03:55:02PM +1300, David Rowley wrote:
> f6dc6dd seems to have broken vcregress check for me:

> FATAL:  no pg_hba.conf entry for host "::1", user "David", database
> "postgres"
> ...
> FATAL:  no pg_hba.conf entry for host "::1", user "David", database
> "postgres"

Thanks.  I bet this is the reason buildfarm members hamerkop, jacana and
bowerbird have not been reporting in.

> @@ -1085,6 +1085,8 @@ config_sspi_auth(const char *pgdata)
>       CW(fputs("# Configuration written by config_sspi_auth()\n", hba) >= 0);
>       CW(fputs("host all all 127.0.0.1/32  sspi include_realm=1 
> map=regress\n",
>                        hba) >= 0);
> +     CW(fputs("host all all ::1/128  sspi include_realm=1 map=regress\n",
> +                      hba) >= 0);

This needs to be conditional on whether the platform supports IPv6, like we do
in setup_config().  The attached patch works on these configurations:

64-bit Windows Server 2003, 32-bit VS2010
64-bit Windows Server 2003, MinGW (always 32-bit)
64-bit Windows Server 2008, 64-bit VS2012
64-bit Windows Server 2008, 64-bit MinGW-w64

If the patch looks reasonable, I will commit it.
diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index cb092f9..e8c644b 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -1035,6 +1035,7 @@ config_sspi_auth(const char *pgdata)
                           *domainname;
        const char *username;
        char       *errstr;
+       bool            have_ipv6;
        char            fname[MAXPGPATH];
        int                     res;
        FILE       *hba,
@@ -1054,6 +1055,28 @@ config_sspi_auth(const char *pgdata)
                exit(2);
        }
 
+       /*
+        * Like initdb.c:setup_config(), determine whether the platform 
recognizes
+        * ::1 (IPv6 loopback) as a numeric host address string.
+        */
+       {
+               struct addrinfo *gai_result;
+               struct addrinfo hints;
+               WSADATA         wsaData;
+
+               hints.ai_flags = AI_NUMERICHOST;
+               hints.ai_family = AF_UNSPEC;
+               hints.ai_socktype = 0;
+               hints.ai_protocol = 0;
+               hints.ai_addrlen = 0;
+               hints.ai_canonname = NULL;
+               hints.ai_addr = NULL;
+               hints.ai_next = NULL;
+
+               have_ipv6 = (WSAStartup(MAKEWORD(2, 2), &wsaData) == 0 &&
+                                        getaddrinfo("::1", NULL, &hints, 
&gai_result) == 0);
+       }
+
        /* Check a Write outcome and report any error. */
 #define CW(cond)       \
        do { \
@@ -1085,6 +1108,9 @@ config_sspi_auth(const char *pgdata)
        CW(fputs("# Configuration written by config_sspi_auth()\n", hba) >= 0);
        CW(fputs("host all all 127.0.0.1/32  sspi include_realm=1 
map=regress\n",
                         hba) >= 0);
+       if (have_ipv6)
+               CW(fputs("host all all ::1/128  sspi include_realm=1 
map=regress\n",
+                                hba) >= 0);
        CW(fclose(hba) == 0);
 
        snprintf(fname, sizeof(fname), "%s/pg_ident.conf", pgdata);
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 004942c..4506739 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -345,6 +345,7 @@ sub mkvcbuild
        $pgregress_ecpg->AddIncludeDir('src\test\regress');
        $pgregress_ecpg->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
        $pgregress_ecpg->AddDefine('FRONTEND');
+       $pgregress_ecpg->AddLibrary('ws2_32.lib');
        $pgregress_ecpg->AddDirResourceFile('src\interfaces\ecpg\test');
        $pgregress_ecpg->AddReference($libpgcommon, $libpgport);
 
@@ -372,6 +373,7 @@ sub mkvcbuild
        $pgregress_isolation->AddIncludeDir('src\test\regress');
        $pgregress_isolation->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
        $pgregress_isolation->AddDefine('FRONTEND');
+       $pgregress_isolation->AddLibrary('ws2_32.lib');
        $pgregress_isolation->AddDirResourceFile('src\test\isolation');
        $pgregress_isolation->AddReference($libpgcommon, $libpgport);
 
@@ -605,6 +607,8 @@ sub mkvcbuild
        $pgregress->AddFile('src\test\regress\pg_regress_main.c');
        $pgregress->AddIncludeDir('src\port');
        $pgregress->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
+       $pgregress->AddDefine('FRONTEND');
+       $pgregress->AddLibrary('ws2_32.lib');
        $pgregress->AddDirResourceFile('src\test\regress');
        $pgregress->AddReference($libpgcommon, $libpgport);
 
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to