[gdm/gnome-3-28] daemon/gdm-manager.c: quit plymouth when xdmcp is the only allowed connection.
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm/gnome-3-28] daemon/gdm-manager.c: quit plymouth when xdmcp is the only allowed connection.
- Date: Tue, 10 Apr 2018 13:40:13 +0000 (UTC)
commit 8d3889bafc4d4848bacdd61d57ae568add03bd60
Author: Yifan J <yfjiang suse com>
Date: Tue Apr 10 14:17:30 2018 +0800
daemon/gdm-manager.c: quit plymouth when xdmcp is the only allowed connection.
gdm is responsible to kill plymouth by spawning the "plymouth quit"
subprocesses in gdm-manager.c. The current code pathes of quiting
plymouth can never be reached when xdmcp is the only connection
allowed. Consequently in the case of
!show_local_greeter && xdmcp_enabled
the plymouth-quit-wait.service will never quit and the login prompt
will not popup without manual interference. This issue could be
more obviously observed when a downstream like openSUSE which
allows a customized sysconfig to switch the corresponding two
options on a headless server (s390), where the setup is usually:
DISPLAYMANAGER_REMOTE_ACCESS="yes"
DISPLAYMANAGER_STARTS_XSERVER="no"
The proposed patch handles this edge case by quit plymouth immediately
when the condition is detected.
https://bugzilla.gnome.org/show_bug.cgi?id=795120
daemon/gdm-manager.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index 69bae91..7539acf 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -2510,6 +2510,13 @@ gdm_manager_start (GdmManager *manager)
#ifdef HAVE_LIBXDMCP
/* Accept remote connections */
if (manager->priv->xdmcp_enabled) {
+#ifdef WITH_PLYMOUTH
+ /* Quit plymouth if xdmcp is the only display */
+ if (!manager->priv->show_local_greeter && manager->priv->plymouth_is_running) {
+ plymouth_quit_with_transition ();
+ manager->priv->plymouth_is_running = FALSE;
+ }
+#endif
if (manager->priv->xdmcp_factory != NULL) {
g_debug ("GdmManager: Accepting XDMCP connections...");
gdm_display_factory_start (GDM_DISPLAY_FACTORY (manager->priv->xdmcp_factory));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]