gdm r5679 - in trunk: . daemon



Author: mccann
Date: Fri Feb  1 23:59:38 2008
New Revision: 5679
URL: http://svn.gnome.org/viewvc/gdm?rev=5679&view=rev

Log:
2008-02-01  William Jon McCann  <mccann jhu edu>

	* daemon/gdm-factory-slave.c: (on_greeter_session_start),
	(on_greeter_session_stop), (on_greeter_session_exited),
	(on_greeter_session_died), (run_greeter):
	* daemon/gdm-simple-slave.c: (on_greeter_session_start),
	(on_greeter_session_stop), (on_greeter_session_exited),
	(on_greeter_session_died), (run_greeter):
	* daemon/gdm-welcome-session.c: (stop_dbus_daemon),
	(welcome_session_child_watch), (start_dbus_daemon):
	Make sure slaves respond to exit of welcome session.



Modified:
   trunk/ChangeLog
   trunk/daemon/gdm-factory-slave.c
   trunk/daemon/gdm-simple-slave.c
   trunk/daemon/gdm-welcome-session.c

Modified: trunk/daemon/gdm-factory-slave.c
==============================================================================
--- trunk/daemon/gdm-factory-slave.c	(original)
+++ trunk/daemon/gdm-factory-slave.c	Fri Feb  1 23:59:38 2008
@@ -110,20 +110,39 @@
 }
 
 static void
-on_greeter_start (GdmGreeterSession *greeter,
-                  GdmFactorySlave   *slave)
+on_greeter_session_start (GdmGreeterSession *greeter,
+                          GdmFactorySlave   *slave)
 {
         g_debug ("GdmFactorySlave: Greeter started");
 }
 
 static void
-on_greeter_stop (GdmGreeterSession *greeter,
-                 GdmFactorySlave   *slave)
+on_greeter_session_stop (GdmGreeterSession *greeter,
+                         GdmFactorySlave   *slave)
 {
         g_debug ("GdmFactorySlave: Greeter stopped");
 }
 
 static void
+on_greeter_session_exited (GdmGreeterSession    *greeter,
+                           int                   code,
+                           GdmFactorySlave      *slave)
+{
+        g_debug ("GdmSimpleSlave: Greeter exited: %d", code);
+        gdm_slave_stopped (GDM_SLAVE (slave));
+}
+
+static void
+on_greeter_session_died (GdmGreeterSession    *greeter,
+                         int                   signal,
+                         GdmFactorySlave      *slave)
+{
+        g_debug ("GdmSimpleSlave: Greeter died: %d", signal);
+        gdm_slave_stopped (GDM_SLAVE (slave));
+}
+
+
+static void
 on_session_info (GdmSession      *session,
                  const char      *text,
                  GdmFactorySlave *slave)
@@ -506,11 +525,19 @@
                                                         display_is_local);
         g_signal_connect (slave->priv->greeter,
                           "started",
-                          G_CALLBACK (on_greeter_start),
+                          G_CALLBACK (on_greeter_session_start),
                           slave);
         g_signal_connect (slave->priv->greeter,
                           "stopped",
-                          G_CALLBACK (on_greeter_stop),
+                          G_CALLBACK (on_greeter_session_stop),
+                          slave);
+        g_signal_connect (slave->priv->greeter,
+                          "exited",
+                          G_CALLBACK (on_greeter_session_exited),
+                          slave);
+        g_signal_connect (slave->priv->greeter,
+                          "died",
+                          G_CALLBACK (on_greeter_session_died),
                           slave);
         g_object_set (slave->priv->greeter,
                       "x11-authority-file", auth_file,

Modified: trunk/daemon/gdm-simple-slave.c
==============================================================================
--- trunk/daemon/gdm-simple-slave.c	(original)
+++ trunk/daemon/gdm-simple-slave.c	Fri Feb  1 23:59:38 2008
@@ -491,17 +491,36 @@
 }
 
 static void
