Lines 142-147
Link Here
|
142 |
static void if_attach_internal(struct ifnet *, int); |
142 |
static void if_attach_internal(struct ifnet *, int); |
143 |
static void if_detach_internal(struct ifnet *, int); |
143 |
static void if_detach_internal(struct ifnet *, int); |
144 |
|
144 |
|
|
|
145 |
#ifdef INET |
146 |
/* XXX: better way to grab access to this function? */ |
147 |
extern void arp_ifscrub(struct ifnet *ifp, uint32_t addr); |
148 |
#endif /* INET */ |
149 |
|
145 |
#ifdef INET6 |
150 |
#ifdef INET6 |
146 |
/* |
151 |
/* |
147 |
* XXX: declare here to avoid to include many inet6 related files.. |
152 |
* XXX: declare here to avoid to include many inet6 related files.. |
Lines 3197-3204
Link Here
|
3197 |
* the address change. |
3202 |
* the address change. |
3198 |
*/ |
3203 |
*/ |
3199 |
TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { |
3204 |
TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { |
3200 |
if (ifa->ifa_addr->sa_family == AF_INET) |
3205 |
if (ifa->ifa_addr->sa_family == AF_INET) { |
|
|
3206 |
struct in_ifaddr *ia = (struct in_ifaddr *)ifa; |
3207 |
|
3208 |
/* Delete previous mappings in the ARP table |
3209 |
* first then send a gratuitous ARP */ |
3210 |
arp_ifscrub(ifp, (uint32_t)(IA_SIN(ia)->sin_addr.s_addr)); |
3201 |
arp_ifinit(ifp, ifa); |
3211 |
arp_ifinit(ifp, ifa); |
|
|
3212 |
} |
3202 |
} |
3213 |
} |
3203 |
#endif |
3214 |
#endif |
3204 |
} |
3215 |
} |