summaryrefslogtreecommitdiff
path: root/daemon/gdm-simple-slave.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <jmccann@redhat.com>2008-03-18 22:36:59 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2008-03-18 22:36:59 +0000
commit6b069889be9ee02fcce3031c3a5858a1b3863b4a (patch)
tree880e4a3a94ea30d872aa0dc3182545bea9147962 /daemon/gdm-simple-slave.c
parente351611e0c9e621e8e5355202661036f672632f2 (diff)
downloadgdm-6b069889be9ee02fcce3031c3a5858a1b3863b4a.tar.gz
Make sure to kill the simple slave after switching to an existing session.
2008-03-18 William Jon McCann <jmccann@redhat.com> * daemon/gdm-simple-slave.c: (gdm_simple_slave_accredit_when_ready), (start_session_timeout), (on_session_accreditation_failed): Make sure to kill the simple slave after switching to an existing session. svn path=/trunk/; revision=6041
Diffstat (limited to 'daemon/gdm-simple-slave.c')
-rw-r--r--daemon/gdm-simple-slave.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
index c2f20546..f0e56fe7 100644
--- a/daemon/gdm-simple-slave.c
+++ b/daemon/gdm-simple-slave.c
@@ -217,7 +217,7 @@ gdm_simple_slave_accredit_when_ready (GdmSimpleSlave *slave)
username = gdm_session_direct_get_username (slave->priv->session);
- ssid = gdm_slave_get_primary_session_id_for_user (slave, username);
+ ssid = gdm_slave_get_primary_session_id_for_user (GDM_SLAVE (slave), username);
if (ssid != NULL && ssid [0] != '\0') {
/* FIXME: we don't yet support refresh */
cred_flag = GDM_SESSION_CRED_ESTABLISH;
@@ -287,7 +287,8 @@ start_session_timeout (GdmSimpleSlave *slave)
slave->priv->session = NULL;
}
- queue_greeter_reset (slave);
+ gdm_slave_stopped (GDM_SLAVE (slave));
+
goto out;
}
@@ -343,12 +344,15 @@ on_session_accreditation_failed (GdmSession *session,
accreditation fails */
if (! migrated) {
gdm_greeter_server_problem (slave->priv->greeter_server, _("Unable establish credentials"));
- }
+ } else {
- if (slave->priv->session != NULL) {
- gdm_session_close (GDM_SESSION (slave->priv->session));
- g_object_unref (slave->priv->session);
- slave->priv->session = NULL;
+ if (slave->priv->session != NULL) {
+ gdm_session_close (GDM_SESSION (slave->priv->session));
+ g_object_unref (slave->priv->session);
+ slave->priv->session = NULL;
+ }
+
+ gdm_slave_stopped (GDM_SLAVE (slave));
}
queue_greeter_reset (slave);