summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bpf.c6
-rw-r--r--src/dhcp6.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/src/bpf.c b/src/bpf.c
index 619a662..390d076 100644
--- a/src/bpf.c
+++ b/src/bpf.c
@@ -160,9 +160,15 @@ int iface_enumerate(int family, void *parm, int (*callback)())
if (ifr6.ifr_ifru.ifru_flags6 & IN6_IFF_DEPRECATED)
flags |= IFACE_DEPRECATED;
+#ifdef IN6_IFF_TEMPORARY
if (!(ifr6.ifr_ifru.ifru_flags6 & (IN6_IFF_AUTOCONF | IN6_IFF_TEMPORARY)))
flags |= IFACE_PERMANENT;
+#endif
+#ifdef IN6_IFF_PRIVACY
+ if (!(ifr6.ifr_ifru.ifru_flags6 & (IN6_IFF_AUTOCONF | IN6_IFF_PRIVACY)))
+ flags |= IFACE_PERMANENT;
+#endif
}
ifr6.ifr_addr = *((struct sockaddr_in6 *) addrs->ifa_addr);
diff --git a/src/dhcp6.c b/src/dhcp6.c
index 5e151d6..146e693 100644
--- a/src/dhcp6.c
+++ b/src/dhcp6.c
@@ -280,7 +280,7 @@ static int find_mac(int family, char *addrp, char *mac, size_t maclen, void *par
{
struct mac_param *parm = parmv;
- if (family == AF_INET6 && IN6_ARE_ADDR_EQUAL(parm->target, addrp))
+ if (family == AF_INET6 && IN6_ARE_ADDR_EQUAL(parm->target, (struct in6_addr *)addrp))
{
if (maclen <= DHCP_CHADDR_MAX)
{