network: use address_remove_handler() as the default callback of address_remove()
This commit is contained in:
parent
29889b4d24
commit
63ae056909
|
@ -428,6 +428,24 @@ int address_get(Link *link,
|
|||
return -ENOENT;
|
||||
}
|
||||
|
||||
static int address_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 != -EADDRNOTAVAIL)
|
||||
log_link_warning_errno(link, r, "Could not drop address: %m");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int address_remove(
|
||||
Address *address,
|
||||
Link *link,
|
||||
|
@ -465,7 +483,8 @@ int address_remove(
|
|||
if (r < 0)
|
||||
return log_error_errno(r, "Could not append IFA_LOCAL attribute: %m");
|
||||
|
||||
r = sd_netlink_call_async(link->manager->rtnl, NULL, req, callback,
|
||||
r = sd_netlink_call_async(link->manager->rtnl, NULL, req,
|
||||
callback ?: address_remove_handler,
|
||||
link_netlink_destroy_callback, link, 0, __func__);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Could not send rtnetlink message: %m");
|
||||
|
|
|
@ -261,7 +261,7 @@ static int dhcp_lease_lost(Link *link) {
|
|||
address->in_addr.in = addr;
|
||||
address->prefixlen = prefixlen;
|
||||
|
||||
address_remove(address, link, link_address_remove_handler);
|
||||
address_remove(address, link, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ static int ipv4ll_address_lost(Link *link) {
|
|||
address->prefixlen = 16;
|
||||
address->scope = RT_SCOPE_LINK;
|
||||
|
||||
address_remove(address, link, link_address_remove_handler);
|
||||
address_remove(address, link, NULL);
|
||||
|
||||
r = route_new(&route);
|
||||
if (r < 0)
|
||||
|
|
|
@ -1214,24 +1214,6 @@ static int link_enter_set_addresses(Link *link) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int link_address_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 != -EADDRNOTAVAIL)
|
||||
log_link_warning_errno(link, r, "Could not drop address: %m");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int link_set_bridge_vlan(Link *link) {
|
||||
int r = 0;
|
||||
|
||||
|
@ -2664,7 +2646,7 @@ static int link_drop_foreign_config(Link *link) {
|
|||
if (r < 0)
|
||||
return log_link_error_errno(link, r, "Failed to add address: %m");
|
||||
} else {
|
||||
r = address_remove(address, link, link_address_remove_handler);
|
||||
r = address_remove(address, link, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
@ -2700,7 +2682,7 @@ static int link_drop_config(Link *link) {
|
|||
if (address->family == AF_INET6 && in_addr_is_link_local(AF_INET6, &address->in_addr) == 1)
|
||||
continue;
|
||||
|
||||
r = address_remove(address, link, link_address_remove_handler);
|
||||
r = address_remove(address, link, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
|
|
@ -140,7 +140,6 @@ void link_drop(Link *link);
|
|||
int link_up(Link *link);
|
||||
int link_down(Link *link);
|
||||
|
||||
int link_address_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata);
|
||||
int link_route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata);
|
||||
|
||||
void link_enter_failed(Link *link);
|
||||
|
|
Loading…
Reference in New Issue