Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d41350e5 authored by Hansong Zhang's avatar Hansong Zhang Committed by Automerger Merge Worker
Browse files

Use BTM_GetHCIConnHandle to get handle am: aeb4b9ec am: d56eb8c1

Original change: https://android-review.googlesource.com/c/platform/system/bt/+/1418793

Change-Id: I5ce730928c57af90f5d19d87e53826525c6a40df
parents d950e94d d56eb8c1
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -1455,8 +1455,8 @@ static void btm_sec_check_upgrade(tBTM_SEC_DEV_REC* p_dev_rec,
}

tBTM_STATUS btm_sec_l2cap_access_req_by_requirement(
    const RawAddress& bd_addr, uint16_t security_required, uint16_t handle,
    bool is_originator, tBTM_SEC_CALLBACK* p_callback, void* p_ref_data) {
    const RawAddress& bd_addr, uint16_t security_required, bool is_originator,
    tBTM_SEC_CALLBACK* p_callback, void* p_ref_data) {
  tBTM_SEC_DEV_REC* p_dev_rec;
  tBTM_STATUS rc = BTM_SUCCESS;
  bool chk_acp_auth_done = false;
@@ -1467,7 +1467,7 @@ tBTM_STATUS btm_sec_l2cap_access_req_by_requirement(
  /* Find or get oldest record */
  p_dev_rec = btm_find_or_alloc_dev(bd_addr);

  p_dev_rec->hci_handle = handle;
  p_dev_rec->hci_handle = BTM_GetHCIConnHandle(bd_addr, BT_TRANSPORT_BR_EDR);

  if ((!is_originator) && (security_required & BTM_SEC_MODE4_LEVEL4)) {
    bool local_supports_sc =
@@ -1663,7 +1663,7 @@ tBTM_STATUS btm_sec_l2cap_access_req_by_requirement(
 *
 ******************************************************************************/
tBTM_STATUS btm_sec_l2cap_access_req(const RawAddress& bd_addr, uint16_t psm,
                                     uint16_t handle, bool is_originator,
                                     bool is_originator,
                                     tBTM_SEC_CALLBACK* p_callback,
                                     void* p_ref_data) {
  constexpr tBT_TRANSPORT transport =
@@ -1698,9 +1698,8 @@ tBTM_STATUS btm_sec_l2cap_access_req(const RawAddress& bd_addr, uint16_t psm,
    security_required = p_serv_rec->security_flags;
  }

  return btm_sec_l2cap_access_req_by_requirement(bd_addr, security_required,
                                                 handle, is_originator,
                                                 p_callback, p_ref_data);
  return btm_sec_l2cap_access_req_by_requirement(
      bd_addr, security_required, is_originator, p_callback, p_ref_data);
}

/*******************************************************************************
+3 −3
Original line number Diff line number Diff line
@@ -397,14 +397,14 @@ bool BTM_PeerSupportsSecureConnections(const RawAddress& bd_addr);
 *
 ******************************************************************************/
tBTM_STATUS btm_sec_l2cap_access_req(const RawAddress& bd_addr, uint16_t psm,
                                     uint16_t handle, bool is_originator,
                                     bool is_originator,
                                     tBTM_SEC_CALLBACK* p_callback,
                                     void* p_ref_data);

// Allow enforcing security by specific requirement (from shim layer).
tBTM_STATUS btm_sec_l2cap_access_req_by_requirement(
    const RawAddress& bd_addr, uint16_t security_required, uint16_t handle,
    bool is_originator, tBTM_SEC_CALLBACK* p_callback, void* p_ref_data);
    const RawAddress& bd_addr, uint16_t security_required, bool is_originator,
    tBTM_SEC_CALLBACK* p_callback, void* p_ref_data);

/*******************************************************************************
 *
+11 −14
Original line number Diff line number Diff line
@@ -159,8 +159,8 @@ static void l2c_csm_closed(tL2C_CCB* p_ccb, uint16_t event, void* p_data) {
      } else {
        p_ccb->chnl_state = CST_ORIG_W4_SEC_COMP;
        btm_sec_l2cap_access_req(p_ccb->p_lcb->remote_bd_addr,
                                 p_ccb->p_rcb->psm, p_ccb->p_lcb->Handle(),
                                 true, &l2c_link_sec_comp, p_ccb);
                                 p_ccb->p_rcb->psm, true, &l2c_link_sec_comp,
                                 p_ccb);
      }
      break;

@@ -192,10 +192,9 @@ static void l2c_csm_closed(tL2C_CCB* p_ccb, uint16_t event, void* p_data) {

        /* If sec access does not result in started SEC_COM or COMP_NEG are
         * already processed */
        if (btm_sec_l2cap_access_req(p_ccb->p_lcb->remote_bd_addr,
                                     p_ccb->p_rcb->psm, p_ccb->p_lcb->Handle(),
                                     true, &l2c_link_sec_comp,
                                     p_ccb) == BTM_CMD_STARTED) {
        if (btm_sec_l2cap_access_req(
                p_ccb->p_lcb->remote_bd_addr, p_ccb->p_rcb->psm, true,
                &l2c_link_sec_comp, p_ccb) == BTM_CMD_STARTED) {
          p_ccb->chnl_state = CST_ORIG_W4_SEC_COMP;
        }
      }
@@ -261,10 +260,9 @@ static void l2c_csm_closed(tL2C_CCB* p_ccb, uint16_t event, void* p_data) {
        }

        p_ccb->chnl_state = CST_TERM_W4_SEC_COMP;
        if (btm_sec_l2cap_access_req(p_ccb->p_lcb->remote_bd_addr,
                                     p_ccb->p_rcb->psm, p_ccb->p_lcb->Handle(),
                                     false, &l2c_link_sec_comp,
                                     p_ccb) == BTM_CMD_STARTED) {
        if (btm_sec_l2cap_access_req(
                p_ccb->p_lcb->remote_bd_addr, p_ccb->p_rcb->psm, false,
                &l2c_link_sec_comp, p_ccb) == BTM_CMD_STARTED) {
          /* started the security process, tell the peer to set a longer timer
           */
          l2cu_send_peer_connect_rsp(p_ccb, L2CAP_CONN_PENDING, 0);
@@ -330,8 +328,8 @@ static void l2c_csm_orig_w4_sec_comp(tL2C_CCB* p_ccb, uint16_t event,
                             false, &l2c_link_sec_comp2, p_ccb);
      } else {
        btm_sec_l2cap_access_req(p_ccb->p_lcb->remote_bd_addr,
                                 p_ccb->p_rcb->psm, p_ccb->p_lcb->Handle(),
                                 true, &l2c_link_sec_comp, p_ccb);
                                 p_ccb->p_rcb->psm, true, &l2c_link_sec_comp,
                                 p_ccb);
      }
      break;

@@ -487,8 +485,7 @@ static void l2c_csm_term_w4_sec_comp(tL2C_CCB* p_ccb, uint16_t event,

    case L2CEVT_SEC_RE_SEND_CMD: /* BTM has enough info to proceed */
      btm_sec_l2cap_access_req(p_ccb->p_lcb->remote_bd_addr, p_ccb->p_rcb->psm,
                               p_ccb->p_lcb->Handle(), false,
                               &l2c_link_sec_comp, p_ccb);
                               false, &l2c_link_sec_comp, p_ccb);
      break;
  }
}