gdm r5679 - in trunk: . daemon
- From: mccann svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r5679 - in trunk: . daemon
- Date: Fri, 1 Feb 2008 23:59:38 +0000 (GMT)
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]