|
|
c90517 |
From f40be88d090ecdef4cf877d8c3aeb7b76f9cb785 Mon Sep 17 00:00:00 2001
|
|
|
c90517 |
From: Ray Strode <rstrode@redhat.com>
|
|
|
c90517 |
Date: Mon, 24 Sep 2018 14:45:38 -0400
|
|
|
c90517 |
Subject: [PATCH 34/48] manager: don't run autologin display on tty1
|
|
|
c90517 |
|
|
|
c90517 |
tty1 is really meant for the login screen.
|
|
|
c90517 |
If a user autologins on it and we need a login
|
|
|
c90517 |
screen later, then the login screen has to go
|
|
|
c90517 |
in some auxiliary VT which isn't very nice.
|
|
|
c90517 |
|
|
|
c90517 |
This commit changes autologin to not use the
|
|
|
c90517 |
initial vt.
|
|
|
c90517 |
---
|
|
|
c90517 |
daemon/gdm-manager.c | 4 +---
|
|
|
c90517 |
1 file changed, 1 insertion(+), 3 deletions(-)
|
|
|
c90517 |
|
|
|
c90517 |
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
|
|
|
c90517 |
index 4c81dac7f..e896c8945 100644
|
|
|
c90517 |
--- a/daemon/gdm-manager.c
|
|
|
c90517 |
+++ b/daemon/gdm-manager.c
|
|
|
c90517 |
@@ -1308,74 +1308,72 @@ get_automatic_login_details (GdmManager *manager,
|
|
|
c90517 |
} else {
|
|
|
c90517 |
g_free (username);
|
|
|
c90517 |
}
|
|
|
c90517 |
|
|
|
c90517 |
return enabled;
|
|
|
c90517 |
}
|
|
|
c90517 |
|
|
|
c90517 |
static const char *
|
|
|
c90517 |
get_username_for_greeter_display (GdmManager *manager,
|
|
|
c90517 |
GdmDisplay *display)
|
|
|
c90517 |
{
|
|
|
c90517 |
gboolean doing_initial_setup = FALSE;
|
|
|
c90517 |
|
|
|
c90517 |
g_object_get (G_OBJECT (display),
|
|
|
c90517 |
"doing-initial-setup", &doing_initial_setup,
|
|
|
c90517 |
NULL);
|
|
|
c90517 |
|
|
|
c90517 |
if (doing_initial_setup) {
|
|
|
c90517 |
return INITIAL_SETUP_USERNAME;
|
|
|
c90517 |
} else {
|
|
|
c90517 |
return GDM_USERNAME;
|
|
|
c90517 |
}
|
|
|
c90517 |
}
|
|
|
c90517 |
|
|
|
c90517 |
static void
|
|
|
c90517 |
set_up_automatic_login_session (GdmManager *manager,
|
|
|
c90517 |
GdmDisplay *display)
|
|
|
c90517 |
{
|
|
|
c90517 |
GdmSession *session;
|
|
|
c90517 |
char *display_session_type = NULL;
|
|
|
c90517 |
- gboolean is_initial;
|
|
|
c90517 |
|
|
|
c90517 |
/* 0 is root user; since the daemon talks to the session object
|
|
|
c90517 |
* directly, itself, for automatic login
|
|
|
c90517 |
*/
|
|
|
c90517 |
session = create_user_session_for_display (manager, display, 0);
|
|
|
c90517 |
|
|
|
c90517 |
g_object_get (G_OBJECT (display),
|
|
|
c90517 |
- "is-initial", &is_initial,
|
|
|
c90517 |
"session-type", &display_session_type,
|
|
|
c90517 |
NULL);
|
|
|
c90517 |
|
|
|
c90517 |
g_object_set (G_OBJECT (session),
|
|
|
c90517 |
- "display-is-initial", is_initial,
|
|
|
c90517 |
+ "display-is-initial", FALSE,
|
|
|
c90517 |
NULL);
|
|
|
c90517 |
|
|
|
c90517 |
g_debug ("GdmManager: Starting automatic login conversation");
|
|
|
c90517 |
gdm_session_start_conversation (session, "gdm-autologin");
|
|
|
c90517 |
}
|
|
|
c90517 |
|
|
|
c90517 |
static void
|
|
|
c90517 |
set_up_chooser_session (GdmManager *manager,
|
|
|
c90517 |
GdmDisplay *display)
|
|
|
c90517 |
{
|
|
|
c90517 |
const char *allowed_user;
|
|
|
c90517 |
struct passwd *passwd_entry;
|
|
|
c90517 |
|
|
|
c90517 |
allowed_user = get_username_for_greeter_display (manager, display);
|
|
|
c90517 |
|
|
|
c90517 |
if (!gdm_get_pwent_for_name (allowed_user, &passwd_entry)) {
|
|
|
c90517 |
g_warning ("GdmManager: couldn't look up username %s",
|
|
|
c90517 |
allowed_user);
|
|
|
c90517 |
gdm_display_unmanage (display);
|
|
|
c90517 |
gdm_display_finish (display);
|
|
|
c90517 |
return;
|
|
|
c90517 |
}
|
|
|
c90517 |
|
|
|
c90517 |
gdm_display_start_greeter_session (display);
|
|
|
c90517 |
}
|
|
|
c90517 |
|
|
|
c90517 |
static void
|
|
|
c90517 |
set_up_greeter_session (GdmManager *manager,
|
|
|
c90517 |
GdmDisplay *display)
|
|
|
c90517 |
{
|
|
|
c90517 |
--
|
|
|
c90517 |
2.26.0
|
|
|
c90517 |
|