aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2021-11-14 18:13:10 +0700
committerShulhan <ms@kilabit.info>2021-11-14 18:13:10 +0700
commitc2f3d1575ad29294ebadb9dd7ee6d7a06dc955ae (patch)
treede6ffe45db74c5d305ad71616bef63b07e0f08c6
parent3f02602db8cfe6fbb09d550ac723fc251eb81f1d (diff)
downloadpakakeh.go-c2f3d1575ad29294ebadb9dd7ee6d7a06dc955ae.tar.xz
lib/dns: refactoring, introduce new type RecordClass
Previously, the record class is represented by uint16 using prefix QueryClassXxx. This changes make the record class to be an independent type, to make code more strict (prevent passing invalid value), and readable.
-rw-r--r--lib/dns/answer.go6
-rw-r--r--lib/dns/answer_test.go18
-rw-r--r--lib/dns/answers.go10
-rw-r--r--lib/dns/answers_test.go30
-rw-r--r--lib/dns/caches.go8
-rw-r--r--lib/dns/caches_test.go26
-rw-r--r--lib/dns/client.go2
-rw-r--r--lib/dns/dns.go30
-rw-r--r--lib/dns/doh_client.go8
-rw-r--r--lib/dns/doh_client_test.go80
-rw-r--r--lib/dns/dot_client.go8
-rw-r--r--lib/dns/dot_client_test.go28
-rw-r--r--lib/dns/funcs.go2
-rw-r--r--lib/dns/hosts_file.go2
-rw-r--r--lib/dns/message.go12
-rw-r--r--lib/dns/message_test.go122
-rw-r--r--lib/dns/record_class.go37
-rw-r--r--lib/dns/resource_record.go6
-rw-r--r--lib/dns/section_question.go8
-rw-r--r--lib/dns/server.go2
-rw-r--r--lib/dns/server_example_test.go3
-rw-r--r--lib/dns/tcp_client.go8
-rw-r--r--lib/dns/tcp_client_example_test.go3
-rw-r--r--lib/dns/tcp_client_test.go28
-rw-r--r--lib/dns/udp_client.go4
-rw-r--r--lib/dns/udp_client_example_test.go4
-rw-r--r--lib/dns/udp_client_pool_test.go3
-rw-r--r--lib/dns/udp_client_test.go42
-rw-r--r--lib/dns/zone_file.go16
-rw-r--r--lib/dns/zone_file_test.go88
-rw-r--r--lib/dns/zone_parser.go4
-rw-r--r--lib/dns/zone_records_test.go14
32 files changed, 333 insertions, 329 deletions
diff --git a/lib/dns/answer.go b/lib/dns/answer.go
index d6f9965c..27e5ab94 100644
--- a/lib/dns/answer.go
+++ b/lib/dns/answer.go
@@ -25,8 +25,8 @@ type Answer struct {
QName string
// RType contains record type, a copy of msg.Question.Type.
RType RecordType
- // qclass contains DNS question class, a copy of msg.Question.Class.
- QClass uint16
+ // RClass contains record class, a copy of msg.Question.Class.
+ RClass RecordClass
// msg contains the unpacked DNS message.
msg *Message
@@ -44,7 +44,7 @@ func newAnswer(msg *Message, isLocal bool) (an *Answer) {
an = &Answer{
QName: msg.Question.Name,
RType: msg.Question.Type,
- QClass: msg.Question.Class,
+ RClass: msg.Question.Class,
msg: msg,
}
if isLocal {
diff --git a/lib/dns/answer_test.go b/lib/dns/answer_test.go
index 9d8d3110..6f95695c 100644
--- a/lib/dns/answer_test.go
+++ b/lib/dns/answer_test.go
@@ -27,7 +27,7 @@ func TestNewAnswer(t *testing.T) {
Answer: []ResourceRecord{{
Name: "test",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
rdlen: 4,
Value: "127.0.0.1",
@@ -41,7 +41,7 @@ func TestNewAnswer(t *testing.T) {
expMsg *Message
expQName string
expRType RecordType
- expQClass uint16
+ expRClass RecordClass
isLocal bool
}{{
desc: "With local message",
@@ -50,12 +50,12 @@ func TestNewAnswer(t *testing.T) {
exp: &Answer{
QName: "test",
RType: 1,
- QClass: 1,
+ RClass: 1,
msg: msg1,
},
expQName: "test",
expRType: 1,
- expQClass: 1,
+ expRClass: 1,
expMsg: msg1,
}, {
desc: "With non local message",
@@ -63,12 +63,12 @@ func TestNewAnswer(t *testing.T) {
exp: &Answer{
QName: "test",
RType: 1,
- QClass: 1,
+ RClass: 1,
msg: msg1,
},
expQName: "test",
expRType: 1,
- expQClass: 1,
+ expRClass: 1,
expMsg: msg1,
}}
@@ -92,7 +92,7 @@ func TestNewAnswer(t *testing.T) {
test.Assert(t, "newAnswer.QName", c.expQName, got.QName)
test.Assert(t, "newAnswer.RType", c.expRType, got.RType)
- test.Assert(t, "newAnswer.QClass", c.expQClass, got.QClass)
+ test.Assert(t, "newAnswer.RClass", c.expRClass, got.RClass)
test.Assert(t, "newAnswer.msg", c.expMsg, got.msg)
}
}
@@ -128,12 +128,12 @@ func TestAnswerGet(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
rdlen: 4,
Value: "127.0.0.1",
diff --git a/lib/dns/answers.go b/lib/dns/answers.go
index 77385304..64775c5d 100644
--- a/lib/dns/answers.go
+++ b/lib/dns/answers.go
@@ -30,12 +30,12 @@ func newAnswers(an *Answer) (ans *answers) {
// If found, it will return its element and index in slice; otherwise it will
// return nil on answer.
//
-func (ans *answers) get(rtype RecordType, qclass uint16) (an *Answer, x int) {
+func (ans *answers) get(rtype RecordType, rclass RecordClass) (an *Answer, x int) {
for x = 0; x < len(ans.v); x++ {
if ans.v[x].RType != rtype {
continue
}
- if ans.v[x].QClass != qclass {
+ if ans.v[x].RClass != rclass {
continue
}
@@ -48,8 +48,8 @@ func (ans *answers) get(rtype RecordType, qclass uint16) (an *Answer, x int) {
//
// remove the answer from list.
//
-func (ans *answers) remove(rtype RecordType, qclass uint16) {
- an, x := ans.get(rtype, qclass)
+func (ans *answers) remove(rtype RecordType, rclass RecordClass) {
+ an, x := ans.get(rtype, rclass)
if an != nil {
ans.v[x] = ans.v[len(ans.v)-1]
ans.v[len(ans.v)-1] = nil
@@ -66,7 +66,7 @@ func (ans *answers) upsert(nu *Answer) (an *Answer) {
if nu == nil || nu.msg == nil {
return
}
- an, _ = ans.get(nu.RType, nu.QClass)
+ an, _ = ans.get(nu.RType, nu.RClass)
if an != nil {
an.update(nu)
} else {
diff --git a/lib/dns/answers_test.go b/lib/dns/answers_test.go
index 41cc7300..b17a305f 100644
--- a/lib/dns/answers_test.go
+++ b/lib/dns/answers_test.go
@@ -55,7 +55,7 @@ func TestAnswersGet(t *testing.T) {
Answer: []ResourceRecord{{
Name: "test",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
}},
}
an := newAnswer(msg, true)
@@ -64,7 +64,7 @@ func TestAnswersGet(t *testing.T) {
cases := []struct {
desc string
RType RecordType
- QClass uint16
+ RClass RecordClass
exp *Answer
expIndex int
}{{
@@ -72,7 +72,7 @@ func TestAnswersGet(t *testing.T) {
expIndex: 1,
}, {
desc: "With query type not found",
- QClass: 1,
+ RClass: 1,
expIndex: 1,
}, {
desc: "With query class not found",
@@ -81,7 +81,7 @@ func TestAnswersGet(t *testing.T) {
}, {
desc: "With valid query type and class",
RType: 1,
- QClass: 1,
+ RClass: 1,
exp: an,
expIndex: 0,
}}
@@ -89,7 +89,7 @@ func TestAnswersGet(t *testing.T) {
for _, c := range cases {
t.Log(c.desc)
- got, x := ans.get(c.RType, c.QClass)
+ got, x := ans.get(c.RType, c.RClass)
test.Assert(t, "answers.get", c.exp, got)
test.Assert(t, "answers.get index", c.expIndex, x)
@@ -106,7 +106,7 @@ func TestAnswersRemove(t *testing.T) {
Answer: []ResourceRecord{{
Name: "test",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
}},
}
@@ -116,7 +116,7 @@ func TestAnswersRemove(t *testing.T) {
cases := []struct {
desc string
RType RecordType
- QClass uint16
+ RClass RecordClass
exp *answers
expLen int
}{{
@@ -125,7 +125,7 @@ func TestAnswersRemove(t *testing.T) {
expLen: 1,
}, {
desc: "With query type not found",
- QClass: 1,
+ RClass: 1,
exp: ans,
expLen: 1,
}, {
@@ -136,7 +136,7 @@ func TestAnswersRemove(t *testing.T) {
}, {
desc: "With valid query type and class",
RType: 1,
- QClass: 1,
+ RClass: 1,
exp: &answers{
v: make([]*Answer, 0, 1),
},
@@ -146,7 +146,7 @@ func TestAnswersRemove(t *testing.T) {
for _, c := range cases {
t.Log(c.desc)
- ans.remove(c.RType, c.QClass)
+ ans.remove(c.RType, c.RClass)
test.Assert(t, "len(answers.v)", c.expLen, len(ans.v))
test.Assert(t, "cap(answers.v)", 1, cap(ans.v))
@@ -157,7 +157,7 @@ func TestAnswersRemove(t *testing.T) {
func TestAnswersUpdate(t *testing.T) {
an1 := &Answer{
RType: 1,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 1,
@@ -166,17 +166,17 @@ func TestAnswersUpdate(t *testing.T) {
}
an2 := &Answer{
RType: 2,
- QClass: 1,
+ RClass: 1,
msg: &Message{},
}
an3 := &Answer{
RType: 1,
- QClass: 2,
+ RClass: 2,
msg: &Message{},
}
an4 := &Answer{
RType: 1,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 2,
@@ -219,7 +219,7 @@ func TestAnswersUpdate(t *testing.T) {
v: []*Answer{
{
RType: 1,
- QClass: 1,
+ RClass: 1,
msg: an4.msg,
},
an2,
diff --git a/lib/dns/caches.go b/lib/dns/caches.go
index 77371dfd..141177ee 100644
--- a/lib/dns/caches.go
+++ b/lib/dns/caches.go
@@ -98,14 +98,14 @@ func newCaches(pruneDelay, pruneThreshold time.Duration) (ca *caches) {
// If answer exist on cache, their accessed time will be updated to current
// time and moved to back of LRU to prevent being pruned later.
//
-func (c *caches) get(qname string, rtype RecordType, qclass uint16) (ans *answers, an *Answer) {
+func (c *caches) get(qname string, rtype RecordType, rclass RecordClass) (ans *answers, an *Answer) {
c.Lock()
var found bool
ans, found = c.v[qname]
if found {
- an, _ = ans.get(rtype, qclass)
+ an, _ = ans.get(rtype, rclass)
if an != nil {
// Move the answer to the back of LRU if its not
// local and update its accessed time.
@@ -155,7 +155,7 @@ func (c *caches) prune() (n int) {
_ = c.lru.Remove(e)
answers, found := c.v[an.QName]
if found {
- answers.remove(an.RType, an.QClass)
+ answers.remove(an.RType, an.RClass)
if len(answers.v) == 0 {
delete(c.v, an.QName)
}
@@ -259,7 +259,7 @@ func (c *caches) removeLocalRR(rr *ResourceRecord) (err error) {
if an.RType != rr.Type {
continue
}
- if an.QClass != rr.Class {
+ if an.RClass != rr.Class {
continue
}
err = an.msg.RemoveAnswer(rr)
diff --git a/lib/dns/caches_test.go b/lib/dns/caches_test.go
index 80c286dc..17781d93 100644
--- a/lib/dns/caches_test.go
+++ b/lib/dns/caches_test.go
@@ -46,7 +46,7 @@ func TestCachesGet(t *testing.T) {
ReceivedAt: 1,
QName: "test",
RType: 1,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 1,
@@ -57,7 +57,7 @@ func TestCachesGet(t *testing.T) {
ReceivedAt: 2,
QName: "test",
RType: 2,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 2,
@@ -68,7 +68,7 @@ func TestCachesGet(t *testing.T) {
ReceivedAt: 3,
QName: "test",
RType: 3,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 3,
@@ -86,7 +86,7 @@ func TestCachesGet(t *testing.T) {
desc string
QName string
RType RecordType
- QClass uint16
+ RClass RecordClass
exp *Answer
expList []*Answer
}{{
@@ -98,7 +98,7 @@ func TestCachesGet(t *testing.T) {
desc: "With query found",
QName: "test",
RType: 1,
- QClass: 1,
+ RClass: 1,
exp: an1,
expList: []*Answer{
an2, an3, an1,
@@ -108,7 +108,7 @@ func TestCachesGet(t *testing.T) {
for _, c := range cases {
t.Log(c.desc)
- _, got := ca.get(c.QName, c.RType, c.QClass)
+ _, got := ca.get(c.QName, c.RType, c.RClass)
gotList := ca.list()
test.Assert(t, "caches.get", c.exp, got)
@@ -124,7 +124,7 @@ func TestCachesPrune(t *testing.T) {
AccessedAt: 1,
QName: "test",
RType: 1,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 1,
@@ -136,7 +136,7 @@ func TestCachesPrune(t *testing.T) {
AccessedAt: 2,
QName: "test",
RType: 2,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 2,
@@ -148,7 +148,7 @@ func TestCachesPrune(t *testing.T) {
AccessedAt: at,
QName: "test",
RType: 3,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 3,
@@ -193,7 +193,7 @@ func TestCachesUpsert(t *testing.T) {
AccessedAt: 1,
QName: "test",
RType: 1,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 1,
@@ -205,7 +205,7 @@ func TestCachesUpsert(t *testing.T) {
AccessedAt: 3,
QName: "test",
RType: 1,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 3,
@@ -217,7 +217,7 @@ func TestCachesUpsert(t *testing.T) {
AccessedAt: 2,
QName: "test",
RType: 2,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 2,
@@ -229,7 +229,7 @@ func TestCachesUpsert(t *testing.T) {
AccessedAt: 4,
QName: "test",
RType: 2,
- QClass: 1,
+ RClass: 1,
msg: &Message{
Header: SectionHeader{
ID: 4,
diff --git a/lib/dns/client.go b/lib/dns/client.go
index 65b52bbb..d92081d0 100644
--- a/lib/dns/client.go
+++ b/lib/dns/client.go
@@ -13,7 +13,7 @@ import (
//
type Client interface {
Close() error
- Lookup(allowRecursion bool, rtype RecordType, qclass uint16, qname string) (*Message, error)
+ Lookup(allowRecursion bool, rtype RecordType, rclass RecordClass, qname string) (*Message, error)
Query(req *Message) (*Message, error)
RemoteAddr() string
SetRemoteAddr(addr string) error
diff --git a/lib/dns/dns.go b/lib/dns/dns.go
index 0faaacd7..8342933d 100644
--- a/lib/dns/dns.go
+++ b/lib/dns/dns.go
@@ -98,36 +98,6 @@ const (
OpCodeStatus // a server status request (STATUS)
)
-// List of code known DNS query class.
-const (
- QueryClassZERO uint16 = iota // Empty query class.
- QueryClassIN // The Internet
- QueryClassCS // The CSNET class (Obsolete - used only for examples in some obsolete RFCs)
- QueryClassCH // The CHAOS class
- QueryClassHS // Hesiod [Dyer 87]
- QueryClassANY uint16 = 255 // Any class
-)
-
-//
-// QueryClasses contains a mapping between string representation of DNS query
-// class with their decimal value.
-//
-var QueryClasses = map[string]uint16{
- "IN": QueryClassIN,
- "CH": QueryClassCH,
- "HS": QueryClassHS,
-}
-
-//
-// QueryClassName contains a mapping between the query class and its string
-// representation.
-//
-var QueryClassName = map[uint16]string{
- QueryClassIN: "IN",
- QueryClassCH: "CH",
- QueryClassHS: "HS",
-}
-
// ResponseCode define response code in message header.
type ResponseCode byte
diff --git a/lib/dns/doh_client.go b/lib/dns/doh_client.go
index 97271ec9..4f7420c3 100644
--- a/lib/dns/doh_client.go
+++ b/lib/dns/doh_client.go
@@ -95,7 +95,7 @@ func (cl *DoHClient) Close() error {
// synchronous mode.
//
func (cl *DoHClient) Lookup(
- allowRecursion bool, rtype RecordType, qclass uint16, qname string,
+ allowRecursion bool, rtype RecordType, rclass RecordClass, qname string,
) (
*Message, error,
) {
@@ -105,15 +105,15 @@ func (cl *DoHClient) Lookup(
if rtype == 0 {
rtype = RecordTypeA
}
- if qclass == 0 {
- qclass = QueryClassIN
+ if rclass == 0 {
+ rclass = RecordClassIN
}
msg := NewMessage()
msg.Header.IsRD = allowRecursion
msg.Question.Type = rtype
- msg.Question.Class = qclass
+ msg.Question.Class = rclass
msg.Question.Name = qname
_, err := msg.Pack()
diff --git a/lib/dns/doh_client_test.go b/lib/dns/doh_client_test.go
index 39fe7aee..b8a3e2ab 100644
--- a/lib/dns/doh_client_test.go
+++ b/lib/dns/doh_client_test.go
@@ -22,13 +22,13 @@ func TestDoHClient_Lookup(t *testing.T) {
desc string
allowRecursion bool
rtype RecordType
- qclass uint16
+ rclass RecordClass
qname string
exp *Message
}{{
- desc: "QType:A QClass:IN QName:kilabit.info",
+ desc: "QType:A RClass:IN QName:kilabit.info",
rtype: RecordTypeA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -40,12 +40,12 @@ func TestDoHClient_Lookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
rdlen: 4,
Value: "127.0.0.1",
@@ -54,9 +54,9 @@ func TestDoHClient_Lookup(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:SOA QClass:IN QName:kilabit.info",
+ desc: "QType:SOA RClass:IN QName:kilabit.info",
rtype: RecordTypeSOA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -68,12 +68,12 @@ func TestDoHClient_Lookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: &RDataSOA{
MName: "kilabit.info",
@@ -89,9 +89,9 @@ func TestDoHClient_Lookup(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:TXT QClass:IN QName:kilabit.info",
+ desc: "QType:TXT RClass:IN QName:kilabit.info",
rtype: RecordTypeTXT,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -103,12 +103,12 @@ func TestDoHClient_Lookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "This is a test server",
}},
@@ -116,9 +116,9 @@ func TestDoHClient_Lookup(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:AAAA QClass:IN QName:kilabit.info",
+ desc: "QType:AAAA RClass:IN QName:kilabit.info",
rtype: RecordTypeAAAA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -130,7 +130,7 @@ func TestDoHClient_Lookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeAAAA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{},
Authority: []ResourceRecord{},
@@ -141,7 +141,7 @@ func TestDoHClient_Lookup(t *testing.T) {
for _, c := range cases {
t.Log(c.desc)
- got, err := cl.Lookup(c.allowRecursion, c.rtype, c.qclass, c.qname)
+ got, err := cl.Lookup(c.allowRecursion, c.rtype, c.rclass, c.qname)
if err != nil {
t.Fatal(err)
}
@@ -167,13 +167,13 @@ func TestDoHClient_Post(t *testing.T) {
desc string
allowRecursion bool
rtype RecordType
- qclass uint16
+ rclass RecordClass
qname string
exp *Message
}{{
- desc: "QType:A QClass:IN QName:kilabit.info",
+ desc: "QType:A RClass:IN QName:kilabit.info",
rtype: RecordTypeA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -185,12 +185,12 @@ func TestDoHClient_Post(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
rdlen: 4,
Value: "127.0.0.1",
@@ -199,9 +199,9 @@ func TestDoHClient_Post(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:SOA QClass:IN QName:kilabit.info",
+ desc: "QType:SOA RClass:IN QName:kilabit.info",
rtype: RecordTypeSOA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -213,12 +213,12 @@ func TestDoHClient_Post(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: &RDataSOA{
MName: "kilabit.info",
@@ -234,9 +234,9 @@ func TestDoHClient_Post(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:TXT QClass:IN QName:kilabit.info",
+ desc: "QType:TXT RClass:IN QName:kilabit.info",
rtype: RecordTypeTXT,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -248,12 +248,12 @@ func TestDoHClient_Post(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "This is a test server",
}},
@@ -261,9 +261,9 @@ func TestDoHClient_Post(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:AAAA QClass:IN QName:kilabit.info",
+ desc: "QType:AAAA RClass:IN QName:kilabit.info",
rtype: RecordTypeAAAA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -275,7 +275,7 @@ func TestDoHClient_Post(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeAAAA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{},
Authority: []ResourceRecord{},
@@ -290,7 +290,7 @@ func TestDoHClient_Post(t *testing.T) {
msg.Header.IsRD = c.allowRecursion
msg.Question.Type = c.rtype
- msg.Question.Class = c.qclass
+ msg.Question.Class = c.rclass
msg.Question.Name = c.qname
_, err := msg.Pack()
@@ -323,20 +323,20 @@ func TestDoHClient_Get(t *testing.T) {
cases := []struct {
desc string
rtype RecordType
- qclass uint16
+ rclass RecordClass
qname string
exp *Message
expErr string
}{{
- desc: "QType:A QClass:IN QName:kilabit.info",
+ desc: "QType:A RClass:IN QName:kilabit.info",
rtype: RecordTypeA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
expErr: "404 page not found\n",
}, {
- desc: "QType:A QClass:IN QName:kilabit.info",
+ desc: "QType:A RClass:IN QName:kilabit.info",
rtype: RecordTypeA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
expErr: "404 page not found\n",
}}
@@ -347,7 +347,7 @@ func TestDoHClient_Get(t *testing.T) {
msg := NewMessage()
msg.Question.Type = c.rtype
- msg.Question.Class = c.qclass
+ msg.Question.Class = c.rclass
msg.Question.Name = c.qname
_, err := msg.Pack()
diff --git a/lib/dns/dot_client.go b/lib/dns/dot_client.go
index 1d6a07bd..77fbb5d7 100644
--- a/lib/dns/dot_client.go
+++ b/lib/dns/dot_client.go
@@ -66,7 +66,7 @@ func (cl *DoTClient) Close() error {
// Lookup specific type, class, and name in synchronous mode.
//
func (cl *DoTClient) Lookup(
- allowRecursion bool, rtype RecordType, qclass uint16, qname string,
+ allowRecursion bool, rtype RecordType, rclass RecordClass, qname string,
) (
res *Message, err error,
) {
@@ -76,8 +76,8 @@ func (cl *DoTClient) Lookup(
if rtype == 0 {
rtype = RecordTypeA
}
- if qclass == 0 {
- qclass = QueryClassIN
+ if rclass == 0 {
+ rclass = RecordClassIN
}
msg := NewMessage()
@@ -86,7 +86,7 @@ func (cl *DoTClient) Lookup(
msg.Header.IsRD = allowRecursion
msg.Header.QDCount = 1
msg.Question.Type = rtype
- msg.Question.Class = qclass
+ msg.Question.Class = rclass
msg.Question.Name = qname
_, _ = msg.Pack()
diff --git a/lib/dns/dot_client_test.go b/lib/dns/dot_client_test.go
index e9075202..25701993 100644
--- a/lib/dns/dot_client_test.go
+++ b/lib/dns/dot_client_test.go
@@ -20,13 +20,13 @@ func TestDoTClient_Lookup(t *testing.T) {
desc string
allowRecursion bool
rtype RecordType
- qclass uint16
+ rclass RecordClass
qname string
exp *Message
}{{
- desc: "QType:A QClass:IN QName:kilabit.info",
+ desc: "QType:A RClass:IN QName:kilabit.info",
rtype: RecordTypeA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -38,12 +38,12 @@ func TestDoTClient_Lookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
rdlen: 4,
Value: "127.0.0.1",
@@ -52,9 +52,9 @@ func TestDoTClient_Lookup(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:SOA QClass:IN QName:kilabit.info",
+ desc: "QType:SOA RClass:IN QName:kilabit.info",
rtype: RecordTypeSOA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -66,12 +66,12 @@ func TestDoTClient_Lookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: &RDataSOA{
MName: "kilabit.info",
@@ -87,9 +87,9 @@ func TestDoTClient_Lookup(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:TXT QClass:IN QName:kilabit.info",
+ desc: "QType:TXT RClass:IN QName:kilabit.info",
rtype: RecordTypeTXT,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -101,12 +101,12 @@ func TestDoTClient_Lookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "This is a test server",
}},
@@ -118,7 +118,7 @@ func TestDoTClient_Lookup(t *testing.T) {
for _, c := range cases {
t.Log(c.desc)
- got, err := cl.Lookup(c.allowRecursion, c.rtype, c.qclass, c.qname)
+ got, err := cl.Lookup(c.allowRecursion, c.rtype, c.rclass, c.qname)
if err != nil {
t.Fatal(err)
}
diff --git a/lib/dns/funcs.go b/lib/dns/funcs.go
index 587c4196..b2c79710 100644
--- a/lib/dns/funcs.go
+++ b/lib/dns/funcs.go
@@ -70,7 +70,7 @@ func LookupPTR(client Client, ip net.IP) (answer string, err error) {
revIP = append(revIP, []byte(".ip6.arpa")...)
}
- msg, err := client.Lookup(true, RecordTypePTR, QueryClassIN, string(revIP))
+ msg, err := client.Lookup(true, RecordTypePTR, RecordClassIN, string(revIP))
if err != nil {
return "", err
}
diff --git a/lib/dns/hosts_file.go b/lib/dns/hosts_file.go
index aeab543e..5ed17df9 100644
--- a/lib/dns/hosts_file.go
+++ b/lib/dns/hosts_file.go
@@ -194,7 +194,7 @@ func parse(reader *libio.Reader) (listRR []*ResourceRecord) {
rr := &ResourceRecord{
Name: string(bytes.ToLower(hname)),
Type: rtype,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: defaultTTL,
Value: string(addr),
}
diff --git a/lib/dns/message.go b/lib/dns/message.go
index d1578b1f..8164f36b 100644
--- a/lib/dns/message.go
+++ b/lib/dns/message.go
@@ -81,7 +81,7 @@ func NewMessage() *Message {
},
Question: SectionQuestion{
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
dnameOff: make(map[string]uint16),
}
@@ -114,7 +114,7 @@ func NewMessageAddress(hname []byte, addresses [][]byte) (msg *Message) {
rr := ResourceRecord{
Name: string(hname),
Type: rtype,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: defaultTTL,
Value: string(addr),
}
@@ -128,7 +128,7 @@ func NewMessageAddress(hname []byte, addresses [][]byte) (msg *Message) {
Question: SectionQuestion{
Name: string(hname),
Type: rtype,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{rr},
}
@@ -144,7 +144,7 @@ func NewMessageAddress(hname []byte, addresses [][]byte) (msg *Message) {
msg.Answer = append(msg.Answer, ResourceRecord{
Name: string(hname),
Type: rtype,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: defaultTTL,
Value: string(addr),
})
@@ -333,7 +333,7 @@ func (msg *Message) packDomainName(dname []byte, doCompress bool) (n int) {
func (msg *Message) packQuestion() {
msg.packDomainName([]byte(msg.Question.Name), false)
msg.packet = libbytes.AppendUint16(msg.packet, uint16(msg.Question.Type))
- msg.packet = libbytes.AppendUint16(msg.packet, msg.Question.Class)
+ msg.packet = libbytes.AppendUint16(msg.packet, uint16(msg.Question.Class))
msg.off += 4
}
@@ -351,7 +351,7 @@ func (msg *Message) packRR(rr *ResourceRecord) {
}
msg.packet = libbytes.AppendUint16(msg.packet, uint16(rr.Type))
- msg.packet = libbytes.AppendUint16(msg.packet, rr.Class)
+ msg.packet = libbytes.AppendUint16(msg.packet, uint16(rr.Class))
msg.off += 4
if rr.Type == RecordTypeOPT {
diff --git a/lib/dns/message_test.go b/lib/dns/message_test.go
index c33e4b64..43647309 100644
--- a/lib/dns/message_test.go
+++ b/lib/dns/message_test.go
@@ -86,7 +86,7 @@ func TestMessagePackQuestion(t *testing.T) {
msg: &Message{
Question: SectionQuestion{
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
dnameOff: make(map[string]uint16),
},
@@ -99,7 +99,7 @@ func TestMessagePackQuestion(t *testing.T) {
Question: SectionQuestion{
Name: "kilaBit",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
dnameOff: make(map[string]uint16),
},
@@ -113,7 +113,7 @@ func TestMessagePackQuestion(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
dnameOff: make(map[string]uint16),
},
@@ -129,7 +129,7 @@ func TestMessagePackQuestion(t *testing.T) {
Question: SectionQuestion{
Name: "MAIL.KILABIT.INFO",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
dnameOff: make(map[string]uint16),
},
@@ -167,7 +167,7 @@ func TestMessagePack(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.INFO",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
dnameOff: make(map[string]uint16),
},
@@ -200,12 +200,12 @@ func TestMessagePack(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "KILABIT.INFO",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x00000168,
Value: "103.200.4.162",
}},
@@ -289,24 +289,24 @@ func TestMessagePack(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x01336e,
Value: "ns2.dewaweb.com",
}, {
Name: "kilabit.INFO",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x01336e,
Value: "NS3.DEWAWEB.COM",
}, {
Name: "kilabit.info",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x01336e,
Value: "ns1.dewaweb.com",
}},
@@ -355,12 +355,12 @@ func TestMessagePack(t *testing.T) {
Question: SectionQuestion{
Name: "mail.kilabit.info",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "mail.kilabit.info",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x0168,
Value: "kilabit.info",
}},
@@ -399,12 +399,12 @@ func TestMessagePack(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 10511,
Value: &RDataSOA{
MName: "ns1.dewaweb.com",
@@ -486,12 +486,12 @@ func TestMessagePack(t *testing.T) {
Question: SectionQuestion{
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x000000fc,
Value: &RDataMX{
Preference: 0x28,
@@ -500,7 +500,7 @@ func TestMessagePack(t *testing.T) {
}, {
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x000000fc,
Value: &RDataMX{
Preference: 0x0a,
@@ -509,7 +509,7 @@ func TestMessagePack(t *testing.T) {
}, {
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x000000fc,
Value: &RDataMX{
Preference: 0x14,
@@ -518,7 +518,7 @@ func TestMessagePack(t *testing.T) {
}, {
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x000000fc,
Value: &RDataMX{
Preference: 0x1e,
@@ -527,7 +527,7 @@ func TestMessagePack(t *testing.T) {
}, {
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x000000fc,
Value: &RDataMX{
Preference: 0x32,
@@ -584,24 +584,24 @@ func TestMessagePack(t *testing.T) {
Question: SectionQuestion{
Name: "google.com",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "google.com",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 300,
Value: "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95",
}, {
Name: "google.com",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 300,
Value: "v=spf1 include:_spf.google.com ~all",
}, {
Name: "google.com",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 300,
Value: "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e",
}},
@@ -645,13 +645,13 @@ func TestMessagePack(t *testing.T) {
Question: SectionQuestion{
Name: "google.com",
Type: RecordTypeAAAA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "google.com",
Type: RecordTypeAAAA,
TTL: 0x53,
- Class: QueryClassIN,
+ Class: RecordClassIN,
Value: "2404:6800:4003:c00::8b",
}},
Additional: []ResourceRecord{{
@@ -743,12 +743,12 @@ func TestMessagePack(t *testing.T) {
Question: SectionQuestion{
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x231,
Value: &RDataSRV{
Service: "_xmpp-server",
@@ -762,7 +762,7 @@ func TestMessagePack(t *testing.T) {
}, {
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x231,
Value: &RDataSRV{
Service: "_xmpp-server",
@@ -776,7 +776,7 @@ func TestMessagePack(t *testing.T) {
}, {
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x231,
Value: &RDataSRV{
Service: "_xmpp-server",
@@ -790,7 +790,7 @@ func TestMessagePack(t *testing.T) {
}, {
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x231,
Value: &RDataSRV{
Service: "_xmpp-server",
@@ -804,7 +804,7 @@ func TestMessagePack(t *testing.T) {
}, {
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x231,
Value: &RDataSRV{
Service: "_xmpp-server",
@@ -1072,12 +1072,12 @@ func TestMessageUnpack(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x00000168,
rdlen: 4,
rdata: []byte{0x67, 0xc8, 0x04, 0xa2},
@@ -1145,12 +1145,12 @@ func TestMessageUnpack(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x01336e,
rdlen: 0x11,
rdata: []byte{
@@ -1160,7 +1160,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "kilabit.info",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x01336e,
rdlen: 6,
rdata: []byte{
@@ -1170,7 +1170,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "kilabit.info",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x01336e,
rdlen: 6,
rdata: []byte{
@@ -1223,12 +1223,12 @@ func TestMessageUnpack(t *testing.T) {
Question: SectionQuestion{
Name: "mail.kilabit.info",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "mail.kilabit.info",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x0168,
rdlen: 2,
rdata: []byte{0xc0, 0x11},
@@ -1281,12 +1281,12 @@ func TestMessageUnpack(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 10511,
rdlen: 56,
rdata: []byte{
@@ -1378,12 +1378,12 @@ func TestMessageUnpack(t *testing.T) {
Question: SectionQuestion{
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x000000fc,
rdlen: 0x11,
rdata: []byte{
@@ -1400,7 +1400,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x000000fc,
rdlen: 0x04,
rdata: []byte{
@@ -1414,7 +1414,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x000000fc,
rdlen: 0x09,
rdata: []byte{
@@ -1429,7 +1429,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x000000fc,
rdlen: 0x09,
rdata: []byte{
@@ -1444,7 +1444,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "google.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x000000fc,
rdlen: 0x09,
rdata: []byte{
@@ -1525,12 +1525,12 @@ func TestMessageUnpack(t *testing.T) {
Question: SectionQuestion{
Name: "google.com",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "google.com",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 300,
rdlen: 60,
rdata: []byte{
@@ -1547,7 +1547,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "google.com",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 300,
rdlen: 36,
rdata: []byte{
@@ -1561,7 +1561,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "google.com",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 300,
rdlen: 46,
rdata: []byte{
@@ -1615,12 +1615,12 @@ func TestMessageUnpack(t *testing.T) {
Question: SectionQuestion{
Name: "google.com",
Type: RecordTypeAAAA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "google.com",
Type: RecordTypeAAAA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x53,
rdlen: 16,
rdata: []byte{
@@ -1719,12 +1719,12 @@ func TestMessageUnpack(t *testing.T) {
Question: SectionQuestion{
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x231,
rdlen: 0x20,
rdata: []byte{
@@ -1746,7 +1746,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x231,
rdlen: 0x25,
rdata: []byte{
@@ -1769,7 +1769,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x231,
rdlen: 0x25,
rdata: []byte{
@@ -1792,7 +1792,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x231,
rdlen: 0x25,
rdata: []byte{
@@ -1815,7 +1815,7 @@ func TestMessageUnpack(t *testing.T) {
}, {
Name: "_xmpp-server._tcp.google.com",
Type: RecordTypeSRV,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 0x231,
rdlen: 0x25,
rdata: []byte{
diff --git a/lib/dns/record_class.go b/lib/dns/record_class.go
new file mode 100644
index 00000000..65f14207
--- /dev/null
+++ b/lib/dns/record_class.go
@@ -0,0 +1,37 @@
+// Copyright 2021, Shulhan <ms@kilabit.info>. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package dns
+
+type RecordClass uint16
+
+// List of known record class, ordered by value.
+const (
+ RecordClassZERO RecordClass = iota // Empty query class.
+ RecordClassIN // The Internet
+ RecordClassCH // The CHAOS class
+ RecordClassHS // Hesiod [Dyer 87]
+
+ RecordClassANY RecordClass = 255 // Any class
+)
+
+//
+// RecordClasses contains a mapping between string representation of record
+// class to their numeric value, ordered by key alphabetically.
+//
+var RecordClasses = map[string]RecordClass{
+ "CH": RecordClassCH,
+ "HS": RecordClassHS,
+ "IN": RecordClassIN,
+}
+
+//
+// RecordClassName contains a mapping between the record class value and its
+// string representation, ordered by key alphabetically.
+//
+var RecordClassName = map[RecordClass]string{
+ RecordClassCH: "CH",
+ RecordClassHS: "HS",
+ RecordClassIN: "IN",
+}
diff --git a/lib/dns/resource_record.go b/lib/dns/resource_record.go
index bd9f22d1..eb126b93 100644
--- a/lib/dns/resource_record.go
+++ b/lib/dns/resource_record.go
@@ -30,7 +30,7 @@ type ResourceRecord struct {
Type RecordType
// Two octets which specify the class of the data in the RDATA field.
- Class uint16
+ Class RecordClass
// A 32 bit unsigned integer that specifies the time interval (in
// seconds) that the resource record may be cached before it should be
@@ -78,7 +78,7 @@ func (rr *ResourceRecord) initAndValidate() (err error) {
return fmt.Errorf("%s: empty Name", logp)
}
if rr.Class == 0 {
- rr.Class = QueryClassIN
+ rr.Class = RecordClassIN
}
if rr.TTL == 0 {
rr.TTL = defaultTTL
@@ -214,7 +214,7 @@ func (rr *ResourceRecord) unpack(packet []byte, startIdx uint) (x uint, err erro
rr.Type = RecordType(libbytes.ReadUint16(packet, x))
x += 2
- rr.Class = libbytes.ReadUint16(packet, x)
+ rr.Class = RecordClass(libbytes.ReadUint16(packet, x))
x += 2
rr.idxTTL = x
rr.TTL = libbytes.ReadUint32(packet, x)
diff --git a/lib/dns/section_question.go b/lib/dns/section_question.go
index b03ad47b..c4a2cd71 100644
--- a/lib/dns/section_question.go
+++ b/lib/dns/section_question.go
@@ -32,7 +32,7 @@ type SectionQuestion struct {
// A two octet code that specifies the class of the query. For
// example, the QCLASS field is IN for the Internet.
- Class uint16
+ Class RecordClass
}
//
@@ -41,13 +41,13 @@ type SectionQuestion struct {
func (question *SectionQuestion) Reset() {
question.Name = question.Name[:0]
question.Type = RecordTypeA
- question.Class = QueryClassIN
+ question.Class = RecordClassIN
}
//
// size return the section question size, length of name + 2 (1 octet for
// beginning size plus 1 octet for end of label) + 2 octets of
-// rtype + 2 octets of qclass
+// rtype + 2 octets of rclass
//
func (question *SectionQuestion) size() int {
return len(question.Name) + 6
@@ -111,7 +111,7 @@ func (question *SectionQuestion) unpack(packet []byte) (err error) {
question.Name = sb.String()
question.Type = RecordType(libbytes.ReadUint16(packet, uint(x)))
x += 2
- question.Class = libbytes.ReadUint16(packet, uint(x))
+ question.Class = RecordClass(libbytes.ReadUint16(packet, uint(x)))
return nil
}
diff --git a/lib/dns/server.go b/lib/dns/server.go
index 8f11471a..889be7c6 100644
--- a/lib/dns/server.go
+++ b/lib/dns/server.go
@@ -643,7 +643,7 @@ func (srv *Server) serveTCPClient(cl *TCPClient, kind connType) {
func (srv *Server) isImplemented(msg *Message) bool {
switch msg.Question.Class {
- case QueryClassCS, QueryClassCH, QueryClassHS:
+ case RecordClassCH, RecordClassHS:
log.Printf("dns: class %d is not implemented", msg.Question.Class)
return false
}
diff --git a/lib/dns/server_example_test.go b/lib/dns/server_example_test.go
index e58977e9..b0efedfc 100644
--- a/lib/dns/server_example_test.go
+++ b/lib/dns/server_example_test.go
@@ -15,8 +15,7 @@ func clientLookup(nameserver string) {
return
}
- msg, err := cl.Lookup(false, dns.RecordTypeA, dns.QueryClassIN,
- "kilabit.info")
+ msg, err := cl.Lookup(false, dns.RecordTypeA, dns.RecordClassIN, "kilabit.info")
if err != nil {
log.Println(err)
return
diff --git a/lib/dns/tcp_client.go b/lib/dns/tcp_client.go
index a5ab454b..efad673a 100644
--- a/lib/dns/tcp_client.go
+++ b/lib/dns/tcp_client.go
@@ -87,7 +87,7 @@ func (cl *TCPClient) Connect(raddr *net.TCPAddr) (err error) {
// This function is safe to be used concurrently.
//
func (cl *TCPClient) Lookup(
- allowRecursion bool, rtype RecordType, qclass uint16, qname string,
+ allowRecursion bool, rtype RecordType, rclass RecordClass, qname string,
) (
*Message, error,
) {
@@ -97,8 +97,8 @@ func (cl *TCPClient) Lookup(
if rtype == 0 {
rtype = RecordTypeA
}
- if qclass == 0 {
- qclass = QueryClassIN
+ if rclass == 0 {
+ rclass = RecordClassIN
}
msg := NewMessage()
@@ -107,7 +107,7 @@ func (cl *TCPClient) Lookup(
msg.Header.IsRD = allowRecursion
msg.Header.QDCount = 1
msg.Question.Type = rtype
- msg.Question.Class = qclass
+ msg.Question.Class = rclass
msg.Question.Name = qname
_, _ = msg.Pack()
diff --git a/lib/dns/tcp_client_example_test.go b/lib/dns/tcp_client_example_test.go
index 19fec7c8..30b47c55 100644
--- a/lib/dns/tcp_client_example_test.go
+++ b/lib/dns/tcp_client_example_test.go
@@ -14,8 +14,7 @@ func ExampleTCPClient_Lookup() {
return
}
- msg, err := cl.Lookup(false, dns.RecordTypeA, dns.QueryClassIN,
- "kilabit.info")
+ msg, err := cl.Lookup(false, dns.RecordTypeA, dns.RecordClassIN, "kilabit.info")
if err != nil {
log.Println(err)
return
diff --git a/lib/dns/tcp_client_test.go b/lib/dns/tcp_client_test.go
index ba4b9d14..6ab3d5f3 100644
--- a/lib/dns/tcp_client_test.go
+++ b/lib/dns/tcp_client_test.go
@@ -20,13 +20,13 @@ func TestTCPClientLookup(t *testing.T) {
desc string
allowRecursion bool
rtype RecordType
- qclass uint16
+ rclass RecordClass
qname string
exp *Message
}{{
- desc: "RType:A QClass:IN QName:kilabit.info",
+ desc: "RType:A RClass:IN QName:kilabit.info",
rtype: RecordTypeA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -38,12 +38,12 @@ func TestTCPClientLookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
rdlen: 4,
Value: "127.0.0.1",
@@ -52,9 +52,9 @@ func TestTCPClientLookup(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "RType:SOA QClass:IN QName:kilabit.info",
+ desc: "RType:SOA RClass:IN QName:kilabit.info",
rtype: RecordTypeSOA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -66,12 +66,12 @@ func TestTCPClientLookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: &RDataSOA{
MName: "kilabit.info",
@@ -87,9 +87,9 @@ func TestTCPClientLookup(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "RType:TXT QClass:IN QName:kilabit.info",
+ desc: "RType:TXT RClass:IN QName:kilabit.info",
rtype: RecordTypeTXT,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -101,12 +101,12 @@ func TestTCPClientLookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "This is a test server",
}},
@@ -118,7 +118,7 @@ func TestTCPClientLookup(t *testing.T) {
for _, c := range cases {
t.Log(c.desc)
- got, err := cl.Lookup(c.allowRecursion, c.rtype, c.qclass, c.qname)
+ got, err := cl.Lookup(c.allowRecursion, c.rtype, c.rclass, c.qname)
if err != nil {
t.Fatal(err)
}
diff --git a/lib/dns/udp_client.go b/lib/dns/udp_client.go
index ef375db4..a087a8ac 100644
--- a/lib/dns/udp_client.go
+++ b/lib/dns/udp_client.go
@@ -85,7 +85,7 @@ func (cl *UDPClient) Close() error {
// This function is safe to be used concurrently.
//
func (cl *UDPClient) Lookup(
- allowRecursion bool, rtype RecordType, qclass uint16, qname string,
+ allowRecursion bool, rtype RecordType, rclass RecordClass, qname string,
) (
*Message, error,
) {
@@ -99,7 +99,7 @@ func (cl *UDPClient) Lookup(
msg.Header.IsRD = allowRecursion
msg.Header.QDCount = 1
msg.Question.Type = rtype
- msg.Question.Class = qclass
+ msg.Question.Class = rclass
msg.Question.Name = qname
_, _ = msg.Pack()
diff --git a/lib/dns/udp_client_example_test.go b/lib/dns/udp_client_example_test.go
index 5c8b1641..8fc2354b 100644
--- a/lib/dns/udp_client_example_test.go
+++ b/lib/dns/udp_client_example_test.go
@@ -23,7 +23,7 @@ func ExampleUDPClient() {
Question: dns.SectionQuestion{
Name: "kilabit.info",
Type: dns.RecordTypeA,
- Class: dns.QueryClassIN,
+ Class: dns.RecordClassIN,
},
}
@@ -58,7 +58,7 @@ func ExampleUDPClient_Lookup() {
return
}
- msg, err := cl.Lookup(false, dns.RecordTypeA, dns.QueryClassIN,
+ msg, err := cl.Lookup(false, dns.RecordTypeA, dns.RecordClassIN,
"kilabit.info")
if err != nil {
log.Println(err)
diff --git a/lib/dns/udp_client_pool_test.go b/lib/dns/udp_client_pool_test.go
index 2a248b47..1218707b 100644
--- a/lib/dns/udp_client_pool_test.go
+++ b/lib/dns/udp_client_pool_test.go
@@ -48,8 +48,7 @@ func TestNewUDPClientPool(t *testing.T) {
wg.Add(1)
go func() {
cl := ucp.Get()
- _, err := cl.Lookup(false, RecordTypeA,
- QueryClassIN, qname)
+ _, err := cl.Lookup(false, RecordTypeA, RecordClassIN, qname)
if err != nil {
t.Log("Lookup error: ", err.Error())
}
diff --git a/lib/dns/udp_client_test.go b/lib/dns/udp_client_test.go
index fd028372..4f81c1de 100644
--- a/lib/dns/udp_client_test.go
+++ b/lib/dns/udp_client_test.go
@@ -20,13 +20,13 @@ func TestUDPClientLookup(t *testing.T) {
desc string
allowRecursion bool
rtype RecordType
- qclass uint16
+ rclass RecordClass
qname string
exp *Message
}{{
- desc: "QType:A QClass:IN QName:kilabit.info",
+ desc: "QType:A RClass:IN QName:kilabit.info",
rtype: RecordTypeA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -38,12 +38,12 @@ func TestUDPClientLookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
rdlen: 4,
Value: "127.0.0.1",
@@ -52,9 +52,9 @@ func TestUDPClientLookup(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:SOA QClass:IN QName:kilabit.info",
+ desc: "QType:SOA RClass:IN QName:kilabit.info",
rtype: RecordTypeSOA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -66,12 +66,12 @@ func TestUDPClientLookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: &RDataSOA{
MName: "kilabit.info",
@@ -87,9 +87,9 @@ func TestUDPClientLookup(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:TXT QClass:IN QName:kilabit.info",
+ desc: "QType:TXT RClass:IN QName:kilabit.info",
rtype: RecordTypeTXT,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -101,12 +101,12 @@ func TestUDPClientLookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.info",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "This is a test server",
}},
@@ -114,9 +114,9 @@ func TestUDPClientLookup(t *testing.T) {
Additional: []ResourceRecord{},
},
}, {
- desc: "QType:AAAA QClass:IN QName:kilabit.info",
+ desc: "QType:AAAA RClass:IN QName:kilabit.info",
rtype: RecordTypeAAAA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
exp: &Message{
Header: SectionHeader{
@@ -128,30 +128,30 @@ func TestUDPClientLookup(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.info",
Type: RecordTypeAAAA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{},
Authority: []ResourceRecord{},
Additional: []ResourceRecord{},
},
}, {
- desc: "IsRD:true QType:AAAA QClass:IN QName:kilabit.info",
+ desc: "IsRD:true QType:AAAA RClass:IN QName:kilabit.info",
allowRecursion: true,
rtype: RecordTypeAAAA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "kilabit.info",
}, {
- desc: "IsRD:true QType:A QClass:IN QName:random",
+ desc: "IsRD:true QType:A RClass:IN QName:random",
allowRecursion: true,
rtype: RecordTypeA,
- qclass: QueryClassIN,
+ rclass: RecordClassIN,
qname: "random",
}}
for _, c := range cases {
t.Log(c.desc)
- got, err := cl.Lookup(c.allowRecursion, c.rtype, c.qclass, c.qname)
+ got, err := cl.Lookup(c.allowRecursion, c.rtype, c.rclass, c.qname)
if err != nil {
t.Fatal(err)
}
diff --git a/lib/dns/zone_file.go b/lib/dns/zone_file.go
index 9c21e7cf..55adf329 100644
--- a/lib/dns/zone_file.go
+++ b/lib/dns/zone_file.go
@@ -283,12 +283,12 @@ func (zone *ZoneFile) saveListRR(
switch rr.Type {
case RecordTypeA, RecordTypeNULL, RecordTypeAAAA:
_, err = fmt.Fprintf(out, "%s %d %s %s %s\n",
- dname, rr.TTL, QueryClassName[rr.Class],
+ dname, rr.TTL, RecordClassName[rr.Class],
RecordTypeNames[rr.Type], rr.Value.(string))
case RecordTypeTXT:
_, err = fmt.Fprintf(out, "%s %d %s %s %q\n",
- dname, rr.TTL, QueryClassName[rr.Class],
+ dname, rr.TTL, RecordClassName[rr.Class],
RecordTypeNames[rr.Type], rr.Value.(string))
case RecordTypeNS, RecordTypeCNAME, RecordTypeMB,
@@ -305,7 +305,7 @@ func (zone *ZoneFile) saveListRR(
v += "."
}
_, err = fmt.Fprintf(out, "%s %d %s %s %s\n",
- dname, rr.TTL, QueryClassName[rr.Class],
+ dname, rr.TTL, RecordClassName[rr.Class],
RecordTypeNames[rr.Type], v)
case RecordTypePTR:
@@ -331,7 +331,7 @@ func (zone *ZoneFile) saveListRR(
}
_, err = fmt.Fprintf(out,
"%s %d %s WKS %s %d %s\n",
- dname, rr.TTL, QueryClassName[rr.Class],
+ dname, rr.TTL, RecordClassName[rr.Class],
wks.Address, wks.Protocol, wks.BitMap)
case RecordTypeHINFO:
@@ -342,7 +342,7 @@ func (zone *ZoneFile) saveListRR(
}
_, err = fmt.Fprintf(out,
"%s %d %s HINFO %s %s\n",
- dname, rr.TTL, QueryClassName[rr.Class],
+ dname, rr.TTL, RecordClassName[rr.Class],
hinfo.CPU, hinfo.OS)
case RecordTypeMINFO:
@@ -353,7 +353,7 @@ func (zone *ZoneFile) saveListRR(
}
_, err = fmt.Fprintf(out,
"%s %d %s MINFO %s %s\n",
- dname, rr.TTL, QueryClassName[rr.Class],
+ dname, rr.TTL, RecordClassName[rr.Class],
minfo.RMailBox, minfo.EmailBox)
case RecordTypeMX:
@@ -364,7 +364,7 @@ func (zone *ZoneFile) saveListRR(
}
_, err = fmt.Fprintf(out,
"%s %d %s MX %d %s.\n",
- dname, rr.TTL, QueryClassName[rr.Class],
+ dname, rr.TTL, RecordClassName[rr.Class],
mx.Preference, mx.Exchange)
case RecordTypeSRV:
@@ -375,7 +375,7 @@ func (zone *ZoneFile) saveListRR(
}
_, err = fmt.Fprintf(out,
"%s %d %s SRV %d %d %d %s.\n",
- dname, rr.TTL, QueryClassName[rr.Class],
+ dname, rr.TTL, RecordClassName[rr.Class],
srv.Priority, srv.Weight,
srv.Port, srv.Target)
}
diff --git a/lib/dns/zone_file_test.go b/lib/dns/zone_file_test.go
index db46a04f..66381e50 100644
--- a/lib/dns/zone_file_test.go
+++ b/lib/dns/zone_file_test.go
@@ -172,12 +172,12 @@ VAXA A 10.2.0.27
Question: SectionQuestion{
Name: "isi.edu",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "isi.edu",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: &RDataSOA{
MName: "venera.isi.edu",
@@ -198,24 +198,24 @@ VAXA A 10.2.0.27
Question: SectionQuestion{
Name: "isi.edu",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "isi.edu",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "a.isi.edu",
}, {
Name: "isi.edu",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "venera.isi.edu",
}, {
Name: "isi.edu",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "vaxa.isi.edu",
}},
@@ -228,12 +228,12 @@ VAXA A 10.2.0.27
Question: SectionQuestion{
Name: "isi.edu",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "isi.edu",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: &RDataMX{
Preference: 10,
@@ -242,7 +242,7 @@ VAXA A 10.2.0.27
}, {
Name: "isi.edu",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: &RDataMX{
Preference: 20,
@@ -258,12 +258,12 @@ VAXA A 10.2.0.27
Question: SectionQuestion{
Name: "a.isi.edu",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "a.isi.edu",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "26.3.0.103",
}},
@@ -276,18 +276,18 @@ VAXA A 10.2.0.27
Question: SectionQuestion{
Name: "venera.isi.edu",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "venera.isi.edu",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "10.1.0.52",
}, {
Name: "venera.isi.edu",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "128.9.0.32",
}},
@@ -300,18 +300,18 @@ VAXA A 10.2.0.27
Question: SectionQuestion{
Name: "vaxa.isi.edu",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "vaxa.isi.edu",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "10.2.0.27",
}, {
Name: "vaxa.isi.edu",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "128.9.0.33",
}},
@@ -403,12 +403,12 @@ relay IN CNAME relay.pair.com.
Question: SectionQuestion{
Name: "pcguide.com",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "pcguide.com",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: &RDataSOA{
MName: "ns23.pair.com",
@@ -429,18 +429,18 @@ relay IN CNAME relay.pair.com.
Question: SectionQuestion{
Name: "pcguide.com",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "pcguide.com",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "ns23.pair.com",
}, {
Name: "pcguide.com",
Type: RecordTypeNS,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "ns0.ns0.com",
}},
@@ -453,12 +453,12 @@ relay IN CNAME relay.pair.com.
Question: SectionQuestion{
Name: "localhost.pcguide.com",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "localhost.pcguide.com",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "127.0.0.1",
}},
@@ -471,12 +471,12 @@ relay IN CNAME relay.pair.com.
Question: SectionQuestion{
Name: "pcguide.com",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "pcguide.com",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "209.68.14.80",
}},
@@ -489,12 +489,12 @@ relay IN CNAME relay.pair.com.
Question: SectionQuestion{
Name: "pcguide.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "pcguide.com",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: &RDataMX{
Preference: 50,
@@ -510,12 +510,12 @@ relay IN CNAME relay.pair.com.
Question: SectionQuestion{
Name: "www.pcguide.com",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "www.pcguide.com",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "pcguide.com",
}},
@@ -528,12 +528,12 @@ relay IN CNAME relay.pair.com.
Question: SectionQuestion{
Name: "ftp.pcguide.com",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "ftp.pcguide.com",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "pcguide.com",
}},
@@ -546,12 +546,12 @@ relay IN CNAME relay.pair.com.
Question: SectionQuestion{
Name: "mail.pcguide.com",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "mail.pcguide.com",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "pcguide.com",
}},
@@ -564,12 +564,12 @@ relay IN CNAME relay.pair.com.
Question: SectionQuestion{
Name: "relay.pcguide.com",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "relay.pcguide.com",
Type: RecordTypeCNAME,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "relay.pair.com",
}},
@@ -649,12 +649,12 @@ angularjs.doc A 127.0.0.1
Question: SectionQuestion{
Name: "dev.kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "dev.kilabit.info",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "127.0.0.1",
}},
@@ -667,12 +667,12 @@ angularjs.doc A 127.0.0.1
Question: SectionQuestion{
Name: "dev.kilabit.com",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "dev.kilabit.com",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "127.0.0.1",
}},
@@ -685,12 +685,12 @@ angularjs.doc A 127.0.0.1
Question: SectionQuestion{
Name: "angularjs.doc.localdomain",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "angularjs.doc.localdomain",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "127.0.0.1",
}},
@@ -758,12 +758,12 @@ func TestZoneParseTXT(t *testing.T) {
Question: SectionQuestion{
Name: "kilabit.local",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
},
Answer: []ResourceRecord{{
Name: "kilabit.local",
Type: RecordTypeTXT,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3600,
Value: "This is a test",
}},
diff --git a/lib/dns/zone_parser.go b/lib/dns/zone_parser.go
index a4a6958c..d2a80fd9 100644
--- a/lib/dns/zone_parser.go
+++ b/lib/dns/zone_parser.go
@@ -422,7 +422,7 @@ func (m *zoneParser) parseRR(prevRR *ResourceRecord, tok []byte) (
if m.lastRR != nil {
rr.Class = m.lastRR.Class
} else {
- rr.Class = QueryClassIN
+ rr.Class = RecordClassIN
}
} else {
rr.Name = prevRR.Name
@@ -566,7 +566,7 @@ func (m *zoneParser) parseRRClassOrType(rr *ResourceRecord, stok string) bool {
// otherwise it will return false.
//
func (m *zoneParser) parseRRClass(rr *ResourceRecord, stok string) bool {
- for k, v := range QueryClasses {
+ for k, v := range RecordClasses {
if stok == k {
rr.Class = v
return true
diff --git a/lib/dns/zone_records_test.go b/lib/dns/zone_records_test.go
index a705544e..817a7695 100644
--- a/lib/dns/zone_records_test.go
+++ b/lib/dns/zone_records_test.go
@@ -16,29 +16,29 @@ func testGenerateZoneRecords() (zoneRR zoneRecords, listRR []*ResourceRecord) {
listRR = []*ResourceRecord{{
Name: "test",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
Value: "127.0.0.1",
TTL: 1,
}, {
Name: "test",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
Value: &RDataSOA{},
TTL: 2,
}, {
Name: "test",
Type: RecordTypeMX,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 3,
}, {
Name: "test",
Type: RecordTypeSOA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
TTL: 4,
}, {
Name: "test",
Type: RecordTypeA,
- Class: QueryClassCH,
+ Class: RecordClassCH,
TTL: 5,
}}
@@ -76,7 +76,7 @@ func TestZoneRecords_remove(t *testing.T) {
rr: &ResourceRecord{
Name: "test",
Type: RecordTypeA,
- Class: QueryClassIN,
+ Class: RecordClassIN,
Value: "127.0.0.2",
},
expZoneRR: gotZoneRR,
@@ -86,7 +86,7 @@ func TestZoneRecords_remove(t *testing.T) {
rr: &ResourceRecord{
Name: "test",
Type: RecordTypeA,
- Class: QueryClassCH,
+ Class: RecordClassCH,
Value: "127.0.0.1",
},
expZoneRR: gotZoneRR,