summaryrefslogtreecommitdiff
path: root/mesh/model.c
diff options
context:
space:
mode:
authorInga Stotland <inga.stotland@intel.com>2020-08-11 09:31:34 -0700
committerBrian Gix <brian.gix@intel.com>2020-08-11 09:35:03 -0700
commitd3691ce6b02bf32c02b7a68b20c605f3e60da559 (patch)
tree8a69a8dd564ba571b70a94223690d05dead39151 /mesh/model.c
parent32f2c108d11ad8893511a4e869885caafa28df78 (diff)
downloadbluez-d3691ce6b02bf32c02b7a68b20c605f3e60da559.tar.gz
mesh: Fix element index look up for config model subs
Use element address for looking up element index (subscription address was erroneously used to perform the lookup).
Diffstat (limited to 'mesh/model.c')
-rw-r--r--mesh/model.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/mesh/model.c b/mesh/model.c
index 690be29d5..23afb93a8 100644
--- a/mesh/model.c
+++ b/mesh/model.c
@@ -1402,13 +1402,13 @@ done:
return MESH_STATUS_SUCCESS;
}
-int mesh_model_sub_get(struct mesh_node *node, uint16_t addr, uint32_t id,
+int mesh_model_sub_get(struct mesh_node *node, uint16_t ele_addr, uint32_t id,
uint8_t *buf, uint16_t buf_size, uint16_t *size)
{
int16_t n;
struct mesh_model *mod;
const struct l_queue_entry *entry;
- int ele_idx = node_get_element_idx(node, addr);
+ int ele_idx = node_get_element_idx(node, ele_addr);
if (ele_idx < 0)
return MESH_STATUS_INVALID_ADDRESS;
@@ -1454,7 +1454,7 @@ int mesh_model_sub_add(struct mesh_node *node, uint16_t ele_addr, uint32_t id,
uint16_t addr)
{
struct mesh_model *mod;
- int status, ele_idx = node_get_element_idx(node, addr);
+ int status, ele_idx = node_get_element_idx(node, ele_addr);
if (ele_idx < 0)
return MESH_STATUS_INVALID_ADDRESS;
@@ -1510,7 +1510,7 @@ int mesh_model_sub_ovrt(struct mesh_node *node, uint16_t ele_addr, uint32_t id,
uint16_t addr)
{
struct mesh_model *mod;
- int ele_idx = node_get_element_idx(node, addr);
+ int ele_idx = node_get_element_idx(node, ele_addr);
if (ele_idx < 0)
return MESH_STATUS_INVALID_ADDRESS;
@@ -1567,7 +1567,7 @@ int mesh_model_sub_del(struct mesh_node *node, uint16_t ele_addr, uint32_t id,
uint16_t addr)
{
struct mesh_model *mod;
- int ele_idx = node_get_element_idx(node, addr);
+ int ele_idx = node_get_element_idx(node, ele_addr);
if (ele_idx < 0)
return MESH_STATUS_INVALID_ADDRESS;
@@ -1629,10 +1629,11 @@ int mesh_model_virt_sub_del(struct mesh_node *node, uint16_t ele_addr,
return MESH_STATUS_SUCCESS;
}
-int mesh_model_sub_del_all(struct mesh_node *node, uint16_t addr, uint32_t id)
+int mesh_model_sub_del_all(struct mesh_node *node, uint16_t ele_addr,
+ uint32_t id)
{
struct mesh_model *mod;
- int ele_idx = node_get_element_idx(node, addr);
+ int ele_idx = node_get_element_idx(node, ele_addr);
if (ele_idx < 0)
return MESH_STATUS_INVALID_ADDRESS;