chiark / gitweb /
bus: beef up parameter checking in vtable handling
[elogind.git] / src / backlight / backlight.c
index 1ef0b45cc689a26e824daa84afde24d93c121ee8..f22deed4e081970729859ec92cea4c6a4fe1c0e3 100644 (file)
@@ -42,7 +42,7 @@ int main(int argc, char *argv[]) {
 
         umask(0022);
 
-        r = mkdir_p("/var/lib/backlight", 0755);
+        r = mkdir_p("/var/lib/systemd/backlight", 0755);
         if (r < 0) {
                 log_error("Failed to create backlight directory: %s", strerror(-r));
                 goto finish;
@@ -56,9 +56,11 @@ int main(int argc, char *argv[]) {
 
         errno = 0;
         device = udev_device_new_from_subsystem_sysname(udev, "backlight", argv[2]);
+        if (!device)
+                device = udev_device_new_from_subsystem_sysname(udev, "leds", argv[2]);
         if (!device) {
                 if (errno != 0) {
-                        log_error("Failed to get backlight device: %m");
+                        log_error("Failed to get backlight device '%s': %m", argv[2]);
                         r = -errno;
                 } else
                         r = log_oom();
@@ -66,13 +68,14 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
-        if (!streq_ptr(udev_device_get_subsystem(device), "backlight")) {
+        if (!streq_ptr(udev_device_get_subsystem(device), "backlight") &&
+            !streq_ptr(udev_device_get_subsystem(device), "leds")) {
                 log_error("Not a backlight device: %s", argv[2]);
                 r = -ENODEV;
                 goto finish;
         }
 
-        saved = strappend("/var/lib/backlight/", udev_device_get_sysname(device));
+        saved = strappend("/var/lib/systemd/backlight/", udev_device_get_sysname(device));
         if (!saved) {
                 r = log_oom();
                 goto finish;