XINU
include
dns.h
Go to the documentation of this file.
1
/* dns.h */
2
3
/* Constants and data structures used for DNS */
4
5
#define DNSTIMEOUT 3000
/* Timeout for a response (ms) */
6
#define DNSRETRY 3
/* Number of times to retry */
7
#define DNSPORT 53
/* Well-known DNS UDP port */
8
#define DNSLPORT 51525
/* Local UDP port to use */
9
#define DNSDATASIZ 500
/* Size of the data area */
10
11
12
/* Format of a DNS Query/Response packet */
13
14
struct
dnspkt
{
15
uint16
id
;
/* DNS Query ID */
16
struct
{
17
byte
rd
:1;
/* Recursion Desired */
18
byte
tc
:1;
/* Truncation */
19
byte
aa
:1;
/* Authoritative Answer */
20
byte
opcode
:4;
/* Operation Code */
21
byte
qr
:1;
/* Query=0, Response=1 */
22
};
23
struct
{
24
byte
rcode
:4;
/* Response Code */
25
byte
z
:3;
/* Reserved, must be 0 */
26
byte
ra
:1;
/* Recursion Available */
27
};
28
uint16
qucount
;
/* No. of Questions */
29
uint16
ancount
;
/* No. of RRs in Answer */
30
uint16
nscount
;
/* No of Name Server RRs */
31
uint16
arcount
;
/* No. of RRs in Additional info*/
32
char
data
[
DNSDATASIZ
];
/* DNS data area */
33
};
34
35
/* QType Values */
36
37
#define DNS_QT_A 1
/* DNS Address Type (A) */
38
#define DNS_QT_NS 2
/* DNS Name Server Type */
39
40
/* QClass values */
41
42
#define DNS_QC_IN 1
/* DNS QClass Internet */
43
44
/* Format of a DNS Question */
45
46
struct
dns_q
{
47
char
*
qname
;
/* Domain Name in the query */
48
uint16
*
qtype
;
/* Question Type */
49
uint16
*
qclass
;
/* Question Class */
50
};
51
52
/* Format of a DNS Resource Record */
53
54
struct
dns_rr
{
55
char
*
rname
;
/* Domain Name */
56
uint16
*
rtype
;
/* Resource Record Type */
57
uint16
*
rclass
;
/* Resource Record Class */
58
uint32
*
ttl
;
/* Resource Record Time-to-Live */
59
uint16
*
rdlen
;
/* Resource Record RD Length */
60
char
*
rdata
;
/* Resource Record Data area */
61
};
dnspkt::ra
byte ra
Definition:
dns.h:26
byte
unsigned char byte
符号なし8ビット値(unsigned char)
Definition:
kernel.h:7
dnspkt::nscount
uint16 nscount
Definition:
dns.h:30
dnspkt::qucount
uint16 qucount
Definition:
dns.h:28
dnspkt
Definition:
dns.h:14
dns_rr::rtype
uint16 * rtype
Definition:
dns.h:56
dnspkt::ancount
uint16 ancount
Definition:
dns.h:29
dnspkt::tc
byte tc
Definition:
dns.h:18
dns_q::qname
char * qname
Definition:
dns.h:47
dns_rr::rname
char * rname
Definition:
dns.h:55
dnspkt::opcode
byte opcode
Definition:
dns.h:20
dnspkt::aa
byte aa
Definition:
dns.h:19
dns_rr::rdata
char * rdata
Definition:
dns.h:60
dns_q::qclass
uint16 * qclass
Definition:
dns.h:49
dnspkt::rcode
byte rcode
Definition:
dns.h:24
dns_q::qtype
uint16 * qtype
Definition:
dns.h:48
dnspkt::arcount
uint16 arcount
Definition:
dns.h:31
dnspkt::rd
byte rd
Definition:
dns.h:17
dnspkt::id
uint16 id
Definition:
dns.h:15
dnspkt::data
char data[DNSDATASIZ]
Definition:
dns.h:32
dns_rr::rclass
uint16 * rclass
Definition:
dns.h:57
dns_rr::rdlen
uint16 * rdlen
Definition:
dns.h:59
uint16
unsigned short uint16
符号なし16ビット整数(unsigned short)
Definition:
kernel.h:17
dns_rr::ttl
uint32 * ttl
Definition:
dns.h:58
dns_q
Definition:
dns.h:46
DNSDATASIZ
#define DNSDATASIZ
Definition:
dns.h:9
uint32
unsigned int uint32
符号なし32ビット整数(unsigned int)
Definition:
kernel.h:15
dnspkt::z
byte z
Definition:
dns.h:25
dns_rr
Definition:
dns.h:54
dnspkt::qr
byte qr
Definition:
dns.h:21
Generated by
1.8.13