Skip to content

Commit 37c1e0d

Browse files
committed
unconditional SWS-override-timer reset after sending data
reset SWS-override-timer if trigger but send is blocked (Nagles)
1 parent b5f106b commit 37c1e0d

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

src/socket/tcp.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2534,6 +2534,10 @@ impl<'a> Socket<'a> {
25342534
self.reset();
25352535
return Ok(());
25362536
} else {
2537+
if self.sws_override_timer.should_override(cx.now()) {
2538+
self.sws_override_timer = SWSOverrideTimer::Idle;
2539+
}
2540+
25372541
let (_, sws_blocks) = self.send_is_blocked(cx);
25382542
if sws_blocks && !self.tx_buffer.is_empty() && self.sws_override_timer.is_idle() {
25392543
// RFC 9293 (3.6.8.2.1) If SWS blocks sending of data, start override timer.
@@ -2769,11 +2773,7 @@ impl<'a> Socket<'a> {
27692773
self.timer.set_for_retransmit(cx.now(), rto);
27702774
}
27712775

2772-
// Reset the override timer after sending — it fires once per override cycle.
2773-
if self.sws_override_timer.should_override(cx.now()) {
2774-
self.sws_override_timer = SWSOverrideTimer::Idle;
2775-
}
2776-
2776+
self.sws_override_timer = SWSOverrideTimer::Idle;
27772777
let (_, sws_blocks) = self.send_is_blocked(cx);
27782778
if sws_blocks && !self.tx_buffer.is_empty() && self.sws_override_timer.is_idle() {
27792779
// RFC 9293 (3.6.8.2.1) If SWS blocks sending of data, start override timer.

0 commit comments

Comments
 (0)