Skip to content
Permalink
Browse files

Bluetooth: Settings: Fix generated identity not persistently stored.

Fix an issue where the generated identity was not permanently stored.
This resulted in being unable to reconnect after bonding when using
privacy, since a new local IRK was generated on reboot.

When settings is enabled the application is responsible for loading
identities and possible creating its own identities.
When settings_load is called and no identities has been created or found
in persistent storage a new identity will be created.
Since bt init has not been finalized bt_id_create will not make a call
to bt_settings_save_id. So we need to make sure that this identity will
be stored.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
  • Loading branch information...
joerchan authored and carlescufi committed Jul 30, 2019
1 parent 33535a2 commit 2b84c726c8893eaaa1bf26dfddf2798b159cd47d
Showing with 6 additions and 0 deletions.
  1. +6 −0 subsys/bluetooth/host/settings.c
@@ -217,6 +217,12 @@ static int commit(void)
}
}

/* Make sure that the identities created by bt_id_create after
* bt_enable is saved to persistent storage. */
if (!atomic_test_bit(bt_dev.flags, BT_DEV_PRESET_ID)) {
bt_settings_save_id();
}

if (!atomic_test_bit(bt_dev.flags, BT_DEV_READY)) {
bt_finalize_init();
}

0 comments on commit 2b84c72

Please sign in to comment.
You can’t perform that action at this time.