diff options
author | Thomas Munro | 2022-08-25 22:13:22 +0000 |
---|---|---|
committer | Thomas Munro | 2022-08-25 22:18:30 +0000 |
commit | bcc8b14ef630b2ad9aae7813981fb248fbff9ed8 (patch) | |
tree | 522dcfb926b2b235137aec71256dbb281c1dd5af /src/backend | |
parent | 28ec316787674dd74d00b296724a009b6edc2fb0 (diff) |
Remove configure probe for sockaddr_in6 and require AF_INET6.
SUSv3 <netinet/in.h> defines 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.
This is similar to commits f5580882 and 077bf2f2 for Unix sockets. Even
though AF_INET6 is an "optional" component of SUSv3, there are no known
modern operating system without it, and it seems even less likely to be
omitted from future systems than AF_UNIX.
Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/CA+hUKGKErNfhmvb_H0UprEmp4LPzGN06yR2_0tYikjzB-2ECMw@mail.gmail.com
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/libpq/auth.c | 21 | ||||
-rw-r--r-- | src/backend/libpq/hba.c | 5 | ||||
-rw-r--r-- | src/backend/libpq/ifaddr.c | 18 | ||||
-rw-r--r-- | src/backend/libpq/pqcomm.c | 2 | ||||
-rw-r--r-- | src/backend/utils/adt/network.c | 10 | ||||
-rw-r--r-- | src/backend/utils/adt/pgstatfuncs.c | 11 |
6 files changed, 3 insertions, 64 deletions
diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index 10cd19e6cd9..b2b0b83a97b 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -3015,13 +3015,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; @@ -3131,18 +3126,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)) { @@ -3245,21 +3234,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 1447588c4ae..8f2b8c6b03a 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 de35fbba455..ff9dadfb379 100644 --- a/src/backend/libpq/ifaddr.c +++ b/src/backend/libpq/ifaddr.c @@ -34,11 +34,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 /* @@ -56,12 +54,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; } @@ -78,9 +74,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, @@ -97,7 +90,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 @@ -147,7 +139,6 @@ pg_sockaddr_cidr_mask(struct sockaddr_storage *mask, char *numbits, int family) break; } -#ifdef HAVE_IPV6 case AF_INET6: { struct sockaddr_in6 mask6; @@ -172,7 +163,7 @@ pg_sockaddr_cidr_mask(struct sockaddr_storage *mask, char *numbits, int family) memcpy(mask, &mask6, sizeof(mask6)); break; } -#endif + default: return -1; } @@ -207,13 +198,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 */ @@ -437,10 +426,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)); @@ -452,7 +438,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; @@ -462,7 +447,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 7112e9751b1..cba0caced73 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -413,11 +413,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 ea1c7390d0d..6d580ea78f6 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 d9e2a793829..4cca30aae7c 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); |