From 0e1945b3889f8be8e31e39ad2b982c8a192be41d Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 9 Apr 2003 00:27:41 +0000 Subject: 2003-04-08 Colin Walters * 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. --- bus/bus.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'bus/bus.c') diff --git a/bus/bus.c b/bus/bus.c index ee40e539..d8d2a9c1 100644 --- 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 (); -- cgit