summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2009-02-05 15:20:25 -0500
committerRay Strode <rstrode@redhat.com>2011-03-08 01:04:22 -0500
commit7f4a779aa7d0e612db668f052fec5dac15a2f0bb (patch)
tree51bd1e0aed2165a588341a1d1ad9d3e0073ddaaa
parentcb6ce72d901d6b4eef629de3548c25177e10029a (diff)
downloadgdm-7f4a779aa7d0e612db668f052fec5dac15a2f0bb.tar.gz
daemon: ignore requests when in middle of reset
If we're starting to tear things down then stop handling any asynchronous requests that fly by.
-rw-r--r--daemon/gdm-simple-slave.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
index c5771965..3e0ed5c8 100644
--- a/daemon/gdm-simple-slave.c
+++ b/daemon/gdm-simple-slave.c
@@ -961,6 +961,9 @@ on_greeter_begin_auto_login (GdmGreeterServer *greeter_server,
GdmSimpleSlave *slave)
{
g_debug ("GdmSimpleSlave: begin auto login for user '%s'", username);
+ if (slave->priv->greeter_reset_id > 0) {
+ return;
+ }
gdm_session_setup_for_user (GDM_SESSION (slave->priv->session),
"gdm-autologin",
username);
@@ -972,6 +975,9 @@ on_greeter_begin_verification_for_user (GdmGreeterServer *greeter_server,
GdmSimpleSlave *slave)
{
g_debug ("GdmSimpleSlave: begin verification");
+ if (slave->priv->greeter_reset_id > 0) {
+ return;
+ }
gdm_session_setup_for_user (GDM_SESSION (slave->priv->session),
"gdm",
username);
@@ -982,6 +988,9 @@ on_greeter_answer (GdmGreeterServer *greeter_server,
const char *text,
GdmSimpleSlave *slave)
{
+ if (slave->priv->greeter_reset_id > 0) {
+ return;
+ }
gdm_session_answer_query (GDM_SESSION (slave->priv->session), text);
}
@@ -990,6 +999,9 @@ on_greeter_session_selected (GdmGreeterServer *greeter_server,
const char *text,
GdmSimpleSlave *slave)
{
+ if (slave->priv->greeter_reset_id > 0) {
+ return;
+ }
gdm_session_select_session (GDM_SESSION (slave->priv->session), text);
}
@@ -998,6 +1010,9 @@ on_greeter_language_selected (GdmGreeterServer *greeter_server,
const char *text,
GdmSimpleSlave *slave)
{
+ if (slave->priv->greeter_reset_id > 0) {
+ return;
+ }
gdm_session_select_language (GDM_SESSION (slave->priv->session), text);
}
@@ -1024,6 +1039,9 @@ on_greeter_connected (GdmGreeterServer *greeter_server,
gboolean display_is_local;
g_debug ("GdmSimpleSlave: Greeter connected");
+ if (slave->priv->greeter_reset_id > 0) {
+ return;
+ }
gdm_session_start_conversation (GDM_SESSION (slave->priv->session));
@@ -1059,6 +1077,9 @@ on_start_session_when_ready (GdmGreeterServer *session,
GdmSimpleSlave *slave)
{
g_debug ("GdmSimpleSlave: Will start session when ready");
+ if (slave->priv->greeter_reset_id > 0) {
+ return;
+ }
slave->priv->start_session_when_ready = TRUE;
if (slave->priv->waiting_to_start_session) {
@@ -1071,6 +1092,9 @@ on_start_session_later (GdmGreeterServer *session,
GdmSimpleSlave *slave)
{
g_debug ("GdmSimpleSlave: Will start session when ready and told");
+ if (slave->priv->greeter_reset_id > 0) {
+ return;
+ }
slave->priv->start_session_when_ready = FALSE;
}