From 30d62cc00fa96bcb651a96963bfa99b44b4a3b5d Mon Sep 17 00:00:00 2001 From: lly Date: Wed, 1 Apr 2020 15:15:18 +0800 Subject: [PATCH] ble_mesh: Fix restore when revoke keys [Zephyr] Store keys (NetKey and AppKey) again after revoking. --- components/bt/esp_ble_mesh/mesh_core/net.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/bt/esp_ble_mesh/mesh_core/net.c b/components/bt/esp_ble_mesh/mesh_core/net.c index a2e111bc3..1ad20f677 100644 --- a/components/bt/esp_ble_mesh/mesh_core/net.c +++ b/components/bt/esp_ble_mesh/mesh_core/net.c @@ -501,6 +501,10 @@ void bt_mesh_net_revoke_keys(struct bt_mesh_subnet *sub) BT_DBG("idx 0x%04x", sub->net_idx); memcpy(&sub->keys[0], &sub->keys[1], sizeof(sub->keys[0])); + if (IS_ENABLED(CONFIG_BLE_MESH_SETTINGS)) { + BT_DBG("Store updated NetKey persistently"); + bt_mesh_store_subnet(sub); + } for (i = 0; i < ARRAY_SIZE(bt_mesh.app_keys); i++) { struct bt_mesh_app_key *key = &bt_mesh.app_keys[i]; @@ -511,6 +515,10 @@ void bt_mesh_net_revoke_keys(struct bt_mesh_subnet *sub) memcpy(&key->keys[0], &key->keys[1], sizeof(key->keys[0])); key->updated = false; + if (IS_ENABLED(CONFIG_BLE_MESH_SETTINGS)) { + BT_DBG("Store updated AppKey persistently"); + bt_mesh_store_app_key(key); + } } }