summaryrefslogtreecommitdiffstats
path: root/hcid/adapter.c
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2008-03-12 21:54:25 +0000
committerClaudio Takahasi <claudio.takahasi@openbossa.org>2008-03-12 21:54:25 +0000
commit25e819828847f241fe0f77565edf0dffad5700c9 (patch)
treef0fc852eff76cf366ad1ea7261b55773d62b60ea /hcid/adapter.c
parent2b91b57b25ee05e55cb925ef0e6195785517cc60 (diff)
RemoveDevice: Removing stored data
Diffstat (limited to 'hcid/adapter.c')
-rw-r--r--hcid/adapter.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/hcid/adapter.c b/hcid/adapter.c
index b589a721..763118e8 100644
--- a/hcid/adapter.c
+++ b/hcid/adapter.c
@@ -3459,6 +3459,7 @@ static DBusHandlerResult remove_device(DBusConnection *conn,
DBusMessage *reply;
const char *path;
GSList *l;
+ bdaddr_t src;
if (!hcid_dbus_use_experimental())
return error_unknown_method(conn, msg);
@@ -3478,8 +3479,16 @@ static DBusHandlerResult remove_device(DBusConnection *conn,
if (!reply)
return DBUS_HANDLER_RESULT_NEED_MEMORY;
- /* FIXME: Remove from filesystem */
- /* FIXME: Remove linkkeys */
+ str2ba(adapter->address, &src);
+ delete_entry(&src, "profiles", device->address);
+ delete_entry(&src, "linkkey", device->address);
+
+ dbus_connection_emit_signal(conn,
+ dbus_message_get_path(msg),
+ ADAPTER_INTERFACE,
+ "DeviceRemoved",
+ DBUS_TYPE_OBJECT_PATH, &device->path,
+ DBUS_TYPE_INVALID);
device_destroy(device);
adapter->devices = g_slist_remove(adapter->devices, device);