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

Commit 5e8afe53 authored by Pomai Ahlo's avatar Pomai Ahlo
Browse files

RFCOMM: Save app_uid

Refactor code to pass app_uid down to sm_cb

Bug: 361844445
Test: atest RfcommTest
Flag: EXEMPT no-op for metrics
Change-Id: I12b1545fb9d928b320c86a7b121e034531909003
parent f494b466
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -698,7 +698,7 @@ tBTA_JV_STATUS BTA_JvL2capWrite(uint32_t handle, uint32_t req_id, BT_HDR* msg, u
 ******************************************************************************/
tBTA_JV_STATUS BTA_JvRfcommConnect(tBTA_SEC sec_mask, uint8_t remote_scn,
                                   const RawAddress& peer_bd_addr, tBTA_JV_RFCOMM_CBACK* p_cback,
                                   uint32_t rfcomm_slot_id, RfcommCfgInfo cfg);
                                   uint32_t rfcomm_slot_id, RfcommCfgInfo cfg, uint32_t app_uid);

/*******************************************************************************
 *
@@ -729,7 +729,7 @@ tBTA_JV_STATUS BTA_JvRfcommClose(uint32_t handle, uint32_t rfcomm_slot_id);
 ******************************************************************************/
tBTA_JV_STATUS BTA_JvRfcommStartServer(tBTA_SEC sec_mask, uint8_t local_scn, uint8_t max_session,
                                       tBTA_JV_RFCOMM_CBACK* p_cback, uint32_t rfcomm_slot_id,
                                       RfcommCfgInfo cfg);
                                       RfcommCfgInfo cfg, uint32_t app_uid);

