Diff between dfa781684a75a2f1d2dac64dbb77458eaabf3d3e and 4a76f6a186588cea52910a9e97b7b2cb4c6c6984

Changed Files

File Additions Deletions Status
src/adapter.c +3 -0 modified
src/device.c +5 -0 modified
src/device.h +1 -0 modified

Full Patch

diff --git a/src/adapter.c b/src/adapter.c
index 974db3c..ffcb968 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 c49b210..e8e74d3 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 224f432..4a41386 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);