diff --git a/components/bt/esp_ble_mesh/mesh_core/proxy_server.c b/components/bt/esp_ble_mesh/mesh_core/proxy_server.c index f79787c1b4..55cecd32e1 100644 --- a/components/bt/esp_ble_mesh/mesh_core/proxy_server.c +++ b/components/bt/esp_ble_mesh/mesh_core/proxy_server.c @@ -73,6 +73,7 @@ static uint16_t proxy_ccc_val; #if defined(CONFIG_BLE_MESH_PB_GATT) static uint16_t prov_ccc_val; static bool prov_fast_adv; +static uint32_t prov_start_time; #endif static struct bt_mesh_proxy_client { @@ -1377,12 +1378,16 @@ int32_t bt_mesh_proxy_server_adv_start(void) } #if defined(CONFIG_BLE_MESH_PB_GATT) + if (prov_fast_adv) { + prov_start_time = k_uptime_get_32(); + } + if (!bt_mesh_is_provisioned()) { const struct bt_mesh_adv_param *param; struct bt_mesh_adv_data prov_sd[2]; size_t prov_sd_len; - if (prov_fast_adv) { + if (k_uptime_get_32() - prov_start_time < K_SECONDS(60)) { param = &fast_adv_param; } else { param = &slow_adv_param;