From 831b2c04411fb552355813572a433b4d4f1b5b50 Mon Sep 17 00:00:00 2001 From: zhiweijian Date: Mon, 8 Jan 2018 15:37:36 +0800 Subject: [PATCH] Component/bt: fix can not remove boned device if it is connected --- components/bt/bluedroid/bta/dm/bta_dm_act.c | 2 +- components/bt/bluedroid/bta/include/bta_api.h | 1 + components/bt/bluedroid/stack/btm/btm_ble.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/components/bt/bluedroid/bta/dm/bta_dm_act.c b/components/bt/bluedroid/bta/dm/bta_dm_act.c index cb531d625c..e0b1595a9e 100644 --- a/components/bt/bluedroid/bta/dm/bta_dm_act.c +++ b/components/bt/bluedroid/bta/dm/bta_dm_act.c @@ -3278,7 +3278,7 @@ void bta_dm_acl_change(tBTA_DM_MSG *p_data) } bdcpy(conn.link_down.bd_addr, p_bda); - conn.link_down.status = (UINT8) btm_get_acl_disc_reason_code(); + conn.link_down.reason = (UINT8) btm_get_acl_disc_reason_code(); if ( bta_dm_cb.p_sec_cback ) { bta_dm_cb.p_sec_cback(BTA_DM_LINK_DOWN_EVT, &conn); if ( issue_unpair_cb ) { diff --git a/components/bt/bluedroid/bta/include/bta_api.h b/components/bt/bluedroid/bta/include/bta_api.h index 7f57f5650f..a5a7edd269 100644 --- a/components/bt/bluedroid/bta/include/bta_api.h +++ b/components/bt/bluedroid/bta/include/bta_api.h @@ -785,6 +785,7 @@ typedef struct { typedef struct { BD_ADDR bd_addr; /* BD address peer device. */ UINT8 status; /* connection open/closed */ + UINT8 reason; /* link down reason */ BOOLEAN is_removed; /* TRUE if device is removed when link is down */ #if BLE_INCLUDED == TRUE tBTA_TRANSPORT link_type; diff --git a/components/bt/bluedroid/stack/btm/btm_ble.c b/components/bt/bluedroid/stack/btm/btm_ble.c index baa69d53f0..da32791bbd 100644 --- a/components/bt/bluedroid/stack/btm/btm_ble.c +++ b/components/bt/bluedroid/stack/btm/btm_ble.c @@ -665,6 +665,7 @@ BOOLEAN BTM_ReadConnectedTransportAddress(BD_ADDR remote_bda, tBT_TRANSPORT tran /* if no device can be located, return */ if (p_dev_rec == NULL) { + memset(remote_bda, 0, BD_ADDR_LEN); return FALSE; } -- 2.40.0