chiark / gitweb /
Merge nss-myhostname
[elogind.git] / src / udev / udev-event.c
index 33ed47763748e4365218afe382cab58ef8974b4d..5eedf4f0dfdad2530eb5d25462dd654930ceba71 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;
@@ -842,6 +842,12 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
                         if (event->dev_db != NULL)
                                 udev_node_update_old_links(dev, event->dev_db);
 
+                        if (!event->owner_set)
+                                event->uid = udev_device_get_devnode_uid(dev);
+
+                        if (!event->group_set)
+                                event->gid = udev_device_get_devnode_gid(dev);
+
                         if (!event->mode_set) {
                                 if (udev_device_get_devnode_mode(dev) > 0) {
                                         /* kernel supplied value */