summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorHans Dedecker <dedeckeh@gmail.com>2017-02-21 09:54:36 +0100
committerHans Dedecker <dedeckeh@gmail.com>2017-02-21 10:58:56 +0100
commit1b630f8bc59978884c9caccebca3b6d8e9b045a1 (patch)
tree68e85c4119636646406a3b7c8871e9d554fafe41
parentba0cac09cc22c911c1c20c2947dd23f795599627 (diff)
router: don't announce prefixes with valid lifetime equal to 0
Don't set prefix valid lifetime to 0 in case the preferred lifetime equals 0 and valid lifetime gets smaller than 7200. In corner cases it leads to router lifetime being set although no prefixes are announced with a valid lifetime different from 0. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
-rw-r--r--src/router.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/router.c b/src/router.c
index ffafb94..e8a9aa9 100644
--- a/src/router.c
+++ b/src/router.c
@@ -358,11 +358,8 @@ static uint64_t send_router_advert(struct interface *iface, const struct in6_add
}
valid = TIME_LEFT(addr->valid, now);
- if (iface->ra_useleasetime) {
- if (valid > iface->dhcpv4_leasetime)
- valid = iface->dhcpv4_leasetime;
- } else if (!preferred && valid < 7200)
- valid = 0;
+ if (iface->ra_useleasetime && valid > iface->dhcpv4_leasetime)
+ valid = iface->dhcpv4_leasetime;
if (minvalid > valid)
minvalid = valid;