Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/nd6_rtr.c
Context not available. | |||||
IF_ADDR_RLOCK(ifp); | IF_ADDR_RLOCK(ifp); | ||||
ifa = CK_STAILQ_FIRST(&ifp->if_addrhead); | ifa = CK_STAILQ_FIRST(&ifp->if_addrhead); | ||||
info.rti_info[RTAX_IFP] = ifa->ifa_addr; | info.rti_info[RTAX_IFP] = ifa->ifa_addr; | ||||
ifa_ref(ifa); | if (ifa_ref(ifa) == 0) | ||||
ifa = NULL; | |||||
IF_ADDR_RUNLOCK(ifp); | IF_ADDR_RUNLOCK(ifp); | ||||
info.rti_info[RTAX_IFA] = rt->rt_ifa->ifa_addr; | info.rti_info[RTAX_IFA] = rt->rt_ifa->ifa_addr; | ||||
} else | } else | ||||
Context not available. | |||||
/* XXX: freebsd does not have ifa_ifwithaf */ | /* XXX: freebsd does not have ifa_ifwithaf */ | ||||
IF_ADDR_RLOCK(ifp); | IF_ADDR_RLOCK(ifp); | ||||
CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { | CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { | ||||
if (ifa->ifa_addr->sa_family == AF_INET6) { | if (ifa->ifa_addr->sa_family == AF_INET6 && | ||||
ifa_ref(ifa); | ifa_ref(ifa) != 0) { | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
Context not available. |