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
diff -r 0fc66d610fd6 -r a6093b52e654 tcp/tcpsend.c
--- 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;