}
remove_device = false;
- btd_device_set_trusted(closure->device, true);
btd_device_set_temporary(closure->device, false);
if (closure->type == CABLE_PAIRING_SIXAXIS)
* connected eg. to charge up battery. */
device = btd_adapter_find_device(adapter, &device_bdaddr,
BDADDR_BREDR);
- if (device != NULL &&
- btd_device_is_connected(device) &&
- g_slist_find_custom(btd_device_get_uuids(device), HID_UUID,
- (GCompareFunc)strcasecmp)) {
+ if (device && btd_device_has_uuid(device, HID_UUID) &&
+ (btd_device_is_connected(device) ||
+ btd_device_is_trusted(device))) {
char device_addr[18];
ba2str(&device_bdaddr, device_addr);
DBG("device %s already known, skipping", device_addr);
btd_device_device_set_name(device, cp->name);
btd_device_set_pnpid(device, cp->source, cp->vid, cp->pid, cp->version);
- btd_device_set_trusted(device, false);
btd_device_set_temporary(device, true);
closure = g_new0(struct authentication_closure, 1);
return device->uuids;
}
+bool btd_device_has_uuid(struct btd_device *device, const char *uuid)
+{
+ return g_slist_find_custom(device->uuids, uuid,
+ (GCompareFunc)strcasecmp);
+}
+
struct probe_data {
struct btd_device *dev;
GSList *uuids;
int device_addr_type_strict_cmp(gconstpointer a, gconstpointer b);
#endif
int device_addr_type_cmp(gconstpointer a, gconstpointer b);
+bool btd_device_has_uuid(struct btd_device *device, const char *uuid);
GSList *btd_device_get_uuids(struct btd_device *device);
void device_probe_profiles(struct btd_device *device, GSList *profiles);