Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: oldheating gps motorhome heating
Diff: tcp/tcprecv.c
- Revision:
- 144:6bd5c54efc7d
- Parent:
- 142:a8c0890a58d1
- Child:
- 145:206bf0d073c7
diff -r 8cec8f08dc54 -r 6bd5c54efc7d tcp/tcprecv.c --- a/tcp/tcprecv.c Thu May 09 07:47:12 2019 +0000 +++ b/tcp/tcprecv.c Sun May 12 17:17:49 2019 +0000 @@ -43,9 +43,8 @@ pTcb->countSendsNotAcked = 0; pTcb->rcvdFin = false; pTcb->sentFin = false; - pTcb->todo = 0; - pTcb->postComplete = false; - pTcb->delayUntil = MsTimerCount; + pTcb->appStarted = false; + for (char* p = pTcb->appData; p < pTcb->appData + TCB_APP_STATE_BYTES; p++) *p = 0; pTcb->remIsn = TcpHdrSeqNum; pTcb->locIsn = TcbGetIsn(); pTcb->bytesRcvdFromRem = 0; @@ -60,10 +59,10 @@ switch (pTcb->locPort) { case 80: - HttpHandleRequest(dataLength, pData, position, &pTcb->todo, &pTcb->postComplete, &pTcb->delayUntil); + HttpHandleRequest (dataLength, pData, position, pTcb->appData); break; case 443: - HttpsHandleRequest(dataLength, pData, position, &pTcb->todo); + HttpsHandleRequest(dataLength, pData, position, pTcb->appData); break; default: break; @@ -97,9 +96,8 @@ pTcb->countSendsNotAcked = 0; pTcb->rcvdFin = false; pTcb->sentFin = false; - pTcb->todo = 0; - pTcb->postComplete = false; - pTcb->delayUntil = MsTimerCount; + pTcb->appStarted = false; + for (char* p = pTcb->appData; p < pTcb->appData + TCB_APP_STATE_BYTES; p++) *p = 0; pTcb->remIsn = TcpHdrSeqNum + seqLengthRcvd; //Ack number pTcb->locIsn = TcpHdrACK ? TcpHdrAckNum : 0; //Seq number pTcb->bytesRcvdFromRem = 0; @@ -294,7 +292,11 @@ break; case TCB_ESTABLISHED: - if (dataLength) handleReceivedData (pPacketRx, dataLength, seqRcvdFromRem - 1, pTcb); + if (dataLength) + { + handleReceivedData(pPacketRx, dataLength, seqRcvdFromRem - 1, pTcb); + pTcb->appStarted = true; + } if (pTcb->sentFin) { pTcb->state = pTcb->rcvdFin ? TCB_EMPTY : TCB_CLOSE_FIN_WAIT;