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

Committer:
andrewboyson
Date:
Sat Nov 17 15:49:03 2018 +0000
Revision:
83:08c983006a6e
Parent:
61:aad055f1b0d1
Child:
128:79052cb4a41c
Added "send requests via IPv4" toggles for DNS, NTP and TFTP.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andrewboyson 61:aad055f1b0d1 1 #include <stdint.h>
andrewboyson 61:aad055f1b0d1 2 #include <stdbool.h>
andrewboyson 13:9cd54f7db57a 3
andrewboyson 83:08c983006a6e 4 extern bool DnsSendRequestsViaIp4;
andrewboyson 83:08c983006a6e 5
andrewboyson 47:73af5c0b0dc2 6 extern void DnsProtocolString (uint8_t protocol, int size, char* text);
andrewboyson 47:73af5c0b0dc2 7 extern void DnsRecordTypeString(uint8_t recordtype, int size, char* text);
andrewboyson 47:73af5c0b0dc2 8 extern void DnsProtocolLog (uint8_t protocol);
andrewboyson 47:73af5c0b0dc2 9 extern void DnsRecordTypeLog (uint8_t recordtype);
andrewboyson 47:73af5c0b0dc2 10
andrewboyson 41:db727df5f98b 11 extern int DnsGetNextProtocol4(int protocol);
andrewboyson 41:db727df5f98b 12 extern int DnsGetNextProtocol6(int protocol);
andrewboyson 33:714a0345e59b 13 extern bool DnsHostNamesEquate(char* pA, char* pB);
andrewboyson 59:e0e556c8bd46 14 extern int DnsMakeFullNameFromName (int protocol, const char* name, int size, char* fqdn);
andrewboyson 32:679654f2d023 15 extern int DnsStripNameFromFullName(int protocol, char* fqdn, int size, char* name);
andrewboyson 32:679654f2d023 16
andrewboyson 61:aad055f1b0d1 17 extern void DnsMain(void);
andrewboyson 59:e0e556c8bd46 18 extern int DnsHandlePacketReceived(void (*traceback)(void), int dnsProtocol, int sizeRx, void* pPacketRx, int* pSizeTx, void* pPacketTx);
andrewboyson 13:9cd54f7db57a 19 extern int DnsPollForPacketToSend(void* pPacket, int* pSize);
andrewboyson 13:9cd54f7db57a 20
andrewboyson 13:9cd54f7db57a 21 #define DNS_UNICAST_SERVER_PORT 53
andrewboyson 14:e75a59c1123d 22 #define DNS_UNICAST_CLIENT_PORT 53053
andrewboyson 14:e75a59c1123d 23
andrewboyson 14:e75a59c1123d 24 #define DNS_MDNS_PORT 5353
andrewboyson 14:e75a59c1123d 25
andrewboyson 13:9cd54f7db57a 26 #define DNS_LLMNR_SERVER_PORT 5355
andrewboyson 14:e75a59c1123d 27 #define DNS_LLMNR_CLIENT_PORT 53055
andrewboyson 13:9cd54f7db57a 28
andrewboyson 13:9cd54f7db57a 29 #define DNS_PROTOCOL_NONE 0
andrewboyson 13:9cd54f7db57a 30 #define DNS_PROTOCOL_UDNS 1
andrewboyson 13:9cd54f7db57a 31 #define DNS_PROTOCOL_MDNS 2
andrewboyson 13:9cd54f7db57a 32 #define DNS_PROTOCOL_LLMNR 3
andrewboyson 13:9cd54f7db57a 33
andrewboyson 30:e34173b7585c 34 #define DNS_RECORD_NONE 0
andrewboyson 13:9cd54f7db57a 35 #define DNS_RECORD_A 1
andrewboyson 13:9cd54f7db57a 36 #define DNS_RECORD_PTR 12
andrewboyson 13:9cd54f7db57a 37 #define DNS_RECORD_AAAA 28
andrewboyson 15:6ca6778168b1 38 #define DNS_RECORD_TXT 16
andrewboyson 15:6ca6778168b1 39 #define DNS_RECORD_SRV 33
andrewboyson 35:93c39d260a83 40
andrewboyson 35:93c39d260a83 41 #define DNS_MAX_LABEL_LENGTH 63