From 788c013d5ba5e5a728c3eff8b232d49cfb4b3d4c Mon Sep 17 00:00:00 2001 From: Michael Scott Date: Fri, 8 Sep 2017 08:22:59 -0700 Subject: [PATCH] net: lwm2m: split out lwm2m context initialization Create an internal function lwm2m_engine_context_init() which sets the extra packet pools and initializes retransmit work internal to the LwM2M engine. This function will be used by firmware pull support which establishes a new LwM2M context for downloading firmware. Signed-off-by: Michael Scott --- subsys/net/lib/lwm2m/lwm2m_engine.c | 17 +++++++++++------ subsys/net/lib/lwm2m/lwm2m_engine.h | 3 +++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/subsys/net/lib/lwm2m/lwm2m_engine.c b/subsys/net/lib/lwm2m/lwm2m_engine.c index 3e6d1e741d0..7ee3f5980af 100644 --- a/subsys/net/lib/lwm2m/lwm2m_engine.c +++ b/subsys/net/lib/lwm2m/lwm2m_engine.c @@ -2932,6 +2932,16 @@ int lwm2m_engine_set_net_pkt_pool(struct lwm2m_ctx *ctx, } #endif /* CONFIG_NET_CONTEXT_NET_PKT_POOL */ +void lwm2m_engine_context_init(struct lwm2m_ctx *client_ctx) +{ + k_delayed_work_init(&client_ctx->retransmit_work, retransmit_request); + +#if defined(CONFIG_NET_CONTEXT_NET_PKT_POOL) + net_app_set_net_pkt_pool(&client_ctx->net_app_ctx, + client_ctx->tx_slab, client_ctx->data_pool); +#endif +} + int lwm2m_engine_start(struct lwm2m_ctx *client_ctx, char *peer_str, u16_t peer_port) { @@ -2949,12 +2959,7 @@ int lwm2m_engine_start(struct lwm2m_ctx *client_ctx, goto error_start; } - k_delayed_work_init(&client_ctx->retransmit_work, retransmit_request); - -#if defined(CONFIG_NET_CONTEXT_NET_PKT_POOL) - net_app_set_net_pkt_pool(&client_ctx->net_app_ctx, - client_ctx->tx_slab, client_ctx->data_pool); -#endif + lwm2m_engine_context_init(client_ctx); /* set net_app callbacks */ ret = net_app_set_cb(&client_ctx->net_app_ctx, diff --git a/subsys/net/lib/lwm2m/lwm2m_engine.h b/subsys/net/lib/lwm2m/lwm2m_engine.h index 4d1d047add7..f2810963bed 100644 --- a/subsys/net/lib/lwm2m/lwm2m_engine.h +++ b/subsys/net/lib/lwm2m/lwm2m_engine.h @@ -85,6 +85,9 @@ int lwm2m_get_or_create_engine_obj(struct lwm2m_engine_context *context, struct lwm2m_engine_obj_inst **obj_inst, u8_t *created); +/* LwM2M context functions */ +void lwm2m_engine_context_init(struct lwm2m_ctx *client_ctx); + /* LwM2M message functions */ struct lwm2m_message *lwm2m_get_message(struct lwm2m_ctx *client_ctx); void lwm2m_release_message(struct lwm2m_message *msg);