diff options
author | 2019-06-13 10:36:47 +0100 | |
---|---|---|
committer | 2019-06-13 10:36:47 +0100 | |
commit | 481dea50adf367dff57bbe0ed454ae6f5eaf72d7 (patch) | |
tree | 89375963c365ce882e485bda83bd067e061c3799 /plugin | |
parent | 27ca097df49b6d056e30340fc6ef6e61897f64f9 (diff) | |
download | coredns-481dea50adf367dff57bbe0ed454ae6f5eaf72d7.tar.gz coredns-481dea50adf367dff57bbe0ed454ae6f5eaf72d7.tar.zst coredns-481dea50adf367dff57bbe0ed454ae6f5eaf72d7.zip |
plugin/cache: remove item.Autoritative (#2885)
* plugin/cache: remove item.Autoritative
Confuses clients if not set; remove it.
Signed-off-by: Miek Gieben <miek@miek.nl>
* Add extra comments on why we do this
Signed-off-by: Miek Gieben <miek@miek.nl>
Diffstat (limited to 'plugin')
-rw-r--r-- | plugin/cache/cache_test.go | 17 | ||||
-rw-r--r-- | plugin/cache/item.go | 7 |
2 files changed, 12 insertions, 12 deletions
diff --git a/plugin/cache/cache_test.go b/plugin/cache/cache_test.go index 7c65bca64..4afaf73c4 100644 --- a/plugin/cache/cache_test.go +++ b/plugin/cache/cache_test.go @@ -17,7 +17,6 @@ type cacheTestCase struct { test.Case in test.Case AuthenticatedData bool - Authoritative bool RecursionAvailable bool Truncated bool shouldCache bool @@ -25,7 +24,7 @@ type cacheTestCase struct { var cacheTestCases = []cacheTestCase{ { - RecursionAvailable: true, AuthenticatedData: true, Authoritative: true, + RecursionAvailable: true, AuthenticatedData: true, Case: test.Case{ Qname: "miek.nl.", Qtype: dns.TypeMX, Answer: []dns.RR{ @@ -43,7 +42,7 @@ var cacheTestCases = []cacheTestCase{ shouldCache: true, }, { - RecursionAvailable: true, AuthenticatedData: true, Authoritative: true, + RecursionAvailable: true, AuthenticatedData: true, Case: test.Case{ Qname: "mIEK.nL.", Qtype: dns.TypeMX, Answer: []dns.RR{ @@ -70,7 +69,7 @@ var cacheTestCases = []cacheTestCase{ shouldCache: false, }, { - RecursionAvailable: true, Authoritative: true, + RecursionAvailable: true, Case: test.Case{ Rcode: dns.RcodeNameError, Qname: "example.org.", Qtype: dns.TypeA, @@ -88,7 +87,7 @@ var cacheTestCases = []cacheTestCase{ shouldCache: true, }, { - RecursionAvailable: true, Authoritative: false, + RecursionAvailable: true, Case: test.Case{ Rcode: dns.RcodeServerFailure, Qname: "example.org.", Qtype: dns.TypeA, @@ -102,7 +101,7 @@ var cacheTestCases = []cacheTestCase{ shouldCache: true, }, { - RecursionAvailable: true, Authoritative: false, + RecursionAvailable: true, Case: test.Case{ Rcode: dns.RcodeNotImplemented, Qname: "example.org.", Qtype: dns.TypeA, @@ -116,7 +115,7 @@ var cacheTestCases = []cacheTestCase{ shouldCache: true, }, { - RecursionAvailable: true, Authoritative: true, + RecursionAvailable: true, Case: test.Case{ Qname: "miek.nl.", Qtype: dns.TypeMX, Do: true, @@ -138,7 +137,7 @@ var cacheTestCases = []cacheTestCase{ shouldCache: false, }, { - RecursionAvailable: true, Authoritative: true, + RecursionAvailable: true, Case: test.Case{ Qname: "example.org.", Qtype: dns.TypeMX, Do: true, @@ -164,7 +163,7 @@ var cacheTestCases = []cacheTestCase{ func cacheMsg(m *dns.Msg, tc cacheTestCase) *dns.Msg { m.RecursionAvailable = tc.RecursionAvailable m.AuthenticatedData = tc.AuthenticatedData - m.Authoritative = tc.Authoritative + m.Authoritative = true m.Rcode = tc.Rcode m.Truncated = tc.Truncated m.Answer = tc.in.Answer diff --git a/plugin/cache/item.go b/plugin/cache/item.go index f4858c3b1..edc7610a4 100644 --- a/plugin/cache/item.go +++ b/plugin/cache/item.go @@ -9,7 +9,6 @@ import ( type item struct { Rcode int - Authoritative bool AuthenticatedData bool RecursionAvailable bool Answer []dns.RR @@ -25,7 +24,6 @@ type item struct { func newItem(m *dns.Msg, now time.Time, d time.Duration) *item { i := new(item) i.Rcode = m.Rcode - i.Authoritative = m.Authoritative i.AuthenticatedData = m.AuthenticatedData i.RecursionAvailable = m.RecursionAvailable i.Answer = m.Answer @@ -56,7 +54,10 @@ func (i *item) toMsg(m *dns.Msg, now time.Time) *dns.Msg { m1 := new(dns.Msg) m1.SetReply(m) - m1.Authoritative = false + // Set this to true as some DNS clients disgard the *entire* packet when it's non-authoritative. + // This is probably not according to spec, but the bit itself is not super useful as this point, so + // just set it to true. + m1.Authoritative = true m1.AuthenticatedData = i.AuthenticatedData m1.RecursionAvailable = i.RecursionAvailable m1.Rcode = i.Rcode |