From: Kay Sievers Date: Mon, 23 Jan 2012 03:44:35 +0000 (+0100) Subject: use devnode() for $name not sysname(), device nodes might be in a subdirectory X-Git-Tag: 179~7 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=b0a00806770a7443d1710d58190a65b4f9f4f60e;hp=a1525d172014e66f97d82fc1e9096444597abcc7 use devnode() for $name not sysname(), device nodes might be in a subdirectory --- diff --git a/src/udev-event.c b/src/udev-event.c index f0b9548f3..227c18623 100644 --- a/src/udev-event.c +++ b/src/udev-event.c @@ -346,15 +346,18 @@ subst: if (udev_device_get_devnode(dev) != NULL) l = util_strpcpy(&s, l, udev_device_get_devnode(dev)); break; - case SUBST_NAME: + case SUBST_NAME: { + size_t devlen = strlen(udev_get_dev_path(event->udev))+1; + if (event->name != NULL) { l = util_strpcpy(&s, l, event->name); - dbg(event->udev, "substitute name '%s'\n", event->name); + dbg(event->udev, "substitute custom name '%s'\n", event->name); } else { - l = util_strpcpy(&s, l, udev_device_get_sysname(dev)); - dbg(event->udev, "substitute sysname '%s'\n", udev_device_get_sysname(dev)); + l = util_strpcpy(&s, l, &udev_device_get_devnode(dev)[devlen]); + dbg(event->udev, "substitute name'%s'\n", &udev_device_get_devnode(dev)[devlen]); } break; + } case SUBST_LINKS: { size_t devlen = strlen(udev_get_dev_path(event->udev))+1; struct udev_list_entry *list_entry; @@ -928,7 +931,7 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, } } - if (major(udev_device_get_devnum(dev)) != 0) { + if (major(udev_device_get_devnum(dev)) > 0) { /* remove/update possible left-over symlinks from old database entry */ if (event->dev_db != NULL) udev_node_update_old_links(dev, event->dev_db);