diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 3a57aa8d7..21139cc8b 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -42,6 +42,7 @@ Bugs fixed - Bug 2248 - tcp: TCP SACK added after reviews - Bug 2256 - tcp: bytes in flight now updated in TcpTxBuffer - Bug 2263 - Support processing of multiple TCP options +- Bug 2285 - tcp: Loss of ack of SYN can cause improper connection setup - Bug 2367 - BlockAckManager does not remove iterators to freed items - Bug 2450 - LogDistancePropagationLossModel is not continuous - Bug 2463 - create trace source to trace the TXOP time that is actually used diff --git a/src/internet/model/tcp-socket-base.cc b/src/internet/model/tcp-socket-base.cc index 66dd4c2e4..15cb1f335 100644 --- a/src/internet/model/tcp-socket-base.cc +++ b/src/internet/model/tcp-socket-base.cc @@ -1996,8 +1996,8 @@ TcpSocketBase::ProcessSynRcvd (Ptr packet, const TcpHeader& tcpHeader, // Always respond to first data packet to speed up the connection. // Remove to get the behaviour of old NS-3 code. m_delAckCount = m_delAckMaxCount; - ReceivedAck (packet, tcpHeader); NotifyNewConnectionCreated (this, fromAddress); + ReceivedAck (packet, tcpHeader); // As this connection is established, the socket is available to send data now if (GetTxAvailable () > 0) { @@ -2027,6 +2027,7 @@ TcpSocketBase::ProcessSynRcvd (Ptr packet, const TcpHeader& tcpHeader, m_endPoint6->SetPeer (Inet6SocketAddress::ConvertFrom (fromAddress).GetIpv6 (), Inet6SocketAddress::ConvertFrom (fromAddress).GetPort ()); } + NotifyNewConnectionCreated (this, fromAddress); PeerClose (packet, tcpHeader); } }