diff -r 7a750f032acd src/internet/model/tcp-socket-base.cc --- a/src/internet/model/tcp-socket-base.cc Sat Nov 10 19:16:38 2012 +0100 +++ b/src/internet/model/tcp-socket-base.cc Fri Dec 07 15:19:20 2012 +0100 @@ -498,6 +498,11 @@ m_errno = ERROR_MSGSIZE; return -1; } + if (m_shutdownSend) + { + m_errno = ERROR_SHUTDOWN; + return -1; + } // Submit the data to lower layers NS_LOG_LOGIC ("txBufSize=" << m_txBuffer.Size () << " state " << TcpStateName[m_state]); if (m_state == ESTABLISHED || m_state == CLOSE_WAIT) @@ -1853,12 +1858,6 @@ " highestRxAck " << m_txBuffer.HeadSequence () << " pd->Size " << m_txBuffer.Size () << " pd->SFS " << m_txBuffer.SizeFromSequence (m_nextTxSequence)); - // Quit if send disallowed - if (m_shutdownSend) - { - m_errno = ERROR_SHUTDOWN; - return false; - } // Stop sending if we need to wait for a larger Tx window (prevent silly window syndrome) if (w < m_segmentSize && m_txBuffer.SizeFromSequence (m_nextTxSequence) > w) {