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

Re: musings on session service mgmt



On Fri, 2008-01-04 at 11:37 -0500, David Zeuthen wrote:
> On Fri, 2008-01-04 at 11:35 -0500, Colin Walters wrote:
> > Oh I see, I was wrong; yes David was talking about automatically killing
> > all processes.  That is wrong, I agree with you.
> 
> Care to explain why this is wrong?

See my other mail.

> > As Havoc said, having them connect to X11 or DBus, or using a babysitter
> > that does is the right way.
> 
> So in order to avoid having a process linger we now need to patch it?
> Good luck with that....

Don't need luck in the original case you were talking about, just an
editor and commit access to the upstream =)

Here's a patch for GConf:


Index: configure.in
===================================================================
--- configure.in	(revision 2500)
+++ configure.in	(working copy)
@@ -131,7 +131,7 @@
 
 AC_ARG_ENABLE(gtk, [  --enable-gtk          Enable GTK+ support (for gconf-sanity-check) [default=auto]], enable_gtk="$enableval", enable_gtk=auto)
 
-PKGCONFIG_MODULES='glib-2.0 > 2.9.0 gmodule-2.0 >= 2.7.0 gobject-2.0 >= 2.7.0 ORBit-2.0 >= 2.4.0'
+PKGCONFIG_MODULES='glib-2.0 > 2.9.0 gmodule-2.0 >= 2.7.0 gobject-2.0 >= 2.7.0 ORBit-2.0 >= 2.4.0 dbus-1 >= 1.0'
 PKGCONFIG_MODULES_WITH_XML="$PKGCONFIG_MODULES libxml-2.0"
 PKGCONFIG_MODULES_WITH_GTK=" $PKGCONFIG_MODULES gtk+-2.0 >= 2.0.0"
 PKGCONFIG_MODULES_WITH_XML_AND_GTK=" $PKGCONFIG_MODULES gtk+-2.0 libxml-2.0"
Index: gconf/gconfd.c
===================================================================
--- gconf/gconfd.c	(revision 2500)
+++ gconf/gconfd.c	(working copy)
@@ -27,6 +27,8 @@
 
 #include <config.h>
 
+#include <dbus/dbus.h>
+
 #include "gconf-internals.h"
 #include "gconf-sources.h"
 #include "gconf-listeners.h"
@@ -597,6 +599,8 @@
 #endif
   CORBA_Environment ev;
   CORBA_ORB orb;
+  DBusConnection *connection;
+  DBusError dbus_error;
   gchar* logname;
   const gchar* username;
   gchar* ior;
@@ -732,6 +736,13 @@
   gconf_set_daemon_ior (ior);
   CORBA_free (ior);
 
+  dbus_error_init (&dbus_error);
+  /* Now connect to D-BUS so we get scoped to the session */
+  connection = dbus_bus_get (DBUS_BUS_SESSION, &dbus_error);
+  if (dbus_error_is_set (&dbus_error)) {
+    gconf_log (GCL_ERR, _("Failed to connect to session bus: %s"), dbus_error.message);
+  }
+
   gconfd_dir = gconf_get_daemon_dir ();
   lock_dir = gconf_get_lock_dir ();
   

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