-on_greeter_start (GdmGreeterSession *greeter,
-                  GdmSimpleSlave    *slave)
+on_greeter_session_start (GdmGreeterSession *greeter,
+                          GdmSimpleSlave    *slave)
 {
         g_debug ("GdmSimpleSlave: Greeter started");
 }
 
 static void
-on_greeter_stop (GdmGreeterSession *greeter,
-                 GdmSimpleSlave    *slave)
+on_greeter_session_stop (GdmGreeterSession *greeter,
+                         GdmSimpleSlave    *slave)
 {
         g_debug ("GdmSimpleSlave: Greeter stopped");
+        gdm_slave_stopped (GDM_SLAVE (slave));
+}
+
+static void
+on_greeter_session_exited (GdmGreeterSession    *greeter,
+                           int                   code,
+                           GdmSimpleSlave       *slave)
+{
+        g_debug ("GdmSimpleSlave: Greeter exited: %d", code);
+        gdm_slave_stopped (GDM_SLAVE (slave));
+}
+
+static void
+on_greeter_session_died (GdmGreeterSession    *greeter,
+                         int                   signal,
+                         GdmSimpleSlave       *slave)
+{
+        g_debug ("GdmSimpleSlave: Greeter died: %d", signal);
+        gdm_slave_stopped (GDM_SLAVE (slave));
 }
 
 static void
@@ -687,11 +706,19 @@
                                                         display_is_local);
         g_signal_connect (slave->priv->greeter,
                           "started",
-                          G_CALLBACK (on_greeter_start),
+                          G_CALLBACK (on_greeter_session_start),
                           slave);
         g_signal_connect (slave->priv->greeter,
                           "stopped",
-                          G_CALLBACK (on_greeter_stop),
+                          G_CALLBACK (on_greeter_session_stop),
+                          slave);
+        g_signal_connect (slave->priv->greeter,
+                          "exited",
+                          G_CALLBACK (on_greeter_session_exited),
+                          slave);
+        g_signal_connect (slave->priv->greeter,
+                          "died",
+                          G_CALLBACK (on_greeter_session_died),
                           slave);
         g_object_set (slave->priv->greeter,
                       "x11-authority-file", auth_file,

Modified: trunk/daemon/gdm-welcome-session.c
==============================================================================
--- trunk/daemon/gdm-welcome-session.c	(original)
+++ trunk/daemon/gdm-welcome-session.c	Fri Feb  1 23:59:38 2008
@@ -325,6 +325,18 @@
         return env;
 }
 
+
+static gboolean
+stop_dbus_daemon (GdmWelcomeSession *welcome_session)
+{
+        if (welcome_session->priv->dbus_pid > 0) {
+                g_debug ("GdmWelcomeSession: Stopping D-Bus daemon");
+                gdm_signal_pid (-1 * welcome_session->priv->dbus_pid, SIGTERM);
+                welcome_session->priv->dbus_pid = 0;
+        }
+        return TRUE;
+}
+
 static void
 welcome_session_child_watch (GPid               pid,
                              int                status,
@@ -353,6 +365,7 @@
         if (session->priv->ckc != NULL) {
                 close_welcome_session (session);
         }
+        stop_dbus_daemon (session);
 }
 
 typedef struct {
@@ -615,8 +628,6 @@
         GError    *error;
         GPtrArray *env;
 
-
-        sleep(10);
         g_debug ("GdmWelcomeSession: Starting D-Bus daemon");
 
         env = get_welcome_environment (welcome_session);
@@ -653,17 +664,6 @@
 }
 
 static gboolean
-stop_dbus_daemon (GdmWelcomeSession *welcome_session)
-{
-        if (welcome_session->priv->dbus_pid > 0) {
-                g_debug ("GdmWelcomeSession: Stopping D-Bus daemon");
-                gdm_signal_pid (-1 * welcome_session->priv->dbus_pid, SIGTERM);
-                welcome_session->priv->dbus_pid = 0;
-        }
-        return TRUE;
-}
-
-static gboolean
 gdm_welcome_session_spawn (GdmWelcomeSession *welcome_session)
 {
         GError          *error;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]