1 package dns
2 3 // StringToType is the reverse of TypeToString, needed for string parsing.
4 var StringToType = reverseInt16(TypeToString)
5 6 // StringToClass is the reverse of ClassToString, needed for string parsing.
7 var StringToClass = reverseInt16(ClassToString)
8 9 // StringToOpcode is a map of opcodes to strings.
10 var StringToOpcode = reverseInt(OpcodeToString)
11 12 // StringToRcode is a map of rcodes to strings.
13 var StringToRcode = reverseInt(RcodeToString)
14 15 func init() {
16 // Preserve previous NOTIMP typo, see github.com/miekg/dns/issues/733.
17 StringToRcode["NOTIMPL"] = RcodeNotImplemented
18 }
19 20 // StringToAlgorithm is the reverse of AlgorithmToString.
21 var StringToAlgorithm = reverseInt8(AlgorithmToString)
22 23 // StringToHash is a map of names to hash IDs.
24 var StringToHash = reverseInt8(HashToString)
25 26 // StringToCertType is the reverse of CertTypeToString.
27 var StringToCertType = reverseInt16(CertTypeToString)
28 29 // StringToStatefulType is the reverse of StatefulTypeToString.
30 var StringToStatefulType = reverseInt16(StatefulTypeToString)
31 32 // Reverse a map
33 func reverseInt8(m map[uint8]string) map[string]uint8 {
34 n := make(map[string]uint8, len(m))
35 for u, s := range m {
36 n[s] = u
37 }
38 return n
39 }
40 41 func reverseInt16(m map[uint16]string) map[string]uint16 {
42 n := make(map[string]uint16, len(m))
43 for u, s := range m {
44 n[s] = u
45 }
46 return n
47 }
48 49 func reverseInt(m map[int]string) map[string]int {
50 n := make(map[string]int, len(m))
51 for u, s := range m {
52 n[s] = u
53 }
54 return n
55 }
56