router: reduce dns lifetime to 10x maximum interval
authorSteven Barth <steven@midlink.org>
Mon, 7 Sep 2015 09:39:19 +0000 (11:39 +0200)
committerSteven Barth <steven@midlink.org>
Mon, 7 Sep 2015 09:39:19 +0000 (11:39 +0200)
src/router.c

index 9c9b55a74a4dd1c59e7273feab434a307e7089ed..3fbf5901cc536b6a1cdefa51e41e4c2f0860c98c 100644 (file)
@@ -247,7 +247,6 @@ static uint64_t send_router_advert(struct interface *iface, const struct in6_add
        struct odhcpd_ipaddr addrs[8];
        ssize_t ipcnt = 0;
        int64_t minvalid = INT64_MAX;
-       int64_t maxvalid = 0;
 
        // If not shutdown
        if (iface->timer_rs.cb) {
@@ -293,9 +292,6 @@ static uint64_t send_router_advert(struct interface *iface, const struct in6_add
                                minvalid > 1000LL * TIME_LEFT(addr->valid, now))
                        minvalid = 1000LL * TIME_LEFT(addr->valid, now);
 
-               if (maxvalid < 1000LL * TIME_LEFT(addr->valid, now))
-                       maxvalid = 1000LL * TIME_LEFT(addr->valid, now);
-
                if (((addr->addr.s6_addr[0] & 0xfe) != 0xfc || iface->default_router)
                                && ntohs(adv.h.nd_ra_router_lifetime) < TIME_LEFT(addr->valid, now))
                        adv.h.nd_ra_router_lifetime = htons(TIME_LEFT(addr->valid, now));
@@ -433,7 +429,7 @@ static uint64_t send_router_advert(struct interface *iface, const struct in6_add
 
        minival = (maxival * 3) / 4;
 
-       search->lifetime = htonl(maxvalid / 1000);
+       search->lifetime = maxival / 100;
        dns.lifetime = search->lifetime;
 
        odhcpd_urandom(&msecs, sizeof(msecs));