diff options
author | hrs <hrs@FreeBSD.org> | 2011-06-06 04:12:57 +0000 |
---|---|---|
committer | hrs <hrs@FreeBSD.org> | 2011-06-06 04:12:57 +0000 |
commit | 0ae2d5f6c6887d49bd007ffeefd37ad2299dba74 (patch) | |
tree | 4da62aee662f64c55c64d1b9c4cd430fca8144b6 /sys/netinet6/nd6.c | |
parent | 9c9abb47360b4acc3f7c54ac33eef70f41c40e87 (diff) | |
download | FreeBSD-src-0ae2d5f6c6887d49bd007ffeefd37ad2299dba74.zip FreeBSD-src-0ae2d5f6c6887d49bd007ffeefd37ad2299dba74.tar.gz |
Do not activate automatic LL addr configuration when 0/1->1 transition of
ND6_IFF_IFDISABLED flag.
Diffstat (limited to 'sys/netinet6/nd6.c')
-rw-r--r-- | sys/netinet6/nd6.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index 231ce94..2b51e43 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -1327,6 +1327,7 @@ nd6_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp) * accept_rtadv or auto_linklocal. */ if ((ND_IFINFO(ifp)->flags & ND6_IFF_IFDISABLED) && + !(ND.flags & ND6_IFF_IFDISABLED) && (ND.flags & (ND6_IFF_ACCEPT_RTADV | ND6_IFF_AUTO_LINKLOCAL))) ND.flags &= ~ND6_IFF_IFDISABLED; @@ -1388,7 +1389,8 @@ nd6_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp) /* If no link-local address on ifp, configure */ ND_IFINFO(ifp)->flags |= ND6_IFF_AUTO_LINKLOCAL; in6_ifattach(ifp, NULL); - } else if (ND_IFINFO(ifp)->flags & ND6_IFF_AUTO_LINKLOCAL) { + } else if ((ND_IFINFO(ifp)->flags & ND6_IFF_AUTO_LINKLOCAL) && + !(ND.flags & ND6_IFF_IFDISABLED)) { /* * When the IF already has * ND6_IFF_AUTO_LINKLOCAL and no link-local |