summaryrefslogtreecommitdiff
path: root/src/netlink.c
diff options
context:
space:
mode:
authorSimon Kelley <simon@thekelleys.org.uk>2012-12-20 22:00:39 +0000
committerSimon Kelley <simon@thekelleys.org.uk>2012-12-20 22:00:39 +0000
commitbad7b875eb4e3a8f69b08eab84602257eb51455c (patch)
tree5430af23383aed493be5272c0605f38ca318a3d2 /src/netlink.c
parent5d162f20a95fc4216cb07906ed2f73fc7829ede0 (diff)
downloaddnsmasq-bad7b875eb4e3a8f69b08eab84602257eb51455c.tar.gz
add general flag param to iface_enumerate IPv6 callback
Diffstat (limited to 'src/netlink.c')
-rw-r--r--src/netlink.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/netlink.c b/src/netlink.c
index 4b9ad14..8a4ecf4 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -239,6 +239,8 @@ int iface_enumerate(int family, void *parm, int (*callback)())
{
struct in6_addr *addrp = NULL;
u32 valid = 0, preferred = 0;
+ int flags = 0;
+
while (RTA_OK(rta, len1))
{
if (rta->rta_type == IFA_ADDRESS)
@@ -252,9 +254,15 @@ int iface_enumerate(int family, void *parm, int (*callback)())
rta = RTA_NEXT(rta, len1);
}
+ if (ifa->ifa_flags & IFA_F_TENTATIVE)
+ flags |= IFACE_TENTATIVE;
+
+ if (ifa->ifa_flags & IFA_F_DEPRECATED)
+ flags |= IFACE_DEPRECATED;
+
if (addrp && callback_ok)
if (!((*callback)(addrp, (int)(ifa->ifa_prefixlen), (int)(ifa->ifa_scope),
- (int)(ifa->ifa_index), (int)(ifa->ifa_flags & IFA_F_TENTATIVE),
+ (int)(ifa->ifa_index), flags,
(int) preferred, (int)valid, parm)))
callback_ok = 0;
}