From: Yu Watanabe Date: Fri, 11 Apr 2025 02:04:16 +0000 (+0900) Subject: network: use in6_addr_hash_ops_free in Network.ipv6_proxy_ndp_addresses X-Git-Tag: v258-rc1~790^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6d1a69d0f08d06a4252b46a8923b5e859eff1b02;p=thirdparty%2Fsystemd.git network: use in6_addr_hash_ops_free in Network.ipv6_proxy_ndp_addresses This also one adjustment to network_adjust_ipv6_proxy_ndp(). --- diff --git a/src/network/networkd-ipv6-proxy-ndp.c b/src/network/networkd-ipv6-proxy-ndp.c index edd369a9e78..03c16c50c0f 100644 --- a/src/network/networkd-ipv6-proxy-ndp.c +++ b/src/network/networkd-ipv6-proxy-ndp.c @@ -22,7 +22,13 @@ void network_adjust_ipv6_proxy_ndp(Network *network) { log_once(LOG_WARNING, "%s: IPv6 proxy NDP addresses are set, but IPv6 is not supported by kernel, " "Ignoring IPv6 proxy NDP addresses.", network->filename); - network->ipv6_proxy_ndp_addresses = set_free_free(network->ipv6_proxy_ndp_addresses); + network->ipv6_proxy_ndp_addresses = set_free(network->ipv6_proxy_ndp_addresses); + return; + } + + if (network->ipv6_proxy_ndp == 0) { + log_warning("%s: IPv6ProxyNDP= is disabled. Ignoring IPv6ProxyNDPAddress=.", network->filename); + network->ipv6_proxy_ndp_addresses = set_free(network->ipv6_proxy_ndp_addresses); } } @@ -149,7 +155,7 @@ int config_parse_ipv6_proxy_ndp_address( assert(rvalue); if (isempty(rvalue)) { - network->ipv6_proxy_ndp_addresses = set_free_free(network->ipv6_proxy_ndp_addresses); + network->ipv6_proxy_ndp_addresses = set_free(network->ipv6_proxy_ndp_addresses); return 0; } @@ -170,11 +176,9 @@ int config_parse_ipv6_proxy_ndp_address( if (!address) return log_oom(); - r = set_ensure_put(&network->ipv6_proxy_ndp_addresses, &in6_addr_hash_ops, address); + r = set_ensure_consume(&network->ipv6_proxy_ndp_addresses, &in6_addr_hash_ops_free, TAKE_PTR(address)); if (r < 0) return log_oom(); - if (r > 0) - TAKE_PTR(address); return 0; } diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index db36893d957..0a45df5c8e2 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -291,11 +291,6 @@ int network_verify(Network *network) { if (network->keep_configuration < 0) network->keep_configuration = KEEP_CONFIGURATION_NO; - if (network->ipv6_proxy_ndp == 0 && !set_isempty(network->ipv6_proxy_ndp_addresses)) { - log_warning("%s: IPv6ProxyNDP= is disabled. Ignoring IPv6ProxyNDPAddress=.", network->filename); - network->ipv6_proxy_ndp_addresses = set_free_free(network->ipv6_proxy_ndp_addresses); - } - r = network_drop_invalid_addresses(network); if (r < 0) return r; /* network_drop_invalid_addresses() logs internally. */ @@ -828,7 +823,7 @@ static Network *network_free(Network *network) { hashmap_free_with_destructor(network->stacked_netdevs, netdev_unref); /* static configs */ - set_free_free(network->ipv6_proxy_ndp_addresses); + set_free(network->ipv6_proxy_ndp_addresses); ordered_hashmap_free(network->addresses_by_section); hashmap_free(network->routes_by_section); ordered_hashmap_free(network->nexthops_by_section);