You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.6 KiB
86 lines
2.6 KiB
#ifndef _DNS_H_
|
|
#define _DNS_H_
|
|
|
|
#include "w5500api.h"
|
|
|
|
extern uint8 BUFPUB[1024];
|
|
extern uint8 dns_num;
|
|
|
|
#define SOCK_DNS 1
|
|
|
|
//extern uint8 domain_name[];
|
|
#define DNS_RESPONSE_TIMEOUT 3 // 3 seconds
|
|
#define DNS_RETRY 3 //3 times
|
|
#define DNS_RET_PROGRESS 0
|
|
#define DNS_RET_FAIL 1
|
|
#define DNS_RET_SUCCESS 2
|
|
|
|
#define EXTERN_DNS_SERVERIP NET_CONFIG.dns
|
|
#define EXTERN_DNS_SOCKBUF gBUFPUBLIC
|
|
#define EXTERN_DNS_ANYPORT 2000//tsvDEVCONFnew.any_port
|
|
|
|
#define MAX_DNS_BUF_SIZE 256 /* maximum size of DNS buffer. */
|
|
|
|
|
|
#define INITRTT 2000L /* Initial smoothed response time */
|
|
#define MAXCNAME 10 /* Maximum amount of cname recursion */
|
|
|
|
#define TYPE_A 1 /* Host address */
|
|
#define TYPE_NS 2 /* Name server */
|
|
#define TYPE_MD 3 /* Mail destination (obsolete) */
|
|
#define TYPE_MF 4 /* Mail forwarder (obsolete) */
|
|
#define TYPE_CNAME 5 /* Canonical name */
|
|
#define TYPE_SOA 6 /* Start of Authority */
|
|
#define TYPE_MB 7 /* Mailbox name (experimental) */
|
|
#define TYPE_MG 8 /* Mail group member (experimental) */
|
|
#define TYPE_MR 9 /* Mail rename name (experimental) */
|
|
#define TYPE_NULL 10 /* Null (experimental) */
|
|
#define TYPE_WKS 11 /* Well-known sockets */
|
|
#define TYPE_PTR 12 /* Pointer record */
|
|
#define TYPE_HINFO 13 /* Host information */
|
|
#define TYPE_MINFO 14 /* Mailbox information (experimental)*/
|
|
#define TYPE_MX 15 /* Mail exchanger */
|
|
#define TYPE_TXT 16 /* Text strings */
|
|
#define TYPE_ANY 255/* Matches any type */
|
|
|
|
#define CLASS_IN 1 /* The ARPA Internet */
|
|
|
|
/* Round trip timing parameters */
|
|
#define AGAIN 8 /* Average RTT gain = 1/8 */
|
|
#define LAGAIN 3 /* Log2(AGAIN) */
|
|
#define DGAIN 4 /* Mean deviation gain = 1/4 */
|
|
#define LDGAIN 2 /* log2(DGAIN) */
|
|
|
|
#define IPPORT_DOMAIN 53
|
|
|
|
/* Header for all domain messages */
|
|
struct dhdr
|
|
{
|
|
uint16 id; /* Identification */
|
|
uint8 qr; /* Query/Response */
|
|
#define QUERY 0
|
|
#define RESPONSE 1
|
|
uint8 opcode;
|
|
#define IQUERY 1
|
|
uint8 aa; /* Authoratative answer */
|
|
uint8 tc; /* Truncation */
|
|
uint8 rd; /* Recursion desired */
|
|
uint8 ra; /* Recursion available */
|
|
uint8 rcode; /* Response code */
|
|
#define NO_ERROR 0
|
|
#define FORMAT_ERROR 1
|
|
#define SERVER_FAIL 2
|
|
#define NAME_ERROR 3
|
|
#define NOT_IMPL 4
|
|
#define REFUSED 5
|
|
uint16 qdcount; /* Question count */
|
|
uint16 ancount; /* Answer count */
|
|
uint16 nscount; /* Authority (name server) count */
|
|
uint16 arcount; /* Additional record count */
|
|
};
|
|
|
|
extern uint8 DNS_GET_IP[4];
|
|
uint8 dns_query(uint8 s, uint8 * name);
|
|
uint16 do_dns(uint8 *domain_name);
|
|
#endif /* _DNS_H_ */
|