From 6e5283ccbb3992471c148dff312cf5b58ac7e452 Mon Sep 17 00:00:00 2001 From: Fred Dushin Date: Tue, 26 Dec 2023 16:41:26 -0500 Subject: [PATCH] Add support for AtomVM GenMessage Signed-off-by: Fred Dushin --- ports/atomvm_mqtt_client.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ports/atomvm_mqtt_client.c b/ports/atomvm_mqtt_client.c index 1c32696..9c21c30 100644 --- a/ports/atomvm_mqtt_client.c +++ b/ports/atomvm_mqtt_client.c @@ -617,10 +617,16 @@ static NativeHandlerResult consume_mailbox(Context *ctx) TRACE("\n"); #endif - term pid = term_get_tuple_element(msg, 0); - term ref = term_get_tuple_element(msg, 1); + GenMessage gen_message; + if (UNLIKELY(port_parse_gen_message(msg, &gen_message) != GenCallMessage)) { + ESP_LOGW(TAG, "Received invalid message."); + mailbox_remove_message(&ctx->mailbox, &ctx->heap); + return NativeContinue; + } + term pid = gen_message.pid; + term ref = gen_message.ref; uint64_t ref_ticks = term_to_ref_ticks(ref); - term req = term_get_tuple_element(msg, 2); + term req = gen_message.req; NativeHandlerResult result = NativeContinue; if (term_is_atom(req)) {