- snprintf(dirname, PATH_MAX, "%s/%s", basedir, udev->subsystem);
- dirname[PATH_MAX-1] = '\0';
- call_foreach_file(run_program, dirname, suffix, udev);
+ snprintf(dirname, sizeof(dirname), "%s/%s", basedir, udev->subsystem);
+ dirname[sizeof(dirname)-1] = '\0';
+ add_matching_files(&name_list, dirname, suffix);
+ }
+
+ snprintf(dirname, sizeof(dirname), "%s/default", basedir);
+ dirname[sizeof(dirname)-1] = '\0';
+ add_matching_files(&name_list, dirname, suffix);
+
+ list_for_each_entry_safe(name_loop, name_tmp, &name_list, node) {
+ execute_command(name_loop->name, udev->subsystem);
+ list_del(&name_loop->node);