]> granicus.if.org Git - esp-idf/commitdiff
Component/bt: fix stop adv failed in smp
authorzhiweijian <zhiweijian@espressif.com>
Wed, 31 Jan 2018 08:06:22 +0000 (16:06 +0800)
committerzhiweijian <zhiweijian@espressif.com>
Wed, 31 Jan 2018 08:06:22 +0000 (16:06 +0800)
components/bt/bluedroid/stack/btm/btm_ble_gap.c

index 2319f95e7fd0cc156192e0a24ead5be87b375651..7fd15ef6ea8794bf3dad0726267510030c1e02fd 100644 (file)
@@ -3598,6 +3598,14 @@ void btm_ble_write_adv_enable_complete(UINT8 *p)
     } else if (p_cb->p_stop_adv_cb && p_cb->adv_mode == BTM_BLE_ADV_DISABLE) {
         p_cb->state = BTM_BLE_STOP_ADV;
         (*p_cb->p_stop_adv_cb)(status);
+    }else {
+        // p_cb->p_adv_cb is NULL or p_cb->p_stop_adv_cb is NULL
+        if (p_cb->adv_mode == BTM_BLE_ADV_ENABLE) {
+            p_cb->state = BTM_BLE_ADVERTISING;
+        }else {
+            p_cb->state = BTM_BLE_STOP_ADV;
+        }
+        p_cb->adv_callback_twice = FALSE;
     }
     /* if write adv enable/disbale not succeed */
     if (*p != HCI_SUCCESS) {