Fix addr_type not set issue on scan result cb 00/226100/1 accepted/tizen/unified/20200302.125816 submit/tizen/20200302.000010
authorWootak Jung <wootak.jung@samsung.com>
Thu, 27 Feb 2020 01:12:06 +0000 (10:12 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Thu, 27 Feb 2020 01:19:03 +0000 (10:19 +0900)
Change-Id: I995d151ed1c40eb27332e59f4bb3139f294f8107

bt-oal/bluez_hal/src/bt-hal-gatt.c
bt-oal/hardware/bt_gatt_client.h
bt-oal/include/oal-event.h
bt-oal/oal-gatt.c
bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c

index eab8eec..2e959af 100644 (file)
@@ -464,7 +464,7 @@ static void __bt_hal_send_le_scan_result_event(bt_hal_le_adv_info_t *adv_info)
        str2bt_bdaddr_t(adv_info->addr, &bd_addr);
        if (bt_gatt_callbacks->client->scan_result_cb)
                bt_gatt_callbacks->client->scan_result_cb(
-                               &bd_addr, adv_info->rssi,
+                               &bd_addr, adv_info->addr_type, adv_info->rssi,
                                adv_info->adv_data, adv_info->adv_data_len,
                                adv_info->scan_rsp_data, adv_info->scan_rsp_data_len);
 }
index 5d376c7..ed445c6 100644 (file)
@@ -89,7 +89,7 @@ typedef void (*register_client_callback)(int status, int client_if,
                bt_uuid_t *app_uuid);
 
 /** Callback for scan results */
-typedef void (*scan_result_callback)(bt_bdaddr_t* bda, int rssi,
+typedef void (*scan_result_callback)(bt_bdaddr_t* bda, uint8_t addr_type, int rssi,
                uint8_t* adv_data, int adv_dat_len, uint8_t *scan_rsp_data, int scan_rsp_data_len);
 
 /** GATT open callback invoked in response to open */
index 33e6f39..6f4c45a 100644 (file)
@@ -431,6 +431,7 @@ typedef struct {
 /* BLE: Scan Result Callback data */
 typedef struct {
        int rssi;
+       uint8_t addr_type;
        bt_address_t address;
        uint8_t adv_data[BLE_ADV_DATA_LENGTH];
        int adv_data_len;
index 1b3bc2f..307b598 100644 (file)
@@ -197,7 +197,7 @@ static const btgatt_server_callbacks_t btgatt_server_callbacks = {
 
 /* Forward declaration for GATT client callbacks */
 static void cb_gattc_register_app(int status, int clientIf, bt_uuid_t *app_uuid);
-static void cb_gattc_scan_result(bt_bdaddr_t* bdaddress, int rssi,
+static void cb_gattc_scan_result(bt_bdaddr_t* bdaddress, uint8_t addr_type, int rssi,
                uint8_t *adv_data, int adv_data_len, uint8_t *scan_rsp_data, int scan_rsp_data_len);
 static void cb_gattc_connection(int conn_id, int status, int client_if, bt_bdaddr_t* bda);
 static void cb_gattc_disconnect(int conn_id, int status, int client_if, bt_bdaddr_t* bda);
@@ -1410,12 +1410,13 @@ static void cb_gattc_register_app(int status, int clientIf, bt_uuid_t *app_uuid)
        send_event(OAL_EVENT_GATTC_REGISTRATION, event, sizeof(event_gattc_register_t));
 }
 
-static void cb_gattc_scan_result(bt_bdaddr_t* bdaddress, int rssi,
+static void cb_gattc_scan_result(bt_bdaddr_t* bdaddress, uint8_t addr_type, int rssi,
                uint8_t *adv_data, int adv_data_len, uint8_t *scan_rsp_data, int scan_rsp_data_len)
 {
        event_ble_scan_result_info *event;
 
        event = g_new0(event_ble_scan_result_info, 1);
+       event->addr_type = addr_type;
        event->rssi = rssi;
        memcpy(event->address.addr, bdaddress->address, BT_ADDRESS_BYTES_NUM);
        memcpy(event->adv_data, adv_data, BLE_ADV_DATA_LENGTH);
index 6f37dbc..dc5abdd 100644 (file)
@@ -882,7 +882,6 @@ static void __bt_le_handle_device_found(event_ble_scan_result_info *scan_result)
        int result = BLUETOOTH_ERROR_NONE;
        bt_adapter_le_scanner_t *scanner = NULL;
        char address[BT_ADDRESS_STRING_SIZE];
-       int addr_type = 0x01; /* TODO: Need to get correct address type */
        unsigned char adv_ind_data[BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX];
        unsigned char scan_resp_data[BLUETOOTH_SCAN_RESP_DATA_LENGTH_MAX];
        int adv_ind_len = 0;
@@ -923,7 +922,7 @@ static void __bt_le_handle_device_found(event_ble_scan_result_info *scan_result)
 
                param = g_variant_new("(isnnn@ayn@ay)",
                                result, address,
-                               addr_type, scan_result->rssi,
+                               scan_result->addr_type, scan_result->rssi,
                                adv_ind_len, adv_data_param,
                                scan_resp_len, scan_data_param);