OSDN Git Service

Do not GATT_ERROR on MTU change
authorJacky Cheung <jackyc@google.com>
Mon, 17 Apr 2017 20:38:39 +0000 (13:38 -0700)
committerJacky Cheung <jackyc@google.com>
Tue, 2 May 2017 17:33:57 +0000 (10:33 -0700)
Bug: 37305498
Test: manual on MSM8909
Change-Id: I07389620efc914d0ece52262edc2c35b498d5564
(cherry picked from commit f271c9109e5608acb393c9bef0bca9d2b0177f5d)

bta/gatt/bta_gattc_act.cc

index ef283b8..3ff6457 100644 (file)
@@ -1206,10 +1206,10 @@ void bta_gattc_op_cmpl(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
       return;
     }
 
-    /* discard responses if service change indication is received before
-     * operation completed */
+    /* Except for MTU configuration, discard responses if service change
+     * indication is received before operation completed */
     if (p_clcb->auto_update == BTA_GATTC_DISC_WAITING &&
-        p_clcb->p_srcb->srvc_hdl_chg) {
+        p_clcb->p_srcb->srvc_hdl_chg && op != GATTC_OPTYPE_CONFIG) {
       APPL_TRACE_DEBUG(
           "Discard all responses when service change indication is received.");
       p_data->op_cmpl.status = GATT_ERROR;