/
qtype.go
114 lines (107 loc) · 2.79 KB
/
qtype.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package doh
import (
"strconv"
"strings"
"github.com/miekg/dns"
)
var qtype = map[string]uint16{
"A": dns.TypeA,
"AAAA": dns.TypeAAAA,
"AFSDB": dns.TypeAFSDB,
"AMTRELAY": dns.TypeAMTRELAY,
"ANY": dns.TypeANY,
"APL": dns.TypeAPL,
"ATMA": dns.TypeATMA,
"AVC": dns.TypeAVC,
"AXFR": dns.TypeAXFR,
"CAA": dns.TypeCAA,
"CDNSKEY": dns.TypeCDNSKEY,
"CDS": dns.TypeCDS,
"CERT": dns.TypeCERT,
"CNAME": dns.TypeCNAME,
"CSYNC": dns.TypeCSYNC,
"DHCID": dns.TypeDHCID,
"DLV": dns.TypeDLV,
"DNAME": dns.TypeDNAME,
"DNSKEY": dns.TypeDNSKEY,
"DS": dns.TypeDS,
"EID": dns.TypeEID,
"EUI48": dns.TypeEUI48,
"EUI64": dns.TypeEUI64,
"GID": dns.TypeGID,
"GPOS": dns.TypeGPOS,
"HINFO": dns.TypeHINFO,
"HIP": dns.TypeHIP,
"HTTPS": dns.TypeHTTPS,
"IPSECKEY": dns.TypeIPSECKEY,
"ISDN": dns.TypeISDN,
"IXFR": dns.TypeIXFR,
"KEY": dns.TypeKEY,
"KX": dns.TypeKX,
"L32": dns.TypeL32,
"L64": dns.TypeL64,
"LOC": dns.TypeLOC,
"LP": dns.TypeLP,
"MAILA": dns.TypeMAILA,
"MAILB": dns.TypeMAILB,
"MB": dns.TypeMB,
"MD": dns.TypeMD,
"MF": dns.TypeMF,
"MG": dns.TypeMG,
"MINFO": dns.TypeMINFO,
"MR": dns.TypeMR,
"MX": dns.TypeMX,
"NAPTR": dns.TypeNAPTR,
"NID": dns.TypeNID,
"NIMLOC": dns.TypeNIMLOC,
"NINFO": dns.TypeNINFO,
"NS": dns.TypeNS,
"NSAP-PTR": dns.TypeNSAPPTR,
"NSEC": dns.TypeNSEC,
"NSEC3": dns.TypeNSEC3,
"NSEC3PARAM": dns.TypeNSEC3PARAM,
"NULL": dns.TypeNULL,
"NXT": dns.TypeNXT,
"None": dns.TypeNone,
"OPENPGPKEY": dns.TypeOPENPGPKEY,
"OPT": dns.TypeOPT,
"PTR": dns.TypePTR,
"PX": dns.TypePX,
"RKEY": dns.TypeRKEY,
"RP": dns.TypeRP,
"RRSIG": dns.TypeRRSIG,
"RT": dns.TypeRT,
"Reserved": dns.TypeReserved,
"SIG": dns.TypeSIG,
"SMIMEA": dns.TypeSMIMEA,
"SOA": dns.TypeSOA,
"SPF": dns.TypeSPF,
"SRV": dns.TypeSRV,
"SSHFP": dns.TypeSSHFP,
"SVCB": dns.TypeSVCB,
"TA": dns.TypeTA,
"TALINK": dns.TypeTALINK,
"TKEY": dns.TypeTKEY,
"TLSA": dns.TypeTLSA,
"TSIG": dns.TypeTSIG,
"TXT": dns.TypeTXT,
"UID": dns.TypeUID,
"UINFO": dns.TypeUINFO,
"UNSPEC": dns.TypeUNSPEC,
"URI": dns.TypeURI,
"X25": dns.TypeX25,
"ZONEMD": dns.TypeZONEMD,
}
// ParseQTYPE function
func ParseQTYPE(s string) uint16 {
if s == "" {
return dns.TypeA
}
if v, err := strconv.ParseUint(s, 10, 16); err == nil {
return uint16(v)
}
if v, ok := qtype[strings.ToUpper(s)]; ok {
return v
}
return dns.TypeNone
}