summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2009-04-21 15:30:28 -0400
committerRay Strode <rstrode@redhat.com>2009-04-21 15:30:28 -0400
commit80107a061b3ac2300e9cec17f18d5dc02557a8d3 (patch)
tree5c7209180b1f86f1f05f5ccf3996c84ed95d8c34
parent339ca93db8f4896eaf02667c1268ddc9d1830345 (diff)
downloadgdm-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.c13
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