chiark / gitweb /
networkd: make sure Links and Networks are freed
[elogind.git] / src / network / networkd-manager.c
index 5000674bd916e778e7281648c1ed43ca5b743715..e376d388722811a2c106d0eb88341ae2ff8298f7 100644 (file)
@@ -73,11 +73,21 @@ int manager_new(Manager **ret) {
 }
 
 void manager_free(Manager *m) {
+        Network *network;
+        Link *link;
+
         udev_monitor_unref(m->udev_monitor);
         udev_unref(m->udev);
         sd_event_source_unref(m->udev_event_source);
         sd_event_unref(m->event);
+
+        while ((network = m->networks))
+                network_free(network);
+
+        while ((link = hashmap_first(m->links)))
+                link_free(link);
         hashmap_free(m->links);
+
         strv_free(m->network_dirs);
         sd_rtnl_unref(m->rtnl);