diff options
Diffstat (limited to 'src/network/access/qnetworkreplyfileimpl.cpp')
-rw-r--r-- | src/network/access/qnetworkreplyfileimpl.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/network/access/qnetworkreplyfileimpl.cpp b/src/network/access/qnetworkreplyfileimpl.cpp index f7555f8fc3..2724a54309 100644 --- a/src/network/access/qnetworkreplyfileimpl.cpp +++ b/src/network/access/qnetworkreplyfileimpl.cpp @@ -161,6 +161,8 @@ void QNetworkReplyFileImpl::abort() qint64 QNetworkReplyFileImpl::bytesAvailable() const { Q_D(const QNetworkReplyFileImpl); + if (!d->realFile.isOpen()) + return QNetworkReply::bytesAvailable(); return QNetworkReply::bytesAvailable() + d->realFile.bytesAvailable(); } @@ -181,7 +183,11 @@ qint64 QNetworkReplyFileImpl::size() const qint64 QNetworkReplyFileImpl::readData(char *data, qint64 maxlen) { Q_D(QNetworkReplyFileImpl); + if (!d->realFile.isOpen()) + return -1; qint64 ret = d->realFile.read(data, maxlen); + if (bytesAvailable() == 0 && d->realFile.isOpen()) + d->realFile.close(); if (ret == 0 && bytesAvailable() == 0) return -1; else |