From 32864ecbccdd0c6ca0bf1fb43da78f4eeac124ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6ran=20Weinholt?= Date: Tue, 3 Mar 2020 16:49:49 +0100 Subject: [PATCH] net: lwm2m: support for reading OPAQUE resources with OMA TLV MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The LwM2M stack would previously ignore all OPAQUE resources when reading them. This meant that it was impossible to read them, even if there was a custom read callback. Signed-off-by: Göran Weinholt --- subsys/net/lib/lwm2m/lwm2m_engine.c | 4 +++- subsys/net/lib/lwm2m/lwm2m_rw_oma_tlv.c | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/subsys/net/lib/lwm2m/lwm2m_engine.c b/subsys/net/lib/lwm2m/lwm2m_engine.c index d42fc2e357b..4e0a1c0d860 100644 --- a/subsys/net/lib/lwm2m/lwm2m_engine.c +++ b/subsys/net/lib/lwm2m/lwm2m_engine.c @@ -2106,8 +2106,10 @@ static int lwm2m_read_handler(struct lwm2m_engine_obj_inst *obj_inst, switch (obj_field->data_type) { - /* do nothing for OPAQUE (probably has a callback) */ case LWM2M_RES_TYPE_OPAQUE: + engine_put_opaque(&msg->out, &msg->path, + (u8_t *)data_ptr, + data_len); break; case LWM2M_RES_TYPE_STRING: diff --git a/subsys/net/lib/lwm2m/lwm2m_rw_oma_tlv.c b/subsys/net/lib/lwm2m/lwm2m_rw_oma_tlv.c index c6e95cd4a52..60ff04c2e6f 100644 --- a/subsys/net/lib/lwm2m/lwm2m_rw_oma_tlv.c +++ b/subsys/net/lib/lwm2m/lwm2m_rw_oma_tlv.c @@ -559,6 +559,13 @@ static size_t put_bool(struct lwm2m_output_context *out, return put_s8(out, path, value_s8); } +static size_t put_opaque(struct lwm2m_output_context *out, + struct lwm2m_obj_path *path, + char *buf, size_t buflen) +{ + return put_string(out, path, buf, buflen); +} + static size_t get_number(struct lwm2m_input_context *in, s64_t *value, u8_t max_len) { @@ -764,6 +771,7 @@ const struct lwm2m_writer oma_tlv_writer = { .put_float32fix = put_float32fix, .put_float64fix = put_float64fix, .put_bool = put_bool, + .put_opaque = put_opaque, }; const struct lwm2m_reader oma_tlv_reader = {