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:
11:c051adb70c5a
Parent:
10:f0854784e960
Child:
15:6ca6778168b1
--- a/ip4/udptcp4.cpp	Sun Apr 16 14:21:55 2017 +0000
+++ b/ip4/udptcp4.cpp	Tue Apr 18 19:07:05 2017 +0000
@@ -27,43 +27,11 @@
 
     return NetCheckSumTwo(sizeof(pseudo), &pseudo, size, pPacket);
 }
-static void destIpFromAction(int action, uint32_t* pDstIp)
-{
-    switch (action)
-    {
-        case UNICAST:
-            break;
-        case UNICAST_DNS:
-            *pDstIp = DhcpDnsServer;
-            break;
-        case UNICAST_DHCP:
-            *pDstIp = DhcpServer;
-            break;
-        case MULTICAST_NODE:
-            *pDstIp = IP4_MULTICAST_ALL_HOSTS;
-            break;
-        case MULTICAST_ROUTER:
-            *pDstIp = IP4_MULTICAST_ALL_ROUTERS;
-            break;
-        case MULTICAST_MDNS:
-            *pDstIp = IP4_MULTICAST_DNS_ADDRESS;
-            break;
-        case MULTICAST_LLMNR:
-            *pDstIp = IP4_MULTICAST_LLMNR_ADDRESS;
-            break;
-        case BROADCAST:
-            *pDstIp = IP4_BROADCAST_ADDRESS;
-            break;
-        default:
-            LogTimeF("UdpTcp4 destIpFromAction unknown action %d\r\n", action);
-            return;
-    }
-}
 static void finalisePacket(uint8_t pro, int action, void* pPacket, int size, uint32_t* pSrcIp, uint32_t* pDstIp)
 {    
     if (!action) return;
     
-    destIpFromAction(action, pDstIp);
+    Ip4DestIpFromAction(action, pDstIp);
     
     *pSrcIp = DhcpLocalIp;
     
@@ -81,7 +49,11 @@
         case UDP: UdpAddChecksum(pPacket, checksum); break;
     }
     
-    if (DEBUG) TcpLogHeader("IPv4 packet sent", pPacket, 0);
+    switch (pro)
+    {
+        case TCP: if (DEBUG)TcpLogHeader("IPv4 packet sent", pPacket, 0); break;
+        case UDP: if (DEBUG)UdpLogHeader("IPv4 packet sent", pPacket, 0); break;
+    }
 }
 
 int Tcp4HandleReceivedPacket(uint32_t* pSrcIp, uint32_t* pDstIp, int* pSize, void * pPacket)