20828N/A@@ -461,10 +462,53 @@ gdm_daemon_change_user (uid_t *uidp,
20828N/A+ kb_ok = (ioctl (fd, VT_GETSTATE, &vts) == 0);
20828N/A+ kb_ok = (ioctl (fd, CONS_GETVERS, &vers) == 0);
20828N/A+ return (isatty (fd) && kb_ok);
20828N/A+ fd = open (fnam, O_RDONLY | O_NOCTTY);
20828N/A+ if (fd < 0 && errno == EACCES)
20828N/A+ fd = open (fnam, O_WRONLY | O_NOCTTY);
20828N/A+ if (! ck_fd_is_a_console (fd)) {
20828N/A g_debug ("Got callback for signal %d", signo);
20891N/A@@ -484,6 +528,25 @@ signal_cb (int signo,
20828N/A /* let the fatal signals interrupt us */
20828N/A g_debug ("Caught signal %d, shutting down normally.", signo);
20828N/A+ /* Switch to VT1 before going down. */
20828N/A+ res = ioctl (fd, VT_ACTIVATE, 1);
20828N/A+ g_debug ("VT_ENABLE not supported, cannot switch to VT1");