|
@@ -322,17 +322,19 @@ bool HTTPRequest::_update_connection() {
|
|
|
}
|
|
|
|
|
|
PoolByteArray chunk = client->read_response_body_chunk();
|
|
|
- downloaded.add(chunk.size());
|
|
|
|
|
|
- if (file) {
|
|
|
- PoolByteArray::Read r = chunk.read();
|
|
|
- file->store_buffer(r.ptr(), chunk.size());
|
|
|
- if (file->get_error() != OK) {
|
|
|
- call_deferred("_request_done", RESULT_DOWNLOAD_FILE_WRITE_ERROR, response_code, response_headers, PoolByteArray());
|
|
|
- return true;
|
|
|
+ if (chunk.size()) {
|
|
|
+ downloaded.add(chunk.size());
|
|
|
+ if (file) {
|
|
|
+ PoolByteArray::Read r = chunk.read();
|
|
|
+ file->store_buffer(r.ptr(), chunk.size());
|
|
|
+ if (file->get_error() != OK) {
|
|
|
+ call_deferred("_request_done", RESULT_DOWNLOAD_FILE_WRITE_ERROR, response_code, response_headers, PoolByteArray());
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ body.append_array(chunk);
|
|
|
}
|
|
|
- } else {
|
|
|
- body.append_array(chunk);
|
|
|
}
|
|
|
|
|
|
if (body_size_limit >= 0 && downloaded.get() > body_size_limit) {
|