memcpy(btm_cb.ble_ctr_cb.addr_mgnt_cb.private_addr, rand_addr, BD_ADDR_LEN);
btm_cb.ble_ctr_cb.addr_mgnt_cb.own_addr_type = BLE_ADDR_RANDOM;
//send the set random address to the controller
- set_flag = btsnd_hcic_ble_set_random_addr(rand_addr);
- return set_flag;
+ if(btsnd_hcic_ble_set_random_addr(rand_addr)) {
+ return BTM_SUCCESS;
+ } else {
+ return BTM_SET_STATIC_RAND_ADDR_FAIL;
+ }
}
+ /*******************************************************************************
+ **
+ ** Function BTM_BleGetCurrentAddress
+ **
+ ** Description This function is called to get local used BLE address.
+ **
+ ** Parameters: None.
+ **
+ ** Returns success or fail
+ **
+ *******************************************************************************/
+ BOOLEAN BTM_BleGetCurrentAddress(BD_ADDR addr, uint8_t *addr_type)
+ {
+ if(addr == NULL || addr_type == NULL) {
+ BTM_TRACE_ERROR("%s addr or addr_type is NULL\n", __func__);
+ return FALSE;
+ }
+ if(btm_cb.ble_ctr_cb.addr_mgnt_cb.own_addr_type == BLE_ADDR_RANDOM) {
+ *addr_type = BLE_ADDR_RANDOM;
+ memcpy(addr, btm_cb.ble_ctr_cb.addr_mgnt_cb.private_addr, BD_ADDR_LEN);
+ } else if(btm_cb.ble_ctr_cb.addr_mgnt_cb.own_addr_type == BLE_ADDR_PUBLIC) {
+ *addr_type = BLE_ADDR_PUBLIC;
+ memcpy(addr, &controller_get_interface()->get_address()->address, BD_ADDR_LEN);
+ } else {
+ BTM_TRACE_ERROR("%s\n", __func__);
+ memset(addr, 0, BD_ADDR_LEN);
+ return FALSE;
+ }
+ return TRUE;
+ }
+
/*******************************************************************************
**
** Function BTM_CheckAdvData