From e26d96a8a1adf4f935b898ba80baedc781ac7fe0 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Wed, 23 Nov 2016 21:08:30 +0000 Subject: [PATCH] Backout prior, added stuff by mistake. --- if-bsd.c | 25 ++++++++++++------------- ipv6.c | 2 +- ipv6.h | 10 ++-------- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/if-bsd.c b/if-bsd.c index d9910a56..0e033d17 100644 --- a/if-bsd.c +++ b/if-bsd.c @@ -1345,24 +1345,23 @@ inet6_sysctl(int code, int val, int action) #endif #ifdef IPV6_MANAGETEMPADDR -#if !defined(IPV6CTL_TEMPVLTIME) +#ifndef IPV6CTL_TEMPVLTIME +#define get_inet6_sysctlbyname(code) inet6_sysctlbyname(code, 0, 0) +#define set_inet6_sysctlbyname(code, val) inet6_sysctlbyname(code, val, 1) static int -get_sysctlbyname(const char *name) +inet6_sysctlbyname(const char *name, int val, int action) { -#ifdef __OpenBSD__ - /* OpenBSD seems to have it enabled by default .... */ - - UNUSED(name); - return -1; -#else - int val; size_t size; size = sizeof(val); + if (action) { + if (sysctlbyname(name, NULL, 0, &val, size) == -1) + return -1; + return 0; + } if (sysctlbyname(name, &val, &size, NULL, 0) == -1) return -1; return val; -#endif } #endif @@ -1374,7 +1373,7 @@ ip6_use_tempaddr(__unused const char *ifname) #ifdef IPV6CTL_USETEMPADDR val = get_inet6_sysctl(IPV6CTL_USETEMPADDR); #else - val = get_sysctlbyname("net.inet6.ip6.use_tempaddr"); + val = get_inet6_sysctlbyname("net.inet6.ip6.use_tempaddr"); #endif return val == -1 ? 0 : val; } @@ -1387,7 +1386,7 @@ ip6_temp_preferred_lifetime(__unused const char *ifname) #ifdef IPV6CTL_TEMPPLTIME val = get_inet6_sysctl(IPV6CTL_TEMPPLTIME); #else - val = get_sysctlbyname("net.inet6.ip6.temppltime"); + val = get_inet6_sysctlbyname("net.inet6.ip6.temppltime"); #endif return val < 0 ? TEMP_PREFERRED_LIFETIME : val; } @@ -1400,7 +1399,7 @@ ip6_temp_valid_lifetime(__unused const char *ifname) #ifdef IPV6CTL_TEMPVLTIME val = get_inet6_sysctl(IPV6CTL_TEMPVLTIME); #else - val = get_sysctlbyname("net.inet6.ip6.tempvltime"); + val = get_inet6_sysctlbyname("net.inet6.ip6.tempvltime"); #endif return val < 0 ? TEMP_VALID_LIFETIME : val; } diff --git a/ipv6.c b/ipv6.c index 95665f4e..c51a1efb 100644 --- a/ipv6.c +++ b/ipv6.c @@ -566,7 +566,7 @@ ipv6_checkaddrflags(void *arg) return; } - if (!(flags & IN6_IFF_TENTATIVE)) { + if (!(ia->addr_flags & IN6_IFF_TENTATIVE)) { /* Simulate the kernel announcing the new address. */ ipv6_handleifa(ia->iface->ctx, RTM_NEWADDR, ia->iface->ctx->ifaces, ia->iface->name, diff --git a/ipv6.h b/ipv6.h index 9efd019f..11a38968 100644 --- a/ipv6.h +++ b/ipv6.h @@ -104,14 +104,8 @@ * Some BSDs do not allow userland to set temporary addresses. * Linux-3.18 allows the marking of addresses from which to manage temp addrs. */ -#if defined(BSD) -# if !defined(IN6_IFF_TEMPORARY) && defined(IN6_IFF_PRIVACY) - /* OpenBSD just has to be different... */ -# define IN6_IFF_TEMPORARY IN6_IFF_PRIVACY -# endif -# if defined(IN6_IFF_TEMPORARY) -# define IPV6_MANAGETEMPADDR -# endif +#if defined(BSD) && defined(IN6_IFF_TEMPORARY) +#define IPV6_MANAGETEMPADDR #endif /* -- 2.47.2