diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2024-01-08 10:04:43 +0100 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2024-01-08 18:29:26 +0100 |
commit | 8ce261f6d857e8b05c8043042fce101cb95cd868 (patch) | |
tree | 86c275c4f124ebead21dd28f94e2fd3efbd72a3a /src/network/access/qhttp2protocolhandler.cpp | |
parent | 91b0f269ba8fc0ae16f96b18327b5aa30718b313 (diff) |
Http2: move assemble_hpack_block declaration to header
Pick-to: 6.7
Change-Id: I5033d433d2aa499007a6e436dbb70d9c48315e8b
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Diffstat (limited to 'src/network/access/qhttp2protocolhandler.cpp')
-rw-r--r-- | src/network/access/qhttp2protocolhandler.cpp | 28 |
1 files changed, 1 insertions, 27 deletions
diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp index d159a1f885..4e7c1e1d61 100644 --- a/src/network/access/qhttp2protocolhandler.cpp +++ b/src/network/access/qhttp2protocolhandler.cpp @@ -88,32 +88,6 @@ HPack::HttpHeader build_headers(const QHttpNetworkRequest &request, quint32 maxH return header; } -std::vector<uchar> assemble_hpack_block(const std::vector<Http2::Frame> &frames) -{ - std::vector<uchar> hpackBlock; - - quint32 total = 0; - for (const auto &frame : frames) { - if (qAddOverflow(total, frame.hpackBlockSize(), &total)) - return hpackBlock; - } - - if (!total) - return hpackBlock; - - hpackBlock.resize(total); - auto dst = hpackBlock.begin(); - for (const auto &frame : frames) { - if (const auto hpackBlockSize = frame.hpackBlockSize()) { - const uchar *src = frame.hpackBlockBegin(); - std::copy(src, src + hpackBlockSize, dst); - dst += hpackBlockSize; - } - } - - return hpackBlock; -} - QUrl urlkey_from_request(const QHttpNetworkRequest &request) { QUrl url; @@ -962,7 +936,7 @@ void QHttp2ProtocolHandler::handleContinuedHEADERS() // has yet to see the reset. } - std::vector<uchar> hpackBlock(assemble_hpack_block(continuedFrames)); + std::vector<uchar> hpackBlock(Http2::assemble_hpack_block(continuedFrames)); const bool hasHeaderFields = !hpackBlock.empty(); if (hasHeaderFields) { HPack::BitIStream inputStream{&hpackBlock[0], &hpackBlock[0] + hpackBlock.size()}; |