diff options
author | Seungyoun Ju <sy39.ju@samsung.com> | 2018-08-06 20:25:58 +0900 |
---|---|---|
committer | Seungyoun Ju <sy39.ju@samsung.com> | 2018-08-06 20:51:42 +0900 |
commit | ca0845702968afe90e66ca1cc6a1b16de7af9d7e (patch) | |
tree | b3dfed9ba40ccecb9a4f193c12738cc24190441a | |
parent | 63a21f0f97cf3137680aa978b6bdcbfa7395719d (diff) | |
download | bluez-ca0845702968afe90e66ca1cc6a1b16de7af9d7e.tar.gz bluez-ca0845702968afe90e66ca1cc6a1b16de7af9d7e.tar.bz2 bluez-ca0845702968afe90e66ca1cc6a1b16de7af9d7e.zip |
device : Return proper error code for get_ida
[Problem] There is no way to know if remote device is not bonded or it
doesn't support IDA (i.e. BR/EDR device, LE Static random address or
non-RPA used device).
[Cause & Measure] We consider only LE RPA device. So return not
supported error code for others.
[Checking Method] N/A
Change-Id: I734a468a64cc85fa6aac08a9f0621dd95c44217c
-rw-r--r-- | src/device.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/device.c b/src/device.c index 7cf7e783..363ce9fb 100644 --- a/src/device.c +++ b/src/device.c @@ -4193,13 +4193,18 @@ static DBusMessage *device_get_ida(DBusConnection *conn, DBusMessage *msg, if (!device->le) return btd_error_not_supported(msg); + if (device->bdaddr_type != BDADDR_LE_RANDOM) + return btd_error_not_supported(msg); + if (device->rpa) { if (device->bredr) ba2str(device->rpa, device_idaddr); else ba2str(&device->bdaddr, device_idaddr); - } else + } else if ((device->bdaddr.b[5] >> 6) == 0x01) return btd_error_does_not_exist(msg); + else + return btd_error_not_supported(msg); reply = dbus_message_new_method_return(msg); if (!reply) |