From: Yu Watanabe Date: Tue, 2 Jan 2024 19:40:08 +0000 (+0900) Subject: network/address: make address_remove() take Link object that the address assigned to X-Git-Tag: v256-rc1~1333^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7f74b00ab0040e1fcbd30c53fef5f5579a499e0f;p=thirdparty%2Fsystemd.git network/address: make address_remove() take Link object that the address assigned to No functional change. Preparation for later commits. --- diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 4f27e3845fb..cfa57aaa71f 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -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; diff --git a/src/network/networkd-address.h b/src/network/networkd-address.h index 8273184d868..786005c1e4b 100644 --- a/src/network/networkd-address.h +++ b/src/network/networkd-address.h @@ -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); diff --git a/src/network/networkd-ipv4acd.c b/src/network/networkd-ipv4acd.c index 3d5e2036aa7..ee1f31ef0c6 100644 --- a/src/network/networkd-ipv4acd.c +++ b/src/network/networkd-ipv4acd.c @@ -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)); diff --git a/src/network/networkd-ipv4ll.c b/src/network/networkd-ipv4ll.c index c35738252bb..3fccb6d13c9 100644 --- a/src/network/networkd-ipv4ll.c +++ b/src/network/networkd-ipv4ll.c @@ -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) {