|
498 |
m_errno = ERROR_MSGSIZE; |
498 |
m_errno = ERROR_MSGSIZE; |
499 |
return -1; |
499 |
return -1; |
500 |
} |
500 |
} |
|
|
501 |
if (m_shutdownSend) |
502 |
{ |
503 |
m_errno = ERROR_SHUTDOWN; |
504 |
return -1; |
505 |
} |
501 |
// Submit the data to lower layers |
506 |
// Submit the data to lower layers |
502 |
NS_LOG_LOGIC ("txBufSize=" << m_txBuffer.Size () << " state " << TcpStateName[m_state]); |
507 |
NS_LOG_LOGIC ("txBufSize=" << m_txBuffer.Size () << " state " << TcpStateName[m_state]); |
503 |
if (m_state == ESTABLISHED || m_state == CLOSE_WAIT) |
508 |
if (m_state == ESTABLISHED || m_state == CLOSE_WAIT) |
|
1853 |
" highestRxAck " << m_txBuffer.HeadSequence () << |
1858 |
" highestRxAck " << m_txBuffer.HeadSequence () << |
1854 |
" pd->Size " << m_txBuffer.Size () << |
1859 |
" pd->Size " << m_txBuffer.Size () << |
1855 |
" pd->SFS " << m_txBuffer.SizeFromSequence (m_nextTxSequence)); |
1860 |
" pd->SFS " << m_txBuffer.SizeFromSequence (m_nextTxSequence)); |
1856 |
// Quit if send disallowed |
|
|
1857 |
if (m_shutdownSend) |
1858 |
{ |
1859 |
m_errno = ERROR_SHUTDOWN; |
1860 |
return false; |
1861 |
} |
1862 |
// Stop sending if we need to wait for a larger Tx window (prevent silly window syndrome) |
1861 |
// Stop sending if we need to wait for a larger Tx window (prevent silly window syndrome) |
1863 |
if (w < m_segmentSize && m_txBuffer.SizeFromSequence (m_nextTxSequence) > w) |
1862 |
if (w < m_segmentSize && m_txBuffer.SizeFromSequence (m_nextTxSequence) > w) |
1864 |
{ |
1863 |
{ |