networkd: network - do reference counting on netdevs

This commit is contained in:
Tom Gundersen
2014-05-09 14:41:27 +02:00
parent 69a93e7db4
commit 47e2dc3168
+11
View File
@@ -145,6 +145,7 @@ int network_load(Manager *manager) {
}
void network_free(Network *network) {
NetDev *netdev;
Route *route;
Address *address;
Iterator i;
@@ -167,8 +168,16 @@ void network_free(Network *network) {
set_free(network->dns);
netdev_unref(network->bridge);
netdev_unref(network->bond);
HASHMAP_FOREACH(netdev, network->vlans, i)
netdev_unref(netdev);
hashmap_free(network->vlans);
HASHMAP_FOREACH(netdev, network->macvlans, i)
netdev_unref(netdev);
hashmap_free(network->macvlans);
while ((route = network->static_routes))
@@ -317,5 +326,7 @@ int config_parse_netdev(const char *unit,
assert_not_reached("Can not parse NetDev");
}
netdev_ref(netdev);
return 0;
}