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

Commit 6dc25bf8 authored by Hansong Zhang's avatar Hansong Zhang
Browse files

Include initial remote config in pL2CA_ConfigCfm_Cb

So we don't need to send a separate pL2CA_ConfigInd_Cb.

Bug: 159815595
Tag: #refactor
Test: compile & verify basic functions working
Change-Id: I75dafa4bc38a1c5a7773db6be5665b30ad88b006
parent b339aae1
Loading
Loading
Loading
Loading
+2 −10
Original line number Diff line number Diff line
@@ -268,14 +268,10 @@ void bluetooth::shim::legacy::L2cap::OnLocalInitiatedConnectionCreated(
        base::Bind(classic_.Callbacks(psm).pL2CA_ConnectCfm_Cb, cid,
                   connected ? (kConnectionSuccess) : (kConnectionFail)));
    tL2CAP_CFG_INFO cfg_info{};
    do_in_main_thread(
        FROM_HERE,
        base::Bind(classic_.Callbacks(CidToPsm(cid)).pL2CA_ConfigInd_Cb, cid,
                   base::Unretained(&cfg_info)));
    do_in_main_thread(
        FROM_HERE,
        base::Bind(classic_.Callbacks(CidToPsm(cid)).pL2CA_ConfigCfm_Cb, cid,
                   L2CAP_CFG_OK));
                   L2CAP_INITIATOR_LOCAL, base::Unretained(&cfg_info)));

  } else {
    LOG_DEBUG("Connection Closed before presentation to upper layer");
@@ -308,14 +304,10 @@ void bluetooth::shim::legacy::L2cap::OnRemoteInitiatedConnectionCreated(
      base::Bind(classic_.Callbacks(CidToPsm(cid)).pL2CA_ConnectInd_Cb,
                 raw_address, cid, psm, kUnusedId));
  tL2CAP_CFG_INFO cfg_info{};
  do_in_main_thread(
      FROM_HERE,
      base::Bind(classic_.Callbacks(CidToPsm(cid)).pL2CA_ConfigInd_Cb, cid,
                 base::Unretained(&cfg_info)));
  do_in_main_thread(
      FROM_HERE,
      base::Bind(classic_.Callbacks(CidToPsm(cid)).pL2CA_ConfigCfm_Cb, cid,
                 L2CAP_CFG_OK));
                 L2CAP_INITIATOR_REMOTE, base::Unretained(&cfg_info)));
}

