Bluetooth: Mesh: suspend/resume advertising

Disables Mesh advertising when suspending, and enables advertising
when resuming Mesh.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
This commit is contained in:
Håvard Reierstad 2023-11-23 12:09:18 +01:00 committed by Henrik Brix Andersen
commit 897a1d0d1c

View file

@ -460,6 +460,13 @@ int bt_mesh_suspend(void)
bt_mesh_model_foreach(model_suspend, NULL);
err = bt_mesh_adv_disable();
if (err) {
atomic_clear_bit(bt_mesh.flags, BT_MESH_SUSPENDED);
LOG_WRN("Disabling advertisers failed (err %d)", err);
return err;
}
return 0;
}
@ -488,6 +495,17 @@ int bt_mesh_resume(void)
return -EALREADY;
}
if (!IS_ENABLED(CONFIG_BT_EXT_ADV)) {
bt_mesh_adv_init();
}
err = bt_mesh_adv_enable();
if (err) {
atomic_set_bit(bt_mesh.flags, BT_MESH_SUSPENDED);
LOG_WRN("Re-enabling advertisers failed (err %d)", err);
return err;
}
err = bt_mesh_scan_enable();
if (err) {
LOG_WRN("Re-enabling scanning failed (err %d)", err);