From a64dcbb7bfbde33161be1f55aea9a56e289ab374 Mon Sep 17 00:00:00 2001 From: Robert Chou Date: Mon, 14 Aug 2017 16:16:11 +0800 Subject: [PATCH] net: lwm2m: do not report object when object instances available Per LwM2M specification 5.3.1 Register. When object instances are available, object ID can be ignored in registration message Signed-off-by: Robert Chou --- subsys/net/lib/lwm2m/lwm2m_engine.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/subsys/net/lib/lwm2m/lwm2m_engine.c b/subsys/net/lib/lwm2m/lwm2m_engine.c index f3031cde3b5..fb1b717fc0c 100644 --- a/subsys/net/lib/lwm2m/lwm2m_engine.c +++ b/subsys/net/lib/lwm2m/lwm2m_engine.c @@ -591,15 +591,19 @@ u16_t lwm2m_get_rd_data(u8_t *client_data, u16_t size) continue; } - len = snprintf(temp, sizeof(temp), "%s", - (pos > 0) ? "," : "", obj->obj_id); - if (pos + len >= size) { - /* full buffer -- exit loop */ - break; - } + /* Only report when no instance available */ + if (obj->instance_count == 0) { + len = snprintf(temp, sizeof(temp), "%s", + (pos > 0) ? "," : "", obj->obj_id); + if (pos + len >= size) { + /* full buffer -- exit loop */ + break; + } - memcpy(&client_data[pos], temp, len); - pos += len; + memcpy(&client_data[pos], temp, len); + pos += len; + continue; + } SYS_SLIST_FOR_EACH_CONTAINER(&engine_obj_inst_list, obj_inst, node) {