diff options
author | Anton Kudryavtsev <anton.kudryavtsev@vk.team> | 2023-08-31 19:03:53 +0300 |
---|---|---|
committer | Anton Kudryavtsev <antkudr@mail.ru> | 2023-09-25 14:17:56 +0000 |
commit | 7cccbae61fe1fb8e26954a22cc5889b1c88886e4 (patch) | |
tree | d3bf4b514b2126d8ec9e98f42c1dd8d256875907 /src/network/access/qnetworkreplyhttpimpl.cpp | |
parent | 0b512d7f41d501dd8e367ce7f3594c89f5c08702 (diff) |
qnetworkreplyhttpimpl: use QBAV more
Change-Id: Ieee68c06962da7c12af2b4145495b3d5ba5a02fb
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/network/access/qnetworkreplyhttpimpl.cpp')
-rw-r--r-- | src/network/access/qnetworkreplyhttpimpl.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp index 900476e7c3..8cddb633e4 100644 --- a/src/network/access/qnetworkreplyhttpimpl.cpp +++ b/src/network/access/qnetworkreplyhttpimpl.cpp @@ -39,6 +39,7 @@ class QNetworkProxy; static inline QByteArray rangeName() { return "Range"_ba; } static inline QByteArray cacheControlName() { return "Cache-Control"_ba; } +static constexpr QByteArrayView bytesEqualPrefix() noexcept { return "bytes="; } // ### merge with nextField in cookiejar.cpp static QHash<QByteArray, QByteArray> parseHttpOptionHeader(QByteArrayView header) @@ -746,7 +747,8 @@ void QNetworkReplyHttpImplPrivate::postRequest(const QNetworkRequest &newHttpReq headers.removeAt(rangeIndex); // We've already verified that requestRange starts with "bytes=", see canResume. - QByteArray requestRange = newHttpRequest.rawHeader(rangeName()).mid(6); + const auto rangeHeader = newHttpRequest.rawHeader(rangeName()); + const auto requestRange = QByteArrayView(rangeHeader).mid(bytesEqualPrefix().size()); int index = requestRange.indexOf('-'); @@ -754,12 +756,12 @@ void QNetworkReplyHttpImplPrivate::postRequest(const QNetworkRequest &newHttpReq quint64 requestEndOffset = requestRange.mid(index + 1).toULongLong(); // In case an end offset is not given it is skipped from the request range - requestRange = "bytes=" + QByteArray::number(resumeOffset + requestStartOffset) + + QByteArray newRange = bytesEqualPrefix() + QByteArray::number(resumeOffset + requestStartOffset) + '-' + (requestEndOffset ? QByteArray::number(requestEndOffset) : QByteArray()); - httpRequest.setHeaderField(rangeName(), requestRange); + httpRequest.setHeaderField(rangeName(), newRange); } else { - httpRequest.setHeaderField(rangeName(), "bytes=" + QByteArray::number(resumeOffset) + '-'); + httpRequest.setHeaderField(rangeName(), bytesEqualPrefix() + QByteArray::number(resumeOffset) + '-'); } } @@ -1854,7 +1856,7 @@ bool QNetworkReplyHttpImplPrivate::canResume() const // We only support resuming for byte ranges. if (request.hasRawHeader(rangeName())) { QByteArray range = request.rawHeader(rangeName()); - if (!range.startsWith("bytes=")) + if (!range.startsWith(bytesEqualPrefix())) return false; } |