Downloader: Propagate exceptions from decompressionSink->finish()

(cherry picked from commit 15fa70cd1b853f5e62662b99ccb9ef3da6cfadff)
This commit is contained in:
Eelco Dolstra 2019-06-24 21:06:37 +02:00
parent b43e1e186e
commit 2fef4dd296
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE

View file

@ -327,8 +327,13 @@ struct CurlDownloader : public Downloader
debug("finished %s of '%s'; curl status = %d, HTTP status = %d, body = %d bytes", debug("finished %s of '%s'; curl status = %d, HTTP status = %d, body = %d bytes",
request.verb(), request.uri, code, httpStatus, result.bodySize); request.verb(), request.uri, code, httpStatus, result.bodySize);
if (decompressionSink) if (decompressionSink) {
decompressionSink->finish(); try {
decompressionSink->finish();
} catch (...) {
writeException = std::current_exception();
}
}
if (code == CURLE_WRITE_ERROR && result.etag == request.expectedETag) { if (code == CURLE_WRITE_ERROR && result.etag == request.expectedETag) {
code = CURLE_OK; code = CURLE_OK;