chiark / gitweb /
logind: explicitly check for /dev/tty0
authorLennart Poettering <lennart@poettering.net>
Fri, 13 Apr 2012 15:54:33 +0000 (17:54 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 13 Apr 2012 16:52:53 +0000 (18:52 +0200)
src/login/logind.c

index 67117405e67027f8b7b48677ec2c34de3cfcc585..fc08c4bc69fc42d966761a5eaf5730dee4beed32 100644 (file)
@@ -945,14 +945,16 @@ static int manager_connect_console(Manager *m) {
         assert(m);
         assert(m->console_active_fd < 0);
 
+        /* On certain architectures (S390 and Xen, and containers),
+           /dev/tty0 does not exist, so don't fail if we can't open
+           it. */
+        if (access("/dev/tty0", F_OK) < 0) {
+                m->console_active_fd = -1;
+                return 0;
+        }
+
         m->console_active_fd = open("/sys/class/tty/tty0/active", O_RDONLY|O_NOCTTY|O_CLOEXEC);
         if (m->console_active_fd < 0) {
-
-                /* On certain architectures (S390 and Xen), /dev/tty0
-                   does not exist, so don't fail if we can't open it.*/
-                if (errno == ENOENT)
-                        return 0;
-
                 log_error("Failed to open /sys/class/tty/tty0/active: %m");
                 return -errno;
         }