diff --git a/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp b/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp index c999e78117..c68822f78f 100644 --- a/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp +++ b/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp @@ -2492,6 +2492,8 @@ TCPEndpoint::_PersistTimer(net_timer* timer, void* _endpoint) // the timer might not have been canceled early enough if (endpoint->State() == CLOSED) return; + if (endpoint->fSendQueue.Available(endpoint->fSendNext) == 0) + return; endpoint->_SendQueued(true); } @@ -2510,6 +2512,8 @@ TCPEndpoint::_DelayedAcknowledgeTimer(net_timer* timer, void* _endpoint) // the timer might not have been canceled early enough if (endpoint->State() == CLOSED) return; + if (endpoint->fLastAcknowledgeSent == endpoint->fReceiveNext) + return; endpoint->SendAcknowledge(true); }