From 951f13c2fdf24585444b994c96a20fcb48b03fef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levente=20M=C3=A9sz=C3=A1ros?= Date: Tue, 23 Jan 2024 07:00:37 -0800 Subject: [PATCH] tcp: (fixes #987) Fix retransmission of wrong segment --- src/internet/model/tcp-socket-base.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/internet/model/tcp-socket-base.cc b/src/internet/model/tcp-socket-base.cc index c305f278d..1cbf3d9d5 100644 --- a/src/internet/model/tcp-socket-base.cc +++ b/src/internet/model/tcp-socket-base.cc @@ -1689,7 +1689,8 @@ TcpSocketBase::EnterRecovery(uint32_t currentDelivered) } // (4.3) Retransmit the first data segment presumed dropped - DoRetransmit(); + uint32_t sz = SendDataPacket(m_highRxAckMark, m_tcb->m_segmentSize, true); + NS_ASSERT_MSG(sz > 0, "SendDataPacket returned zero, indicating zero bytes were sent"); // (4.4) Run SetPipe () // (4.5) Proceed to step (C) // these steps are done after the ProcessAck function (SendPendingData)