bool bluetooth::shim::legacy::L2cap::Write(uint16_t cid, BT_HDR* bt_hdr) {
+6 −2
Original line number Diff line number Diff line
@@ -34,7 +34,8 @@
void avct_l2c_connect_ind_cback(const RawAddress& bd_addr, uint16_t lcid,
                                uint16_t psm, uint8_t id);
void avct_l2c_connect_cfm_cback(uint16_t lcid, uint16_t result);
void avct_l2c_config_cfm_cback(uint16_t lcid, uint16_t result);
void avct_l2c_config_cfm_cback(uint16_t lcid, uint16_t result,
                               tL2CAP_CFG_INFO* p_cfg);
void avct_l2c_config_ind_cback(uint16_t lcid, tL2CAP_CFG_INFO* p_cfg);
void avct_l2c_disconnect_ind_cback(uint16_t lcid, bool ack_needed);
void avct_l2c_congestion_ind_cback(uint16_t lcid, bool is_congested);
@@ -219,7 +220,10 @@ void avct_l2c_connect_cfm_cback(uint16_t lcid, uint16_t result) {
 * Returns          void
 *
 ******************************************************************************/
void avct_l2c_config_cfm_cback(uint16_t lcid, uint16_t initiator) {
void avct_l2c_config_cfm_cback(uint16_t lcid, uint16_t initiator,
                               tL2CAP_CFG_INFO* p_cfg) {
  avct_l2c_config_ind_cback(lcid, p_cfg);

  tAVCT_LCB* p_lcb;

  /* look up lcb for this channel */
+6 −2
Original line number Diff line number Diff line
@@ -35,7 +35,8 @@
void avct_l2c_br_connect_ind_cback(const RawAddress& bd_addr, uint16_t lcid,
                                   uint16_t psm, uint8_t id);
void avct_l2c_br_connect_cfm_cback(uint16_t lcid, uint16_t result);
void avct_l2c_br_config_cfm_cback(uint16_t lcid, uint16_t result);
void avct_l2c_br_config_cfm_cback(uint16_t lcid, uint16_t result,
                                  tL2CAP_CFG_INFO* p_cfg);
void avct_l2c_br_config_ind_cback(uint16_t lcid, tL2CAP_CFG_INFO* p_cfg);
void avct_l2c_br_disconnect_ind_cback(uint16_t lcid, bool ack_needed);
void avct_l2c_br_congestion_ind_cback(uint16_t lcid, bool is_congested);
@@ -151,7 +152,10 @@ void avct_l2c_br_connect_cfm_cback(uint16_t lcid, uint16_t result) {
 * Returns          void
 *
 ******************************************************************************/
void avct_l2c_br_config_cfm_cback(uint16_t lcid, uint16_t initiator) {
void avct_l2c_br_config_cfm_cback(uint16_t lcid, uint16_t initiator,
                                  tL2CAP_CFG_INFO* p_cfg) {
  avct_l2c_br_config_ind_cback(lcid, p_cfg);

  tAVCT_BCB* p_lcb;

  /* look up lcb for this channel */
+6 −2
Original line number Diff line number Diff line
@@ -37,7 +37,8 @@
void avdt_l2c_connect_ind_cback(const RawAddress& bd_addr, uint16_t lcid,
                                uint16_t psm, uint8_t id);
void avdt_l2c_connect_cfm_cback(uint16_t lcid, uint16_t result);
void avdt_l2c_config_cfm_cback(uint16_t lcid, uint16_t result);
void avdt_l2c_config_cfm_cback(uint16_t lcid, uint16_t result,
                               tL2CAP_CFG_INFO* p_cfg);
void avdt_l2c_config_ind_cback(uint16_t lcid, tL2CAP_CFG_INFO* p_cfg);
void avdt_l2c_disconnect_ind_cback(uint16_t lcid, bool ack_needed);
void avdt_l2c_congestion_ind_cback(uint16_t lcid, bool is_congested);
@@ -286,7 +287,10 @@ void avdt_l2c_connect_cfm_cback(uint16_t lcid, uint16_t result) {
 * Returns          void
 *
 ******************************************************************************/
void avdt_l2c_config_cfm_cback(uint16_t lcid, uint16_t initiator) {
void avdt_l2c_config_cfm_cback(uint16_t lcid, uint16_t initiator,
                               tL2CAP_CFG_INFO* p_cfg) {
  avdt_l2c_config_ind_cback(lcid, p_cfg);

  AvdtpTransportChannel* p_tbl;

  AVDT_TRACE_DEBUG("%s: lcid: %d", __func__, lcid);
+5 −18
Original line number Diff line number Diff line
@@ -54,8 +54,8 @@ const uint16_t bnep_frame_hdr_sizes[] = {14, 1, 2, 8, 8};
static void bnep_connect_ind(const RawAddress& bd_addr, uint16_t l2cap_cid,
                             uint16_t psm, uint8_t l2cap_id);
static void bnep_connect_cfm(uint16_t l2cap_cid, uint16_t result);
static void bnep_config_ind(uint16_t l2cap_cid, tL2CAP_CFG_INFO* p_cfg);
static void bnep_config_cfm(uint16_t l2cap_cid, uint16_t result);
static void bnep_config_cfm(uint16_t l2cap_cid, uint16_t result,
                            tL2CAP_CFG_INFO* p_cfg);
static void bnep_disconnect_ind(uint16_t l2cap_cid, bool ack_needed);
static void bnep_data_ind(uint16_t l2cap_cid, BT_HDR* p_msg);
static void bnep_congestion_ind(uint16_t lcid, bool is_congested);
@@ -78,7 +78,7 @@ tBNEP_RESULT bnep_register_with_l2cap(void) {

  bnep_cb.reg_info.pL2CA_ConnectInd_Cb = bnep_connect_ind;
  bnep_cb.reg_info.pL2CA_ConnectCfm_Cb = bnep_connect_cfm;
  bnep_cb.reg_info.pL2CA_ConfigInd_Cb = bnep_config_ind;
  bnep_cb.reg_info.pL2CA_ConfigInd_Cb = nullptr;
  bnep_cb.reg_info.pL2CA_ConfigCfm_Cb = bnep_config_cfm;
  bnep_cb.reg_info.pL2CA_DisconnectInd_Cb = bnep_disconnect_ind;
  bnep_cb.reg_info.pL2CA_DataInd_Cb = bnep_data_ind;
@@ -185,20 +185,6 @@ static void bnep_connect_cfm(uint16_t l2cap_cid, uint16_t result) {
  }
}

/*******************************************************************************
 *
 * Function         bnep_config_ind
 *
 * Description      This function processes the L2CAP configuration indication
 *                  event.
 *
 * Returns          void
 *
 ******************************************************************************/
static void bnep_config_ind(uint16_t l2cap_cid, tL2CAP_CFG_INFO* p_cfg) {
  // No-op here. We are not interested in their MTU.
}

/*******************************************************************************
 *
 * Function         bnep_config_cfm
@@ -209,7 +195,8 @@ static void bnep_config_ind(uint16_t l2cap_cid, tL2CAP_CFG_INFO* p_cfg) {
 * Returns          void
 *
 ******************************************************************************/
static void bnep_config_cfm(uint16_t l2cap_cid, uint16_t initiator) {
static void bnep_config_cfm(uint16_t l2cap_cid, uint16_t initiator,
                            tL2CAP_CFG_INFO* p_cfg) {
  tBNEP_CONN* p_bcb;

  BNEP_TRACE_EVENT("BNEP - Rcvd cfg cfm, CID: 0x%x", l2cap_cid);
Loading