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:
Thu Dec 14 20:55:40 2017 +0000
Revision:
59:e0e556c8bd46
Parent:
47:73af5c0b0dc2
Child:
61:aad055f1b0d1
Added buffer length to help avoid over runs

Who changed what in which revision?

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