chiark / gitweb /
udev: net_id - fix OUI handling
[elogind.git] / src / udev / udev-event.c
index 2f4db3cc0c0b10f50f842a262f31e38db7290426..b75ed33fbf8a6a0f8a663c60c5d4ce2ebe3797b5 100644 (file)
@@ -90,24 +90,24 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char *
                 const char fmt;
                 enum subst_type type;
         } map[] = {
-                { .name = "devnode",        .fmt = 'N',        .type = SUBST_DEVNODE },
-                { .name = "tempnode",        .fmt = 'N',        .type = SUBST_DEVNODE },
-                { .name = "attr",        .fmt = 's',        .type = SUBST_ATTR },
-                { .name = "sysfs",        .fmt = 's',        .type = SUBST_ATTR },
-                { .name = "env",        .fmt = 'E',        .type = SUBST_ENV },
-                { .name = "kernel",        .fmt = 'k',        .type = SUBST_KERNEL },
-                { .name = "number",        .fmt = 'n',        .type = SUBST_KERNEL_NUMBER },
-                { .name = "driver",        .fmt = 'd',        .type = SUBST_DRIVER },
-                { .name = "devpath",        .fmt = 'p',        .type = SUBST_DEVPATH },
-                { .name = "id",                .fmt = 'b',        .type = SUBST_ID },
-                { .name = "major",        .fmt = 'M',        .type = SUBST_MAJOR },
-                { .name = "minor",        .fmt = 'm',        .type = SUBST_MINOR },
-                { .name = "result",        .fmt = 'c',        .type = SUBST_RESULT },
-                { .name = "parent",        .fmt = 'P',        .type = SUBST_PARENT },
-                { .name = "name",        .fmt = 'D',        .type = SUBST_NAME },
-                { .name = "links",        .fmt = 'L',        .type = SUBST_LINKS },
-                { .name = "root",        .fmt = 'r',        .type = SUBST_ROOT },
-                { .name = "sys",        .fmt = 'S',        .type = SUBST_SYS },
+                { .name = "devnode",  .fmt = 'N', .type = SUBST_DEVNODE },
+                { .name = "tempnode", .fmt = 'N', .type = SUBST_DEVNODE },
+                { .name = "attr",     .fmt = 's', .type = SUBST_ATTR },
+                { .name = "sysfs",    .fmt = 's', .type = SUBST_ATTR },
+                { .name = "env",      .fmt = 'E', .type = SUBST_ENV },
+                { .name = "kernel",   .fmt = 'k', .type = SUBST_KERNEL },
+                { .name = "number",   .fmt = 'n', .type = SUBST_KERNEL_NUMBER },
+                { .name = "driver",   .fmt = 'd', .type = SUBST_DRIVER },
+                { .name = "devpath",  .fmt = 'p', .type = SUBST_DEVPATH },
+                { .name = "id",       .fmt = 'b', .type = SUBST_ID },
+                { .name = "major",    .fmt = 'M', .type = SUBST_MAJOR },
+                { .name = "minor",    .fmt = 'm', .type = SUBST_MINOR },
+                { .name = "result",   .fmt = 'c', .type = SUBST_RESULT },
+                { .name = "parent",   .fmt = 'P', .type = SUBST_PARENT },
+                { .name = "name",     .fmt = 'D', .type = SUBST_NAME },
+                { .name = "links",    .fmt = 'L', .type = SUBST_LINKS },
+                { .name = "root",     .fmt = 'r', .type = SUBST_ROOT },
+                { .name = "sys",      .fmt = 'S', .type = SUBST_SYS },
         };
         const char *from;
         char *s;
@@ -797,8 +797,10 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
                 if (major(udev_device_get_devnum(dev)) != 0)
                         udev_node_remove(dev);
         } else {
-                event->dev_db = udev_device_new_from_syspath(event->udev, udev_device_get_syspath(dev));
+                event->dev_db = udev_device_new(event->udev);
                 if (event->dev_db != NULL) {
+                        udev_device_set_syspath(event->dev_db, udev_device_get_syspath(dev));
+                        udev_device_set_subsystem(event->dev_db, udev_device_get_subsystem(dev));
                         udev_device_read_db(event->dev_db, NULL);
                         udev_device_set_info_loaded(event->dev_db);