summaryrefslogtreecommitdiffstats
path: root/src/adapter.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/adapter.c')
-rw-r--r--src/adapter.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/adapter.c b/src/adapter.c
index b874e12a..0e68359f 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -953,6 +953,7 @@ struct btd_device *adapter_create_device(DBusConnection *conn,
struct btd_adapter *adapter, const char *address)
{
struct btd_device *device;
+ const char *path;
debug("adapter_create_device(%s)", address);
@@ -964,6 +965,14 @@ struct btd_device *adapter_create_device(DBusConnection *conn,
adapter->devices = g_slist_append(adapter->devices, device);
+ path = device_get_path(device);
+ g_dbus_emit_signal(conn, adapter->path,
+ ADAPTER_INTERFACE, "DeviceCreated",
+ DBUS_TYPE_OBJECT_PATH, &path,
+ DBUS_TYPE_INVALID);
+
+ adapter_update_devices(adapter);
+
return device;
}
@@ -1068,17 +1077,15 @@ void adapter_remove_device(DBusConnection *conn, struct btd_adapter *adapter,
delete_entry(&adapter->bdaddr, "profiles", dstaddr);
adapter->devices = g_slist_remove(adapter->devices, device);
- if (!device_is_temporary(device)) {
+ if (!device_is_temporary(device))
remove_bonding(conn, NULL, dstaddr, adapter);
- g_dbus_emit_signal(conn, adapter->path,
- ADAPTER_INTERFACE,
- "DeviceRemoved",
- DBUS_TYPE_OBJECT_PATH, &dev_path,
- DBUS_TYPE_INVALID);
+ g_dbus_emit_signal(conn, adapter->path,
+ ADAPTER_INTERFACE, "DeviceRemoved",
+ DBUS_TYPE_OBJECT_PATH, &dev_path,
+ DBUS_TYPE_INVALID);
- adapter_update_devices(adapter);
- }
+ adapter_update_devices(adapter);
agent = device_get_agent(device);