mirror of
https://github.com/systemd/systemd.git
synced 2025-02-25 21:57:32 +03:00
network/address: make address_remove() take Link object that the address assigned to
No functional change. Preparation for later commits.
This commit is contained in:
parent
e40a67809b
commit
7f74b00ab0
@ -1087,20 +1087,17 @@ static int address_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, Link
|
||||
return 1;
|
||||
}
|
||||
|
||||
int address_remove(Address *address) {
|
||||
int address_remove(Address *address, Link *link) {
|
||||
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
|
||||
Request *req;
|
||||
Link *link;
|
||||
int r;
|
||||
|
||||
assert(address);
|
||||
assert(IN_SET(address->family, AF_INET, AF_INET6));
|
||||
assert(address->link);
|
||||
assert(address->link->ifindex > 0);
|
||||
assert(address->link->manager);
|
||||
assert(address->link->manager->rtnl);
|
||||
|
||||
link = address->link;
|
||||
assert(link);
|
||||
assert(link->ifindex > 0);
|
||||
assert(link->manager);
|
||||
assert(link->manager->rtnl);
|
||||
|
||||
log_address_debug(address, "Removing", link);
|
||||
|
||||
@ -1132,13 +1129,13 @@ int address_remove(Address *address) {
|
||||
}
|
||||
|
||||
int address_remove_and_drop(Address *address) {
|
||||
if (!address)
|
||||
if (!address || !address->link)
|
||||
return 0;
|
||||
|
||||
address_cancel_request(address);
|
||||
|
||||
if (address_exists(address))
|
||||
return address_remove(address);
|
||||
return address_remove(address, address->link);
|
||||
|
||||
return address_drop(address);
|
||||
}
|
||||
@ -1260,7 +1257,7 @@ int link_drop_ipv6ll_addresses(Link *link) {
|
||||
existing = TAKE_PTR(a);
|
||||
}
|
||||
|
||||
r = address_remove(existing);
|
||||
r = address_remove(existing, link);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
@ -1320,7 +1317,7 @@ int link_drop_foreign_addresses(Link *link) {
|
||||
if (!address_is_marked(address))
|
||||
continue;
|
||||
|
||||
RET_GATHER(r, address_remove(address));
|
||||
RET_GATHER(r, address_remove(address, link));
|
||||
}
|
||||
|
||||
return r;
|
||||
@ -1341,7 +1338,7 @@ int link_drop_managed_addresses(Link *link) {
|
||||
if (!address_exists(address))
|
||||
continue;
|
||||
|
||||
RET_GATHER(r, address_remove(address));
|
||||
RET_GATHER(r, address_remove(address, link));
|
||||
}
|
||||
|
||||
return r;
|
||||
|
@ -89,7 +89,7 @@ Address* address_free(Address *address);
|
||||
int address_get(Link *link, const Address *in, Address **ret);
|
||||
int address_get_harder(Link *link, const Address *in, Address **ret);
|
||||
int address_configure_handler_internal(sd_netlink *rtnl, sd_netlink_message *m, Link *link, const char *error_msg);
|
||||
int address_remove(Address *address);
|
||||
int address_remove(Address *address, Link *link);
|
||||
int address_remove_and_drop(Address *address);
|
||||
int address_dup(const Address *src, Address **ret);
|
||||
bool address_is_ready(const Address *a);
|
||||
|
@ -92,7 +92,7 @@ static int static_ipv4acd_address_remove(Link *link, Address *address, bool on_c
|
||||
else
|
||||
log_link_debug(link, "Removing address %s, as the ACD client is stopped.", IN4_ADDR_TO_STRING(&address->in_addr.in));
|
||||
|
||||
r = address_remove(address);
|
||||
r = address_remove(address, link);
|
||||
if (r < 0)
|
||||
return log_link_warning_errno(link, r, "Failed to remove address %s: %m", IN4_ADDR_TO_STRING(&address->in_addr.in));
|
||||
|
||||
|
@ -82,7 +82,7 @@ static int ipv4ll_address_lost(Link *link) {
|
||||
log_link_debug(link, "IPv4 link-local release "IPV4_ADDRESS_FMT_STR,
|
||||
IPV4_ADDRESS_FMT_VAL(address->in_addr.in));
|
||||
|
||||
return address_remove(existing);
|
||||
return address_remove(existing, link);
|
||||
}
|
||||
|
||||
static int ipv4ll_address_handler(sd_netlink *rtnl, sd_netlink_message *m, Request *req, Link *link, Address *address) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user