X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev-event.c;h=45dd77ba2edbaef83457f6747527a08c626132bf;hb=3b2e525a5621784287601573dbf8b55d76cbe407;hp=227c186236ad487d56d02ddab69d011d87d42cea;hpb=b0a00806770a7443d1710d58190a65b4f9f4f60e;p=elogind.git diff --git a/src/udev-event.c b/src/udev-event.c index 227c18623..45dd77ba2 100644 --- a/src/udev-event.c +++ b/src/udev-event.c @@ -347,14 +347,17 @@ subst: l = util_strpcpy(&s, l, udev_device_get_devnode(dev)); break; 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 custom name '%s'\n", event->name); - } else { + dbg(event->udev, "substitute custom node name '%s'\n", event->name); + } else if (udev_device_get_devnode(dev) != NULL) { + size_t devlen = strlen(udev_get_dev_path(event->udev))+1; + l = util_strpcpy(&s, l, &udev_device_get_devnode(dev)[devlen]); - dbg(event->udev, "substitute name'%s'\n", &udev_device_get_devnode(dev)[devlen]); + dbg(event->udev, "substitute node name'%s'\n", &udev_device_get_devnode(dev)[devlen]); + } else { + l = util_strpcpy(&s, l, udev_device_get_sysname(dev)); + dbg(event->udev, "substitute device name'%s'\n", udev_device_get_sysname(dev)); } break; } @@ -891,7 +894,7 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, udev_rules_apply_to_event(rules, event, sigmask); if (major(udev_device_get_devnum(dev)) != 0) - err = udev_node_remove(dev); + udev_node_remove(dev); } else { event->dev_db = udev_device_new_from_syspath(event->udev, udev_device_get_syspath(dev)); if (event->dev_db != NULL) { @@ -949,7 +952,7 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, } } - err = udev_node_add(dev, event->mode, event->uid, event->gid); + udev_node_add(dev, event->mode, event->uid, event->gid); } /* preserve old, or get new initialization timestamp */