*******************************************************************************/
static void bta_dm_remove_sec_dev_entry(BD_ADDR remote_bd_addr)
{
- UINT16 index = 0;
if ( BTM_IsAclConnectionUp(remote_bd_addr, BT_TRANSPORT_LE) ||
BTM_IsAclConnectionUp(remote_bd_addr, BT_TRANSPORT_BR_EDR))
{
- APPL_TRACE_DEBUG("%s ACL is not down. Schedule for Dev Removal when ACL closes",
- __FUNCTION__);
- for (index = 0; index < bta_dm_cb.device_list.count; index ++)
+ APPL_TRACE_DEBUG("%s ACL is not down. Schedule for Dev Removal when ACL closes",
+ __func__);
+ BTM_SecClearSecurityFlags (remote_bd_addr);
+ for (int i = 0; i < bta_dm_cb.device_list.count; i++)
{
- if (!bdcmp( bta_dm_cb.device_list.peer_device[index].peer_bdaddr, remote_bd_addr))
+ if (!bdcmp( bta_dm_cb.device_list.peer_device[i].peer_bdaddr, remote_bd_addr))
+ {
+ bta_dm_cb.device_list.peer_device[i].remove_dev_pending = TRUE;
break;
- }
- if (index != bta_dm_cb.device_list.count)
- {
- bta_dm_cb.device_list.peer_device[index].remove_dev_pending = TRUE;
- }
- else
- {
- APPL_TRACE_ERROR(" %s Device does not exist in DB", __FUNCTION__);
+ }
}
}
else
/*******************************************************************************
**
+** Function BTM_SecClearSecurityFlags
+**
+** Description Reset the security flags (mark as not-paired) for a given
+** remove device.
+**
+*******************************************************************************/
+extern void BTM_SecClearSecurityFlags (BD_ADDR bd_addr)
+{
+ tBTM_SEC_DEV_REC *p_dev_rec = btm_find_dev(bd_addr);
+ if (p_dev_rec == NULL)
+ return;
+
+ p_dev_rec->sec_flags = 0;
+ p_dev_rec->sec_state = BTM_SEC_STATE_IDLE;
+ p_dev_rec->sm4 = BTM_SM4_UNKNOWN;
+}
+
+/*******************************************************************************
+**
** Function BTM_SecReadDevName
**
** Description Looks for the device name in the security database for the
*******************************************************************************/
extern BOOLEAN BTM_SecDeleteDevice (BD_ADDR bd_addr);
+/*******************************************************************************
+**
+** Function BTM_SecClearSecurityFlags
+**
+** Description Reset the security flags (mark as not-paired) for a given
+** remove device.
+**
+*******************************************************************************/
+extern void BTM_SecClearSecurityFlags (BD_ADDR bd_addr);
/*******************************************************************************
**