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

Commit b21760a0 authored by Zach Johnson's avatar Zach Johnson Committed by Gerrit Code Review
Browse files

Merge changes I3df02f6a,I97d16350,Ia6ffaa4f

* changes:
  Fold security mask into bta_ar_reg_avct
  Add RFCOMM_CreateConnectionWithSecurity
  Add BTM_SimpleSetSecurityLevel
parents 7b1225fb 9f5e0fc1
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -248,9 +248,6 @@ void bta_ag_start_servers(tBTA_AG_SCB* p_scb, tBTA_SERVICE_MASK services) {
  for (int i = 0; i < BTA_AG_NUM_IDX && services != 0; i++, services >>= 1) {
    /* if service is set in mask */
    if (services & 1) {
      BTM_SetSecurityLevel(false, "", bta_ag_sec_id[i], p_scb->serv_sec_mask,
                           BT_PSM_RFCOMM, BTM_SEC_PROTO_RFCOMM,
                           bta_ag_cb.profile[i].scn);
      int management_callback_index = bta_ag_scb_to_idx(p_scb) - 1;
      CHECK_GE(management_callback_index, 0)
          << "invalid callback index, services=" << loghex(services)
@@ -260,16 +257,18 @@ void bta_ag_start_servers(tBTA_AG_SCB* p_scb, tBTA_SERVICE_MASK services) {
                                sizeof(bta_ag_mgmt_cback_tbl[0])))
          << "callback index out of bound, services=" << loghex(services)
          << ", bd_addr" << p_scb->peer_addr;
      int status = RFCOMM_CreateConnection(
      int status = RFCOMM_CreateConnectionWithSecurity(
          bta_ag_uuid[i], bta_ag_cb.profile[i].scn, true, BTA_AG_MTU,
          RawAddress::kAny, &(p_scb->serv_handle[i]),
          bta_ag_mgmt_cback_tbl[management_callback_index]);
          bta_ag_mgmt_cback_tbl[management_callback_index], bta_ag_sec_id[i],
          p_scb->serv_sec_mask);
      if (status == PORT_SUCCESS) {
        bta_ag_setup_port(p_scb, p_scb->serv_handle[i]);
      } else {
        /* TODO: CR#137125 to handle to error properly */
        LOG(ERROR) << __func__ << ": RFCOMM_CreateConnection ERROR " << status
                   << ", p_scb=" << p_scb << ", services=" << loghex(services)
        LOG(ERROR) << __func__ << ": RFCOMM_CreateConnectionWithSecurity ERROR "
                   << status << ", p_scb=" << p_scb
                   << ", services=" << loghex(services)
                   << ", mgmt_cback_index=" << management_callback_index;
      }
      APPL_TRACE_DEBUG("%s: p_scb=0x%08x, services=0x%04x, mgmt_cback_index=%d",
@@ -331,15 +330,12 @@ bool bta_ag_is_server_closed(tBTA_AG_SCB* p_scb) {
 *
 ******************************************************************************/
void bta_ag_rfc_do_open(tBTA_AG_SCB* p_scb, const tBTA_AG_DATA& data) {
  BTM_SetSecurityLevel(true, "", bta_ag_sec_id[p_scb->conn_service],
                       p_scb->cli_sec_mask, BT_PSM_RFCOMM, BTM_SEC_PROTO_RFCOMM,
                       p_scb->peer_scn);

  int management_callback_index = bta_ag_scb_to_idx(p_scb) - 1;
  int status = RFCOMM_CreateConnection(
  int status = RFCOMM_CreateConnectionWithSecurity(
      bta_ag_uuid[p_scb->conn_service], p_scb->peer_scn, false, BTA_AG_MTU,
      p_scb->peer_addr, &(p_scb->conn_handle),
      bta_ag_mgmt_cback_tbl[management_callback_index]);
      bta_ag_mgmt_cback_tbl[management_callback_index],
      bta_ag_sec_id[p_scb->conn_service], p_scb->cli_sec_mask);
  APPL_TRACE_DEBUG(
      "%s: p_scb=0x%08x, conn_handle=%d, mgmt_cback_index=%d,"
      " status=%d",
+2 −3
Original line number Diff line number Diff line
@@ -179,13 +179,12 @@ void bta_ar_avdt_conn(tBTA_SYS_ID sys_id, const RawAddress& bd_addr,
 * Returns          void
 *
 ******************************************************************************/
void bta_ar_reg_avct(uint16_t mtu, uint16_t mtu_br, uint8_t sec_mask,
                     tBTA_SYS_ID sys_id) {
void bta_ar_reg_avct(uint16_t mtu, uint16_t mtu_br, tBTA_SYS_ID sys_id) {
  uint8_t mask = bta_ar_id(sys_id);

  if (mask) {
    if (bta_ar_cb.avct_registered == 0) {
      AVCT_Register(mtu, mtu_br, sec_mask);
      AVCT_Register(mtu, mtu_br, BTA_SEC_AUTHENTICATE);
    }
    bta_ar_cb.avct_registered |= mask;
  }
+2 −2
Original line number Diff line number Diff line
@@ -578,7 +578,7 @@ static void bta_av_api_register(tBTA_AV_DATA* p_data) {
/* register with no authorization; let AVDTP use authorization instead */
#if (BTA_AR_INCLUDED == TRUE)
        bta_ar_reg_avct(p_bta_av_cfg->avrc_mtu, p_bta_av_cfg->avrc_br_mtu,
                        BTA_SEC_AUTHENTICATE, BTA_ID_AV);
                        BTA_ID_AV);

        /* For the Audio Sink role we support additional TG to support
         * absolute volume.
@@ -729,7 +729,7 @@ static void bta_av_api_register(tBTA_AV_DATA* p_data) {
        if ((bta_av_cb.features & (BTA_AV_FEAT_RCTG)) == 0) {
#if (BTA_AR_INCLUDED == TRUE)
          bta_ar_reg_avct(p_bta_av_cfg->avrc_mtu, p_bta_av_cfg->avrc_br_mtu,
                          BTA_SEC_AUTHENTICATE, BTA_ID_AV);
                          BTA_ID_AV);
#endif
          bta_av_rc_create(&bta_av_cb, AVCT_ACP, 0, BTA_AV_NUM_LINKS + 1);
        }
+8 −13
Original line number Diff line number Diff line
@@ -182,14 +182,11 @@ void bta_hf_client_start_server() {
    return;
  }

  BTM_SetSecurityLevel(false, "", BTM_SEC_SERVICE_HF_HANDSFREE,
                       bta_hf_client_cb_arr.serv_sec_mask, BT_PSM_RFCOMM,
                       BTM_SEC_PROTO_RFCOMM, bta_hf_client_cb_arr.scn);

  port_status = RFCOMM_CreateConnection(
  port_status = RFCOMM_CreateConnectionWithSecurity(
      UUID_SERVCLASS_HF_HANDSFREE, bta_hf_client_cb_arr.scn, true,
      BTA_HF_CLIENT_MTU, RawAddress::kAny, &(bta_hf_client_cb_arr.serv_handle),
      bta_hf_client_mgmt_cback);
      bta_hf_client_mgmt_cback, BTM_SEC_SERVICE_HF_HANDSFREE,
      bta_hf_client_cb_arr.serv_sec_mask);

  APPL_TRACE_DEBUG("%s: started rfcomm server with handle %d", __func__,
                   bta_hf_client_cb_arr.serv_handle);
@@ -243,13 +240,11 @@ void bta_hf_client_rfc_do_open(tBTA_HF_CLIENT_DATA* p_data) {
    return;
  }

  BTM_SetSecurityLevel(true, "", BTM_SEC_SERVICE_HF_HANDSFREE,
                       client_cb->cli_sec_mask, BT_PSM_RFCOMM,
                       BTM_SEC_PROTO_RFCOMM, client_cb->peer_scn);
  if (RFCOMM_CreateConnection(UUID_SERVCLASS_HF_HANDSFREE, client_cb->peer_scn,
                              false, BTA_HF_CLIENT_MTU, client_cb->peer_addr,
                              &(client_cb->conn_handle),
                              bta_hf_client_mgmt_cback) == PORT_SUCCESS) {
  if (RFCOMM_CreateConnectionWithSecurity(
          UUID_SERVCLASS_HF_HANDSFREE, client_cb->peer_scn, false,
          BTA_HF_CLIENT_MTU, client_cb->peer_addr, &(client_cb->conn_handle),
          bta_hf_client_mgmt_cback, BTM_SEC_SERVICE_HF_HANDSFREE,
          client_cb->cli_sec_mask) == PORT_SUCCESS) {
    bta_hf_client_setup_port(client_cb->conn_handle);
    APPL_TRACE_DEBUG("bta_hf_client_rfc_do_open : conn_handle = %d",
                     client_cb->conn_handle);
+1 −2
Original line number Diff line number Diff line
@@ -98,8 +98,7 @@ extern void bta_ar_avdt_conn(tBTA_SYS_ID sys_id, const RawAddress& bd_addr,
 * Returns          void
 *
 ******************************************************************************/
extern void bta_ar_reg_avct(uint16_t mtu, uint16_t mtu_br, uint8_t sec_mask,
                            tBTA_SYS_ID sys_id);
extern void bta_ar_reg_avct(uint16_t mtu, uint16_t mtu_br, tBTA_SYS_ID sys_id);

/*******************************************************************************
 *
Loading