2003-04-08 Colin Walters <walters@gnu.org>
authorHavoc Pennington <hp@redhat.com>
Wed, 9 Apr 2003 00:27:41 +0000 (00:27 +0000)
committerHavoc Pennington <hp@redhat.com>
Wed, 9 Apr 2003 00:27:41 +0000 (00:27 +0000)
  * bus/bus.c (struct BusContext) [pidfile]: New member, to store
  the pid file.
  (bus_context_new): Set it.
  (bus_context_unref): Use it to delete the pid file.

ChangeLog
bus/bus.c

index 471eb8a..d5624a2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-04-08  Colin Walters  <walters@gnu.org>
+       * bus/bus.c (struct BusContext) [pidfile]: New member, to store
+       the pid file.
+       (bus_context_new): Set it.
+       (bus_context_unref): Use it to delete the pid file.
 2003-04-08  Havoc Pennington  <hp@redhat.com>
 
        * test/data/invalid-messages/array-with-mixed-types.message:
index ee40e53..d8d2a9c 100644 (file)
--- a/bus/bus.c
+++ b/bus/bus.c
@@ -37,6 +37,7 @@ struct BusContext
   int refcount;
   char *type;
   char *address;
+  char *pidfile;
   DBusLoop *loop;
   DBusList *servers;
   BusConnections *connections;
@@ -632,6 +633,9 @@ bus_context_new (const DBusString *config_file,
             goto failed;
         }
     }
+
+  /* keep around the pid filename so we can delete it later */
+  context->pidfile = _dbus_strdup (pidfile);
   
   bus_config_parser_unref (parser);
   _dbus_string_free (&full_address);
@@ -760,6 +764,20 @@ bus_context_unref (BusContext *context)
       
       dbus_free (context->type);
       dbus_free (context->address);
+
+      if (context->pidfile)
+       {
+          DBusString u;
+          _dbus_string_init_const (&u, context->pidfile);
+
+          /* Deliberately ignore errors here, since there's not much
+          * we can do about it, and we're exiting anyways.
+          */
+         _dbus_delete_file (&u, NULL);
+
+          dbus_free (context->pidfile); 
+       }
+
       dbus_free (context);
 
       server_data_slot_unref ();