diff options
-rw-r--r-- | RELEASE-NOTES | 11 | ||||
-rw-r--r-- | test/udev-test.pl | 10 | ||||
-rw-r--r-- | udev_rules.h | 7 | ||||
-rw-r--r-- | udev_rules_parse.c | 27 |
4 files changed, 26 insertions, 29 deletions
diff --git a/RELEASE-NOTES b/RELEASE-NOTES index ee77d845be..8895f46215 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -9,12 +9,13 @@ THE PLACE= key is gone. It can be replaced by an ID= for a long time, cause we walk up the chain of physical devices to find a match. The KEY="<value>" format supports '=', '==', '!=,' , '+=' now. This makes it -easier to skip certain devices without composing rules with weird character -class negations like: +easy to skip certain attribute matches without composing rules with weird +character class negations like: KERNEL="[!s][!c][!d]*" -this can be replaced by: +this can now be replaced with: KERNEL!="scd*" -The simple '=' is still supported, but the rules should be converted if -possible, to be better human-readable. +The current simple '=' is still supported, and should work as it does today, +but existing rules should be converted if possible, to be better readable. + diff --git a/test/udev-test.pl b/test/udev-test.pl index 8d66536b94..ebceccecb2 100644 --- a/test/udev-test.pl +++ b/test/udev-test.pl @@ -1161,6 +1161,16 @@ KERNEL=="sda1", PROGRAM!="/bin/false", NAME="nonzero-program" BUS=="scsi", KERNEL=="sda1", NAME="wrong" EOF }, + { + desc => "test for whitespace between the operator", + subsys => "block", + devpath => "/block/sda/sda1", + exp_name => "true", + conf => <<EOF +KERNEL == "sda1" , NAME = "true" +BUS=="scsi", KERNEL=="sda1", NAME="wrong" +EOF + }, ); # set env diff --git a/udev_rules.h b/udev_rules.h index d0142031e7..688d4798e1 100644 --- a/udev_rules.h +++ b/udev_rules.h @@ -20,8 +20,8 @@ * */ -#ifndef NAMEDEV_H -#define NAMEDEV_H +#ifndef UDEV_RULES_H +#define UDEV_RULES_H #include "libsysfs/sysfs/libsysfs.h" #include "udev.h" @@ -106,7 +106,4 @@ extern int udev_rules_init(void); extern int udev_rules_get_name(struct udevice *udev, struct sysfs_class_device *class_dev); extern void udev_rules_close(void); -extern void udev_rule_dump(struct udev_rule *rule); -extern void udev_rule_list_dump(void); - #endif diff --git a/udev_rules_parse.c b/udev_rules_parse.c index ac4755fd37..db83a67953 100644 --- a/udev_rules_parse.c +++ b/udev_rules_parse.c @@ -39,38 +39,27 @@ LIST_HEAD(udev_rule_list); -static int add_config_dev(struct udev_rule *new_rule) +static int add_config_dev(struct udev_rule *rule) { struct udev_rule *tmp_rule; tmp_rule = malloc(sizeof(*tmp_rule)); if (tmp_rule == NULL) return -ENOMEM; - memcpy(tmp_rule, new_rule, sizeof(*tmp_rule)); + memcpy(tmp_rule, rule, sizeof(struct udev_rule)); list_add_tail(&tmp_rule->node, &udev_rule_list); - udev_rule_dump(tmp_rule); - return 0; -} - -void udev_rule_dump(struct udev_rule *rule) -{ dbg("name='%s', symlink='%s', bus='%s', id='%s', " "sysfs_file[0]='%s', sysfs_value[0]='%s', " - "kernel='%s', program='%s', result='%s'" - "owner='%s', group='%s', mode=%#o", + "kernel='%s', program='%s', result='%s', " + "owner='%s', group='%s', mode=%#o, " + "all_partions=%u, ignore_remove=%u, ignore_device=%u, last_rule=%u", rule->name, rule->symlink, rule->bus, rule->id, rule->sysfs_pair[0].file, rule->sysfs_pair[0].value, - rule->kernel, rule->program, rule->result, - rule->owner, rule->group, rule->mode); -} + rule->kernel, rule->program, rule->result, rule->owner, rule->group, rule->mode, + rule->partitions, rule->ignore_remove, rule->ignore_device, rule->last_rule); -void udev_rule_list_dump(void) -{ - struct udev_rule *rule; - - list_for_each_entry(rule, &udev_rule_list, node) - udev_rule_dump(rule); + return 0; } static int get_key(char **line, char **key, enum key_operation *operation, char **value) |