chiark / gitweb /
allow multiple values to be matched with KEY=="value1|value2"
[elogind.git] / udev_rules_parse.c
index 2add91fa9fad720f407cb9bce4db16a528931c7e..9483bcd71f802789cbb4e4bf209c113af3cc01e3 100644 (file)
@@ -365,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;
                }
 
@@ -404,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;
                                }
                        }
@@ -543,6 +548,7 @@ static int rules_map(struct udev_rules *rules, const char *filename)
                rules->buf = NULL;
                return -1;
        }
+       rules->mapped = 1;
 
        return 0;
 }