diff options
Diffstat (limited to 'src/odhcpd.c')
-rw-r--r-- | src/odhcpd.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/odhcpd.c b/src/odhcpd.c index 5f87151..4972aa2 100644 --- a/src/odhcpd.c +++ b/src/odhcpd.c @@ -224,8 +224,8 @@ int odhcpd_get_interface_dns_addr(const struct interface *iface, struct in6_addr time_t now = odhcpd_time(); ssize_t m = -1; - for (size_t i = 0; i < iface->ia_addr_len; ++i) { - if (iface->ia_addr[i].valid <= (uint32_t)now) + for (size_t i = 0; i < iface->addr6_len; ++i) { + if (iface->addr6[i].valid <= (uint32_t)now) continue; if (m < 0) { @@ -233,24 +233,24 @@ int odhcpd_get_interface_dns_addr(const struct interface *iface, struct in6_addr continue; } - if (iface->ia_addr[m].preferred >= (uint32_t)now && - iface->ia_addr[i].preferred < (uint32_t)now) + if (iface->addr6[m].preferred >= (uint32_t)now && + iface->addr6[i].preferred < (uint32_t)now) continue; - if (IN6_IS_ADDR_ULA(&iface->ia_addr[i].addr.in6)) { - if (!IN6_IS_ADDR_ULA(&iface->ia_addr[m].addr.in6)) { + if (IN6_IS_ADDR_ULA(&iface->addr6[i].addr.in6)) { + if (!IN6_IS_ADDR_ULA(&iface->addr6[m].addr.in6)) { m = i; continue; } - } else if (IN6_IS_ADDR_ULA(&iface->ia_addr[m].addr.in6)) + } else if (IN6_IS_ADDR_ULA(&iface->addr6[m].addr.in6)) continue; - if (iface->ia_addr[i].preferred > iface->ia_addr[m].preferred) + if (iface->addr6[i].preferred > iface->addr6[m].preferred) m = i; } if (m >= 0) { - *addr = iface->ia_addr[m].addr.in6; + *addr = iface->addr6[m].addr.in6; return 0; } |