chiark / gitweb /
update RELEASE-NOTES
[elogind.git] / udev_rules_parse.c
index c36fc8224c69772b9cefee303c922c823b13352a..a2f2f1804b2279470b5a0e786c3764e1967382d9 100644 (file)
@@ -284,6 +284,12 @@ static int add_to_rules(struct udev_rules *rules, char *line)
                        continue;
                }
 
+               if (strcasecmp(key, "WAIT_FOR_SYSFS") == 0) {
+                       add_rule_key(rule, &rule->wait_for_sysfs, operation, value);
+                       valid = 1;
+                       continue;
+               }
+
                if (strncasecmp(key, "ENV", sizeof("ENV")-1) == 0) {
                        attr = get_key_attribute(key + sizeof("ENV")-1);
                        if (attr == NULL) {
@@ -359,7 +365,12 @@ static int add_to_rules(struct udev_rules *rules, char *line)
                                        rule->ignore_remove = 1;
                                }
                        }
-                       add_rule_key(rule, &rule->name, operation, value);
+                       if (value[0] == '\0') {
+                               dbg("name empty device should be ignored");
+                               rule->name.operation = operation;
+                               rule->ignore_device = 1;
+                       } else
+                               add_rule_key(rule, &rule->name, operation, value);
                        continue;
                }
 
@@ -398,7 +409,7 @@ static int add_to_rules(struct udev_rules *rules, char *line)
                                        gid_t gid = lookup_group(value);
                                        dbg("replacing groupname='%s' by id=%i", value, gid);
                                        sprintf(group, "%li", gid);
-                                       add_rule_key(rule, &rule->owner, operation, group);
+                                       add_rule_key(rule, &rule->group, operation, group);
                                        continue;
                                }
                        }