/*******************************************************************************
 *
+8 −2
Original line number Diff line number Diff line
@@ -1512,7 +1512,7 @@ static void bta_jv_port_event_cl_cback(uint32_t code, uint16_t port_handle) {
/* Client initiates an RFCOMM connection */
void bta_jv_rfcomm_connect(tBTA_SEC sec_mask, uint8_t remote_scn, const RawAddress& peer_bd_addr,
                           tBTA_JV_RFCOMM_CBACK* p_cback, uint32_t rfcomm_slot_id,
                           RfcommCfgInfo cfg) {
                           RfcommCfgInfo cfg, uint32_t app_uid) {
  uint16_t handle = 0;
  uint32_t event_mask = BTA_JV_RFC_EV_MASK;
  PortSettings port_settings;
@@ -1549,6 +1549,9 @@ void bta_jv_rfcomm_connect(tBTA_SEC sec_mask, uint8_t remote_scn, const RawAddre
      p_pcb->rfcomm_slot_id = rfcomm_slot_id;
      bta_jv.rfc_cl_init.use_co = true;

      if (PORT_SetAppUid(handle, app_uid) != PORT_SUCCESS) {
        log::warn("Unable to set app_uid for port handle:{}", handle);
      }
      if (PORT_SetEventMaskAndCallback(handle, event_mask, bta_jv_port_event_cl_cback) !=
          PORT_SUCCESS) {
        log::warn("Unable to set RFCOMM client event mask and callback handle:{}", handle);
@@ -1843,7 +1846,7 @@ static tBTA_JV_PCB* bta_jv_add_rfc_port(tBTA_JV_RFC_CB* p_cb, tBTA_JV_PCB* p_pcb
/* waits for an RFCOMM client to connect */
void bta_jv_rfcomm_start_server(tBTA_SEC sec_mask, uint8_t local_scn, uint8_t max_session,
                                tBTA_JV_RFCOMM_CBACK* p_cback, uint32_t rfcomm_slot_id,
                                RfcommCfgInfo cfg) {
                                RfcommCfgInfo cfg, uint32_t app_uid) {
  uint16_t handle = 0;
  uint32_t event_mask = BTA_JV_RFC_EV_MASK;
  PortSettings port_settings;
@@ -1877,6 +1880,9 @@ void bta_jv_rfcomm_start_server(tBTA_SEC sec_mask, uint8_t local_scn, uint8_t ma
    evt_data.handle = p_cb->handle;
    evt_data.use_co = true;

    if (PORT_SetAppUid(handle, app_uid) != PORT_SUCCESS) {
      log::warn("Unable to set app_uid for port handle:{}", handle);
    }
    if (PORT_ClearKeepHandleFlag(handle) != PORT_SUCCESS) {
      log::warn("Unable to clear RFCOMM server keep handle flag handle:{}", handle);
    }
+4 −4
Original line number Diff line number Diff line
@@ -415,7 +415,7 @@ tBTA_JV_STATUS BTA_JvL2capWrite(uint32_t handle, uint32_t req_id, BT_HDR* msg, u
 ******************************************************************************/
tBTA_JV_STATUS BTA_JvRfcommConnect(tBTA_SEC sec_mask, uint8_t remote_scn,
                                   const RawAddress& peer_bd_addr, tBTA_JV_RFCOMM_CBACK* p_cback,
                                   uint32_t rfcomm_slot_id, RfcommCfgInfo cfg) {
                                   uint32_t rfcomm_slot_id, RfcommCfgInfo cfg, uint32_t app_uid) {
  log::verbose("remote_scn:{}, peer_bd_addr:{}, rfcomm_slot_id:{}", remote_scn, peer_bd_addr,
               rfcomm_slot_id);

@@ -424,7 +424,7 @@ tBTA_JV_STATUS BTA_JvRfcommConnect(tBTA_SEC sec_mask, uint8_t remote_scn,
  }

  do_in_main_thread(Bind(&bta_jv_rfcomm_connect, sec_mask, remote_scn, peer_bd_addr, p_cback,
                         rfcomm_slot_id, cfg));
                         rfcomm_slot_id, cfg, app_uid));
  return tBTA_JV_STATUS::SUCCESS;
}

@@ -470,7 +470,7 @@ tBTA_JV_STATUS BTA_JvRfcommClose(uint32_t handle, uint32_t rfcomm_slot_id) {
 ******************************************************************************/
tBTA_JV_STATUS BTA_JvRfcommStartServer(tBTA_SEC sec_mask, uint8_t local_scn, uint8_t max_session,
                                       tBTA_JV_RFCOMM_CBACK* p_cback, uint32_t rfcomm_slot_id,
                                       RfcommCfgInfo cfg) {
                                       RfcommCfgInfo cfg, uint32_t app_uid) {
  log::verbose("local_scn:{}, rfcomm_slot_id:{}", local_scn, rfcomm_slot_id);

  if (p_cback == NULL) {
@@ -486,7 +486,7 @@ tBTA_JV_STATUS BTA_JvRfcommStartServer(tBTA_SEC sec_mask, uint8_t local_scn, uin
  }

  do_in_main_thread(Bind(&bta_jv_rfcomm_start_server, sec_mask, local_scn, max_session, p_cback,
                         rfcomm_slot_id, cfg));
                         rfcomm_slot_id, cfg, app_uid));
  return tBTA_JV_STATUS::SUCCESS;
}

+2 −2
Original line number Diff line number Diff line
@@ -166,11 +166,11 @@ void bta_jv_l2cap_write(uint32_t handle, uint32_t req_id, BT_HDR* msg, uint32_t
                        tBTA_JV_L2C_CB* p_cb);
void bta_jv_rfcomm_connect(tBTA_SEC sec_mask, uint8_t remote_scn, const RawAddress& peer_bd_addr,
                           tBTA_JV_RFCOMM_CBACK* p_cback, uint32_t rfcomm_slot_id,
                           RfcommCfgInfo cfg);
                           RfcommCfgInfo cfg, uint32_t app_uid);
void bta_jv_rfcomm_close(uint32_t handle, uint32_t rfcomm_slot_id);
void bta_jv_rfcomm_start_server(tBTA_SEC sec_mask, uint8_t local_scn, uint8_t max_session,
                                tBTA_JV_RFCOMM_CBACK* p_cback, uint32_t rfcomm_slot_id,
                                RfcommCfgInfo cfg);
                                RfcommCfgInfo cfg, uint32_t app_uid);
void bta_jv_rfcomm_stop_server(uint32_t handle, uint32_t rfcomm_slot_id);
void bta_jv_rfcomm_write(uint32_t handle, uint32_t req_id, tBTA_JV_RFC_CB* p_cb,
                         tBTA_JV_PCB* p_pcb);
+6 −5
Original line number Diff line number Diff line
@@ -458,7 +458,7 @@ bt_status_t btsock_rfc_connect(const RawAddress* bd_addr, const Uuid* service_uu

  if (!service_uuid || service_uuid->IsEmpty()) {
    tBTA_JV_STATUS ret = BTA_JvRfcommConnect(slot->security, slot->scn, slot->addr, rfcomm_cback,
                                             slot->id, RfcommCfgInfo{});
                                             slot->id, RfcommCfgInfo{}, slot->app_uid);
    if (ret != tBTA_JV_STATUS::SUCCESS) {
      log::error("unable to initiate RFCOMM connection. status:{}, scn:{}, bd_addr:{}",
                 bta_jv_status_text(ret), slot->scn, slot->addr);
@@ -1044,7 +1044,8 @@ static void jv_dm_cback(tBTA_JV_EVT event, tBTA_JV* p_data, uint32_t id) {
          }
        }
        // now start the rfcomm server after sdp & channel # assigned
        BTA_JvRfcommStartServer(rs->security, rs->scn, MAX_RFC_SESSION, rfcomm_cback, rs->id, cfg);
        BTA_JvRfcommStartServer(rs->security, rs->scn, MAX_RFC_SESSION, rfcomm_cback, rs->id, cfg,
                                rs->app_uid);
      }
      break;
    }
@@ -1085,7 +1086,7 @@ static void jv_dm_cback(tBTA_JV_EVT event, tBTA_JV* p_data, uint32_t id) {
      }
      // Start the rfcomm server after sdp & channel # assigned.
      BTA_JvRfcommStartServer(slot->security, slot->scn, MAX_RFC_SESSION, rfcomm_cback, slot->id,
                              cfg);
                              cfg, slot->app_uid);
      break;
    }

@@ -1143,8 +1144,8 @@ static void handle_discovery_comp(tBTA_JV_STATUS status, int scn, uint32_t id) {
    }
  }

  if (BTA_JvRfcommConnect(slot->security, scn, slot->addr, rfcomm_cback, slot->id, cfg) !=
      tBTA_JV_STATUS::SUCCESS) {
  if (BTA_JvRfcommConnect(slot->security, scn, slot->addr, rfcomm_cback, slot->id, cfg,
                          slot->app_uid) != tBTA_JV_STATUS::SUCCESS) {
    log::warn(
            "BTA_JvRfcommConnect() returned BTA_JV_FAILURE for RFCOMM slot with "
            "id: {}",
Loading