summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2020-07-22 08:22:55 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2020-07-29 02:05:05 +0900
commit8eec0b9da598ba3b0042b82775ff6130a38f390f (patch)
tree394e13725105399de1e0b1346f4ed79e7ddf1bfe
parent5f58af25e6c3b449b6b6657d413f98002bc3f0b7 (diff)
downloadsystemd-8eec0b9da598ba3b0042b82775ff6130a38f390f.tar.gz
network: set key destructor in several hash_ops
-rw-r--r--src/network/networkd-address.c2
-rw-r--r--src/network/networkd-link.c16
-rw-r--r--src/network/networkd-manager.c6
-rw-r--r--src/network/networkd-neighbor.c2
-rw-r--r--src/network/networkd-routing-policy-rule.c7
-rw-r--r--src/network/test-routing-policy-rule.c2
6 files changed, 20 insertions, 15 deletions
diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c
index 216c425b34..96782d608a 100644
--- a/src/network/networkd-address.c
+++ b/src/network/networkd-address.c
@@ -205,7 +205,7 @@ static int address_compare_func(const Address *a1, const Address *a2) {
}
}
-DEFINE_HASH_OPS(address_hash_ops, Address, address_hash_func, address_compare_func);
+DEFINE_HASH_OPS_WITH_KEY_DESTRUCTOR(address_hash_ops, Address, address_hash_func, address_compare_func, address_free);
bool address_equal(Address *a1, Address *a2) {
if (a1 == a2)
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 15cfe39553..0acd35444e 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -711,17 +711,17 @@ static Link *link_free(Link *link) {
link_ntp_settings_clear(link);
link_dns_settings_clear(link);
- link->routes = set_free_with_destructor(link->routes, route_free);
- link->routes_foreign = set_free_with_destructor(link->routes_foreign, route_free);
+ link->routes = set_free(link->routes);
+ link->routes_foreign = set_free(link->routes_foreign);
- link->nexthops = set_free_with_destructor(link->nexthops, nexthop_free);
- link->nexthops_foreign = set_free_with_destructor(link->nexthops_foreign, nexthop_free);
+ link->nexthops = set_free(link->nexthops);
+ link->nexthops_foreign = set_free(link->nexthops_foreign);
- link->neighbors = set_free_with_destructor(link->neighbors, neighbor_free);
- link->neighbors_foreign = set_free_with_destructor(link->neighbors_foreign, neighbor_free);
+ link->neighbors = set_free(link->neighbors);
+ link->neighbors_foreign = set_free(link->neighbors_foreign);
- link->addresses = set_free_with_destructor(link->addresses, address_free);
- link->addresses_foreign = set_free_with_destructor(link->addresses_foreign, address_free);
+ link->addresses = set_free(link->addresses);
+ link->addresses_foreign = set_free(link->addresses_foreign);
while ((address = link->pool_addresses)) {
LIST_REMOVE(addresses, link->pool_addresses, address);
diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c
index f2c956c70f..a67ff250ee 100644
--- a/src/network/networkd-manager.c
+++ b/src/network/networkd-manager.c
@@ -1859,9 +1859,9 @@ void manager_free(Manager *m) {
/* routing_policy_rule_free() access m->rules and m->rules_foreign.
* So, it is necessary to set NULL after the sets are freed. */
- m->rules = set_free_with_destructor(m->rules, routing_policy_rule_free);
- m->rules_foreign = set_free_with_destructor(m->rules_foreign, routing_policy_rule_free);
- set_free_with_destructor(m->rules_saved, routing_policy_rule_free);
+ m->rules = set_free(m->rules);
+ m->rules_foreign = set_free(m->rules_foreign);
+ set_free(m->rules_saved);
sd_netlink_unref(m->rtnl);
sd_netlink_unref(m->genl);
diff --git a/src/network/networkd-neighbor.c b/src/network/networkd-neighbor.c
index 0e97b225c4..09ddb9c8a5 100644
--- a/src/network/networkd-neighbor.c
+++ b/src/network/networkd-neighbor.c
@@ -247,7 +247,7 @@ static int neighbor_compare_func(const Neighbor *a, const Neighbor *b) {
return memcmp(&a->lladdr, &b->lladdr, a->lladdr_size);
}
-DEFINE_PRIVATE_HASH_OPS(neighbor_hash_ops, Neighbor, neighbor_hash_func, neighbor_compare_func);
+DEFINE_PRIVATE_HASH_OPS_WITH_KEY_DESTRUCTOR(neighbor_hash_ops, Neighbor, neighbor_hash_func, neighbor_compare_func, neighbor_free);
int neighbor_get(Link *link, int family, const union in_addr_union *addr, const union lladdr_union *lladdr, size_t lladdr_size, Neighbor **ret) {
Neighbor neighbor, *existing;
diff --git a/src/network/networkd-routing-policy-rule.c b/src/network/networkd-routing-policy-rule.c
index e06d4b070a..36dad527d0 100644
--- a/src/network/networkd-routing-policy-rule.c
+++ b/src/network/networkd-routing-policy-rule.c
@@ -227,7 +227,12 @@ static int routing_policy_rule_compare_func(const RoutingPolicyRule *a, const Ro
}
}
-DEFINE_PRIVATE_HASH_OPS(routing_policy_rule_hash_ops, RoutingPolicyRule, routing_policy_rule_hash_func, routing_policy_rule_compare_func);
+DEFINE_PRIVATE_HASH_OPS_WITH_KEY_DESTRUCTOR(
+ routing_policy_rule_hash_ops,
+ RoutingPolicyRule,
+ routing_policy_rule_hash_func,
+ routing_policy_rule_compare_func,
+ routing_policy_rule_free);
int routing_policy_rule_get(Manager *m, RoutingPolicyRule *rule, RoutingPolicyRule **ret) {
diff --git a/src/network/test-routing-policy-rule.c b/src/network/test-routing-policy-rule.c
index d441099b5a..d84d746c3f 100644
--- a/src/network/test-routing-policy-rule.c
+++ b/src/network/test-routing-policy-rule.c
@@ -53,7 +53,7 @@ static void test_rule_serialization(const char *title, const char *ruleset, cons
log_info("$ %s", cmd);
assert_se(system(cmd) == 0);
- set_free_with_destructor(rules, routing_policy_rule_free);
+ set_free(rules);
}
int main(int argc, char **argv) {