mesh: Fix updating CID, PID, VID & CRPL on node attach
authorMichał Lowas-Rzechonek <michal.lowas-rzechonek@silvair.com>
Mon, 15 Jun 2020 11:11:52 +0000 (13:11 +0200)
committerAbhay Agarwal <ay.agarwal@samsung.com>
Mon, 28 Dec 2020 06:20:04 +0000 (11:50 +0530)
In 8a382262125787caf38a1f800ec8956a1bf71d85, we wanted to allow the
application to update certain composition fields. This patch makes it
work.

Change-Id: I4323cf58605b0961cb46aba06d4355603f61d2cf
Signed-off-by: anuj.bhumiya <anuj.bhumiya@samsung.com>
mesh/node.c

index 85dc623..130bd94 100644 (file)
@@ -1382,16 +1382,18 @@ static bool add_local_node(struct mesh_node *node, uint16_t unicast, bool kr,
 static void update_composition(struct mesh_node *node, struct mesh_node *attach)
 {
        if (node->comp.cid != attach->comp.cid)
-               mesh_config_update_company_id(node->cfg, attach->comp.cid);
+               mesh_config_update_company_id(attach->cfg, node->comp.cid);
 
        if (node->comp.pid != attach->comp.pid)
-               mesh_config_update_product_id(node->cfg, attach->comp.pid);
+               mesh_config_update_product_id(attach->cfg, node->comp.pid);
 
        if (node->comp.vid != attach->comp.vid)
-               mesh_config_update_version_id(node->cfg, attach->comp.vid);
+               mesh_config_update_version_id(attach->cfg, node->comp.vid);
 
        if (node->comp.crpl != attach->comp.crpl)
-               mesh_config_update_crpl(node->cfg, attach->comp.crpl);
+               mesh_config_update_crpl(attach->cfg, node->comp.crpl);
+
+       attach->comp = node->comp;
 }
 
 static bool check_req_node(struct managed_obj_request *req)