2020-03-04 07:39:46

by Stotland, Inga

[permalink] [raw]
Subject: [PATCH BlueZ] tools/mesh-cfgclient: Record remote node's default TTL

This adds code to save the value of a remote node's default TTL
upon receiving Config Default TTL Status message.

Also, cleanup leftover "#if 0" clause
---
tools/mesh/cfgcli.c | 1 +
tools/mesh/mesh-db.c | 25 ++++++++++++++++++-------
2 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/tools/mesh/cfgcli.c b/tools/mesh/cfgcli.c
index 0aea7e553..33e77d878 100644
--- a/tools/mesh/cfgcli.c
+++ b/tools/mesh/cfgcli.c
@@ -557,6 +557,7 @@ static bool msg_recvd(uint16_t src, uint16_t idx, uint8_t *data,
return true;

bt_shell_printf("Node %4.4x Default TTL %d\n", src, data[0]);
+ mesh_db_node_ttl_set(src, data[0]);

break;

diff --git a/tools/mesh/mesh-db.c b/tools/mesh/mesh-db.c
index 41114f40f..4a26a667e 100644
--- a/tools/mesh/mesh-db.c
+++ b/tools/mesh/mesh-db.c
@@ -434,6 +434,24 @@ bool mesh_db_node_net_key_add(uint16_t unicast, uint16_t idx)
return add_node_key(jnode, "netKeys", idx);
}

+bool mesh_db_node_ttl_set(uint16_t unicast, uint8_t ttl)
+{
+ json_object *jnode;
+
+ if (!cfg || !cfg->jcfg)
+ return false;
+
+ jnode = get_node_by_unicast(unicast);
+ if (!jnode)
+ return false;
+
+ if (!write_int(jnode, "defaultTTL", ttl))
+ return false;
+
+ return mesh_config_save((struct mesh_config *) cfg, true,
+ NULL, NULL);
+}
+
static void jarray_key_del(json_object *jarray, int16_t idx)
{
int i, sz = json_object_array_length(jarray);
@@ -923,13 +941,6 @@ bool mesh_db_create(const char *fname, const uint8_t token[8],
goto fail;

json_object_object_add(jcfg, "appKeys", jarray);
-#if 0
- jarray = json_object_new_array();
- if (!jarray)
- goto fail;
-
- json_object_object_add(jcfg, "groups", jarray);
-#endif

if (!mesh_config_save((struct mesh_config *) cfg, true, NULL, NULL))
goto fail;
--
2.21.1


2020-03-05 16:04:39

by Gix, Brian

[permalink] [raw]
Subject: Re: [PATCH BlueZ] tools/mesh-cfgclient: Record remote node's default TTL

Applied
On Tue, 2020-03-03 at 23:39 -0800, Inga Stotland wrote:
> This adds code to save the value of a remote node's default TTL
> upon receiving Config Default TTL Status message.
>
> Also, cleanup leftover "#if 0" clause
> ---
> tools/mesh/cfgcli.c | 1 +
> tools/mesh/mesh-db.c | 25 ++++++++++++++++++-------
> 2 files changed, 19 insertions(+), 7 deletions(-)
>
> diff --git a/tools/mesh/cfgcli.c b/tools/mesh/cfgcli.c
> index 0aea7e553..33e77d878 100644
> --- a/tools/mesh/cfgcli.c
> +++ b/tools/mesh/cfgcli.c
> @@ -557,6 +557,7 @@ static bool msg_recvd(uint16_t src, uint16_t idx, uint8_t *data,
> return true;
>
> bt_shell_printf("Node %4.4x Default TTL %d\n", src, data[0]);
> + mesh_db_node_ttl_set(src, data[0]);
>
> break;
>
> diff --git a/tools/mesh/mesh-db.c b/tools/mesh/mesh-db.c
> index 41114f40f..4a26a667e 100644
> --- a/tools/mesh/mesh-db.c
> +++ b/tools/mesh/mesh-db.c
> @@ -434,6 +434,24 @@ bool mesh_db_node_net_key_add(uint16_t unicast, uint16_t idx)
> return add_node_key(jnode, "netKeys", idx);
> }
>
> +bool mesh_db_node_ttl_set(uint16_t unicast, uint8_t ttl)
> +{
> + json_object *jnode;
> +
> + if (!cfg || !cfg->jcfg)
> + return false;
> +
> + jnode = get_node_by_unicast(unicast);
> + if (!jnode)
> + return false;
> +
> + if (!write_int(jnode, "defaultTTL", ttl))
> + return false;
> +
> + return mesh_config_save((struct mesh_config *) cfg, true,
> + NULL, NULL);
> +}
> +
> static void jarray_key_del(json_object *jarray, int16_t idx)
> {
> int i, sz = json_object_array_length(jarray);
> @@ -923,13 +941,6 @@ bool mesh_db_create(const char *fname, const uint8_t token[8],
> goto fail;
>
> json_object_object_add(jcfg, "appKeys", jarray);
> -#if 0
> - jarray = json_object_new_array();
> - if (!jarray)
> - goto fail;
> -
> - json_object_object_add(jcfg, "groups", jarray);
> -#endif
>
> if (!mesh_config_save((struct mesh_config *) cfg, true, NULL, NULL))
> goto fail;