|
|
| 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; |