postgres.git / summary / log / commit / refs
commit 7bb78b2acacb0acf0858430b267d41613f8a8dd3
Author: Noah Misch <noah@leadboat.com>
Date: Thu Dec 25 18:52:03 2014 +0000
First released in: 9.5.0, 9.0.19, 9.1.15, 9.2.10, 9.3.6, 9.4.1
Have config_sspi_auth() permit IPv6 localhost connections.
Windows versions later than Windows Server 2003 map "localhost" to ::1.
Account for that in the generated pg_hba.conf, fixing another oversight
in commit f6dc6dd5ba54d52c0733aaafc50da2fbaeabb8b0. Back-patch to 9.0,
like that commit.
David Rowley and Noah Misch
src/test/regress/pg_regress.c | 26 ++++++++++++++++++++++++++
src/tools/msvc/Mkvcbuild.pm | 4 ++++
2 files changed, 30 insertions(+)
diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index 0b3f645579c..ff124ba0097 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -1039,6 +1039,7 @@ config_sspi_auth(const char *pgdata)
*domainname;
char username[128];
DWORD sz = sizeof(username) - 1;
+ bool have_ipv6;
char fname[MAXPGPATH];
int res;
FILE *hba,
@@ -1058,6 +1059,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 { \
@@ -1089,6 +1112,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 5e5b9022695..973ed824dba 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -307,6 +307,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->AddReference($libpgport);
my $isolation_tester =
@@ -332,6 +333,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->AddReference($libpgport);
# src/bin
@@ -561,6 +563,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->AddReference($libpgport);
$solution->Save();
[parent: 5c8665892035]