network/address: free Address object by caller that passed to link_request_address()

Follow-up for 9684a8ded0.

Now, the input Address object is always copied, hence it is not
necessary to free it in link_request_address().
This commit is contained in:
Yu Watanabe
2023-07-29 22:48:49 +09:00
parent ae85704760
commit f60e65583e
9 changed files with 13 additions and 19 deletions
+4 -9
View File
@@ -1246,13 +1246,11 @@ static int address_process_request(Request *req, Link *link, Address *address) {
int link_request_address(
Link *link,
Address *address,
bool consume_object,
const Address *address,
unsigned *message_counter,
address_netlink_handler_t netlink_handler,
Request **ret) {
_unused_ _cleanup_(address_freep) Address *address_will_be_freed = NULL;
Address *existing;
int r;
@@ -1260,9 +1258,6 @@ int link_request_address(
assert(address);
assert(address->source != NETWORK_CONFIG_SOURCE_FOREIGN);
if (consume_object)
address_will_be_freed = address;
if (address_get(link, address, &existing) < 0) {
_cleanup_(address_freep) Address *tmp = NULL;
@@ -1341,12 +1336,12 @@ static int static_address_handler(sd_netlink *rtnl, sd_netlink_message *m, Reque
return 1;
}
int link_request_static_address(Link *link, Address *address, bool consume) {
int link_request_static_address(Link *link, const Address *address) {
assert(link);
assert(address);
assert(address->source == NETWORK_CONFIG_SOURCE_STATIC);
return link_request_address(link, address, consume, &link->static_address_messages,
return link_request_address(link, address, &link->static_address_messages,
static_address_handler, NULL);
}
@@ -1360,7 +1355,7 @@ int link_request_static_addresses(Link *link) {
link->static_addresses_configured = false;
ORDERED_HASHMAP_FOREACH(a, link->network->addresses_by_section) {
r = link_request_static_address(link, a, false);
r = link_request_static_address(link, a);
if (r < 0)
return r;
}
+2 -3
View File
@@ -107,12 +107,11 @@ bool manager_has_address(Manager *manager, int family, const union in_addr_union
void address_cancel_request(Address *address);
int link_request_address(
Link *link,
Address *address,
bool consume_object,
const Address *address,
unsigned *message_counter,
address_netlink_handler_t netlink_handler,
Request **ret);
int link_request_static_address(Link *link, Address *address, bool consume);
int link_request_static_address(Link *link, const Address *address);
int link_request_static_addresses(Link *link);
int manager_rtnl_process_address(sd_netlink *nl, sd_netlink_message *message, Manager *m);
@@ -421,7 +421,7 @@ static int dhcp_pd_request_address(
else
address_unmark(existing);
r = link_request_address(link, TAKE_PTR(address), true, &link->dhcp_pd_messages,
r = link_request_address(link, address, &link->dhcp_pd_messages,
dhcp_pd_address_handler, NULL);
if (r < 0)
return log_link_error_errno(link, r, "Failed to request DHCP delegated prefix address: %m");
+1 -1
View File
@@ -115,7 +115,7 @@ int link_request_dhcp_server_address(Link *link) {
* Configure the DHCP server address only when it is not. */
return 0;
return link_request_static_address(link, TAKE_PTR(address), true);
return link_request_static_address(link, address);
}
static int link_find_dhcp_server_address(Link *link, Address **ret) {
+1 -1
View File
@@ -984,7 +984,7 @@ static int dhcp4_request_address(Link *link, bool announce) {
else
address_unmark(existing);
r = link_request_address(link, TAKE_PTR(addr), true, &link->dhcp4_messages,
r = link_request_address(link, addr, &link->dhcp4_messages,
dhcp4_address_handler, NULL);
if (r < 0)
return log_link_error_errno(link, r, "Failed to request DHCPv4 address: %m");
+1 -1
View File
@@ -232,7 +232,7 @@ static int dhcp6_request_address(
else
address_unmark(existing);
r = link_request_address(link, TAKE_PTR(addr), true, &link->dhcp6_messages,
r = link_request_address(link, addr, &link->dhcp6_messages,
dhcp6_address_handler, NULL);
if (r < 0)
return log_link_error_errno(link, r, "Failed to request DHCPv6 address %s/128: %m",
+1 -1
View File
@@ -120,7 +120,7 @@ static int ipv4ll_address_claimed(sd_ipv4ll *ll, Link *link) {
log_link_debug(link, "IPv4 link-local claim "IPV4_ADDRESS_FMT_STR,
IPV4_ADDRESS_FMT_VAL(address->in_addr.in));
return link_request_address(link, TAKE_PTR(address), true, NULL, ipv4ll_address_handler, NULL);
return link_request_address(link, address, NULL, ipv4ll_address_handler, NULL);
}
static void ipv4ll_handler(sd_ipv4ll *ll, int event, void *userdata) {
+1 -1
View File
@@ -250,7 +250,7 @@ static int ndisc_request_address(Address *in, Link *link, sd_ndisc_router *rt) {
is_new = address_get(link, address, NULL) < 0;
r = link_request_address(link, TAKE_PTR(address), true, &link->ndisc_messages,
r = link_request_address(link, address, &link->ndisc_messages,
ndisc_address_handler, NULL);
if (r < 0)
return r;
+1 -1
View File
@@ -214,7 +214,7 @@ int link_request_radv_addresses(Link *link) {
address->prefixlen = p->prefixlen;
address->route_metric = p->route_metric;
r = link_request_static_address(link, TAKE_PTR(address), true);
r = link_request_static_address(link, address);
if (r < 0)
return r;
}