unsigned int i;
unsigned int max;
struct syspath *prev = NULL, *move_later = NULL;
+ size_t move_later_prefix = 0;
udev_list_cleanup_entries(udev_enumerate->udev, &udev_enumerate->devices_list);
qsort(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp);
max = udev_enumerate->devices_cur;
for (i = 0; i < max; i++) {
struct syspath *entry = &udev_enumerate->devices[i];
- size_t move_later_prefix = 0;
/* skip duplicated entries */
if (prev != NULL &&
if (subdir1 != NULL)
l = util_strpcpyl(&s, l, "/", subdir1, NULL);
if (subdir2 != NULL)
- l = util_strpcpyl(&s, l, "/", subdir2, NULL);
+ util_strpcpyl(&s, l, "/", subdir2, NULL);
dir = opendir(path);
if (dir == NULL)
return -1;
continue;
util_strscpyl(syspath, sizeof(syspath), path, "/", dent->d_name, NULL);
+ if (!match_property(udev_enumerate, syspath))
+ continue;
if (lstat(syspath, &statbuf) != 0)
continue;
if (S_ISREG(statbuf.st_mode))
continue;
if (!match_sysattr(udev_enumerate, syspath))
continue;
- if (!match_property(udev_enumerate, syspath))
- continue;
syspath_add(udev_enumerate, syspath);
}
closedir(dir);
scan_dir(udev_enumerate, "bus", "devices", NULL);
dbg(udev, "searching '/class/*' dir\n");
scan_dir(udev_enumerate, "class", NULL, NULL);
- /* if block isn't a class, scan /block/ */
- util_strscpyl(base, sizeof(base), udev_get_sys_path(udev), "/class/block", NULL);
- if (stat(base, &statbuf) != 0) {
- if (match_subsystem(udev_enumerate, "block")) {
- dbg(udev, "searching '/block/*' dir\n");
- /* scan disks */
- scan_dir_and_add_devices(udev_enumerate, "block", NULL, NULL);
- /* scan partitions */
- dbg(udev, "searching '/block/*/*' dir\n");
- scan_dir(udev_enumerate, "block", NULL, "block");
- }
- }
}
return 0;
}