1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-28 15:43:57 +03:00

Give caller some control over if writeStreamFrameHeader should write length

Summary:
Becuase when we clone an existing packet, the logic inside the current
writetStreamFrameHeader is no longer correct.

Reviewed By: mjoras

Differential Revision: D21383828

fbshipit-source-id: 8e6bbb048eefd97ca7cf17b89edc2f395f274a73
This commit is contained in:
Yang Chi
2020-05-07 10:52:01 -07:00
committed by Facebook GitHub Bot
parent 4b6468a4a4
commit cd7339e454
10 changed files with 364 additions and 51 deletions

View File

@@ -52,6 +52,7 @@ folly::Optional<PacketEvent> PacketRebuilder::rebuildFromPacket(
for (auto iter = packet.packet.frames.cbegin();
iter != packet.packet.frames.cend();
iter++) {
bool lastFrame = iter == packet.packet.frames.cend() - 1;
const QuicWriteFrame& frame = *iter;
switch (frame.type()) {
case QuicWriteFrame::Type::WriteAckFrame_E: {
@@ -82,7 +83,8 @@ folly::Optional<PacketEvent> PacketRebuilder::rebuildFromPacket(
streamFrame.offset,
bufferLen,
bufferLen,
streamFrame.fin);
streamFrame.fin,
lastFrame && bufferLen);
bool ret = dataLen.has_value() && *dataLen == streamFrame.len;
if (ret) {
// Writing 0 byte for stream data is legit if the stream frame has