diff options
author | Isak Westin <isak.westin@loytec.com> | 2022-09-26 15:01:08 +0200 |
---|---|---|
committer | Brian Gix <brian.gix@intel.com> | 2022-09-26 13:14:47 -0700 |
commit | 1ef221ca020581575a3775ec60c0a28e384081be (patch) | |
tree | 6a42a92767f81f70c9c810166626d136927e9c5c /mesh | |
parent | 5b569e3d14a38247c69a16d80c5f7c8b77482505 (diff) | |
download | bluez-1ef221ca020581575a3775ec60c0a28e384081be.tar.gz |
mesh: Reply to HB pub set with same fields
If a Config Heartbeat Publication Set message is unsuccessfully
processed, the fields in the status reply should be the same as in the
original message. See MshPRFv1.0.1 section 4.4.1.2.15.
Diffstat (limited to 'mesh')
-rw-r--r-- | mesh/cfgmod-server.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/mesh/cfgmod-server.c b/mesh/cfgmod-server.c index 33796d05a..9c5edf551 100644 --- a/mesh/cfgmod-server.c +++ b/mesh/cfgmod-server.c @@ -575,7 +575,17 @@ static uint16_t hb_publication_set(struct mesh_node *node, const uint8_t *pkt) status = mesh_net_set_heartbeat_pub(net, dst, features, net_idx, ttl, count_log, period_log); - return hb_publication_get(node, status); + if (status != MESH_STATUS_SUCCESS) { + uint16_t n; + + n = mesh_model_opcode_set(OP_CONFIG_HEARTBEAT_PUB_STATUS, msg); + msg[n++] = status; + memcpy(msg + n, pkt, 9); + n += 9; + + return n; + } else + return hb_publication_get(node, status); } static void node_reset(void *user_data) |