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);