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
Diff: ip4/udptcp4.cpp
- 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)