X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev_rules_parse.c;h=55412dba3c5a8e7e717236ffff1f0b8e321b300f;hb=9b434de102c8d4f74842bc6533c92cb3a4887d8d;hp=face496ab33b68880635fa099d417035e053a5a4;hpb=3e5958dee5f24283eb5c6a2d2d95e1a39428a3b8;p=elogind.git diff --git a/udev_rules_parse.c b/udev_rules_parse.c index face496ab..55412dba3 100644 --- a/udev_rules_parse.c +++ b/udev_rules_parse.c @@ -168,7 +168,7 @@ static char *get_key_attribute(char *str) return NULL; } -static int rules_parse(struct udevice *udev, const char *filename) +static int rules_parse(const char *filename) { char line[LINE_SIZE]; char *bufline; @@ -446,9 +446,18 @@ int udev_rules_init(void) return -1; if ((stats.st_mode & S_IFMT) != S_IFDIR) - retval = rules_parse(NULL, udev_rules_filename); - else - retval = call_foreach_file(rules_parse, NULL, udev_rules_filename, RULEFILE_SUFFIX); + retval = rules_parse(udev_rules_filename); + else { + struct name_entry *name_loop, *name_tmp; + LIST_HEAD(name_list); + + retval = add_matching_files(&name_list, udev_rules_filename, RULEFILE_SUFFIX); + + list_for_each_entry_safe(name_loop, name_tmp, &name_list, node) { + rules_parse(name_loop->name); + list_del(&name_loop->node); + } + } return retval; }