mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-12-24 09:40:59 +03:00
make largestAckedByPeer and largestSent optional
Summary: 0 is now a valid packet number, so we should make these optional. In cases where they are needed to construct packet builder, it should be safe to use 0 as default since it's only used for computing `twiceDistance` in PacketNumber.cpp. Reviewed By: yangchi Differential Revision: D21948454 fbshipit-source-id: af9fdc3e28ff85f1594296c4d436f24685a0acd6
This commit is contained in:
committed by
Facebook GitHub Bot
parent
dc2ef325b5
commit
03e3bb6547
@@ -207,7 +207,7 @@ DataPathResult continuousMemoryBuildScheduleEncrypt(
|
||||
*connection.bufAccessor,
|
||||
connection.udpSendPacketLen,
|
||||
std::move(header),
|
||||
getAckState(connection, pnSpace).largestAckedByPeer);
|
||||
getAckState(connection, pnSpace).largestAckedByPeer.value_or(0));
|
||||
pktBuilder.setCipherOverhead(cipherOverhead);
|
||||
CHECK(scheduler.hasData());
|
||||
auto result =
|
||||
@@ -287,7 +287,7 @@ DataPathResult iobufChainBasedBuildScheduleEncrypt(
|
||||
RegularQuicPacketBuilder pktBuilder(
|
||||
connection.udpSendPacketLen,
|
||||
std::move(header),
|
||||
getAckState(connection, pnSpace).largestAckedByPeer);
|
||||
getAckState(connection, pnSpace).largestAckedByPeer.value_or(0));
|
||||
// It's the scheduler's job to invoke encode header
|
||||
pktBuilder.setCipherOverhead(cipherOverhead);
|
||||
auto result =
|
||||
@@ -605,7 +605,8 @@ void updateConnection(
|
||||
}
|
||||
|
||||
increaseNextPacketNum(conn, packetNumberSpace);
|
||||
conn.lossState.largestSent = std::max(conn.lossState.largestSent, packetNum);
|
||||
conn.lossState.largestSent =
|
||||
std::max(conn.lossState.largestSent.value_or(packetNum), packetNum);
|
||||
// updateConnection may be called multiple times during write. If before or
|
||||
// during any updateConnection, setLossDetectionAlarm is already set, we
|
||||
// shouldn't clear it:
|
||||
@@ -903,7 +904,7 @@ void writeCloseCommon(
|
||||
RegularQuicPacketBuilder packetBuilder(
|
||||
connection.udpSendPacketLen,
|
||||
std::move(header),
|
||||
getAckState(connection, pnSpace).largestAckedByPeer);
|
||||
getAckState(connection, pnSpace).largestAckedByPeer.value_or(0));
|
||||
packetBuilder.encodePacketHeader();
|
||||
packetBuilder.setCipherOverhead(aead.getCipherOverhead());
|
||||
size_t written = 0;
|
||||
|
||||
Reference in New Issue
Block a user