assert(d);
assert(tag);
+ udev_device_get_is_initialized(d);
+
first = udev_device_get_tags_list_entry(d);
udev_list_entry_foreach(item, first)
if (streq(udev_list_entry_get_name(item), tag))
static int attach_device(Manager *m, const char *seat, const char *sysfs) {
struct udev_device *d;
char *rule = NULL, *file = NULL;
- const char *path;
+ const char *id_for_seat;
int r;
assert(m);
goto finish;
}
- path = udev_device_get_property_value(d, "ID_PATH");
- if (!path) {
+ id_for_seat = udev_device_get_property_value(d, "ID_FOR_SEAT");
+ if (!id_for_seat) {
r = -ENODEV;
goto finish;
}
- if (asprintf(&file, "/etc/udev/rules.d/72-seat-%s.rules", path) < 0) {
+ if (asprintf(&file, "/etc/udev/rules.d/72-seat-%s.rules", id_for_seat) < 0) {
r = -ENOMEM;
goto finish;
}
- if (asprintf(&rule, "TAG==\"seat\", ID_PATH==\"%s\", ID_SEAT=\"%s\"", path, seat) < 0) {
+ if (asprintf(&rule, "TAG==\"seat\", ENV{ID_FOR_SEAT}==\"%s\", ENV{ID_SEAT}=\"%s\"", id_for_seat, seat) < 0) {
r = -ENOMEM;
goto finish;
}
+ mkdir_p("/etc/udev/rules.d", 0755);
r = write_one_line_file(file, rule);
finish: