[pkg-ntp-maintainers] Bug#601519: [PATCH] ntp: ignore tentative IPV6 addresses
Stephen Hemminger
shemminger at vyatta.com
Wed Oct 27 16:30:12 UTC 2010
During boot link-local addresses are generated dynamically.
These addresses are in a tentative state until after resolution occurs.
While in the tentative state, the address can not be bound to.
NTP daemon will see the address become available later when it rescans.
(revised patch for 4.2.4p6)
diff --git a/lib/isc/unix/interfaceiter.c b/lib/isc/unix/interfaceiter.c
index 87af69e..64a9f4f 100644
--- a/lib/isc/unix/interfaceiter.c
+++ b/lib/isc/unix/interfaceiter.c
@@ -151,6 +151,7 @@ get_addr(unsigned int family, isc_netaddr_t *dst, struct sockaddr *src,
static isc_result_t linux_if_inet6_next(isc_interfaceiter_t *);
static isc_result_t linux_if_inet6_current(isc_interfaceiter_t *);
static void linux_if_inet6_first(isc_interfaceiter_t *iter);
+#include <linux/if_addr.h>
#endif
#if HAVE_GETIFADDRS
@@ -216,6 +217,11 @@ linux_if_inet6_current(isc_interfaceiter_t *iter) {
"/proc/net/if_inet6:strlen(%s) != 32", address);
return (ISC_R_FAILURE);
}
+#ifdef __linux
+ /* Ignore DAD addresses -- can't bind to them till resolved */
+ if (flags & IFA_F_TENTATIVE)
+ return (ISC_R_IGNORE);
+#endif
for (i = 0; i < 16; i++) {
unsigned char byte;
static const char hex[] = "0123456789abcdef";
More information about the pkg-ntp-maintainers
mailing list