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:
2019-03-11
Revision:
128:79052cb4a41c
Parent:
83:08c983006a6e
Child:
170:96c637dc3f52

File content as of revision 128:79052cb4a41c:

#include <stdint.h>
#include <stdbool.h>

extern bool DnsSendRequestsViaIp4;

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 void DnsMain(void);
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