summaryrefslogtreecommitdiffstats
path: root/bus/services.c
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@codefactory.se>2003-01-21 12:42:33 +0000
committerAnders Carlsson <andersca@codefactory.se>2003-01-21 12:42:33 +0000
commitaff24a72c18a43dbb6f2d85e6d2226a3c2ea8f10 (patch)
tree7ff762f5de8d2c0234ea5a8a2f35aa0c01660e39 /bus/services.c
parent4a85d321b4516c6a663e8bdd530ba59018c974df (diff)
2003-01-21 Anders Carlsson <andersca@codefactory.se>
* bus/Makefile.am: Add driver.[ch] * bus/connection.c: (connection_disconnect_handler): Remove the connection from the bus driver's list. (connection_watch_callback): Dispatch messages. (free_connection_data): Free connection name. (bus_connection_setup): Add connection to the bus driver's list. (bus_connection_remove_owned_service): (bus_connection_set_name), (bus_connection_get_name): Add functions for setting and getting the connection's name. * bus/connection.h: Add function headers. * bus/driver.c: (create_unique_client_name), (bus_driver_handle_hello_message), (bus_driver_send_welcome_message), (bus_driver_message_handler), (bus_driver_add_connection), (bus_driver_remove_connection): * bus/driver.h: * bus/main.c: * bus/services.c: (bus_service_free): * bus/services.h: New file that handles communication and registreation with the bus itself.
Diffstat (limited to 'bus/services.c')
-rw-r--r--bus/services.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/bus/services.c b/bus/services.c
index f8124b05..c07b20fd 100644
--- a/bus/services.c
+++ b/bus/services.c
@@ -98,6 +98,17 @@ bus_service_lookup (const DBusString *service_name,
return service;
}
+void
+bus_service_free (BusService *service)
+{
+ _dbus_assert (service->owners == NULL);
+
+ _dbus_hash_table_remove_string (service_hash, service->name);
+
+ dbus_free (service->name);
+ _dbus_mem_pool_dealloc (service_pool, service);
+}
+
dbus_bool_t
bus_service_add_owner (BusService *service,
DBusConnection *owner)