From 7f61b3ad59ba33f1fcf802a50d2bdb9dd0bbe9ed Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 28 Apr 2012 17:42:31 +0100 Subject: [PATCH] Small SLAAC optimisation. --- src/slaac.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/slaac.c b/src/slaac.c index e74e5e9..7713ac4 100644 --- a/src/slaac.c +++ b/src/slaac.c @@ -27,6 +27,7 @@ void slaac_add_addrs(struct dhcp_lease *lease, time_t now, int force) { struct slaac_address *slaac, *old, **up; struct dhcp_context *context; + int dns_dirty = 0; if (!(lease->flags & LEASE_HAVE_HWADDR) || (lease->flags & (LEASE_TA | LEASE_NA)) || @@ -78,7 +79,7 @@ void slaac_add_addrs(struct dhcp_lease *lease, time_t now, int force) { slaac->ping_time = now; slaac->backoff = 1; - lease_update_dns(1); + dns_dirty = 1; } break; } @@ -103,6 +104,9 @@ void slaac_add_addrs(struct dhcp_lease *lease, time_t now, int force) } } + if (old || dns_dirty) + lease_update_dns(1); + /* Free any no reused */ for (; old; old = slaac) {