summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2012-02-28 16:15:56 +0000
committerKen Raeburn <raeburn@mit.edu>2012-02-28 16:15:56 +0000
commit666d801d3b1a288f59dc458ea1fb438dc4f4329a (patch)
tree91607b94c04d76786167c769d86aad6793b76d69 /src/lib
parent7c08c875b8617f2df0fd98510eb0ad3ce12bcc86 (diff)
downloadkrb5-666d801d3b1a288f59dc458ea1fb438dc4f4329a.tar.gz
krb5-666d801d3b1a288f59dc458ea1fb438dc4f4329a.tar.xz
krb5-666d801d3b1a288f59dc458ea1fb438dc4f4329a.zip
Require IPv6 support
The configure-time options to enable and disable IPv6 support have been deprecated for some time, but the checks for OS support were kept. This removes those checks, and unconditionally compiles in the IPv6 support. There was a configure-time test to see if the macro INET6 needed to be defined in order to enable (visibility of) OS support for IPv6, which was needed on an IRIX system we tested with. That check is retained, but the revised code is untested on IRIX. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25719 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/apputils/net-server.c47
-rw-r--r--src/lib/krb5/os/genaddrs.c2
-rw-r--r--src/lib/krb5/os/hostaddr.c4
-rw-r--r--src/lib/krb5/os/localaddr.c10
-rw-r--r--src/lib/krb5/os/locate_kdc.c2
-rw-r--r--src/lib/krb5/os/t_std_conf.c2
6 files changed, 4 insertions, 63 deletions
diff --git a/src/lib/apputils/net-server.c b/src/lib/apputils/net-server.c
index 43be27c951..fcc660d351 100644
--- a/src/lib/apputils/net-server.c
+++ b/src/lib/apputils/net-server.c
@@ -78,11 +78,9 @@ set_sa_port(struct sockaddr *addr, int port)
case AF_INET:
sa2sin(addr)->sin_port = port;
break;
-#ifdef KRB5_USE_INET6
case AF_INET6:
sa2sin6(addr)->sin6_port = port;
break;
-#endif
default:
break;
}
@@ -91,7 +89,6 @@ set_sa_port(struct sockaddr *addr, int port)
static int
ipv6_enabled()
{
-#ifdef KRB5_USE_INET6
static int result = -1;
if (result == -1) {
int s;
@@ -103,9 +100,6 @@ ipv6_enabled()
result = 0;
}
return result;
-#else
- return 0;
-#endif
}
static int
@@ -114,7 +108,7 @@ setreuseaddr(int sock, int value)
return setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value));
}
-#if defined(KRB5_USE_INET6) && defined(IPV6_V6ONLY)
+#if defined(IPV6_V6ONLY)
static int
setv6only(int sock, int value)
{
@@ -611,7 +605,6 @@ create_server_socket(struct socksetup *data, struct sockaddr *addr, int type)
_("Cannot enable SO_REUSEADDR on fd %d"), sock);
}
-#ifdef KRB5_USE_INET6
if (addr->sa_family == AF_INET6) {
#ifdef IPV6_V6ONLY
if (setv6only(sock, 1))
@@ -624,7 +617,6 @@ create_server_socket(struct socksetup *data, struct sockaddr *addr, int type)
krb5_klog_syslog(LOG_INFO, _("no IPV6_V6ONLY socket option support"));
#endif /* IPV6_V6ONLY */
}
-#endif /* KRB5_USE_INET6 */
if (bind(sock, addr, socklen(addr)) == -1) {
data->retval = errno;
@@ -737,9 +729,7 @@ static int
setup_tcp_listener_ports(struct socksetup *data)
{
struct sockaddr_in sin4;
-#ifdef KRB5_USE_INET6
struct sockaddr_in6 sin6;
-#endif
int i, port;
memset(&sin4, 0, sizeof(sin4));
@@ -749,14 +739,12 @@ setup_tcp_listener_ports(struct socksetup *data)
#endif
sin4.sin_addr.s_addr = INADDR_ANY;
-#ifdef KRB5_USE_INET6
memset(&sin6, 0, sizeof(sin6));
sin6.sin6_family = AF_INET6;
#ifdef SIN6_LEN
sin6.sin6_len = sizeof(sin6);
#endif
sin6.sin6_addr = in6addr_any;
-#endif
FOREACH_ELT (tcp_port_data, i, port) {
int s4, s6;
@@ -768,9 +756,6 @@ setup_tcp_listener_ports(struct socksetup *data)
return -1;
s6 = -1;
} else {
-#ifndef KRB5_USE_INET6
- abort();
-#else
s4 = s6 = -1;
set_sa_port((struct sockaddr *)&sin6, htons(port));
@@ -780,7 +765,6 @@ setup_tcp_listener_ports(struct socksetup *data)
return -1;
s4 = setup_a_tcp_listener(data, (struct sockaddr *)&sin4);
-#endif /* KRB5_USE_INET6 */
}
/* Sockets are created, prepare to listen on them. */
@@ -792,7 +776,6 @@ setup_tcp_listener_ports(struct socksetup *data)
s4, paddr((struct sockaddr *)&sin4));
}
}
-#ifdef KRB5_USE_INET6
if (s6 >= 0) {
if (add_tcp_listener_fd(data, s6) == NULL) {
close(s6);
@@ -805,7 +788,6 @@ setup_tcp_listener_ports(struct socksetup *data)
krb5_klog_syslog(LOG_INFO,
_("assuming IPv6 socket accepts IPv4"));
}
-#endif
}
return 0;
}
@@ -814,9 +796,7 @@ static int
setup_rpc_listener_ports(struct socksetup *data)
{
struct sockaddr_in sin4;
-#ifdef KRB5_USE_INET6
struct sockaddr_in6 sin6;
-#endif
int i;
struct rpc_svc_data svc;
@@ -827,20 +807,16 @@ setup_rpc_listener_ports(struct socksetup *data)
#endif
sin4.sin_addr.s_addr = INADDR_ANY;
-#ifdef KRB5_USE_INET6
memset(&sin6, 0, sizeof(sin6));
sin6.sin6_family = AF_INET6;
#ifdef HAVE_SA_LEN
sin6.sin6_len = sizeof(sin6);
#endif
sin6.sin6_addr = in6addr_any;
-#endif
FOREACH_ELT (rpc_svc_data, i, svc) {
int s4;
-#ifdef KRB5_USE_INET6
int s6;
-#endif
set_sa_port((struct sockaddr *)&sin4, htons(svc.port));
s4 = create_server_socket(data, (struct sockaddr *)&sin4, SOCK_STREAM);
@@ -853,7 +829,6 @@ setup_rpc_listener_ports(struct socksetup *data)
krb5_klog_syslog(LOG_INFO, _("listening on fd %d: rpc %s"),
s4, paddr((struct sockaddr *)&sin4));
-#ifdef KRB5_USE_INET6
if (ipv6_enabled()) {
set_sa_port((struct sockaddr *)&sin6, htons(svc.port));
s6 = create_server_socket(data, (struct sockaddr *)&sin6,
@@ -867,7 +842,6 @@ setup_rpc_listener_ports(struct socksetup *data)
krb5_klog_syslog(LOG_INFO, _("listening on fd %d: rpc %s"),
s6, paddr((struct sockaddr *)&sin6));
}
-#endif
}
return 0;
@@ -992,18 +966,7 @@ setup_udp_port(void *P_data, struct sockaddr *addr)
break;
#ifdef AF_INET6
case AF_INET6:
-#ifdef KRB5_USE_INET6
break;
-#else
- {
- static int first = 1;
- if (first) {
- krb5_klog_syslog(LOG_INFO, _("skipping local ipv6 addresses"));
- first = 0;
- }
- return 0;
- }
-#endif
#endif
#ifdef AF_LINK /* some BSD systems, AIX */
case AF_LINK:
@@ -1312,7 +1275,6 @@ init_addr(krb5_fulladdr *faddr, struct sockaddr *sa)
faddr->address->contents = (krb5_octet *) &sa2sin(sa)->sin_addr;
faddr->port = ntohs(sa2sin(sa)->sin_port);
break;
-#ifdef KRB5_USE_INET6
case AF_INET6:
if (IN6_IS_ADDR_V4MAPPED(&sa2sin6(sa)->sin6_addr)) {
faddr->address->addrtype = ADDRTYPE_INET;
@@ -1325,7 +1287,6 @@ init_addr(krb5_fulladdr *faddr, struct sockaddr *sa)
}
faddr->port = ntohs(sa2sin6(sa)->sin6_port);
break;
-#endif
default:
faddr->address->addrtype = -1;
faddr->address->length = 0;
@@ -1412,8 +1373,7 @@ recv_from_to(int s, void *buf, size_t len, int flags,
return r;
}
#endif
-#if defined(KRB5_USE_INET6) && defined(IPV6_PKTINFO) && \
- defined(HAVE_STRUCT_IN6_PKTINFO)
+#if defined(IPV6_PKTINFO) && defined(HAVE_STRUCT_IN6_PKTINFO)
if (cmsgptr->cmsg_level == IPPROTO_IPV6
&& cmsgptr->cmsg_type == IPV6_PKTINFO
&& *tolen >= sizeof(struct sockaddr_in6)) {
@@ -1489,8 +1449,7 @@ send_to_from(int s, void *buf, size_t len, int flags,
msg.msg_controllen = CMSG_SPACE(sizeof(struct in_pktinfo));
break;
#endif
-#if defined(KRB5_USE_INET6) && defined(IPV6_PKTINFO) && \
- defined(HAVE_STRUCT_IN6_PKTINFO)
+#if defined(IPV6_PKTINFO) && defined(HAVE_STRUCT_IN6_PKTINFO)
case AF_INET6:
if (fromlen != sizeof(struct sockaddr_in6))
goto use_sendto;
diff --git a/src/lib/krb5/os/genaddrs.c b/src/lib/krb5/os/genaddrs.c
index b31c0bca67..5ef7af5a33 100644
--- a/src/lib/krb5/os/genaddrs.c
+++ b/src/lib/krb5/os/genaddrs.c
@@ -47,7 +47,6 @@ static void *cvtaddr (struct sockaddr_storage *a, struct addrpair *ap)
SET (ap->port, ss2sin(a)->sin_port, ADDRTYPE_IPPORT);
SET (ap->addr, ss2sin(a)->sin_addr, ADDRTYPE_INET);
return a;
-#ifdef KRB5_USE_INET6
case AF_INET6:
SET (ap->port, ss2sin6(a)->sin6_port, ADDRTYPE_IPPORT);
if (IN6_IS_ADDR_V4MAPPED (&ss2sin6(a)->sin6_addr)) {
@@ -57,7 +56,6 @@ static void *cvtaddr (struct sockaddr_storage *a, struct addrpair *ap)
} else
SET (ap->addr, ss2sin6(a)->sin6_addr, ADDRTYPE_INET6);
return a;
-#endif
default:
return 0;
}
diff --git a/src/lib/krb5/os/hostaddr.c b/src/lib/krb5/os/hostaddr.c
index 5046f9b318..6be2abea80 100644
--- a/src/lib/krb5/os/hostaddr.c
+++ b/src/lib/krb5/os/hostaddr.c
@@ -59,9 +59,7 @@ krb5_os_hostaddr(krb5_context context, const char *name,
for (i = 0, aip = ai; aip; aip = aip->ai_next) {
switch (aip->ai_addr->sa_family) {
case AF_INET:
-#ifdef KRB5_USE_INET6
case AF_INET6:
-#endif
i++;
default:
/* Ignore addresses of unknown families. */
@@ -87,13 +85,11 @@ krb5_os_hostaddr(krb5_context context, const char *name,
ptr = &((struct sockaddr_in *)aip->ai_addr)->sin_addr;
atype = ADDRTYPE_INET;
break;
-#ifdef KRB5_USE_INET6
case AF_INET6:
addrlen = sizeof (struct in6_addr);
ptr = &((struct sockaddr_in6 *)aip->ai_addr)->sin6_addr;
atype = ADDRTYPE_INET6;
break;
-#endif
default:
continue;
}
diff --git a/src/lib/krb5/os/localaddr.c b/src/lib/krb5/os/localaddr.c
index 08f628a55e..faa214a4ab 100644
--- a/src/lib/krb5/os/localaddr.c
+++ b/src/lib/krb5/os/localaddr.c
@@ -114,7 +114,7 @@
*/
-#if defined(__linux__) && defined(KRB5_USE_INET6) && !defined(HAVE_IFADDRS_H)
+#if defined(__linux__) && !defined(HAVE_IFADDRS_H)
#define LINUX_IPV6_HACK
#endif
@@ -183,12 +183,10 @@ is_loopback_address(struct sockaddr *sa)
struct sockaddr_in *s4 = (struct sockaddr_in *)sa;
return s4->sin_addr.s_addr == htonl(INADDR_LOOPBACK);
}
-#ifdef KRB5_USE_INET6
case AF_INET6: {
struct sockaddr_in6 *s6 = (struct sockaddr_in6 *)sa;
return IN6_IS_ADDR_LOOPBACK(&s6->sin6_addr);
}
-#endif
default:
return 0;
}
@@ -1123,9 +1121,7 @@ count_addrs (void *P_data, struct sockaddr *a)
struct localaddr_data *data = P_data;
switch (a->sa_family) {
case AF_INET:
-#ifdef KRB5_USE_INET6
case AF_INET6:
-#endif
#ifdef KRB5_USE_NS
case AF_XNS:
#endif
@@ -1197,7 +1193,6 @@ add_addr (void *P_data, struct sockaddr *a)
data->mem_err++;
break;
-#ifdef KRB5_USE_INET6
case AF_INET6:
{
const struct sockaddr_in6 *in = (const struct sockaddr_in6 *) a;
@@ -1211,7 +1206,6 @@ add_addr (void *P_data, struct sockaddr *a)
data->mem_err++;
break;
}
-#endif /* KRB5_USE_INET6 */
#endif /* netinet/in.h */
#ifdef KRB5_USE_NS
@@ -1414,7 +1408,6 @@ get_localaddrs (krb5_context context, krb5_address ***addr, int use_profile)
#endif
break;
}
-#ifdef KRB5_USE_INET6
case ADDRTYPE_INET6:
{
struct sockaddr_in6 *sin6p = ss2sin6 (&ss);
@@ -1425,7 +1418,6 @@ get_localaddrs (krb5_context context, krb5_address ***addr, int use_profile)
#endif
break;
}
-#endif
default:
ss2sa(&ss)->sa_family = 0;
break;
diff --git a/src/lib/krb5/os/locate_kdc.c b/src/lib/krb5/os/locate_kdc.c
index acfce8c87a..89ef549a09 100644
--- a/src/lib/krb5/os/locate_kdc.c
+++ b/src/lib/krb5/os/locate_kdc.c
@@ -361,10 +361,8 @@ module_callback(void *cbdata, int socktype, struct sockaddr *sa)
return 0;
if (sa->sa_family == AF_INET)
addrlen = sizeof(struct sockaddr_in);
-#ifdef KRB5_USE_INET6
else if (sa->sa_family == AF_INET6)
addrlen = sizeof(struct sockaddr_in6);
-#endif
else
return 0;
if (add_addr_to_list(d->list, socktype, sa->sa_family, addrlen,
diff --git a/src/lib/krb5/os/t_std_conf.c b/src/lib/krb5/os/t_std_conf.c
index 59ca7d605a..74987b1573 100644
--- a/src/lib/krb5/os/t_std_conf.c
+++ b/src/lib/krb5/os/t_std_conf.c
@@ -133,7 +133,6 @@ test_locate_kdc(krb5_context ctx, char *realm)
ntohs(s_sin->sin_port));
}
break;
-#ifdef KRB5_USE_INET6
case AF_INET6:
{
struct sockaddr_in6 *s_sin6 = (struct sockaddr_in6 *)&entry->addr;
@@ -146,7 +145,6 @@ test_locate_kdc(krb5_context ctx, char *realm)
printf("/%d", ntohs(s_sin6->sin6_port));
break;
}
-#endif
default:
printf(" unknown-af-%d", entry->family);
break;