Loading system/stack/l2cap/l2c_ble.cc +21 −15 Original line number Diff line number Diff line Loading @@ -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; Loading Loading
system/stack/l2cap/l2c_ble.cc +21 −15 Original line number Diff line number Diff line Loading @@ -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; Loading