net: lwm2m: Added execute arguments support

A dedicated LwM2M execute callback type has been implemented which
supports execute arguments. The lwm2m engine, lwm2m_client sample and
lwm2m objects have been updated accordingly. Also the API change has
been documented, and the lwm2m engine reference has been updated.

Fixes #30551.

Signed-off-by: Maik Vermeulen <maik.vermeulen@innotractor.com>
This commit is contained in:
Maik Vermeulen 2020-12-10 10:17:14 +01:00 committed by Anas Nashif
commit 4cfd2a1943
14 changed files with 66 additions and 28 deletions

View file

@ -2065,7 +2065,7 @@ int lwm2m_engine_register_post_write_callback(char *pathstr,
}
int lwm2m_engine_register_exec_callback(char *pathstr,
lwm2m_engine_user_cb_t cb)
lwm2m_engine_execute_cb_t cb)
{
int ret;
struct lwm2m_engine_res *res = NULL;
@ -2839,6 +2839,8 @@ static int lwm2m_exec_handler(struct lwm2m_message *msg)
struct lwm2m_engine_obj_inst *obj_inst;
struct lwm2m_engine_res *res = NULL;
int ret;
uint8_t *args;
uint16_t args_len;
if (!msg) {
return -EINVAL;
@ -2849,8 +2851,10 @@ static int lwm2m_exec_handler(struct lwm2m_message *msg)
return ret;
}
args = (uint8_t *)coap_packet_get_payload(msg->in.in_cpkt, &args_len);
if (res->execute_cb) {
return res->execute_cb(obj_inst->obj_inst_id);
return res->execute_cb(obj_inst->obj_inst_id, args, args_len);
}
/* TODO: something else to handle for execute? */