From: Roy Marples Date: Sun, 9 Jun 2013 10:04:46 +0000 (+0000) Subject: Only run LL callbacks from LL addresses X-Git-Tag: v6.0.0~33 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f3b4f2d63cdf644d400f4b194a6e7ddf5501472a;p=thirdparty%2Fdhcpcd.git Only run LL callbacks from LL addresses --- diff --git a/ipv6.c b/ipv6.c index c295d3e5..e2eeb2c7 100644 --- a/ipv6.c +++ b/ipv6.c @@ -535,14 +535,17 @@ ipv6_handleifa(int cmd, struct if_head *ifs, const char *ifname, TAILQ_INSERT_TAIL(&state->addrs, ap, next); - /* Now run any callbacks. - * Typically IPv6RS or DHCPv6 */ - while ((cb = TAILQ_FIRST(&state->ll_callbacks))) - { - TAILQ_REMOVE(&state->ll_callbacks, - cb, next); - cb->callback(cb->arg); - free(cb); + if (IN6_IS_ADDR_LINKLOCAL(&ap->addr)) { + /* Now run any callbacks. + * Typically IPv6RS or DHCPv6 */ + while ((cb = + TAILQ_FIRST(&state->ll_callbacks))) + { + TAILQ_REMOVE(&state->ll_callbacks, + cb, next); + cb->callback(cb->arg); + free(cb); + } } } break;