Changeset View
Changeset View
Standalone View
Standalone View
nd6.c
Context not available. | |||||
int oldflags = ia6->ia6_flags; | int oldflags = ia6->ia6_flags; | ||||
ia6->ia6_flags |= IN6_IFF_DEPRECATED; | ia6->ia6_flags |= IN6_IFF_DEPRECATED; | ||||
if (ia6->ia6_flags != oldflags) | |||||
rt_addrmsg(RTM_ADD, (struct ifaddr *)ia6, 0); | |||||
/* | /* | ||||
* If a temporary address has just become deprecated, | * If a temporary address has just become deprecated, | ||||
Context not available. | |||||
(MAX_RTR_SOLICITATION_DELAY * hz); | (MAX_RTR_SOLICITATION_DELAY * hz); | ||||
nd6_dad_start((struct ifaddr *)ia6, delay); | nd6_dad_start((struct ifaddr *)ia6, delay); | ||||
} else { | } else { | ||||
int oldflags = ia6->ia6_flags; | |||||
/* | /* | ||||
* Check status of the interface. If it is down, | * Check status of the interface. If it is down, | ||||
* mark the address as tentative for future DAD. | * mark the address as tentative for future DAD. | ||||
Context not available. | |||||
* preferred. | * preferred. | ||||
*/ | */ | ||||
ia6->ia6_flags &= ~IN6_IFF_DEPRECATED; | ia6->ia6_flags &= ~IN6_IFF_DEPRECATED; | ||||
/* Notify the routing socket of a flag change. */ | |||||
if (ia6->ia6_flags != oldflags) | |||||
rt_addrmsg(RTM_ADD, (struct ifaddr *)ia6, 0); | |||||
} | } | ||||
} | } | ||||
Context not available. | |||||
AF_INET6) | AF_INET6) | ||||
continue; | continue; | ||||
ia = (struct in6_ifaddr *)ifa; | ia = (struct in6_ifaddr *)ifa; | ||||
ia->ia6_flags |= IN6_IFF_TENTATIVE; | if (!(ia->ia6_flags & | ||||
IN6_IFF_TENTATIVE)) | |||||
{ | |||||
ia->ia6_flags |= | |||||
IN6_IFF_TENTATIVE; | |||||
rt_addrmsg(RTM_ADD, ifa, 0); | |||||
} | |||||
} | } | ||||
IF_ADDR_RUNLOCK(ifp); | IF_ADDR_RUNLOCK(ifp); | ||||
} | } | ||||
Context not available. |