Merge pull request #7749 from Faless/fix_7697

HTTPClient properly handle partial data in non-blocking mode
This commit is contained in:
Rémi Verschelde 2017-02-12 23:18:59 +01:00 committed by GitHub
commit 70fff42df5

View File

@ -566,11 +566,13 @@ PoolByteArray HTTPClient::read_response_body_chunk() {
int to_read = MIN(body_left,read_chunk_size); int to_read = MIN(body_left,read_chunk_size);
PoolByteArray ret; PoolByteArray ret;
ret.resize(to_read); ret.resize(to_read);
PoolByteArray::Write w = ret.write();
int _offset = 0; int _offset = 0;
while (to_read > 0) { while (to_read > 0) {
int rec=0; int rec=0;
err = _get_http_data(w.ptr()+_offset,to_read,rec); {
PoolByteArray::Write w = ret.write();
err = _get_http_data(w.ptr()+_offset,to_read,rec);
}
if (rec>0) { if (rec>0) {
body_left-=rec; body_left-=rec;
to_read-=rec; to_read-=rec;