Przeglądaj źródła

Merge branch 'bugfix/bt_linkup_fallback_event_v3.3' into 'release/v3.3'

Bluedroid: Fixes cases having fallback to link up event. (v3.3)

See merge request espressif/esp-idf!9805
Jiang Jiang Jian 5 lat temu
rodzic
commit
fb18b12efe
1 zmienionych plików z 6 dodań i 5 usunięć
  1. 6 5
      components/bt/bluedroid/btc/core/btc_dm.c

+ 6 - 5
components/bt/bluedroid/btc/core/btc_dm.c

@@ -304,11 +304,11 @@ static void btc_dm_link_up_evt(tBTA_DM_LINK_UP *p_link_up)
     BD_ADDR bd_addr;
     bt_bdaddr_t bt_bdaddr;
 
-    memcpy(bd_addr, p_link_up->bd_addr, sizeof(BD_ADDR));
-    memcpy(bt_bdaddr.address, p_link_up->bd_addr, sizeof(BD_ADDR));
 
     if (p_link_up->sc_downgrade == 1) {
+        memcpy(bt_bdaddr.address, p_link_up->bd_addr, sizeof(BD_ADDR));
         if (btc_storage_remove_bonded_device(&bt_bdaddr) == BT_STATUS_SUCCESS) {
+            memcpy(bd_addr, p_link_up->bd_addr, sizeof(BD_ADDR));
             if (BTA_DmRemoveDevice(bd_addr, BT_TRANSPORT_BR_EDR) == BTA_SUCCESS) {
                 BTC_TRACE_EVENT(" %s() Bonding information removed.", __FUNCTION__);
             } else {
@@ -685,13 +685,14 @@ void btc_dm_sec_cb_handler(btc_msg_t *msg)
         break;
         }
 #endif /* BTC_GAP_BT_INCLUDED  == TRUE */
-    case BTA_DM_LINK_UP_EVT:
-        btc_dm_link_up_evt(&p_data->link_up);
     case BTA_DM_LINK_DOWN_EVT:
     case BTA_DM_HW_ERROR_EVT:
         BTC_TRACE_DEBUG( "btc_dm_sec_cback : unhandled event (%d)\n", msg->act );
         break;
-#if (defined(BLE_INCLUDED) && (BLE_INCLUDED == TRUE) && (SMP_INCLUDED == TRUE))
+    case BTA_DM_LINK_UP_EVT:
+        btc_dm_link_up_evt(&p_data->link_up);
+        break;
+#if ((BLE_INCLUDED == TRUE) && (SMP_INCLUDED == TRUE))
     case BTA_DM_BLE_AUTH_CMPL_EVT: {
         rsp_app = true;
         ble_msg.act = ESP_GAP_BLE_AUTH_CMPL_EVT;