|
347 |
" deferring close, state " << m_state); |
347 |
" deferring close, state " << m_state); |
348 |
return 0; |
348 |
return 0; |
349 |
} |
349 |
} |
350 |
m_finSequence = m_nextTxSequence + SequenceNumber32 (1); |
350 |
//m_finSequence = m_nextTxSequence + SequenceNumber32 (1); |
351 |
Actions_t action = ProcessEvent (APP_CLOSE); |
351 |
Actions_t action = ProcessEvent (APP_CLOSE); |
352 |
ProcessAction (action); |
352 |
ProcessAction (action); |
353 |
return 0; |
353 |
return 0; |
|
947 |
if(tcpHeader.GetFlags() & TcpHeader::FIN) |
947 |
if(tcpHeader.GetFlags() & TcpHeader::FIN) |
948 |
{ |
948 |
{ |
949 |
++m_nextRxSequence; //bump this to account for the FIN |
949 |
++m_nextRxSequence; //bump this to account for the FIN |
950 |
m_nextTxSequence = m_finSequence; |
950 |
//m_nextTxSequence = m_finSequence; |
951 |
} |
951 |
} |
952 |
SendEmptyPacket (TcpHeader::ACK); |
952 |
SendEmptyPacket (TcpHeader::ACK); |
953 |
break; |
953 |
break; |
|
1172 |
m_nextTxSequence + SequenceNumber32 (sz)); |
1172 |
m_nextTxSequence + SequenceNumber32 (sz)); |
1173 |
if (m_closeOnEmpty && (remainingData == 0)) |
1173 |
if (m_closeOnEmpty && (remainingData == 0)) |
1174 |
{ |
1174 |
{ |
1175 |
m_finSequence = m_nextTxSequence + SequenceNumber32 (1 + sz); |
1175 |
//m_finSequence = m_nextTxSequence + SequenceNumber32 (1 + sz); |
1176 |
flags = TcpHeader::FIN; |
1176 |
flags = TcpHeader::FIN; |
1177 |
m_state = FIN_WAIT_1; |
1177 |
m_state = FIN_WAIT_1; |
1178 |
} |
1178 |
} |