1 #ifndef _DNS_RELATED_
2 #define _DNS_RELATED_
3 
4 #include "common.h"
5 
6 typedef enum _DNSRecordType{
7 	DNS_TYPE_UNKNOWN	=	0,
8 	DNS_TYPE_A		=	1,
9 	DNS_TYPE_AAAA	=	28,
10 	DNS_TYPE_APL	=	42,
11 	DNS_TYPE_CERT	=	37,
12 	DNS_TYPE_CNAME	=	5,
13 	DNS_TYPE_DHCID	=	49,
14 	DNS_TYPE_DLV	=	32769,
15 	DNS_TYPE_DNAME	=	39,
16 	DNS_TYPE_DNSKEY	=	48,
17 	DNS_TYPE_DS		=	43,
18 	DNS_TYPE_HIP	=	55,
19 	DNS_TYPE_IPSECKEY	=	45,
20 	DNS_TYPE_KEY	=	25,
21 	DNS_TYPE_KX		=	36,
22 	DNS_TYPE_LOC	=	29,
23 	DNS_TYPE_MX		=	15,
24 	DNS_TYPE_NAPTR	=	35,
25 	DNS_TYPE_NS		=	2,
26 	DNS_TYPE_NSEC	=	47,
27 	DNS_TYPE_NSEC3	=	50,
28 	DNS_TYPE_NSEC3PARAM	=	51,
29 	DNS_TYPE_PTR	=	12,
30 	DNS_TYPE_RRSIG	=	46,
31 	DNS_TYPE_RP		=	17,
32 	DNS_TYPE_SIG	=	24,
33 	DNS_TYPE_SOA	=	6,
34 	DNS_TYPE_SPF	=	99,
35 	DNS_TYPE_SRV	=	33,
36 	DNS_TYPE_SSHFP	=	44,
37 	DNS_TYPE_TA		=	32768,
38 	DNS_TYPE_TKEY	=	249,
39 	DNS_TYPE_TSIG	=	250,
40 	DNS_TYPE_TXT	=	16,
41 	DNS_TYPE_ANY	=	255,
42 	DNS_TYPE_AXFR	=	252,
43 	DNS_TYPE_IXFR	=	251,
44 	DNS_TYPE_HINFO	=	13,
45 	DNS_TYPE_OPT	=	41,
46 }DNSRecordType;
47 
48 typedef enum _DNSRecordClass{
49 	DNS_CLASS_UNKNOWN	=	0,
50 	DNS_CLASS_IN		=	1,
51 	DNS_CLASS_CH		=	3,
52 	DNS_CLASS_ANY		=	255,
53 }DNSRecordClass;
54 
55 typedef struct _DNSTypeName{
56 	DNSRecordType	Num;
57 	const char		*Name;
58 }DNSTypeAndName;
59 
60 typedef struct _DNSSECAlgorithm {
61 	int Num;
62 	const char *Name;
63 } DNSSECAlgorithm;
64 
65 extern const DNSTypeAndName DNSTypeList[];
66 
67 extern const DNSSECAlgorithm DNSSECAlgorithmList[];
68 
69 const char *DNSGetTypeName(uint16_t Num);
70 
71 const char *DNSSECGetAlgorithmName(int Num);
72 
73 #endif /* _DNS_RELATED_ */
74