Fixup RAs/DHCPv6 announcing incorrect addresses
[project/odhcpd.git] / src / dhcpv6-ia.c
index c5f8783..d301b4f 100644 (file)
@@ -572,7 +572,7 @@ void dhcpv6_ia_postupdate(struct interface *iface, time_t now)
 
        int minprefix = -1;
        for (size_t i = 0; i < iface->ia_addr_len; ++i) {
-               if (iface->ia_addr[i].preferred > now &&
+               if (iface->ia_addr[i].preferred > (uint32_t)now &&
                                iface->ia_addr[i].prefix < 64 &&
                                iface->ia_addr[i].prefix > minprefix)
                        minprefix = iface->ia_addr[i].prefix;
@@ -739,7 +739,7 @@ static size_t append_reply(uint8_t *buf, size_t buflen, uint16_t status,
                                        size_t entrlen = sizeof(n) - 4;
 
                                        if (iface->managed < RELAYD_MANAGED_NO_AFLAG && i != m &&
-                                                       addrs[i].prefix == 64)
+                                                       addrs[i].prefix <= 64)
                                                continue;
 
                                        if (datalen + entrlen + 4 > buflen || a->assigned == 0)