Prefix life time is independent from router life time. Form an IPv6 address even if the router announcing the prefix isn't a default router. Problem reported by mgraves AT brainfat.net on misc
OK? diff --git engine.c engine.c index 81a06cc5528..7a2c11e1bc2 100644 --- engine.c +++ engine.c @@ -1749,14 +1749,13 @@ void update_iface_ra(struct slaacd_iface *iface, struct radv *ra) update_iface_ra_dfr(iface, ra); - if (ra->router_lifetime != 0) - LIST_FOREACH(prefix, &ra->prefixes, entries) { - if (!prefix->autonomous || prefix->vltime == 0 || - prefix->pltime > prefix->vltime || - IN6_IS_ADDR_LINKLOCAL(&prefix->prefix)) - continue; - update_iface_ra_prefix(iface, ra, prefix); - } + LIST_FOREACH(prefix, &ra->prefixes, entries) { + if (!prefix->autonomous || prefix->vltime == 0 || + prefix->pltime > prefix->vltime || + IN6_IS_ADDR_LINKLOCAL(&prefix->prefix)) + continue; + update_iface_ra_prefix(iface, ra, prefix); + } update_iface_ra_rdns(iface, ra); } -- I'm not entirely sure you are real.