Loading system/bta/dm/bta_dm_act.cc +7 −1 Original line number Diff line number Diff line Loading @@ -4017,6 +4017,11 @@ static void bta_dm_gatt_disc_complete(uint16_t conn_id, tGATT_STATUS status) { p_msg->hdr.layer_specific = 0; bta_sys_sendmsg(p_msg); } } else { if (bluetooth::common::init_flags:: bta_dm_clear_conn_id_on_client_close_is_enabled()) { bta_dm_search_cb.conn_id = GATT_INVALID_CONN_ID; } } bta_dm_search_cb.gatt_disc_active = false; } Loading Loading @@ -4149,7 +4154,8 @@ static void bta_dm_gattc_callback(tBTA_GATTC_EVT event, tBTA_GATTC* p_data) { break; case BTA_GATTC_CLOSE_EVT: LOG_DEBUG("BTA_GATTC_CLOSE_EVT reason = %d", p_data->close.reason); LOG_INFO("BTA_GATTC_CLOSE_EVT reason = %d", p_data->close.reason); /* in case of disconnect before search is completed */ if ((bta_dm_search_cb.state != BTA_DM_SEARCH_IDLE) && (bta_dm_search_cb.state != BTA_DM_SEARCH_ACTIVE) && Loading system/bta/dm/bta_dm_main.cc +22 −2 Original line number Diff line number Diff line Loading @@ -61,8 +61,8 @@ uint8_t bta_dm_search_get_state() { return bta_dm_search_cb.state; } * ******************************************************************************/ bool bta_dm_search_sm_execute(BT_HDR_RIGID* p_msg) { APPL_TRACE_EVENT("bta_dm_search_sm_execute state:%d, event:0x%x", bta_dm_search_cb.state, p_msg->event); LOG_INFO("bta_dm_search_sm_execute state:%d, event:0x%x", bta_dm_search_get_state(), p_msg->event); tBTA_DM_MSG* message = (tBTA_DM_MSG*)p_msg; switch (bta_dm_search_cb.state) { Loading Loading @@ -123,6 +123,16 @@ bool bta_dm_search_sm_execute(BT_HDR_RIGID* p_msg) { bta_dm_search_cancel_notify(); bta_dm_execute_queued_request(); break; case BTA_DM_DISC_CLOSE_TOUT_EVT: if (bluetooth::common::init_flags:: bta_dm_clear_conn_id_on_client_close_is_enabled()) { bta_dm_close_gatt_conn(message); break; } [[fallthrough]]; default: LOG_INFO("Received unexpected event 0x%x in state %d", p_msg->event, bta_dm_search_cb.state); } break; case BTA_DM_DISCOVER_ACTIVE: Loading @@ -145,6 +155,16 @@ bool bta_dm_search_sm_execute(BT_HDR_RIGID* p_msg) { case BTA_DM_API_DISCOVER_EVT: bta_dm_queue_disc(message); break; case BTA_DM_DISC_CLOSE_TOUT_EVT: if (bluetooth::common::init_flags:: bta_dm_clear_conn_id_on_client_close_is_enabled()) { bta_dm_close_gatt_conn(message); break; } [[fallthrough]]; default: LOG_INFO("Received unexpected event 0x%x in state %d", p_msg->event, bta_dm_search_cb.state); } break; } Loading system/gd/common/init_flags.fbs +1 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ table InitFlagsData { asynchronously_start_l2cap_coc_is_enabled:bool (privacy:"Any"); btaa_hci_is_enabled:bool (privacy:"Any"); bta_dm_clear_conn_id_on_client_close_is_enabled:bool (privacy:"Any"); btm_dm_flush_discovery_queue_on_search_cancel_is_enabled:bool (privacy:"Any"); finite_att_timeout_is_enabled:bool (privacy:"Any"); gatt_robust_caching_client_is_enabled:bool (privacy:"Any"); Loading system/gd/dumpsys/init_flags.cc +2 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,8 @@ flatbuffers::Offset<bluetooth::common::InitFlagsData> bluetooth::dumpsys::InitFl builder.add_asynchronously_start_l2cap_coc_is_enabled(initFlags::asynchronously_start_l2cap_coc_is_enabled()); builder.add_btaa_hci_is_enabled(initFlags::btaa_hci_is_enabled()); builder.add_bta_dm_clear_conn_id_on_client_close_is_enabled( initFlags::bta_dm_clear_conn_id_on_client_close_is_enabled()); builder.add_btm_dm_flush_discovery_queue_on_search_cancel_is_enabled( initFlags::btm_dm_flush_discovery_queue_on_search_cancel_is_enabled()); builder.add_finite_att_timeout_is_enabled(initFlags::finite_att_timeout_is_enabled()); Loading system/gd/rust/common/src/init_flags.rs +1 −0 Original line number Diff line number Diff line Loading @@ -207,6 +207,7 @@ init_flags!( flags: { asynchronously_start_l2cap_coc = true, btaa_hci = true, bta_dm_clear_conn_id_on_client_close = true, btm_dm_flush_discovery_queue_on_search_cancel, finite_att_timeout = true, gatt_robust_caching_client = true, Loading Loading
system/bta/dm/bta_dm_act.cc +7 −1 Original line number Diff line number Diff line Loading @@ -4017,6 +4017,11 @@ static void bta_dm_gatt_disc_complete(uint16_t conn_id, tGATT_STATUS status) { p_msg->hdr.layer_specific = 0; bta_sys_sendmsg(p_msg); } } else { if (bluetooth::common::init_flags:: bta_dm_clear_conn_id_on_client_close_is_enabled()) { bta_dm_search_cb.conn_id = GATT_INVALID_CONN_ID; } } bta_dm_search_cb.gatt_disc_active = false; } Loading Loading @@ -4149,7 +4154,8 @@ static void bta_dm_gattc_callback(tBTA_GATTC_EVT event, tBTA_GATTC* p_data) { break; case BTA_GATTC_CLOSE_EVT: LOG_DEBUG("BTA_GATTC_CLOSE_EVT reason = %d", p_data->close.reason); LOG_INFO("BTA_GATTC_CLOSE_EVT reason = %d", p_data->close.reason); /* in case of disconnect before search is completed */ if ((bta_dm_search_cb.state != BTA_DM_SEARCH_IDLE) && (bta_dm_search_cb.state != BTA_DM_SEARCH_ACTIVE) && Loading
system/bta/dm/bta_dm_main.cc +22 −2 Original line number Diff line number Diff line Loading @@ -61,8 +61,8 @@ uint8_t bta_dm_search_get_state() { return bta_dm_search_cb.state; } * ******************************************************************************/ bool bta_dm_search_sm_execute(BT_HDR_RIGID* p_msg) { APPL_TRACE_EVENT("bta_dm_search_sm_execute state:%d, event:0x%x", bta_dm_search_cb.state, p_msg->event); LOG_INFO("bta_dm_search_sm_execute state:%d, event:0x%x", bta_dm_search_get_state(), p_msg->event); tBTA_DM_MSG* message = (tBTA_DM_MSG*)p_msg; switch (bta_dm_search_cb.state) { Loading Loading @@ -123,6 +123,16 @@ bool bta_dm_search_sm_execute(BT_HDR_RIGID* p_msg) { bta_dm_search_cancel_notify(); bta_dm_execute_queued_request(); break; case BTA_DM_DISC_CLOSE_TOUT_EVT: if (bluetooth::common::init_flags:: bta_dm_clear_conn_id_on_client_close_is_enabled()) { bta_dm_close_gatt_conn(message); break; } [[fallthrough]]; default: LOG_INFO("Received unexpected event 0x%x in state %d", p_msg->event, bta_dm_search_cb.state); } break; case BTA_DM_DISCOVER_ACTIVE: Loading @@ -145,6 +155,16 @@ bool bta_dm_search_sm_execute(BT_HDR_RIGID* p_msg) { case BTA_DM_API_DISCOVER_EVT: bta_dm_queue_disc(message); break; case BTA_DM_DISC_CLOSE_TOUT_EVT: if (bluetooth::common::init_flags:: bta_dm_clear_conn_id_on_client_close_is_enabled()) { bta_dm_close_gatt_conn(message); break; } [[fallthrough]]; default: LOG_INFO("Received unexpected event 0x%x in state %d", p_msg->event, bta_dm_search_cb.state); } break; } Loading
system/gd/common/init_flags.fbs +1 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ table InitFlagsData { asynchronously_start_l2cap_coc_is_enabled:bool (privacy:"Any"); btaa_hci_is_enabled:bool (privacy:"Any"); bta_dm_clear_conn_id_on_client_close_is_enabled:bool (privacy:"Any"); btm_dm_flush_discovery_queue_on_search_cancel_is_enabled:bool (privacy:"Any"); finite_att_timeout_is_enabled:bool (privacy:"Any"); gatt_robust_caching_client_is_enabled:bool (privacy:"Any"); Loading
system/gd/dumpsys/init_flags.cc +2 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,8 @@ flatbuffers::Offset<bluetooth::common::InitFlagsData> bluetooth::dumpsys::InitFl builder.add_asynchronously_start_l2cap_coc_is_enabled(initFlags::asynchronously_start_l2cap_coc_is_enabled()); builder.add_btaa_hci_is_enabled(initFlags::btaa_hci_is_enabled()); builder.add_bta_dm_clear_conn_id_on_client_close_is_enabled( initFlags::bta_dm_clear_conn_id_on_client_close_is_enabled()); builder.add_btm_dm_flush_discovery_queue_on_search_cancel_is_enabled( initFlags::btm_dm_flush_discovery_queue_on_search_cancel_is_enabled()); builder.add_finite_att_timeout_is_enabled(initFlags::finite_att_timeout_is_enabled()); Loading
system/gd/rust/common/src/init_flags.rs +1 −0 Original line number Diff line number Diff line Loading @@ -207,6 +207,7 @@ init_flags!( flags: { asynchronously_start_l2cap_coc = true, btaa_hci = true, bta_dm_clear_conn_id_on_client_close = true, btm_dm_flush_discovery_queue_on_search_cancel, finite_att_timeout = true, gatt_robust_caching_client = true, Loading