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

Commit 401724bf authored by Chao Quan's avatar Chao Quan Committed by Jakub Pawlowski
Browse files

Fix GATT discovery service fail over BR/EDR

According to the current gattc state machine, stack queues
discovery services request comes from framework when gattc
is in BTA_GATTC_DISCOVER_ST state. This request is re-scheduled
after discovery on server finished in bta_gattc_disc_cmpl
and return the discovery results to framemwork. But now, stack
assumed LE transport in code, which prevents discovery services
executing. This error can be detected by ACTS GATTOverBrEdrTest:
test_gatt_bredr_connect_trigger_on_services_discovered

Fix assumed transport to actual situantion

Test: ACTS GATTOverBrEdrTest:
test_gatt_bredr_connect_trigger_on_services_discovered
Change-Id: I110a0a3c19595fb76c3bb15b092ce18ebf7b11bf
parent c589f416
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -714,7 +714,8 @@ void bta_gattc_disc_cmpl(tBTA_GATTC_CLCB* p_clcb,
  else if (p_q_cmd != NULL) {
    p_clcb->p_q_cmd = NULL;
    /* execute pending operation of link block still present */
    if (l2cu_find_lcb_by_bd_addr(p_clcb->p_srcb->server_bda, BT_TRANSPORT_LE)) {
    if (l2cu_find_lcb_by_bd_addr(p_clcb->p_srcb->server_bda,
                                 p_clcb->transport)) {
      bta_gattc_sm_execute(p_clcb, p_q_cmd->hdr.event, p_q_cmd);
    }
    /* if the command executed requeued the cmd, we don't