gnome-session r4897 - in branches/dbus_based: . gnome-session



Author: mccann
Date: Wed Jul 30 18:56:39 2008
New Revision: 4897
URL: http://svn.gnome.org/viewvc/gnome-session?rev=4897&view=rev

Log:
2008-07-30  William Jon McCann  <jmccann redhat com>

	* gnome-session/main.c (on_bus_name_lost), (acquire_name_on_proxy),
	(acquire_name):
	Handle NameLost signal and exit when disconnected from bus.



Modified:
   branches/dbus_based/ChangeLog
   branches/dbus_based/gnome-session/main.c

Modified: branches/dbus_based/gnome-session/main.c
==============================================================================
--- branches/dbus_based/gnome-session/main.c	(original)
+++ branches/dbus_based/gnome-session/main.c	Wed Jul 30 18:56:39 2008
@@ -108,6 +108,15 @@
         g_free (output);
 }
 
+static void
+on_bus_name_lost (DBusGProxy *bus_proxy,
+                  const char *name,
+                  gpointer    data)
+{
+        g_warning ("Lost name on bus: %s, exiting", name);
+        exit (1);
+}
+
 static gboolean
 acquire_name_on_proxy (DBusGProxy *bus_proxy,
                        const char *name)
@@ -152,6 +161,18 @@
                 goto out;
         }
 
+        /* register for name lost */
+        dbus_g_proxy_add_signal (bus_proxy,
+                                 "NameLost",
+                                 G_TYPE_STRING,
+                                 G_TYPE_INVALID);
+        dbus_g_proxy_connect_signal (bus_proxy,
+                                     "NameLost",
+                                     G_CALLBACK (on_bus_name_lost),
+                                     NULL,
+                                     NULL);
+
+
         ret = TRUE;
 
  out:
@@ -174,8 +195,6 @@
                 /* not reached */
         }
 
-        dbus_connection_set_exit_on_disconnect (dbus_g_connection_get_connection (connection), FALSE);
-
         bus_proxy = dbus_g_proxy_new_for_name (connection,
                                                DBUS_SERVICE_DBUS,
                                                DBUS_PATH_DBUS,



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