mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-10-07 23:27:23 +00:00
mesh: Fix sending heartbeat only when relay state changes
The heartbeat should only be sent in case the relay state actually changes. This fixes MESH/NODE/CFG/HBP/BV-03-C. X-Original-Commit: ed80ed41fbca1ed04c1e6813c6deb244b40ba76c
This commit is contained in:
@@ -922,6 +922,7 @@ static void relay_set(struct bt_mesh_model *model,
|
||||
if (!cfg) {
|
||||
BT_WARN("No Configuration Server context available");
|
||||
} else if (buf->om_data[0] == 0x00 || buf->om_data[0] == 0x01) {
|
||||
bool change = (cfg->relay != buf->om_data[0]);
|
||||
struct bt_mesh_subnet *sub;
|
||||
|
||||
cfg->relay = buf->om_data[0];
|
||||
@@ -933,7 +934,7 @@ static void relay_set(struct bt_mesh_model *model,
|
||||
TRANSMIT_INT(cfg->relay_retransmit));
|
||||
|
||||
sub = bt_mesh_subnet_get(cfg->hb_pub.net_idx);
|
||||
if ((cfg->hb_pub.feat & BT_MESH_FEAT_RELAY) && sub) {
|
||||
if ((cfg->hb_pub.feat & BT_MESH_FEAT_RELAY) && sub && change) {
|
||||
hb_send(model);
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user