From ed31a2b8daa1ad391c806c0c27cbe36c3135868a Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mar 20 2015 00:26:35 +0000 Subject: manager: don't pass display to functions that fetch timed/autologin details The only reason we need the display for autologin is to know if it's running on seat0 or not. Going forward we won't necessarily have a display up front, so drop the parameter, and just check the seat in the caller. For symmetry, drop the display paramater timed login, too, and do the display related checks in the lone caller. https://bugzilla.gnome.org/show_bug.cgi?id=746492 --- diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c index 204e40d..a0a95f3 100644 --- a/daemon/gdm-manager.c +++ b/daemon/gdm-manager.c @@ -1467,14 +1467,12 @@ display_is_on_seat0 (GdmDisplay *display) } static gboolean -get_timed_login_details_for_display (GdmManager *manager, - GdmDisplay *display, - char **usernamep, - int *delayp) +get_timed_login_details (GdmManager *manager, + char **usernamep, + int *delayp) { gboolean res; gboolean enabled; - gboolean allow_timed_login = FALSE; int delay; char *username = NULL; @@ -1483,16 +1481,6 @@ get_timed_login_details_for_display (GdmManager *manager, username = NULL; delay = 0; - g_object_get (G_OBJECT (display), "allow-timed-login", &allow_timed_login, NULL); - - if (!allow_timed_login) { - goto out; - } - - if (display_is_on_seat0 (display)) { - goto out; - } - res = gdm_settings_direct_get_boolean (GDM_KEY_TIMED_LOGIN_ENABLE, &enabled); if (res && ! enabled) { goto out; @@ -1535,9 +1523,8 @@ get_timed_login_details_for_display (GdmManager *manager, } static gboolean -get_automatic_login_details_for_display (GdmManager *manager, - GdmDisplay *display, - char **usernamep) +get_automatic_login_details (GdmManager *manager, + char **usernamep) { gboolean res; gboolean enabled; @@ -1546,10 +1533,6 @@ get_automatic_login_details_for_display (GdmManager *manager, enabled = FALSE; username = NULL; - if (!display_is_on_seat0 (display)) { - goto out; - } - res = gdm_settings_direct_get_boolean (GDM_KEY_AUTO_LOGIN_ENABLE, &enabled); if (res && enabled) { res = gdm_settings_direct_get_string (GDM_KEY_AUTO_LOGIN_USER, &username); @@ -1591,7 +1574,11 @@ display_should_autologin (GdmManager *manager, return FALSE; } - enabled = get_automatic_login_details_for_display (manager, display, NULL); + if (!display_is_on_seat0 (display)) { + return FALSE; + } + + enabled = get_automatic_login_details (manager, NULL); return enabled; } @@ -2158,6 +2145,7 @@ on_session_client_connected (GdmSession *session, char *username; int delay; gboolean enabled; + gboolean allow_timed_login = FALSE; g_debug ("GdmManager: client connected"); @@ -2167,7 +2155,17 @@ on_session_client_connected (GdmSession *session, return; } - enabled = get_timed_login_details_for_display (manager, display, &username, &delay); + if (!display_is_on_seat0 (display)) { + return; + } + + g_object_get (G_OBJECT (display), "allow-timed-login", &allow_timed_login, NULL); + + if (!allow_timed_login) { + return; + } + + enabled = get_timed_login_details (manager, &username, &delay); if (! enabled) { return; @@ -2283,7 +2281,11 @@ on_session_conversation_started (GdmSession *session, return; } - enabled = get_automatic_login_details_for_display (manager, display, &username); + if (!display_is_on_seat0 (display)) { + return; + } + + enabled = get_automatic_login_details (manager, &username); if (! enabled) { return;