summaryrefslogtreecommitdiffstats
path: root/src/network/access
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2022-09-13 13:02:42 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2022-09-14 19:53:49 +0200
commitb31d90291314c0664ef5aae72225c213fc560b06 (patch)
tree875dda71a20fa6a8abe36fed9bcdf404b4bbeabe /src/network/access
parent3df618b8d96e45e515df8268a1789d361894736d (diff)
Http: Don't clear (de)compressed data on error
Some errors, such as 404, may still present useful data. As opposed to errors such as 'RemoteDisconnected'. So, just keep the data around until the reply is deleted. Pick-to: 6.4 Fixes: QTBUG-106573 Change-Id: I6c86b5a55a45f837ea9b42559d88cd3e0ac2fa5c Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/network/access')
-rw-r--r--src/network/access/qnetworkreplyhttpimpl.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp
index e609653aa4..b7626cd060 100644
--- a/src/network/access/qnetworkreplyhttpimpl.cpp
+++ b/src/network/access/qnetworkreplyhttpimpl.cpp
@@ -326,6 +326,7 @@ qint64 QNetworkReplyHttpImpl::readData(char* data, qint64 maxlen)
d->error(QNetworkReplyImpl::NetworkError::UnknownContentError,
QCoreApplication::translate("QHttp", "Decompression failed: %1")
.arg(d->decompressHelper.errorString()));
+ d->decompressHelper.clear();
return -1;
}
if (d->cacheSaveDevice) {
@@ -1050,6 +1051,7 @@ void QNetworkReplyHttpImplPrivate::replyDownloadData(QByteArray d)
error(QNetworkReplyImpl::NetworkError::UnknownContentError,
QCoreApplication::translate("QHttp", "Decompression failed: %1")
.arg(decompressHelper.errorString()));
+ decompressHelper.clear();
return;
}
@@ -1069,6 +1071,7 @@ void QNetworkReplyHttpImplPrivate::replyDownloadData(QByteArray d)
error(QNetworkReplyImpl::NetworkError::UnknownContentError,
QCoreApplication::translate("QHttp",
"Data downloaded is too large to store"));
+ decompressHelper.clear();
return;
}
d.resize(nextSize);
@@ -1077,6 +1080,7 @@ void QNetworkReplyHttpImplPrivate::replyDownloadData(QByteArray d)
error(QNetworkReplyImpl::NetworkError::UnknownContentError,
QCoreApplication::translate("QHttp", "Decompression failed: %1")
.arg(decompressHelper.errorString()));
+ decompressHelper.clear();
return;
}
}
@@ -2115,9 +2119,6 @@ void QNetworkReplyHttpImplPrivate::error(QNetworkReplyImpl::NetworkError code, c
return;
}
- if (decompressHelper.isValid())
- decompressHelper.clear(); // Just get rid of any data that might be stored
-
errorCode = code;
q->setErrorString(errorMessage);