From 5141e0ec2442401857ecb622080810519f058bf3 Mon Sep 17 00:00:00 2001 From: David Cermak Date: Sat, 2 Feb 2019 18:35:22 +0100 Subject: [PATCH] tcp_transport: ws fix on reception of longer data than receive buffer --- components/tcp_transport/transport_ws.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/components/tcp_transport/transport_ws.c b/components/tcp_transport/transport_ws.c index 6480fb0823..a3b97bf925 100644 --- a/components/tcp_transport/transport_ws.c +++ b/components/tcp_transport/transport_ws.c @@ -230,15 +230,17 @@ static int ws_read(esp_transport_handle_t t, char *buffer, int len, int timeout_ data_ptr += 8; payload_len_buff = len - 10; } + + if (payload_len > payload_len_buff) { + ESP_LOGD(TAG, "Actual data to receive (%d) are longer than ws buffer (%d)", payload_len, payload_len_buff); + payload_len = payload_len_buff; + } + // Then receive and process payload if ((rlen = esp_transport_read(ws->parent, data_ptr, payload_len, timeout_ms)) <= 0) { ESP_LOGE(TAG, "Error read data"); return rlen; } - if (payload_len > payload_len_buff) { - ESP_LOGD(TAG, "Actual data received (%d) are longer than mqtt buffer (%d)", payload_len, payload_len_buff); - payload_len = payload_len_buff; - } if (mask) { mask_key = data_ptr;