OSDN Git Service

JustWorks: Auto-accept only incoming temporary pairing.
authorMartin Brabham <optedoblivion@google.com>
Wed, 2 Oct 2019 01:06:15 +0000 (18:06 -0700)
committerandroid-build-merger <android-build-merger@google.com>
Wed, 2 Oct 2019 01:06:15 +0000 (18:06 -0700)
am: 10e15ee461

Change-Id: I392280bb44e2ab665baeab5ef5f1e6b9323fe463

1  2 
btif/src/btif_dm.cc

diff --combined btif/src/btif_dm.cc
@@@ -924,6 -924,7 +924,7 @@@ static void btif_dm_ssp_cfm_req_evt(tBT
    bt_bdaddr_t bd_addr;
    bt_bdname_t bd_name;
    uint32_t cod;
+   bool is_incoming = !(pairing_cb.state == BT_BOND_STATE_BONDING);
    int dev_type;
  
    BTIF_TRACE_DEBUG("%s", __func__);
  
    pairing_cb.is_ssp = true;
  
+   /* If JustWorks auto-accept */
+   if (p_ssp_cfm_req->just_works) {
+     /* Pairing consent for JustWorks NOT needed if:
+      * 1. Incoming temporary pairing is detected
+      */
+     if (is_incoming && pairing_cb.bond_type == BOND_TYPE_TEMPORARY) {
+       BTIF_TRACE_EVENT(
+           "%s: Auto-accept JustWorks pairing for temporary incoming", __func__);
+       btif_dm_ssp_reply(&bd_addr, BT_SSP_VARIANT_CONSENT, true, 0);
+       return;
+     }
+   }
    cod = devclass2uint(p_ssp_cfm_req->dev_class);
  
    if (cod == 0) {
@@@ -2037,7 -2051,7 +2051,7 @@@ static void bte_search_devices_evt(tBTA
     * to the end of the tBTA_DM_SEARCH */
    switch (event) {
      case BTA_DM_INQ_RES_EVT: {
 -      if (p_data->inq_res.p_eir) param_len += HCI_EXT_INQ_RESPONSE_LEN;
 +      if (p_data->inq_res.p_eir) param_len += p_data->inq_res.eir_len;
      } break;
  
      case BTA_DM_DISC_RES_EVT: {
@@@ -2919,7 -2933,7 +2933,7 @@@ static void btif_dm_ble_auth_cmpl_evt(t
        state = BT_BOND_STATE_NONE;
      } else {
        btif_dm_save_ble_bonding_keys(bdaddr);
 -      BTA_GATTC_Refresh(bd_addr.address);
 +      BTA_GATTC_Refresh(bd_addr);
        btif_dm_get_remote_services_by_transport(&bd_addr, BTA_GATT_TRANSPORT_LE);
      }
    } else {