From 0b8ee13ee0ae6b6a344473e674849c05aca3ca08 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 14 May 2010 09:48:46 -0700 Subject: [PATCH] ip6: pad RDNSS server expiry slightly to avoid hiccups (rh #590202) Pad the DNS server expiry somewhat to give a bit of slack in cases where one RA gets lost or something (which can happen on unreliable links like wifi where certain types of frames are not retransmitted). --- src/ip6-manager/nm-ip6-manager.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ip6-manager/nm-ip6-manager.c b/src/ip6-manager/nm-ip6-manager.c index ba6be259f8..f6f6127ce7 100644 --- a/src/ip6-manager/nm-ip6-manager.c +++ b/src/ip6-manager/nm-ip6-manager.c @@ -627,7 +627,12 @@ process_nduseropt (NMIP6Manager *manager, struct nl_msg *msg) rdnss_opt = (struct nd_opt_rdnss *) opt; - server.expires = now + ntohl (rdnss_opt->nd_opt_rdnss_lifetime); + /* Pad the DNS server expiry somewhat to give a bit of slack in cases + * where one RA gets lost or something (which can happen on unreliable + * links like wifi where certain types of frames are not retransmitted). + */ + server.expires = now + ntohl (rdnss_opt->nd_opt_rdnss_lifetime) + 10; + for (addr = (struct in6_addr *) (rdnss_opt + 1); nd_opt_len >= 2; addr++, nd_opt_len -= 2) { char buf[INET6_ADDRSTRLEN + 1];