summaryrefslogtreecommitdiffstats
path: root/hcid/dbus-service.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-10-26 16:56:14 +0000
committerMarcel Holtmann <marcel@holtmann.org>2006-10-26 16:56:14 +0000
commit9a50d4ad1d08801d39846cff52e4c09fb0ccacea (patch)
treee34bc967159637fe0cf6ea7805ab85e8faa83bb9 /hcid/dbus-service.c
parent2dfe049b931c4e61d5fe57b4d5ff24226aa317ee (diff)
Must send ServiceUnregistered signal when agent exits
Diffstat (limited to 'hcid/dbus-service.c')
-rw-r--r--hcid/dbus-service.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/hcid/dbus-service.c b/hcid/dbus-service.c
index 20fe56f8..67e79e08 100644
--- a/hcid/dbus-service.c
+++ b/hcid/dbus-service.c
@@ -146,6 +146,7 @@ mem_fail:
static void service_agent_exit(const char *name, void *data)
{
DBusConnection *conn = data;
+ DBusMessage *message;
struct slist *l = services;
struct service_agent *agent;
const char *path;
@@ -160,6 +161,12 @@ static void service_agent_exit(const char *name, void *data)
service_agent_free(agent);
dbus_connection_unregister_object_path (conn, path);
+
+ message = dbus_message_new_signal(BASE_PATH, MANAGER_INTERFACE,
+ "ServiceUnregistered");
+ dbus_message_append_args(message, DBUS_TYPE_STRING, &path,
+ DBUS_TYPE_INVALID);
+ send_message_and_unref(conn, message);
}
slist_foreach(services, (slist_func_t) free, NULL);