diff options
author | Ray Strode <rstrode@redhat.com> | 2009-04-21 15:30:28 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2009-04-21 15:30:28 -0400 |
commit | 80107a061b3ac2300e9cec17f18d5dc02557a8d3 (patch) | |
tree | 5c7209180b1f86f1f05f5ccf3996c84ed95d8c34 | |
parent | 339ca93db8f4896eaf02667c1268ddc9d1830345 (diff) | |
download | gdm-80107a061b3ac2300e9cec17f18d5dc02557a8d3.tar.gz |
When one PAM conv. wins, actually stop the others
We weren't properly keeping the winning conversation
around in the previous commit
-rw-r--r-- | daemon/gdm-session-direct.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/daemon/gdm-session-direct.c b/daemon/gdm-session-direct.c index cb84f017..71730806 100644 --- a/daemon/gdm-session-direct.c +++ b/daemon/gdm-session-direct.c @@ -2308,13 +2308,20 @@ stop_all_other_conversations (GdmSessionDirect *session, conversation = (GdmSessionConversation *) value; if (conversation == conversation_to_keep) { - continue; + g_hash_table_iter_steal (&iter); + g_free (key); + } else { + stop_conversation (conversation); } - - stop_conversation (conversation); } g_hash_table_remove_all (session->priv->conversations); + + if (conversation_to_keep != NULL) { + g_hash_table_insert (session->priv->conversations, + g_strdup (conversation_to_keep->service_name), + conversation_to_keep); + } } static void |