1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-08-01 01:44:22 +03:00

Always use InplaceQuicPacketBuilder within writeCloseCommon

Summary: See title

Reviewed By: hanidamlaj

Differential Revision: D69195840

fbshipit-source-id: 777a4cbb8d2ae8754308a1bbedc35d399e9f44ff
This commit is contained in:
Aman Sharma
2025-02-11 11:02:18 -08:00
committed by Facebook GitHub Bot
parent c6d19083df
commit 57ae934f07

View File

@ -1255,10 +1255,13 @@ void writeCloseCommon(
PacketNumberSpace pnSpace = header.getPacketNumberSpace(); PacketNumberSpace pnSpace = header.getPacketNumberSpace();
HeaderForm headerForm = header.getHeaderForm(); HeaderForm headerForm = header.getHeaderForm();
PacketNum packetNum = header.getPacketSequenceNum(); PacketNum packetNum = header.getPacketSequenceNum();
// TODO: This too needs to be switchable between regular and inplace builder.
RegularQuicPacketBuilder packetBuilder( // Create a buffer onto which we write the connection close.
kDefaultUDPSendPacketLen, BufAccessor bufAccessor(connection.udpSendPacketLen);
std::move(header), InplaceQuicPacketBuilder packetBuilder(
bufAccessor,
connection.udpSendPacketLen,
header,
getAckState(connection, pnSpace).largestAckedByPeer.value_or(0)); getAckState(connection, pnSpace).largestAckedByPeer.value_or(0));
packetBuilder.encodePacketHeader(); packetBuilder.encodePacketHeader();
packetBuilder.accountForCipherOverhead(aead.getCipherOverhead()); packetBuilder.accountForCipherOverhead(aead.getCipherOverhead());
@ -1308,8 +1311,6 @@ void writeCloseCommon(
return; return;
} }
auto packet = std::move(packetBuilder).buildPacket(); auto packet = std::move(packetBuilder).buildPacket();
packet.header.coalesce();
packet.body.reserve(0, aead.getCipherOverhead());
CHECK_GE(packet.body.tailroom(), aead.getCipherOverhead()); CHECK_GE(packet.body.tailroom(), aead.getCipherOverhead());
auto bufUniquePtr = packet.body.clone(); auto bufUniquePtr = packet.body.clone();
bufUniquePtr = bufUniquePtr =