From 398f104918d0bf42f1ed18a3aa93b57d5f3b5c25 Mon Sep 17 00:00:00 2001 From: TSC21 Date: Wed, 29 Jul 2020 14:42:02 +0100 Subject: [PATCH] microRTPS: transport: do not discard message from rx_buffer if a CRC error occurs --- msg/templates/urtps/microRTPS_transport.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/msg/templates/urtps/microRTPS_transport.cpp b/msg/templates/urtps/microRTPS_transport.cpp index ff7832a16b..4c8a7ebfe8 100644 --- a/msg/templates/urtps/microRTPS_transport.cpp +++ b/msg/templates/urtps/microRTPS_transport.cpp @@ -211,11 +211,12 @@ ssize_t Transport_node::read(uint8_t *topic_ID, char out_buffer[], size_t buffer memmove(out_buffer, rx_buffer + msg_start_pos + header_size, payload_len); *topic_ID = header->topic_ID; len = payload_len + header_size; + + // discard message from rx_buffer + rx_buff_pos -= msg_start_pos + header_size + payload_len; + memmove(rx_buffer, rx_buffer + msg_start_pos + header_size + payload_len, rx_buff_pos); } - // discard message from rx_buffer - rx_buff_pos -= msg_start_pos + header_size + payload_len; - memmove(rx_buffer, rx_buffer + msg_start_pos + header_size + payload_len, rx_buff_pos); return len; }