From: Ji-hoon Lee Date: Tue, 7 Jan 2020 06:59:06 +0000 (+0900) Subject: Fix bug with handling multiple messages in one packet X-Git-Tag: submit/tizen/20200113.120709^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=36d3d593e8ba7a80891d9e8df23b2a649bc761f5;p=platform%2Fcore%2Fuifw%2Fmulti-assistant.git Fix bug with handling multiple messages in one packet Change-Id: I99b0818610d6596a953eefa94f343b5da872b619 --- diff --git a/client/ma_dbus.c b/client/ma_dbus.c index 97cb7e2..128b945 100644 --- a/client/ma_dbus.c +++ b/client/ma_dbus.c @@ -86,7 +86,7 @@ static void message_port_cb(int local_port_id, memcpy(pending_buffer + pending_buffer_size, buffer, size); pending_buffer_size += size; - if (pending_buffer_size >= sizeof(streaming_data_header)) { + while (pending_buffer_size >= sizeof(streaming_data_header)) { streaming_data_header header; memcpy(&header, pending_buffer, sizeof(streaming_data_header)); if (pending_buffer_size >= header.streaming_data_size) { @@ -105,6 +105,9 @@ static void message_port_cb(int local_port_id, __ma_cb_audio_streaming(audio_data_header.event, pending_buffer + sizeof(streaming_data_header) + sizeof(streaming_data_audio_data_header), audio_data_header.data_size); + if (0 == header.streaming_data_serial % 50) { + MA_SLOGI("__ma_cb_audio_streaming() called, serial : %d", header.streaming_data_serial); + } } else if (streaming_data_type_streaming_section == header.streaming_data_type) { streaming_data_streaming_section_header streaming_section_header; memcpy(&streaming_section_header, pending_buffer + sizeof(streaming_data_header), @@ -113,9 +116,11 @@ static void message_port_cb(int local_port_id, __ma_cb_audio_streaming_data_section_changed(streaming_section_header.section); } - memmove(pending_buffer + header.streaming_data_size, pending_buffer, + memmove(pending_buffer, pending_buffer + header.streaming_data_size, sizeof(pending_buffer) - header.streaming_data_size); pending_buffer_size -= header.streaming_data_size; + } else { + break; } } }