2020-08-07 01:39:23

by Stotland, Inga

[permalink] [raw]
Subject: [PATCH BlueZ v5 03/10] mesh: Clean up handling of config node identity message

This modification allows using a single point for sending out
the composed status messages by the Config Server.
---
mesh/cfgmod-server.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/mesh/cfgmod-server.c b/mesh/cfgmod-server.c
index 992279165..82938dc83 100644
--- a/mesh/cfgmod-server.c
+++ b/mesh/cfgmod-server.c
@@ -777,11 +777,7 @@ static bool cfg_srv_pkt(uint16_t src, uint16_t dst, uint16_t app_idx,
break;

case OP_NODE_IDENTITY_SET:
- if (size != 3 || pkt[2] > 0x01)
- return true;
-
- n_idx = l_get_le16(pkt);
- if (n_idx > 0xfff)
+ if (size != 3)
return true;

/* Currently setting node identity not supported */
@@ -789,18 +785,15 @@ static bool cfg_srv_pkt(uint16_t src, uint16_t dst, uint16_t app_idx,
/* Fall Through */

case OP_NODE_IDENTITY_GET:
- if (size < 2)
+ if (opcode == OP_NODE_IDENTITY_GET && size != 2)
return true;

n_idx = l_get_le16(pkt);
- if (n_idx > 0xfff)
+ if (n_idx > NET_IDX_MAX)
return true;

n = mesh_model_opcode_set(OP_NODE_IDENTITY_STATUS, msg);
-
- status = mesh_net_get_identity_mode(net, n_idx, &state);
-
- msg[n++] = status;
+ msg[n++] = mesh_net_get_identity_mode(net, n_idx, &state);

l_put_le16(n_idx, msg + n);
n += 2;
--
2.26.2