--- a/src/internet-stack/tcp-socket-impl.cc Fri Jun 27 14:38:08 2008 -0700
+++ b/src/internet-stack/tcp-socket-impl.cc Fri Jun 27 14:56:18 2008 -0700
@@ -80,8 +80,7 @@
m_pendingData (0),
m_rtt (0),
m_lastMeasuredRtt (Seconds(0.0)),
- m_rxAvailable (0),
- m_wouldBlock (false)
+ m_rxAvailable (0)
{
NS_LOG_FUNCTION (this);
}
@@ -126,7 +125,6 @@
m_cnTimeout (sock.m_cnTimeout),
m_cnCount (sock.m_cnCount),
m_rxAvailable (0),
- m_wouldBlock (false),
m_sndBufSize (sock.m_sndBufSize),
m_rcvBufSize(sock.m_rcvBufSize)
{
@@ -356,7 +354,6 @@
{
if (p->GetSize() > GetTxAvailable ())
{
- m_wouldBlock = true;
m_errno = ERROR_MSGSIZE;
return -1;
}
@@ -796,9 +793,8 @@
{
m_highestRxAck = tcpHeader.GetAckNumber ();
// Data freed from the send buffer; notify any blocked sender
- if (m_wouldBlock)
+ if (GetTxAvailable () > 0)
{
- m_wouldBlock = false;
NotifySend (GetTxAvailable ());
}
}
@@ -1168,11 +1164,8 @@
NS_LOG_LOGIC ("TCP " << this << " NewAck " << ack
<< " numberAck " << (ack - m_highestRxAck)); // Number bytes ack'ed
m_highestRxAck = ack; // Note the highest recieved Ack
- if (m_wouldBlock)
+ if (GetTxAvailable () > 0)
{
- // m_highestRxAck advancing means some data was acked, and the size
- // of free space in the buffer has increased
- m_wouldBlock = false;
NotifySend (GetTxAvailable ());
}
if (ack > m_nextTxSequence)
--- a/src/internet-stack/tcp-socket-impl.h Fri Jun 27 14:38:08 2008 -0700
+++ b/src/internet-stack/tcp-socket-impl.h Fri Jun 27 14:56:18 2008 -0700
@@ -216,8 +216,6 @@
// Temporary queue for delivering data to application
uint32_t m_rxAvailable;
- bool m_wouldBlock; // set to true whenever socket would block on send()
-
// Attributes
uint32_t m_sndBufSize; // buffer limit for the outgoing queue
uint32_t m_rcvBufSize; // maximum receive socket buffer size