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

Commit 70d65bf2 authored by HsingYuan Lo's avatar HsingYuan Lo
Browse files

Read local cache directly if bonded

Bug: 236983667
Test: build & enable/disable flags to verify client/server behaviors
Tag: #feature
Change-Id: Iae2cd514e0cc0aa23b43a82d4b242d9dfcc48d04
Merged-In: Iae2cd514e0cc0aa23b43a82d4b242d9dfcc48d04
parent 13db081b
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -536,12 +536,9 @@ void bta_gattc_conn(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
      p_clcb->p_srcb->state != BTA_GATTC_SERV_IDLE) {
    if (p_clcb->p_srcb->state == BTA_GATTC_SERV_IDLE) {
      p_clcb->p_srcb->state = BTA_GATTC_SERV_LOAD;
      // Consider the case that if GATT Server is changed, but no service
      // changed indication is received, the database might be out of date. So
      // if robust caching is enabled, any time when connection is established,
      // always check the db hash first, not just load the stored database.
      // For bonded devices, read cache directly, and back to connected state.
      gatt::Database db = bta_gattc_cache_load(p_clcb->p_srcb->server_bda);
      if (!bta_gattc_is_robust_caching_enabled() && !db.IsEmpty()) {
      if (!db.IsEmpty() && btm_sec_is_a_bonded_dev(p_clcb->p_srcb->server_bda)) {
        p_clcb->p_srcb->gatt_database = db;
        p_clcb->p_srcb->state = BTA_GATTC_SERV_IDLE;
        bta_gattc_reset_discover_st(p_clcb->p_srcb, GATT_SUCCESS);