diff options
Diffstat (limited to 'gnome-base/gdm/files/gdm-3.2.1.1-pam-fix-1.patch')
-rw-r--r-- | gnome-base/gdm/files/gdm-3.2.1.1-pam-fix-1.patch | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/gnome-base/gdm/files/gdm-3.2.1.1-pam-fix-1.patch b/gnome-base/gdm/files/gdm-3.2.1.1-pam-fix-1.patch deleted file mode 100644 index 0fe399ee0376..000000000000 --- a/gnome-base/gdm/files/gdm-3.2.1.1-pam-fix-1.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 9c354795892b8c5fd661a35653991a88fabc76bf Mon Sep 17 00:00:00 2001 -From: Ray Strode <rstrode@redhat.com> -Date: Mon, 24 Oct 2011 16:39:45 -0400 -Subject: [PATCH] daemon: Don't emit session-exited when non-authenticated - worker fails - -Sometimes PAM modules are finicky and don't die when you tell them to. -Instead they fail some seconds later. - -If a user successfully logs in with one stack and another stack is -being troublesome, then we'll get notified about it finishing up -after the user is already logged in. - -When that happens, we erroneously assume the stack finishing is the -stack the user's session is running on and then proceed to log the -user out. - -This commit makes us be a little more careful about our bookkeeping -so we can ignore failures from slow PAM modules. ---- - daemon/gdm-session-direct.c | 23 ++++++++++++++--------- - 1 files changed, 14 insertions(+), 9 deletions(-) - -diff --git a/daemon/gdm-session-direct.c b/daemon/gdm-session-direct.c -index e178985..bb2bff8 100644 ---- a/daemon/gdm-session-direct.c -+++ b/daemon/gdm-session-direct.c -@@ -91,10 +91,11 @@ struct _GdmSessionDirectPrivate - - GHashTable *conversations; - -+ GdmSessionConversation *session_conversation; -+ - GList *pending_connections; - - GPid session_pid; -- guint32 is_running : 1; - - /* object lifetime scope */ - char *id; -@@ -1073,7 +1074,7 @@ gdm_session_direct_handle_session_started (GdmSessionDirect *session, - pid); - - session->priv->session_pid = pid; -- session->priv->is_running = TRUE; -+ session->priv->session_conversation = conversation; - - _gdm_session_session_started (GDM_SESSION (session), conversation->service_name, pid); - -@@ -1129,7 +1130,7 @@ gdm_session_direct_handle_session_exited (GdmSessionDirect *session, - g_debug ("GdmSessionDirect: Emitting 'session-exited' signal with exit code '%d'", - code); - -- session->priv->is_running = FALSE; -+ session->priv->session_conversation = NULL; - _gdm_session_session_exited (GDM_SESSION (session), code); - - return DBUS_HANDLER_RESULT_HANDLED; -@@ -1158,7 +1159,7 @@ gdm_session_direct_handle_session_died (GdmSessionDirect *session, - g_debug ("GdmSessionDirect: Emitting 'session-died' signal with signal number '%d'", - code); - -- session->priv->is_running = FALSE; -+ session->priv->session_conversation = NULL; - _gdm_session_session_died (GDM_SESSION (session), code); - - return DBUS_HANDLER_RESULT_HANDLED; -@@ -1790,7 +1791,7 @@ worker_exited (GdmSessionWorkerJob *job, - g_debug ("GdmSessionDirect: Worker job exited: %d", code); - - g_object_ref (conversation->job); -- if (conversation->session->priv->is_running) { -+ if (conversation->session->priv->session_conversation == conversation) { - _gdm_session_session_exited (GDM_SESSION (conversation->session), code); - } - -@@ -1819,7 +1820,7 @@ worker_died (GdmSessionWorkerJob *job, - g_debug ("GdmSessionDirect: Worker job died: %d", signum); - - g_object_ref (conversation->job); -- if (conversation->session->priv->is_running) { -+ if (conversation->session->priv->session_conversation == conversation) { - _gdm_session_session_died (GDM_SESSION (conversation->session), signum); - } - -@@ -2442,6 +2443,10 @@ stop_all_other_conversations (GdmSessionDirect *session, - g_strdup (conversation_to_keep->service_name), - conversation_to_keep); - } -+ -+ if (session->priv->session_conversation != conversation_to_keep) { -+ session->priv->session_conversation = NULL; -+ } - } - - } -@@ -2456,7 +2461,7 @@ gdm_session_direct_start_session (GdmSession *session, - char *program; - - g_return_if_fail (session != NULL); -- g_return_if_fail (impl->priv->is_running == FALSE); -+ g_return_if_fail (impl->priv->session_conversation == NULL); - - conversation = find_conversation_by_name (impl, service_name); - -@@ -2504,7 +2509,7 @@ gdm_session_direct_close (GdmSession *session) - - g_debug ("GdmSessionDirect: Closing session"); - -- if (impl->priv->is_running) { -+ if (impl->priv->session_conversation != NULL) { - gdm_session_record_logout (impl->priv->session_pid, - impl->priv->selected_user, - impl->priv->display_hostname, -@@ -2540,7 +2545,7 @@ gdm_session_direct_close (GdmSession *session) - g_hash_table_remove_all (impl->priv->environment); - - impl->priv->session_pid = -1; -- impl->priv->is_running = FALSE; -+ impl->priv->session_conversation = NULL; - } - - static void --- -1.7.8.1 - |