summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2013-03-26 13:16:20 +1300
committerRobert Ancell <robert.ancell@canonical.com>2013-03-26 13:16:20 +1300
commitf646fdf38acd91fe0c8ae553e77231f709399a2a (patch)
treee1e93b252f873c08efa5d846a461215d7aae05a2
parentd0bdebc5ffd321f16966e651fe76e23b655bdb65 (diff)
downloadlightdm-git-f646fdf38acd91fe0c8ae553e77231f709399a2a.tar.gz
Correctly check X server is terminated when returning to existing session
-rw-r--r--src/display-server.c8
-rw-r--r--tests/scripts/switch-to-greeter-return-session.conf8
2 files changed, 13 insertions, 3 deletions
diff --git a/src/display-server.c b/src/display-server.c
index 8b8eafaf..28110ef6 100644
--- a/src/display-server.c
+++ b/src/display-server.c
@@ -27,6 +27,9 @@ struct DisplayServerPrivate
/* TRUE if sessions should be automatically started on this display server */
gboolean start_local_sessions;
+
+ /* TRUE when being stopped */
+ gboolean stopping;
};
G_DEFINE_TYPE (DisplayServer, display_server, G_TYPE_OBJECT);
@@ -78,6 +81,11 @@ void
display_server_stop (DisplayServer *server)
{
g_return_if_fail (server != NULL);
+
+ if (server->priv->stopping)
+ return;
+ server->priv->stopping = TRUE;
+
DISPLAY_SERVER_GET_CLASS (server)->stop (server);
}
diff --git a/tests/scripts/switch-to-greeter-return-session.conf b/tests/scripts/switch-to-greeter-return-session.conf
index acdf4207..98315a1f 100644
--- a/tests/scripts/switch-to-greeter-return-session.conf
+++ b/tests/scripts/switch-to-greeter-return-session.conf
@@ -46,12 +46,14 @@ autologin-user=have-password1
#?*GREETER :51 RESPOND TEXT="password"
#?GREETER :51 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
#?*GREETER :51 START-SESSION
+
+# Greeter and X server stop
#?GREETER :51 TERMINATE SIGNAL=15
+#?XSERVER :51 TERMINATE SIGNAL=15
# Cleanup
#?*STOP-DAEMON
# Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
+#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
#?RUNNER DAEMON-EXIT STATUS=0