From 1f08d17a98a42bf8a4edc1bd1deafa78054d7ca5 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Tue, 7 Feb 2017 10:21:17 +0100 Subject: [PATCH] HTTPClient properly handle partial data in non-blocking mode Use block to send DVector::Write out of scope in HTTPClient::read_response_body_chunk() (cherry picked from commit 833994b2949cbdd191dfdb095bb96913a7b3b03a) --- core/io/http_client.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp index 4f14a1fc4dc..1a5c25954ad 100644 --- a/core/io/http_client.cpp +++ b/core/io/http_client.cpp @@ -566,11 +566,13 @@ ByteArray HTTPClient::read_response_body_chunk() { int to_read = MIN(body_left,read_chunk_size); ByteArray ret; ret.resize(to_read); - ByteArray::Write w = ret.write(); int _offset = 0; while (to_read > 0) { int rec=0; - err = _get_http_data(w.ptr()+_offset,to_read,rec); + { + ByteArray::Write w = ret.write(); + err = _get_http_data(w.ptr()+_offset,to_read,rec); + } if (rec>0) { body_left-=rec; to_read-=rec;