mesh: Fail init on keys generation error

Fail on Mesh initialization if provisioning is enabled and keys were
not generated. This make it simpler to debug misconfigured devices.

Ported from Zephyr PR #4691

X-Original-Commit: 935073256bf3eb64a499d4186b41f9b744302655
This commit is contained in:
Michał Narajowski
2017-11-03 10:53:06 +01:00
parent c7d9985793
commit 44d5c462d5
3 changed files with 14 additions and 5 deletions
+5 -1
View File
@@ -173,7 +173,11 @@ bt_mesh_init(uint8_t own_addr_type, const struct bt_mesh_prov *prov,
}
if (MYNEWT_VAL(BLE_MESH_PROV)) {
bt_mesh_prov_init(prov);
err = bt_mesh_prov_init(prov);
if (err) {
return err;
}
}
#if (MYNEWT_VAL(BLE_MESH_PROXY))
+8 -3
View File
@@ -1502,8 +1502,9 @@ bool bt_prov_active(void)
return atomic_test_bit(link.flags, LINK_ACTIVE);
}
void bt_mesh_prov_init(const struct bt_mesh_prov *prov_info)
int bt_mesh_prov_init(const struct bt_mesh_prov *prov_info)
{
int err;
static struct bt_pub_key_cb pub_key_cb = {
.func = pub_key_ready,
};
@@ -1512,8 +1513,10 @@ void bt_mesh_prov_init(const struct bt_mesh_prov *prov_info)
#endif
if (bt_pub_key_gen(&pub_key_cb)) {
BT_ERR("Failed to generate public key");
err = bt_pub_key_gen(&pub_key_cb);
if (err) {
BT_ERR("Failed to generate public key (%d)", err);
return err;
}
prov = prov_info;
@@ -1530,6 +1533,8 @@ void bt_mesh_prov_init(const struct bt_mesh_prov *prov_info)
#endif
#endif /* MYNEWT_VAL(BLE_MESH_PB_ADV) */
return 0;
}
void bt_mesh_prov_reset_link(void) {
+1 -1
View File
@@ -29,7 +29,7 @@ bt_mesh_pb_gatt_recv(uint16_t conn_handle, struct os_mbuf *buf);
const u8_t *
bt_mesh_prov_get_uuid(void);
void
int
bt_mesh_prov_init(const struct bt_mesh_prov *prov);
void