Update white list properly
[platform/upstream/bluez.git] / src / adapter.c
index 5b6b1a6..a2dd114 100644 (file)
@@ -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,