From 4a76f6a186588cea52910a9e97b7b2cb4c6c6984 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Thu, 20 Feb 2014 18:40:21 +0200 Subject: [PATCH] core: Fix updating BR/EDR support from AD flags --- src/adapter.c | 3 +++ src/device.c | 5 +++++ src/device.h | 1 + 3 files changed, 9 insertions(+) diff --git a/src/adapter.c b/src/adapter.c index 974db3c06..ffcb9682d 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -4298,6 +4298,9 @@ static void update_found_devices(struct btd_adapter *adapter, return; } + if (bdaddr_type != BDADDR_BREDR && !(eir_data.flags & EIR_BREDR_UNSUP)) + device_set_bredr_support(dev, true); + if (eir_data.name != NULL && eir_data.name_complete) device_store_cached_name(dev, eir_data.name); diff --git a/src/device.c b/src/device.c index c49b2104a..e8e74d36d 100644 --- a/src/device.c +++ b/src/device.c @@ -2337,6 +2337,11 @@ void device_update_addr(struct btd_device *device, const bdaddr_t *bdaddr, DEVICE_INTERFACE, "Address"); } +void device_set_bredr_support(struct btd_device *device, bool bredr) +{ + device->bredr = bredr; +} + uint32_t btd_device_get_class(struct btd_device *device) { return device->class; diff --git a/src/device.h b/src/device.h index 224f4322e..4a413868e 100644 --- a/src/device.h +++ b/src/device.h @@ -40,6 +40,7 @@ bool device_name_known(struct btd_device *device); void device_set_class(struct btd_device *device, uint32_t class); void device_update_addr(struct btd_device *device, const bdaddr_t *bdaddr, uint8_t bdaddr_type); +void device_set_bredr_support(struct btd_device *device, bool bredr); uint32_t btd_device_get_class(struct btd_device *device); uint16_t btd_device_get_vendor(struct btd_device *device); uint16_t btd_device_get_vendor_src(struct btd_device *device); -- 2.47.3