2020-06-15 11:13:14

by Michał Lowas-Rzechonek

[permalink] [raw]
Subject: [PATCH BlueZ] mesh: Fix updating CID, PID, VID & CRPL on node attach

In 8a382262125787caf38a1f800ec8956a1bf71d85, we wanted to allow the
application to update certain composition fields. This patch makes it
work.
---
mesh/node.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/mesh/node.c b/mesh/node.c
index 10b44c8a5..6140fdf9f 100644
--- a/mesh/node.c
+++ b/mesh/node.c
@@ -1365,16 +1365,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)
--
2.20.1


2020-06-15 17:07:25

by Stotland, Inga

[permalink] [raw]
Subject: Re: [PATCH BlueZ] mesh: Fix updating CID, PID, VID & CRPL on node attach

Good catch

On Mon, 2020-06-15 at 13:11 +0200, Michał Lowas-Rzechonek wrote:
> In 8a382262125787caf38a1f800ec8956a1bf71d85, we wanted to allow the
> application to update certain composition fields. This patch makes it
> work.
> ---
> mesh/node.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/mesh/node.c b/mesh/node.c
> index 10b44c8a5..6140fdf9f 100644
> --- a/mesh/node.c
> +++ b/mesh/node.c
> @@ -1365,16 +1365,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)

2020-06-15 19:56:40

by Gix, Brian

[permalink] [raw]
Subject: Re: [PATCH BlueZ] mesh: Fix updating CID, PID, VID & CRPL on node attach

Applied, Thanks.

On Mon, 2020-06-15 at 13:11 +0200, Michał Lowas-Rzechonek wrote:
> In 8a382262125787caf38a1f800ec8956a1bf71d85, we wanted to allow the
> application to update certain composition fields. This patch makes it
> work.
> ---
> mesh/node.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/mesh/node.c b/mesh/node.c
> index 10b44c8a5..6140fdf9f 100644
> --- a/mesh/node.c
> +++ b/mesh/node.c
> @@ -1365,16 +1365,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)