0001-Remove-configure-probe-for-IPv6.patch
text/x-patch
Filename: 0001-Remove-configure-probe-for-IPv6.patch
Type: text/x-patch
Part: 0
Patch
Format: format-patch
Series: patch 0001
Subject: Remove configure probe for IPv6.
| File | + | − |
|---|---|---|
| configure | 0 | 10 |
| configure.ac | 0 | 6 |
| doc/src/sgml/client-auth.sgml | 0 | 2 |
| src/backend/libpq/auth.c | 0 | 21 |
| src/backend/libpq/hba.c | 0 | 5 |
| src/backend/libpq/ifaddr.c | 1 | 28 |
| src/backend/libpq/pqcomm.c | 0 | 2 |
| src/backend/utils/adt/network.c | 0 | 10 |
| src/backend/utils/adt/pgstatfuncs.c | 2 | 9 |
| src/bin/initdb/initdb.c | 0 | 10 |
| src/include/pg_config.h.in | 0 | 3 |
| src/interfaces/libpq/fe-connect.c | 0 | 2 |
| src/tools/ifaddrs/test_ifaddrs.c | 0 | 2 |
| src/tools/msvc/Solution.pm | 0 | 1 |
From cd6ba7f0b275a5c2840ee93849a54b94e40a6450 Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@gmail.com>
Date: Mon, 15 Aug 2022 14:47:58 +1200
Subject: [PATCH 1/6] Remove configure probe for IPv6.
SUSv3 requires <netinet/in.h> to define struct sockaddr_in6, and all
targeted Unix systems have it. Windows has it in ws2ipdef.h. Remove
the configure probe, the macro and a small amount of dead code. Also
remove a mention of IPv6-less builds from the documentation, since there
aren't any.
---
configure | 10 ----------
configure.ac | 6 ------
doc/src/sgml/client-auth.sgml | 2 --
src/backend/libpq/auth.c | 21 ---------------------
src/backend/libpq/hba.c | 5 -----
src/backend/libpq/ifaddr.c | 29 +----------------------------
src/backend/libpq/pqcomm.c | 2 --
src/backend/utils/adt/network.c | 10 ----------
src/backend/utils/adt/pgstatfuncs.c | 11 ++---------
src/bin/initdb/initdb.c | 10 ----------
src/include/pg_config.h.in | 3 ---
src/interfaces/libpq/fe-connect.c | 2 --
src/tools/ifaddrs/test_ifaddrs.c | 2 --
src/tools/msvc/Solution.pm | 1 -
14 files changed, 3 insertions(+), 111 deletions(-)
diff --git a/configure b/configure
index 176e0f9b00..8178f290a9 100755
--- a/configure
+++ b/configure
@@ -16279,16 +16279,6 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
-ac_fn_c_check_type "$LINENO" "struct sockaddr_in6" "ac_cv_type_struct_sockaddr_in6" "$ac_includes_default
-#include <netinet/in.h>
-"
-if test "x$ac_cv_type_struct_sockaddr_in6" = xyes; then :
-
-$as_echo "#define HAVE_IPV6 1" >>confdefs.h
-
-fi
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PS_STRINGS" >&5
$as_echo_n "checking for PS_STRINGS... " >&6; }
if ${pgac_cv_var_PS_STRINGS+:} false; then :
diff --git a/configure.ac b/configure.ac
index eed7019c4a..ee45d856c7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1804,12 +1804,6 @@ AC_CHECK_DECLS([pwritev], [], [AC_LIBOBJ(pwritev)], [#include <sys/uio.h>])
# This is probably only present on macOS, but may as well check always
AC_CHECK_DECLS(F_FULLFSYNC, [], [], [#include <fcntl.h>])
-AC_CHECK_TYPE([struct sockaddr_in6],
- [AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if you have support for IPv6.])],
- [],
-[$ac_includes_default
-#include <netinet/in.h>])
-
AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS],
[AC_LINK_IFELSE([AC_LANG_PROGRAM(
[#include <machine/vmparam.h>
diff --git a/doc/src/sgml/client-auth.sgml b/doc/src/sgml/client-auth.sgml
index 433759928b..c6f1b70fd3 100644
--- a/doc/src/sgml/client-auth.sgml
+++ b/doc/src/sgml/client-auth.sgml
@@ -305,8 +305,6 @@ hostnogssenc <replaceable>database</replaceable> <replaceable>user</replaceabl
An entry given in IPv4 format will match only IPv4 connections,
and an entry given in IPv6 format will match only IPv6 connections,
even if the represented address is in the IPv4-in-IPv6 range.
- Note that entries in IPv6 format will be rejected if the system's
- C library does not have support for IPv6 addresses.
</para>
<para>
diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c
index 290eb17325..7760d714a0 100644
--- a/src/backend/libpq/auth.c
+++ b/src/backend/libpq/auth.c
@@ -3014,13 +3014,8 @@ PerformRadiusTransaction(const char *server, const char *secret, const char *por
int packetlength;
pgsocket sock;
-#ifdef HAVE_IPV6
struct sockaddr_in6 localaddr;
struct sockaddr_in6 remoteaddr;
-#else
- struct sockaddr_in localaddr;
- struct sockaddr_in remoteaddr;
-#endif
struct addrinfo hint;
struct addrinfo *serveraddrs;
int port;
@@ -3130,18 +3125,12 @@ PerformRadiusTransaction(const char *server, const char *secret, const char *por
}
memset(&localaddr, 0, sizeof(localaddr));
-#ifdef HAVE_IPV6
localaddr.sin6_family = serveraddrs[0].ai_family;
localaddr.sin6_addr = in6addr_any;
if (localaddr.sin6_family == AF_INET6)
addrsize = sizeof(struct sockaddr_in6);
else
addrsize = sizeof(struct sockaddr_in);
-#else
- localaddr.sin_family = serveraddrs[0].ai_family;
- localaddr.sin_addr.s_addr = INADDR_ANY;
- addrsize = sizeof(struct sockaddr_in);
-#endif
if (bind(sock, (struct sockaddr *) &localaddr, addrsize))
{
@@ -3244,21 +3233,11 @@ PerformRadiusTransaction(const char *server, const char *secret, const char *por
return STATUS_ERROR;
}
-#ifdef HAVE_IPV6
if (remoteaddr.sin6_port != pg_hton16(port))
-#else
- if (remoteaddr.sin_port != pg_hton16(port))
-#endif
{
-#ifdef HAVE_IPV6
ereport(LOG,
(errmsg("RADIUS response from %s was sent from incorrect port: %d",
server, pg_ntoh16(remoteaddr.sin6_port))));
-#else
- ereport(LOG,
- (errmsg("RADIUS response from %s was sent from incorrect port: %d",
- server, pg_ntoh16(remoteaddr.sin_port))));
-#endif
continue;
}
diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c
index 857b9e5eb2..3be94244f5 100644
--- a/src/backend/libpq/hba.c
+++ b/src/backend/libpq/hba.c
@@ -645,8 +645,6 @@ ipv4eq(struct sockaddr_in *a, struct sockaddr_in *b)
return (a->sin_addr.s_addr == b->sin_addr.s_addr);
}
-#ifdef HAVE_IPV6
-
static bool
ipv6eq(struct sockaddr_in6 *a, struct sockaddr_in6 *b)
{
@@ -658,7 +656,6 @@ ipv6eq(struct sockaddr_in6 *a, struct sockaddr_in6 *b)
return true;
}
-#endif /* HAVE_IPV6 */
/*
* Check whether host name matches pattern.
@@ -747,7 +744,6 @@ check_hostname(hbaPort *port, const char *hostname)
break;
}
}
-#ifdef HAVE_IPV6
else if (gai->ai_addr->sa_family == AF_INET6)
{
if (ipv6eq((struct sockaddr_in6 *) gai->ai_addr,
@@ -757,7 +753,6 @@ check_hostname(hbaPort *port, const char *hostname)
break;
}
}
-#endif
}
}
diff --git a/src/backend/libpq/ifaddr.c b/src/backend/libpq/ifaddr.c
index 5494c9b303..cb1645bc57 100644
--- a/src/backend/libpq/ifaddr.c
+++ b/src/backend/libpq/ifaddr.c
@@ -36,11 +36,9 @@ static int range_sockaddr_AF_INET(const struct sockaddr_in *addr,
const struct sockaddr_in *netaddr,
const struct sockaddr_in *netmask);
-#ifdef HAVE_IPV6
static int range_sockaddr_AF_INET6(const struct sockaddr_in6 *addr,
const struct sockaddr_in6 *netaddr,
const struct sockaddr_in6 *netmask);
-#endif
/*
@@ -58,12 +56,10 @@ pg_range_sockaddr(const struct sockaddr_storage *addr,
return range_sockaddr_AF_INET((const struct sockaddr_in *) addr,
(const struct sockaddr_in *) netaddr,
(const struct sockaddr_in *) netmask);
-#ifdef HAVE_IPV6
else if (addr->ss_family == AF_INET6)
return range_sockaddr_AF_INET6((const struct sockaddr_in6 *) addr,
(const struct sockaddr_in6 *) netaddr,
(const struct sockaddr_in6 *) netmask);
-#endif
else
return 0;
}
@@ -80,9 +76,6 @@ range_sockaddr_AF_INET(const struct sockaddr_in *addr,
return 0;
}
-
-#ifdef HAVE_IPV6
-
static int
range_sockaddr_AF_INET6(const struct sockaddr_in6 *addr,
const struct sockaddr_in6 *netaddr,
@@ -99,7 +92,6 @@ range_sockaddr_AF_INET6(const struct sockaddr_in6 *addr,
return 1;
}
-#endif /* HAVE_IPV6 */
/*
* pg_sockaddr_cidr_mask - make a network mask of the appropriate family
@@ -149,7 +141,6 @@ pg_sockaddr_cidr_mask(struct sockaddr_storage *mask, char *numbits, int family)
break;
}
-#ifdef HAVE_IPV6
case AF_INET6:
{
struct sockaddr_in6 mask6;
@@ -174,7 +165,7 @@ pg_sockaddr_cidr_mask(struct sockaddr_storage *mask, char *numbits, int family)
memcpy(mask, &mask6, sizeof(mask6));
break;
}
-#endif
+
default:
return -1;
}
@@ -209,13 +200,11 @@ run_ifaddr_callback(PgIfAddrCallback callback, void *cb_data,
if (((struct sockaddr_in *) mask)->sin_addr.s_addr == INADDR_ANY)
mask = NULL;
}
-#ifdef HAVE_IPV6
else if (mask->sa_family == AF_INET6)
{
if (IN6_IS_ADDR_UNSPECIFIED(&((struct sockaddr_in6 *) mask)->sin6_addr))
mask = NULL;
}
-#endif
}
/* If mask is invalid, generate our own fully-set mask */
@@ -358,10 +347,7 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
size_t n_buffer = 1024;
pgsocket sock,
fd;
-
-#ifdef HAVE_IPV6
pgsocket sock6;
-#endif
int i,
total;
@@ -404,7 +390,6 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
break;
}
-#ifdef HAVE_IPV6
/* We'll need an IPv6 socket too for the SIOCGLIFNETMASK ioctls */
sock6 = socket(AF_INET6, SOCK_DGRAM, 0);
if (sock6 == PGINVALID_SOCKET)
@@ -413,7 +398,6 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
close(sock);
return -1;
}
-#endif
total = lifc.lifc_len / sizeof(struct lifreq);
lifr = lifc.lifc_req;
@@ -421,11 +405,7 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
{
addr = (struct sockaddr *) &lifr[i].lifr_addr;
memcpy(&lmask, &lifr[i], sizeof(struct lifreq));
-#ifdef HAVE_IPV6
fd = (addr->sa_family == AF_INET6) ? sock6 : sock;
-#else
- fd = sock;
-#endif
if (ioctl(fd, SIOCGLIFNETMASK, &lmask) < 0)
mask = NULL;
else
@@ -435,9 +415,7 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
free(buffer);
close(sock);
-#ifdef HAVE_IPV6
close(sock6);
-#endif
return 0;
}
#elif defined(SIOCGIFCONF)
@@ -554,10 +532,7 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
{
struct sockaddr_in addr;
struct sockaddr_storage mask;
-
-#ifdef HAVE_IPV6
struct sockaddr_in6 addr6;
-#endif
/* addr 127.0.0.1/8 */
memset(&addr, 0, sizeof(addr));
@@ -569,7 +544,6 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
(struct sockaddr *) &addr,
(struct sockaddr *) &mask);
-#ifdef HAVE_IPV6
/* addr ::1/128 */
memset(&addr6, 0, sizeof(addr6));
addr6.sin6_family = AF_INET6;
@@ -579,7 +553,6 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
run_ifaddr_callback(callback, cb_data,
(struct sockaddr *) &addr6,
(struct sockaddr *) &mask);
-#endif
return 0;
}
diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index 3ec4328613..f7ba2fc5f5 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -415,11 +415,9 @@ StreamServerPort(int family, const char *hostName, unsigned short portNumber,
case AF_INET:
familyDesc = _("IPv4");
break;
-#ifdef HAVE_IPV6
case AF_INET6:
familyDesc = _("IPv6");
break;
-#endif
case AF_UNIX:
familyDesc = _("Unix");
break;
diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c
index ea1c7390d0..6d580ea78f 100644
--- a/src/backend/utils/adt/network.c
+++ b/src/backend/utils/adt/network.c
@@ -1725,9 +1725,7 @@ inet_client_addr(PG_FUNCTION_ARGS)
switch (port->raddr.addr.ss_family)
{
case AF_INET:
-#ifdef HAVE_IPV6
case AF_INET6:
-#endif
break;
default:
PG_RETURN_NULL();
@@ -1764,9 +1762,7 @@ inet_client_port(PG_FUNCTION_ARGS)
switch (port->raddr.addr.ss_family)
{
case AF_INET:
-#ifdef HAVE_IPV6
case AF_INET6:
-#endif
break;
default:
PG_RETURN_NULL();
@@ -1801,9 +1797,7 @@ inet_server_addr(PG_FUNCTION_ARGS)
switch (port->laddr.addr.ss_family)
{
case AF_INET:
-#ifdef HAVE_IPV6
case AF_INET6:
-#endif
break;
default:
PG_RETURN_NULL();
@@ -1840,9 +1834,7 @@ inet_server_port(PG_FUNCTION_ARGS)
switch (port->laddr.addr.ss_family)
{
case AF_INET:
-#ifdef HAVE_IPV6
case AF_INET6:
-#endif
break;
default:
PG_RETURN_NULL();
@@ -2102,7 +2094,6 @@ inetmi(PG_FUNCTION_ARGS)
void
clean_ipv6_addr(int addr_family, char *addr)
{
-#ifdef HAVE_IPV6
if (addr_family == AF_INET6)
{
char *pct = strchr(addr, '%');
@@ -2110,5 +2101,4 @@ clean_ipv6_addr(int addr_family, char *addr)
if (pct)
*pct = '\0';
}
-#endif
}
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index d9e2a79382..4cca30aae7 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -735,11 +735,8 @@ pg_stat_get_activity(PG_FUNCTION_ARGS)
}
else
{
- if (beentry->st_clientaddr.addr.ss_family == AF_INET
-#ifdef HAVE_IPV6
- || beentry->st_clientaddr.addr.ss_family == AF_INET6
-#endif
- )
+ if (beentry->st_clientaddr.addr.ss_family == AF_INET ||
+ beentry->st_clientaddr.addr.ss_family == AF_INET6)
{
char remote_host[NI_MAXHOST];
char remote_port[NI_MAXSERV];
@@ -1105,9 +1102,7 @@ pg_stat_get_backend_client_addr(PG_FUNCTION_ARGS)
switch (beentry->st_clientaddr.addr.ss_family)
{
case AF_INET:
-#ifdef HAVE_IPV6
case AF_INET6:
-#endif
break;
default:
PG_RETURN_NULL();
@@ -1152,9 +1147,7 @@ pg_stat_get_backend_client_port(PG_FUNCTION_ARGS)
switch (beentry->st_clientaddr.addr.ss_family)
{
case AF_INET:
-#ifdef HAVE_IPV6
case AF_INET6:
-#endif
break;
case AF_UNIX:
PG_RETURN_INT32(-1);
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index a779153c74..29c28b7315 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -1176,7 +1176,6 @@ setup_config(void)
conflines = replace_token(conflines, "@remove-line-for-nolocal@", "");
-#ifdef HAVE_IPV6
/*
* Probe to see if there is really any platform support for IPv6, and
@@ -1218,15 +1217,6 @@ setup_config(void)
"#host replication all ::1");
}
}
-#else /* !HAVE_IPV6 */
- /* If we didn't compile IPV6 support at all, always comment it out */
- conflines = replace_token(conflines,
- "host all all ::1",
- "#host all all ::1");
- conflines = replace_token(conflines,
- "host replication all ::1",
- "#host replication all ::1");
-#endif /* HAVE_IPV6 */
/* Replace default authentication methods */
conflines = replace_token(conflines,
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 3087883401..2bc962ca2f 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -241,9 +241,6 @@
/* Define to 1 if you have the global variable 'int timezone'. */
#undef HAVE_INT_TIMEZONE
-/* Define to 1 if you have support for IPv6. */
-#undef HAVE_IPV6
-
/* Define to 1 if __builtin_constant_p(x) implies "i"(x) acceptance. */
#undef HAVE_I_CONSTRAINT__BUILTIN_CONSTANT_P
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 1e057db336..0dcce48888 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -1656,7 +1656,6 @@ getHostaddr(PGconn *conn, char *host_addr, int host_addr_len)
host_addr, host_addr_len) == NULL)
host_addr[0] = '\0';
}
-#ifdef HAVE_IPV6
else if (addr->ss_family == AF_INET6)
{
if (pg_inet_net_ntop(AF_INET6,
@@ -1665,7 +1664,6 @@ getHostaddr(PGconn *conn, char *host_addr, int host_addr_len)
host_addr, host_addr_len) == NULL)
host_addr[0] = '\0';
}
-#endif
else
host_addr[0] = '\0';
}
diff --git a/src/tools/ifaddrs/test_ifaddrs.c b/src/tools/ifaddrs/test_ifaddrs.c
index b8dbb84945..b9a1b7b5e8 100644
--- a/src/tools/ifaddrs/test_ifaddrs.c
+++ b/src/tools/ifaddrs/test_ifaddrs.c
@@ -26,11 +26,9 @@ print_addr(struct sockaddr *addr)
case AF_INET:
len = sizeof(struct sockaddr_in);
break;
-#ifdef HAVE_IPV6
case AF_INET6:
len = sizeof(struct sockaddr_in6);
break;
-#endif
default:
len = sizeof(struct sockaddr_storage);
break;
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 92722a1271..2c4b888266 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -277,7 +277,6 @@ sub GenerateFiles
HAVE_INTTYPES_H => undef,
HAVE_INT_OPTERR => undef,
HAVE_INT_OPTRESET => undef,
- HAVE_IPV6 => 1,
HAVE_I_CONSTRAINT__BUILTIN_CONSTANT_P => undef,
HAVE_KQUEUE => undef,
HAVE_LANGINFO_H => undef,
--
2.35.1