net: lwm2m: Plain Text dynamic Resource instance allocation

Integrated dynamic resouce instance allocation to Plain text.

Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
This commit is contained in:
Juha Heiskanen 2022-02-13 23:32:48 -08:00 committed by Anas Nashif
commit 7b3a1f31fe

View file

@ -433,7 +433,7 @@ int do_write_op_plain_text(struct lwm2m_message *msg)
struct lwm2m_engine_obj_field *obj_field;
struct lwm2m_engine_res *res = NULL;
struct lwm2m_engine_res_inst *res_inst = NULL;
int ret, i;
int ret;
uint8_t created = 0U;
ret = lwm2m_get_or_create_engine_obj(msg, &obj_inst, &created);
@ -441,40 +441,13 @@ int do_write_op_plain_text(struct lwm2m_message *msg)
return ret;
}
obj_field = lwm2m_get_engine_obj_field(obj_inst->obj, msg->path.res_id);
if (!obj_field) {
return -ENOENT;
ret = lwm2m_engine_validate_write_access(msg, obj_inst, &obj_field);
if (ret < 0) {
return ret;
}
if (!LWM2M_HAS_PERM(obj_field, LWM2M_PERM_W) &&
!lwm2m_engine_bootstrap_override(msg->ctx, &msg->path)) {
return -EPERM;
}
if (!obj_inst->resources || obj_inst->resource_count == 0U) {
return -EINVAL;
}
for (i = 0; i < obj_inst->resource_count; i++) {
if (obj_inst->resources[i].res_id == msg->path.res_id) {
res = &obj_inst->resources[i];
break;
}
}
if (!res) {
return -ENOENT;
}
for (i = 0; i < res->res_inst_count; i++) {
if (res->res_instances[i].res_inst_id ==
msg->path.res_inst_id) {
res_inst = &res->res_instances[i];
break;
}
}
if (!res_inst) {
ret = lwm2m_engine_get_create_res_inst(&msg->path, &res, &res_inst);
if (ret < 0) {
return -ENOENT;
}