Merge pull request #637 from Drachenfels/dmaster

Fixed copy process of stream of bytes for HttpClient.
This commit is contained in:
Juan Linietsky 2014-09-17 09:57:48 -03:00
commit 202cd5bc97

View file

@ -500,20 +500,24 @@ ByteArray HTTPClient::read_response_body_chunk() {
} }
} else { } else {
ByteArray::Write r = tmp_read.write(); ByteArray ret;
int rec=0; ret.resize(MAX(body_left,tmp_read.size()));
err = connection->get_partial_data(r.ptr(),MIN(body_left,tmp_read.size()),rec); ByteArray::Write w = ret.write();
if (rec>0) { int _offset = 0;
ByteArray ret; while (body_left > 0) {
ret.resize(rec); ByteArray::Write r = tmp_read.write();
ByteArray::Write w = ret.write(); int rec=0;
copymem(w.ptr(),r.ptr(),rec); err = connection->get_partial_data(r.ptr(),MIN(body_left,tmp_read.size()),rec);
body_left-=rec; if (rec>0) {
if (body_left==0) { copymem(w.ptr()+_offset,r.ptr(),rec);
status=STATUS_CONNECTED; body_left-=rec;
_offset += rec;
} }
return ret;
} }
if (body_left==0) {
status=STATUS_CONNECTED;
}
return ret;
} }