summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2016-04-19 11:02:08 -0400
committerRay Strode <rstrode@redhat.com>2017-03-03 15:32:39 -0500
commit9f0a6c7e3a417db385b4d28285f7f26c0f80ca94 (patch)
tree6462567333cc502e651021c444a26b2d9da4d018
parent7be68258b6d9b51d574311aef7ab3ab35629a939 (diff)
downloadgdm-9f0a6c7e3a417db385b4d28285f7f26c0f80ca94.tar.gz
manager: handle session failing to start
Right now if a session fails really early in the start up process, we fail to handle it. This commit fixes that. https://bugzilla.gnome.org/show_bug.cgi?id=779498
-rw-r--r--daemon/gdm-manager.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index 0056079f..0cd5a918 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -1733,6 +1733,15 @@ remove_user_session (GdmManager *manager,
}
static void
+on_session_start_failed (GdmSession *session,
+ const char *service_name,
+ GdmManager *manager)
+{
+ g_debug ("GdmManager: session failed to start");
+ remove_user_session (manager, session);
+}
+
+static void
on_user_session_exited (GdmSession *session,
int code,
GdmManager *manager)
@@ -2111,6 +2120,10 @@ create_embryonic_user_session_for_display (GdmManager *manager,
G_CALLBACK (on_user_session_started),
manager);
g_signal_connect (session,
+ "session-start-failed",
+ G_CALLBACK (on_session_start_failed),
+ manager);
+ g_signal_connect (session,
"session-exited",
G_CALLBACK (on_user_session_exited),
manager);