|
Lines 1485-1491
Link Here
|
| 1485 |
info.rti_flags = ifa->ifa_flags | RTF_HOST | RTF_STATIC; |
1485 |
info.rti_flags = ifa->ifa_flags | RTF_HOST | RTF_STATIC; |
| 1486 |
info.rti_info[RTAX_DST] = ia; |
1486 |
info.rti_info[RTAX_DST] = ia; |
| 1487 |
info.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&null_sdl; |
1487 |
info.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&null_sdl; |
| 1488 |
error = rtrequest1_fib(RTM_ADD, &info, &rt, 0); |
1488 |
error = rtrequest1_fib(RTM_ADD, &info, &rt, ifa->ifa_ifp->if_fib); |
| 1489 |
|
1489 |
|
| 1490 |
if (error == 0 && rt != NULL) { |
1490 |
if (error == 0 && rt != NULL) { |
| 1491 |
RT_LOCK(rt); |
1491 |
RT_LOCK(rt); |
|
Lines 1517-1523
Link Here
|
| 1517 |
info.rti_flags = ifa->ifa_flags | RTF_HOST | RTF_STATIC; |
1517 |
info.rti_flags = ifa->ifa_flags | RTF_HOST | RTF_STATIC; |
| 1518 |
info.rti_info[RTAX_DST] = ia; |
1518 |
info.rti_info[RTAX_DST] = ia; |
| 1519 |
info.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&null_sdl; |
1519 |
info.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&null_sdl; |
| 1520 |
error = rtrequest1_fib(RTM_DELETE, &info, NULL, 0); |
1520 |
error = rtrequest1_fib(RTM_DELETE, &info, NULL, ifa->ifa_ifp->if_fib); |
| 1521 |
|
1521 |
|
| 1522 |
if (error != 0) |
1522 |
if (error != 0) |
| 1523 |
log(LOG_DEBUG, "%s: deletion failed: %u\n", __func__, error); |
1523 |
log(LOG_DEBUG, "%s: deletion failed: %u\n", __func__, error); |
|
Lines 1526-1536
Link Here
|
| 1526 |
} |
1526 |
} |
| 1527 |
|
1527 |
|
| 1528 |
int |
1528 |
int |
| 1529 |
ifa_switch_loopback_route(struct ifaddr *ifa, struct sockaddr *sa) |
1529 |
ifa_switch_loopback_route(struct ifaddr *ifa, struct sockaddr *sa, int fib) |
| 1530 |
{ |
1530 |
{ |
| 1531 |
struct rtentry *rt; |
1531 |
struct rtentry *rt; |
| 1532 |
|
1532 |
|
| 1533 |
rt = rtalloc1_fib(sa, 0, 0, 0); |
1533 |
rt = rtalloc1_fib(sa, 0, 0, fib); |
| 1534 |
if (rt == NULL) { |
1534 |
if (rt == NULL) { |
| 1535 |
log(LOG_DEBUG, "%s: fail", __func__); |
1535 |
log(LOG_DEBUG, "%s: fail", __func__); |
| 1536 |
return (EHOSTUNREACH); |
1536 |
return (EHOSTUNREACH); |