diff options
author | William Jon McCann <jmccann@redhat.com> | 2008-03-18 22:36:59 +0000 |
---|---|---|
committer | William Jon McCann <mccann@src.gnome.org> | 2008-03-18 22:36:59 +0000 |
commit | 6b069889be9ee02fcce3031c3a5858a1b3863b4a (patch) | |
tree | 880e4a3a94ea30d872aa0dc3182545bea9147962 /daemon/gdm-simple-slave.c | |
parent | e351611e0c9e621e8e5355202661036f672632f2 (diff) | |
download | gdm-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.c | 18 |
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); |