network: use route_remove_handler() as the default callback of route_remove()
This commit is contained in:
parent
63ae056909
commit
4645ad47ac
|
@ -216,8 +216,7 @@ static int dhcp_lease_lost(Link *link) {
|
|||
assert_se(sd_dhcp_route_get_destination(routes[i], &route->dst.in) >= 0);
|
||||
assert_se(sd_dhcp_route_get_destination_prefix_length(routes[i], &route->dst_prefixlen) >= 0);
|
||||
|
||||
route_remove(route, link,
|
||||
link_route_remove_handler);
|
||||
route_remove(route, link, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -237,8 +236,7 @@ static int dhcp_lease_lost(Link *link) {
|
|||
route_gw->dst_prefixlen = 32;
|
||||
route_gw->scope = RT_SCOPE_LINK;
|
||||
|
||||
route_remove(route_gw, link,
|
||||
link_route_remove_handler);
|
||||
route_remove(route_gw, link, NULL);
|
||||
}
|
||||
|
||||
r = route_new(&route);
|
||||
|
@ -246,8 +244,7 @@ static int dhcp_lease_lost(Link *link) {
|
|||
route->family = AF_INET;
|
||||
route->gw.in = gateway;
|
||||
|
||||
route_remove(route, link,
|
||||
link_route_remove_handler);
|
||||
route_remove(route, link, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ static int ipv4ll_address_lost(Link *link) {
|
|||
route->scope = RT_SCOPE_LINK;
|
||||
route->priority = IPV4LL_ROUTE_METRIC;
|
||||
|
||||
route_remove(route, link, link_route_remove_handler);
|
||||
route_remove(route, link, NULL);
|
||||
|
||||
link_check_ready(link);
|
||||
|
||||
|
|
|
@ -892,24 +892,6 @@ static int link_enter_set_routes(Link *link) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int link_route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata) {
|
||||
Link *link = userdata;
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
assert(link);
|
||||
assert(link->ifname);
|
||||
|
||||
if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
|
||||
return 1;
|
||||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -ESRCH)
|
||||
log_link_warning_errno(link, r, "Could not drop route: %m");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int address_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata) {
|
||||
Link *link = userdata;
|
||||
int r;
|
||||
|
@ -2662,7 +2644,7 @@ static int link_drop_foreign_config(Link *link) {
|
|||
if (r < 0)
|
||||
return r;
|
||||
} else {
|
||||
r = route_remove(route, link, link_route_remove_handler);
|
||||
r = route_remove(route, link, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
@ -2701,7 +2683,7 @@ static int link_drop_config(Link *link) {
|
|||
if (route->protocol == RTPROT_KERNEL)
|
||||
continue;
|
||||
|
||||
r = route_remove(route, link, link_route_remove_handler);
|
||||
r = route_remove(route, link, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
|
|
@ -140,8 +140,6 @@ void link_drop(Link *link);
|
|||
int link_up(Link *link);
|
||||
int link_down(Link *link);
|
||||
|
||||
int link_route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata);
|
||||
|
||||
void link_enter_failed(Link *link);
|
||||
int link_initialized(Link *link, sd_device *device);
|
||||
|
||||
|
|
|
@ -378,6 +378,24 @@ void route_update(Route *route,
|
|||
route->type = type;
|
||||
}
|
||||
|
||||
static int route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata) {
|
||||
Link *link = userdata;
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
assert(link);
|
||||
assert(link->ifname);
|
||||
|
||||
if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
|
||||
return 1;
|
||||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -ESRCH)
|
||||
log_link_warning_errno(link, r, "Could not drop route: %m");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int route_remove(Route *route, Link *link,
|
||||
sd_netlink_message_handler_t callback) {
|
||||
|
||||
|
@ -454,7 +472,8 @@ int route_remove(Route *route, Link *link,
|
|||
return log_error_errno(r, "Could not append RTA_OIF attribute: %m");
|
||||
}
|
||||
|
||||
r = sd_netlink_call_async(link->manager->rtnl, NULL, req, callback,
|
||||
r = sd_netlink_call_async(link->manager->rtnl, NULL, req,
|
||||
callback ?: route_remove_handler,
|
||||
link_netlink_destroy_callback, link, 0, __func__);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Could not send rtnetlink message: %m");
|
||||
|
@ -470,7 +489,7 @@ int route_expire_handler(sd_event_source *s, uint64_t usec, void *userdata) {
|
|||
|
||||
assert(route);
|
||||
|
||||
r = route_remove(route, route->link, link_route_remove_handler);
|
||||
r = route_remove(route, route->link, NULL);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "Could not remove route: %m");
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue