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

Commit dc72c334 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "l2cap: Fix handling Enhanced Credit Connection response"

parents d9552a92 0f335669
Loading
Loading
Loading
Loading
+21 −15
Original line number Diff line number Diff line
@@ -705,23 +705,29 @@ void l2cble_process_sig_cmd(tL2C_LCB* p_lcb, uint8_t* p, uint16_t pkt_len) {
      for (int i = 0; i < p_lcb->pending_ecoc_conn_cnt; i++) {
        uint16_t cid = p_lcb->pending_ecoc_connection_cids[i];
        STREAM_TO_UINT16(rcid, p);
        /* if duplicated remote cid then disconnect original channel
         * and current channel by sending event to upper layer */

        if (rcid != 0) {
          /* If remote cid is duplicated then disconnect original channel
           * and current channel by sending event to upper layer
           */
          temp_p_ccb = l2cu_find_ccb_by_remote_cid(p_lcb, rcid);
          if (temp_p_ccb != nullptr) {
            L2CAP_TRACE_ERROR(
                "Already Allocated Destination cid. "
                "rcid = %d "
              "send peer_disc_req", rcid);
                "send peer_disc_req",
                rcid);

            l2cu_send_peer_disc_req(temp_p_ccb);

            temp_p_ccb = l2cu_find_ccb_by_cid(p_lcb, cid);
            con_info.l2cap_result = L2CAP_LE_RESULT_UNACCEPTABLE_PARAMETERS;
          l2c_csm_execute(temp_p_ccb, L2CEVT_L2CAP_CREDIT_BASED_CONNECT_RSP_NEG,
            l2c_csm_execute(temp_p_ccb,
                            L2CEVT_L2CAP_CREDIT_BASED_CONNECT_RSP_NEG,
                            &con_info);
            continue;
          }
        }

        temp_p_ccb = l2cu_find_ccb_by_cid(p_lcb, cid);
        temp_p_ccb->remote_cid = rcid;