A stack which works with or without an Mbed os library. Provides IPv4 or IPv6 with a full 1500 byte buffer.

Dependents:   oldheating gps motorhome heating

Revision:
71:736a5747ade1
Parent:
61:aad055f1b0d1
Child:
73:43e3d7fb3d60
--- a/ip4/udptcp4.c	Fri Feb 16 17:31:52 2018 +0000
+++ b/ip4/udptcp4.c	Sat Oct 20 18:56:13 2018 +0000
@@ -73,13 +73,13 @@
         default: LogTimeF("UdpTcp4 - traceback unrecognised protocol %d\r\n", tracePacketProtocol); break;
     }
 }
-int Tcp4HandleReceivedPacket(void (*traceback)(void), void* pPacketRx, int sizeRx, void* pPacketTx, int* pSizeTx, uint32_t* pSrcIp, uint32_t* pDstIp)
+int Tcp4HandleReceivedPacket(void (*traceback)(void), void* pPacketRx, int sizeRx, void* pPacketTx, int* pSizeTx, uint32_t* pSrcIp, uint32_t* pDstIp, uint32_t* pCachedRemIp)
 {   
     pTraceBack = traceback;
     tracePacketProtocol = TCP;
     calculatedChecksum = calculateChecksum(TCP, *pSrcIp, *pDstIp, sizeRx, pPacketRx);
         
-    int action = TcpHandleReceivedPacket(trace, sizeRx, pPacketRx, pSizeTx, pPacketTx);
+    int action = TcpHandleReceivedPacket(trace, sizeRx, pPacketRx, pSizeTx, pPacketTx, TCP, pCachedRemIp);
     
     *pDstIp = *pSrcIp;
     
@@ -102,6 +102,14 @@
   
     return action;
 }
+int Tcp4PollForPacketToSend(void* pPacket, int* pSize, uint32_t* pSrcIp, uint32_t* pDstIp)
+{        
+    int action = TcpPollForPacketToSend(pSize, pPacket, IPV4, pDstIp);
+    
+    finalisePacket(TCP, action, pPacket, *pSize, pSrcIp, pDstIp);
+        
+    return action;
+}
 int Udp4PollForPacketToSend(void* pPacket, int* pSize, uint32_t* pSrcIp, uint32_t* pDstIp)
 {        
     int action = UdpPollForPacketToSend(IPV4, pSize, pPacket);