diff options
author | Simon Kelley <simon@thekelleys.org.uk> | 2012-12-20 22:00:39 +0000 |
---|---|---|
committer | Simon Kelley <simon@thekelleys.org.uk> | 2012-12-20 22:00:39 +0000 |
commit | bad7b875eb4e3a8f69b08eab84602257eb51455c (patch) | |
tree | 5430af23383aed493be5272c0605f38ca318a3d2 /src/netlink.c | |
parent | 5d162f20a95fc4216cb07906ed2f73fc7829ede0 (diff) | |
download | dnsmasq-bad7b875eb4e3a8f69b08eab84602257eb51455c.tar.gz |
add general flag param to iface_enumerate IPv6 callback
Diffstat (limited to 'src/netlink.c')
-rw-r--r-- | src/netlink.c | 10 |
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; } |