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/tcpsend.c
- Revision:
- 147:a6093b52e654
- Parent:
- 146:0fc66d610fd6
- Child:
- 154:ba9879b19d9f
--- a/tcp/tcpsend.c Wed May 15 15:33:15 2019 +0000 +++ b/tcp/tcpsend.c Fri May 17 15:01:32 2019 +0000 @@ -43,15 +43,29 @@ default: return false; } } -static bool addApplicationData(int *pDataLength, void* pPacket, uint16_t port, uint32_t start, int mss, char* pAppState, bool clientFinished) -{ + +static bool addAppData(int *pDataLength, void* pPacket, uint16_t port, uint32_t start, int mss, char* pAppState, char* pTlsState, bool clientFinished) +{ + *pDataLength = 0; + int todo = 0; + switch (port) + { + case 80: todo = HttpShimPoll(clientFinished, pAppState, pTlsState, false); break; + case 443: todo = HttpShimPoll(clientFinished, pAppState, pTlsState, true ); break; + } + switch (todo) + { + case -1: return true; + case 0: return false; + case 1: break; + } char* pData = (char*)pPacket + TcpHdrSizeGet(); TcpBufStart(start, mss, pData); bool finished = false; switch (port) { - case 80: finished = HttpShimReplyPoll(pAppState, clientFinished, false); break; - case 443: finished = HttpShimReplyPoll(pAppState, clientFinished, true ); break; + case 80: finished = HttpShimReply(pAppState, pTlsState); break; + case 443: finished = HttpShimReply(pAppState, pTlsState); break; } *pDataLength = TcpBufLength(); return finished; @@ -96,7 +110,7 @@ { if (pTcb->bytesSentToRem - pTcb->bytesAckdByRem < pTcb->window) { - bool finished = addApplicationData(&dataLength, pPacket, pTcb->locPort, pTcb->bytesSentToRem - 1, pTcb->remMss, pTcb->appData, pTcb->rcvdFin); + bool finished = addAppData(&dataLength, pPacket, pTcb->locPort, pTcb->bytesSentToRem - 1, pTcb->remMss, pTcb->appData, pTcb->tlsData, pTcb->rcvdFin); if (finished) { TcpHdrFIN = true; @@ -145,7 +159,7 @@ case TCB_ESTABLISHED: case TCB_CLOSE_FIN_WAIT: { - bool finished = addApplicationData(&dataLength, pPacket, pTcb->locPort, seqNum - 1, pTcb->remMss, pTcb->appData, pTcb->rcvdFin); + bool finished = addAppData(&dataLength, pPacket, pTcb->locPort, seqNum - 1, pTcb->remMss, pTcb->appData, pTcb->tlsData, pTcb->rcvdFin); if (finished) { TcpHdrFIN = true;