summaryrefslogtreecommitdiffstats
path: root/if-bsd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2016-11-23 21:08:30 +0000
committerRoy Marples <roy@marples.name>2016-11-23 21:08:30 +0000
commit69560ba432ba64433e2927b5a30444ade71fa6a7 (patch)
tree4161f1c1dd7f8656c62d9c2999aaa354db8a9ccb /if-bsd.c
parent8c24e7ccd87e5a0cc8bd9d0eec808fe92518ffe4 (diff)
downloaddhcpcd-69560ba432ba64433e2927b5a30444ade71fa6a7.tar.xz
Backout prior, added stuff by mistake.
Diffstat (limited to 'if-bsd.c')
-rw-r--r--if-bsd.c25
1 files changed, 12 insertions, 13 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;
}