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);
}
}
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;
}
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;
}
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. */
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);