chiark / gitweb /
Makefile: use udevdir in "make install"
[elogind.git] / udev_rules.c
index d476e699e408b1c3d0d3590fca6af353a1209f31..f4ee11a56c8187904e91bc5b973e71a1899fba09 100644 (file)
@@ -1397,6 +1397,10 @@ int udev_rules_get_name(struct udev_rules *rules, struct udevice *udev)
                                udev->link_priority = rule->link_priority;
                                info("link_priority=%i\n", udev->link_priority);
                        }
+                       if (rule->event_timeout >= 0) {
+                               udev->event_timeout = rule->event_timeout;
+                               info("event_timeout=%i\n", udev->event_timeout);
+                       }
                        /* apply all_partitions option only at a main block device */
                        if (rule->partitions &&
                            strcmp(udev->dev->subsystem, "block") == 0 && udev->dev->kernel_number[0] == '\0') {
@@ -1408,7 +1412,10 @@ int udev_rules_get_name(struct udev_rules *rules, struct udevice *udev)
                        if (!udev->mode_final && rule->mode.operation != KEY_OP_UNSET) {
                                if (rule->mode.operation == KEY_OP_ASSIGN_FINAL)
                                        udev->mode_final = 1;
-                               udev->mode = strtol(key_val(rule, &rule->mode), NULL, 8);
+                               char buf[20];
+                               strlcpy(buf, key_val(rule, &rule->mode), sizeof(buf));
+                               udev_rules_apply_format(udev, buf, sizeof(buf));
+                               udev->mode = strtol(buf, NULL, 8);
                                dbg("applied mode=%#o to '%s'\n", udev->mode, udev->dev->kernel);
                        }
                        if (!udev->owner_final && rule->owner.operation != KEY_OP_UNSET) {