From 6d1a69d0f08d06a4252b46a8923b5e859eff1b02 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 11 Apr 2025 11:04:16 +0900 Subject: [PATCH] network: use in6_addr_hash_ops_free in Network.ipv6_proxy_ndp_addresses This also one adjustment to network_adjust_ipv6_proxy_ndp(). --- src/network/networkd-ipv6-proxy-ndp.c | 14 +++++++++----- src/network/networkd-network.c | 7 +------ 2 files changed, 10 insertions(+), 11 deletions(-) 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); -- 2.47.3