- if (addr->preferred > 0) {
- if (minvalid > 1000ULL * addr->valid)
- minvalid = 1000ULL * addr->valid;
-
- if (maxvalid < 1000ULL * addr->valid && (iface->default_router ||
- (addr->addr.s6_addr[0] & 0xfe) != 0xfc))
- maxvalid = 1000ULL * addr->valid;
- }
+ if (addr->preferred > (uint32_t)now &&
+ minvalid > 1000LL * TIME_LEFT(addr->valid, now))
+ minvalid = 1000LL * TIME_LEFT(addr->valid, now);