X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-manager.c;h=c48c0180ad074b8de7e03dcc458239c0c355da6b;hb=5326b03f30b6b1d50437766afc09598a8be89f8f;hp=724e5e5a47f654c27103115d710ffd400907b7d3;hpb=22936833e177d9e477e059ec2b4f4fa9213b4e19;p=elogind.git diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index 724e5e5a4..c48c0180a 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -157,48 +157,42 @@ static int manager_process_link(Manager *m, struct udev_device *device) { } int manager_udev_enumerate_links(Manager *m) { + _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; struct udev_list_entry *item = NULL, *first = NULL; - struct udev_enumerate *e; int r; assert(m); e = udev_enumerate_new(m->udev); - if (!e) { - r = -ENOMEM; - goto finish; - } + if (!e) + return -ENOMEM; r = udev_enumerate_add_match_subsystem(e, "net"); if (r < 0) - goto finish; + return r; + + r = udev_enumerate_add_match_is_initialized(e); + if (r < 0) + return r; r = udev_enumerate_scan_devices(e); if (r < 0) - goto finish; + return r; first = udev_enumerate_get_list_entry(e); udev_list_entry_foreach(item, first) { - struct udev_device *d; + _cleanup_udev_device_unref_ struct udev_device *d = NULL; int k; d = udev_device_new_from_syspath(m->udev, udev_list_entry_get_name(item)); - if (!d) { - r = -ENOMEM; - goto finish; - } + if (!d) + return -ENOMEM; k = manager_process_link(m, d); - udev_device_unref(d); - if (k < 0) r = k; } -finish: - if (e) - udev_enumerate_unref(e); - return r; }