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-12-14
Revision:
59:e0e556c8bd46
Parent:
47:73af5c0b0dc2
Child:
61:aad055f1b0d1

File content as of revision 59:e0e556c8bd46:

#include "mbed.h"

extern void DnsProtocolString  (uint8_t protocol,   int size, char* text);
extern void DnsRecordTypeString(uint8_t recordtype, int size, char* text);
extern void DnsProtocolLog     (uint8_t protocol);
extern void DnsRecordTypeLog   (uint8_t recordtype);

extern int  DnsGetNextProtocol4(int protocol);
extern int  DnsGetNextProtocol6(int protocol);
extern bool DnsHostNamesEquate(char* pA, char* pB);
extern int  DnsMakeFullNameFromName (int protocol, const 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 sizeRx, void* pPacketRx, int* pSizeTx, void* pPacketTx);
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