Skip to content

Commit 0c1e042

Browse files
authored
Fix a repeated sending of RETIRE_CONN_ID (#6048)
## Description This pull request makes a targeted change to the logic for updating the destination connection ID (CID) in `src/core/send.c`. The update ensures that a CID update is only initiated if one hasn't already been started for the current path. Connection ID update logic improvement: * Modified the condition in `QuicSendFlush` to check that `Path->InitiatedCidUpdate` is `FALSE` before initiating a destination CID update, and sets it to `TRUE` after the update is initiated. This prevents repeated or redundant CID updates for the same path. ## Testing _Do any existing tests cover this change? Are new tests needed?_ No ## Documentation _Is there any documentation impact for this change?_ No
1 parent 067f3d3 commit 0c1e042

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

src/core/send.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,8 +1248,11 @@ QuicSendFlush(
12481248
//
12491249
if (Connection->Settings.DestCidUpdateIdleTimeoutMs != 0 &&
12501250
Send->LastFlushTimeValid &&
1251-
CxPlatTimeDiff64(Send->LastFlushTime, TimeNow) >= MS_TO_US(Connection->Settings.DestCidUpdateIdleTimeoutMs)) {
1252-
(void)QuicConnRetireCurrentDestCid(Connection, Path);
1251+
CxPlatTimeDiff64(Send->LastFlushTime, TimeNow) >= MS_TO_US(Connection->Settings.DestCidUpdateIdleTimeoutMs) &&
1252+
!Path->InitiatedCidUpdate) {
1253+
if (QuicConnRetireCurrentDestCid(Connection, Path)) {
1254+
Path->InitiatedCidUpdate = TRUE;
1255+
}
12531256
}
12541257

12551258
//

0 commit comments

Comments
 (0)