|
473 |
NS_LOG_FUNCTION_NOARGS (); |
473 |
NS_LOG_FUNCTION_NOARGS (); |
474 |
if(m_bufferedData.empty()) |
474 |
if(m_bufferedData.empty()) |
475 |
{ |
475 |
{ |
|
|
476 |
if(m_state == CLOSE_WAIT) //means EOF |
477 |
{ |
478 |
return Create<Packet>(); |
479 |
} |
480 |
//else, means nothing to read |
476 |
return 0; |
481 |
return 0; |
477 |
} |
482 |
} |
478 |
UnAckData_t out; //serves as buffer to return up to the user |
483 |
UnAckData_t out; //serves as buffer to return up to the user |
|
547 |
{ |
552 |
{ |
548 |
NS_LOG_FUNCTION (this << maxSize << flags); |
553 |
NS_LOG_FUNCTION (this << maxSize << flags); |
549 |
Ptr<Packet> packet = Recv (maxSize, flags); |
554 |
Ptr<Packet> packet = Recv (maxSize, flags); |
550 |
if (packet != 0) |
555 |
//Null packet means no data to read, and an empty packet indicates EOF |
|
|
556 |
if (packet != 0 && packet->GetSize() != 0) |
551 |
{ |
557 |
{ |
552 |
SocketAddressTag tag; |
558 |
SocketAddressTag tag; |
553 |
bool found; |
559 |
bool found; |