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

udp/dns/dns.h

Committer:
andrewboyson
Date:
2017-10-19
Revision:
43:bc028d5a6424
Parent:
41:db727df5f98b
Child:
47:73af5c0b0dc2

File content as of revision 43:bc028d5a6424:

#include "mbed.h"

extern void DnsProtocolToString  (uint8_t protocol,   int size, char* text);
extern void DnsRecordTypeToString(uint8_t recordtype, int size, char* text);
extern int  DnsGetNextProtocol4(int protocol);
extern int  DnsGetNextProtocol6(int protocol);
extern bool DnsHostNamesEquate(char* pA, char* pB);
extern int  DnsMakeFullNameFromName (int protocol, char* name, int size, char* fqdn);
extern int  DnsStripNameFromFullName(int protocol, char* fqdn, int size, char* name);

extern void DnsMain();
extern int  DnsHandlePacketReceived(void (*traceback)(void), int dnsProtocol, int* pSize, void* pPacket);
extern int  DnsPollForPacketToSend(void* pPacket, int* pSize);

#define DNS_UNICAST_SERVER_PORT     53
#define DNS_UNICAST_CLIENT_PORT  53053

#define DNS_MDNS_PORT             5353

#define DNS_LLMNR_SERVER_PORT     5355
#define DNS_LLMNR_CLIENT_PORT    53055

#define DNS_PROTOCOL_NONE   0
#define DNS_PROTOCOL_UDNS   1
#define DNS_PROTOCOL_MDNS   2
#define DNS_PROTOCOL_LLMNR  3

#define DNS_RECORD_NONE  0
#define DNS_RECORD_A     1
#define DNS_RECORD_PTR  12
#define DNS_RECORD_AAAA 28
#define DNS_RECORD_TXT  16
#define DNS_RECORD_SRV  33

#define DNS_MAX_LABEL_LENGTH 63