From dd467a71aa4ea625848456e3fd2804191b38a055 Mon Sep 17 00:00:00 2001 From: Injun Yang Date: Fri, 10 Feb 2017 10:44:44 +0900 Subject: [PATCH] Update white list properly [Model] SM-R360 [BinType] AP [Customer] OPEN [Issue#] N/A [Request] Internal [Occurence Version] N/A [Problem] Unable BLE auto connection with remote device [Cause & Measure] Address type is wrong of white list. Set address type properly [Checking Method] BLE auto connection with remote device [Team] Basic Connection [Developer] Injun Yang [Solution company] Samsung [Change Type] Specification change Change-Id: I333d492ad17fe1d82829b6b5c3f15b9fbeef0ef6 Signed-off-by: Injun Yang --- src/adapter.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index 5b6b1a6..a2dd114 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -4626,7 +4626,6 @@ static DBusMessage *adapter_add_device_white_list(DBusConnection *conn, const gchar *address; bdaddr_t bdaddr; dbus_uint32_t address_type; - uint8_t addr_type; struct btd_device *dev; DBG("Add device whie list"); @@ -4642,15 +4641,11 @@ static DBusMessage *adapter_add_device_white_list(DBusConnection *conn, if (!(adapter->current_settings & MGMT_SETTING_POWERED)) return btd_error_not_ready(msg); - if (address_type == 0) - addr_type = BDADDR_LE_PUBLIC; - else - addr_type = BDADDR_LE_RANDOM; - - DBG("addr %s, type %d", address, addr_type); + DBG("addr %s, type %d", address, address_type); str2ba(address, &bdaddr); - dev = btd_adapter_find_device(adapter, &bdaddr, addr_type); + dev = btd_adapter_find_device(adapter, &bdaddr, + address_type ? BDADDR_LE_RANDOM : BDADDR_LE_PUBLIC); if (dev && device_get_rpa_exist(dev) == true) { if (adapter_le_is_supported_offloading() == FALSE) { error("Spec based command is not supported yet"); @@ -4669,7 +4664,7 @@ static DBusMessage *adapter_add_device_white_list(DBusConnection *conn, memset(&cp, 0, sizeof(cp)); - cp.bdaddr_type = addr_type; + cp.bdaddr_type = address_type; memcpy(&cp.bdaddr, &bdaddr, sizeof(bdaddr_t)); if (mgmt_send(adapter->mgmt, MGMT_OP_ADD_DEV_WHITE_LIST, @@ -4688,7 +4683,6 @@ static DBusMessage *adapter_remove_device_white_list(DBusConnection *conn, const gchar *address; bdaddr_t bdaddr; dbus_uint32_t address_type; - uint8_t addr_type; struct btd_device *dev; DBG("Remove device whie list"); @@ -4705,15 +4699,11 @@ static DBusMessage *adapter_remove_device_white_list(DBusConnection *conn, if (bachk(address) < 0) return btd_error_invalid_args(msg); - if (address_type == 0) - addr_type = BDADDR_LE_PUBLIC; - else - addr_type = BDADDR_LE_RANDOM; - - DBG("addr %s, type %d", address, addr_type); + DBG("addr %s, type %d", address, address_type); str2ba(address, &bdaddr); - dev = btd_adapter_find_device(adapter, &bdaddr, addr_type); + dev = btd_adapter_find_device(adapter, &bdaddr, + address_type ? BDADDR_LE_RANDOM : BDADDR_LE_PUBLIC); if (dev && device_get_rpa_exist(dev) == true) { if (adapter_le_is_supported_offloading() == FALSE) { error("Spec based command is not supported yet"); @@ -4731,7 +4721,7 @@ static DBusMessage *adapter_remove_device_white_list(DBusConnection *conn, memset(&cp, 0, sizeof(cp)); - cp.bdaddr_type = addr_type; + cp.bdaddr_type = address_type; memcpy(&cp.bdaddr, &bdaddr, sizeof(bdaddr_t)); if (mgmt_send(adapter->mgmt, MGMT_OP_REMOVE_DEV_FROM_WHITE_LIST, -- 2.7.4