diff options
-rw-r--r-- | src/adapter.c | 16 | ||||
-rw-r--r-- | src/dbus-hci.c | 20 |
2 files changed, 17 insertions, 19 deletions
diff --git a/src/adapter.c b/src/adapter.c index 701f49a1..4926d14f 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -167,6 +167,20 @@ static DBusHandlerResult error_connection_attempt_failed(DBusConnection *conn, err > 0 ? strerror(err) : "Connection attempt failed"); } +static void send_out_of_range(const char *path, GSList *l) +{ + while (l) { + const char *peer_addr = l->data; + + g_dbus_emit_signal(connection, path, + ADAPTER_INTERFACE, "DeviceDisappeared", + DBUS_TYPE_STRING, &peer_addr, + DBUS_TYPE_INVALID); + + l = l->next; + } +} + static int found_device_cmp(const struct remote_dev_info *d1, const struct remote_dev_info *d2) { @@ -2869,6 +2883,8 @@ void adapter_update_oor_devices(struct adapter *adapter) struct remote_dev_info *dev; bdaddr_t tmp; + send_out_of_range(adapter->path, adapter->oor_devices); + g_slist_foreach(adapter->oor_devices, (GFunc) free, NULL); g_slist_free(adapter->oor_devices); adapter->oor_devices = NULL; diff --git a/src/dbus-hci.c b/src/dbus-hci.c index 63978d84..175a69e4 100644 --- a/src/dbus-hci.c +++ b/src/dbus-hci.c @@ -816,20 +816,6 @@ static int found_device_req_name(struct adapter *adapter) return 0; } -static void send_out_of_range(const char *path, GSList *l) -{ - while (l) { - const char *peer_addr = l->data; - - g_dbus_emit_signal(connection, path, - ADAPTER_INTERFACE, "DeviceDisappeared", - DBUS_TYPE_STRING, &peer_addr, - DBUS_TYPE_INVALID); - - l = l->next; - } -} - void hcid_dbus_inquiry_complete(bdaddr_t *local) { struct adapter *adapter; @@ -846,12 +832,8 @@ void hcid_dbus_inquiry_complete(bdaddr_t *local) /* Out of range verification */ if ((adapter_get_state(adapter) & PERIODIC_INQUIRY) && - !(adapter_get_state(adapter) & STD_INQUIRY)) { - - send_out_of_range(path, adapter->oor_devices); + !(adapter_get_state(adapter) & STD_INQUIRY)) adapter_update_oor_devices(adapter); - } - /* * Enable resolution again: standard inquiry can be * received in the periodic inquiry idle state. |