func BenchmarkLookup(b *testing.B) { zone, err := Parse(strings.NewReader(dbMiekNL), testzone, "stdin") if err != nil { return } fm := File{Next: test.ErrorHandler(), Zones: Zones{Z: map[string]*Zone{testzone: zone}, Names: []string{testzone}}} ctx := context.TODO() rec := middleware.NewResponseRecorder(&test.ResponseWriter{}) tc := test.Case{ Qname: "www.miek.nl.", Qtype: dns.TypeA, Answer: []dns.RR{ test.CNAME("www.miek.nl. 1800 IN CNAME a.miek.nl."), test.A("a.miek.nl. 1800 IN A 139.162.196.78"), }, } m := tc.Msg() b.ResetTimer() for i := 0; i < b.N; i++ { fm.ServeDNS(ctx, rec, m) } }
func (s *soa) Handler(w dns.ResponseWriter, req *dns.Msg) { m := new(dns.Msg) m.SetReply(req) switch req.Question[0].Qtype { case dns.TypeSOA: m.Answer = make([]dns.RR, 1) m.Answer[0] = test.SOA(fmt.Sprintf("%s IN SOA bla. bla. %d 0 0 0 0 ", testZone, s.serial)) w.WriteMsg(m) case dns.TypeAXFR: m.Answer = make([]dns.RR, 4) m.Answer[0] = test.SOA(fmt.Sprintf("%s IN SOA bla. bla. %d 0 0 0 0 ", testZone, s.serial)) m.Answer[1] = test.A(fmt.Sprintf("%s IN A 127.0.0.1", testZone)) m.Answer[2] = test.A(fmt.Sprintf("%s IN A 127.0.0.1", testZone)) m.Answer[3] = test.SOA(fmt.Sprintf("%s IN SOA bla. bla. %d 0 0 0 0 ", testZone, s.serial)) w.WriteMsg(m) } }
func delegationMsg() *dns.Msg { return &dns.Msg{ Ns: []dns.RR{ test.NS("miek.nl. 3600 IN NS linode.atoom.net."), test.NS("miek.nl. 3600 IN NS ns-ext.nlnetlabs.nl."), test.NS("miek.nl. 3600 IN NS omval.tednet.nl."), }, Extra: []dns.RR{ test.A("omval.tednet.nl. 3600 IN A 185.49.141.42"), test.AAAA("omval.tednet.nl. 3600 IN AAAA 2a04:b900:0:100::42"), }, } }
if !test.Section(t, tc, test.Extra, resp.Extra) { t.Logf("%v\n", resp) } } } var servicesDebug = []*msg.Service{ {Host: "127.0.0.1", Key: "a.dom.skydns.test."}, {Host: "127.0.0.2", Key: "b.sub.dom.skydns.test."}, } var dnsTestCasesDebug = []test.Case{ { Qname: "o-o.debug.dom.skydns.test.", Qtype: dns.TypeA, Answer: []dns.RR{ test.A("dom.skydns.test. 300 IN A 127.0.0.1"), test.A("dom.skydns.test. 300 IN A 127.0.0.2"), }, Extra: []dns.RR{ test.TXT(`a.dom.skydns.test. 300 CH TXT "127.0.0.1:0(10,0,,false)[0,]"`), test.TXT(`b.sub.dom.skydns.test. 300 CH TXT "127.0.0.2:0(10,0,,false)[0,]"`), }, }, { Qname: "o-o.debug.dom.skydns.test.", Qtype: dns.TypeTXT, Ns: []dns.RR{ test.SOA("skydns.test. 300 IN SOA ns.dns.skydns.test. hostmaster.skydns.test. 1463943291 7200 1800 86400 60"), }, Extra: []dns.RR{ test.TXT(`a.dom.skydns.test. 300 CH TXT "127.0.0.1:0(10,0,,false)[0,]"`), test.TXT(`b.sub.dom.skydns.test. 300 CH TXT "127.0.0.2:0(10,0,,false)[0,]"`),
{ Qname: "a.SERVer1.dEv.region1.skydns.tEst.", Qtype: dns.TypeSRV, Answer: []dns.RR{test.SRV("a.SERVer1.dEv.region1.skydns.tEst. 300 SRV 10 100 8080 dev.server1.")}, }, // NXDOMAIN Test { Qname: "doesnotexist.skydns.test.", Qtype: dns.TypeA, Rcode: dns.RcodeNameError, Ns: []dns.RR{ test.SOA("skydns.test. 300 SOA ns.dns.skydns.test. hostmaster.skydns.test. 0 0 0 0 0"), }, }, // A Test { Qname: "a.server1.prod.region1.skydns.test.", Qtype: dns.TypeA, Answer: []dns.RR{test.A("a.server1.prod.region1.skydns.test. 300 A 10.0.0.1")}, }, // SRV Test where target is IP address { Qname: "a.server1.prod.region1.skydns.test.", Qtype: dns.TypeSRV, Answer: []dns.RR{test.SRV("a.server1.prod.region1.skydns.test. 300 SRV 10 100 8080 a.server1.prod.region1.skydns.test.")}, Extra: []dns.RR{test.A("a.server1.prod.region1.skydns.test. 300 A 10.0.0.1")}, }, // AAAA Test { Qname: "b.server6.prod.region1.skydns.test.", Qtype: dns.TypeAAAA, Answer: []dns.RR{test.AAAA("b.server6.prod.region1.skydns.test. 300 AAAA ::1")}, }, // Multiple A Record Test { Qname: "server1.prod.region1.skydns.test.", Qtype: dns.TypeA,
} var servicesCname = []*msg.Service{ {Host: "cname1.region2.skydns.test", Key: "a.server1.dev.region1.skydns.test."}, {Host: "cname2.region2.skydns.test", Key: "cname1.region2.skydns.test."}, {Host: "cname3.region2.skydns.test", Key: "cname2.region2.skydns.test."}, {Host: "cname4.region2.skydns.test", Key: "cname3.region2.skydns.test."}, {Host: "cname5.region2.skydns.test", Key: "cname4.region2.skydns.test."}, {Host: "cname6.region2.skydns.test", Key: "cname5.region2.skydns.test."}, {Host: "endpoint.region2.skydns.test", Key: "cname6.region2.skydns.test."}, {Host: "10.240.0.1", Key: "endpoint.region2.skydns.test."}, } var dnsTestCasesCname = []test.Case{ { Qname: "a.server1.dev.region1.skydns.test.", Qtype: dns.TypeSRV, Answer: []dns.RR{ test.SRV("a.server1.dev.region1.skydns.test. 300 IN SRV 10 100 0 cname1.region2.skydns.test."), }, Extra: []dns.RR{ test.CNAME("cname1.region2.skydns.test. 300 IN CNAME cname2.region2.skydns.test."), test.CNAME("cname2.region2.skydns.test. 300 IN CNAME cname3.region2.skydns.test."), test.CNAME("cname3.region2.skydns.test. 300 IN CNAME cname4.region2.skydns.test."), test.CNAME("cname4.region2.skydns.test. 300 IN CNAME cname5.region2.skydns.test."), test.CNAME("cname5.region2.skydns.test. 300 IN CNAME cname6.region2.skydns.test."), test.CNAME("cname6.region2.skydns.test. 300 IN CNAME endpoint.region2.skydns.test."), test.A("endpoint.region2.skydns.test. 300 IN A 10.240.0.1"), }, }, }
"sort" "strings" "testing" "github.com/miekg/coredns/middleware" "github.com/miekg/coredns/middleware/test" "github.com/miekg/dns" "golang.org/x/net/context" ) var dnsTestCases = []test.Case{ { Qname: "www.miek.nl.", Qtype: dns.TypeA, Answer: []dns.RR{ test.A("a.miek.nl. 1800 IN A 139.162.196.78"), test.CNAME("www.miek.nl. 1800 IN CNAME a.miek.nl."), }, }, { Qname: "www.miek.nl.", Qtype: dns.TypeAAAA, Answer: []dns.RR{ test.AAAA("a.miek.nl. 1800 IN AAAA 2a01:7e00::f03c:91ff:fef1:6735"), test.CNAME("www.miek.nl. 1800 IN CNAME a.miek.nl."), }, }, { Qname: "miek.nl.", Qtype: dns.TypeSOA, Answer: []dns.RR{ test.SOA("miek.nl. 1800 IN SOA linode.atoom.net. miek.miek.nl. 1282630057 14400 3600 604800 14400"), },
"github.com/miekg/coredns/middleware" "github.com/miekg/coredns/middleware/test" "github.com/miekg/dns" "golang.org/x/net/context" ) var delegationTestCases = []test.Case{ { Qname: "a.delegated.miek.nl.", Qtype: dns.TypeTXT, Ns: []dns.RR{ test.NS("delegated.miek.nl. 1800 IN NS a.delegated.miek.nl."), test.NS("delegated.miek.nl. 1800 IN NS ns-ext.nlnetlabs.nl."), }, Extra: []dns.RR{ test.A("a.delegated.miek.nl. 1800 IN A 139.162.196.78"), test.AAAA("a.delegated.miek.nl. 1800 IN AAAA 2a01:7e00::f03c:91ff:fef1:6735"), }, }, { Qname: "delegated.miek.nl.", Qtype: dns.TypeNS, Answer: []dns.RR{ test.NS("delegated.miek.nl. 1800 IN NS a.delegated.miek.nl."), test.NS("delegated.miek.nl. 1800 IN NS ns-ext.nlnetlabs.nl."), }, }, { Qname: "miek.nl.", Qtype: dns.TypeSOA, Answer: []dns.RR{ test.SOA("miek.nl. 1800 IN SOA linode.atoom.net. miek.miek.nl. 1282630057 14400 3600 604800 14400"), },
} var dnsTestCasesOther = []test.Case{ // MX Tests { // NODATA as this is not an Mail: true record. Qname: "a.server1.dev.region1.skydns.test.", Qtype: dns.TypeMX, Ns: []dns.RR{ test.SOA("skydns.test. 300 SOA ns.dns.skydns.test. hostmaster.skydns.test. 0 0 0 0 0"), }, }, { Qname: "a.mail.skydns.test.", Qtype: dns.TypeMX, Answer: []dns.RR{test.MX("a.mail.skydns.test. 300 IN MX 50 mx.skydns.test.")}, Extra: []dns.RR{ test.A("a.ipaddr.skydns.test. 300 IN A 172.16.1.1"), test.CNAME("mx.skydns.test. 300 IN CNAME a.ipaddr.skydns.test."), }, }, { Qname: "mx2.skydns.test.", Qtype: dns.TypeMX, Answer: []dns.RR{ test.MX("mx2.skydns.test. 300 IN MX 10 a.ipaddr.skydns.test."), test.MX("mx2.skydns.test. 300 IN MX 10 b.ipaddr.skydns.test."), }, Extra: []dns.RR{ test.A("a.ipaddr.skydns.test. 300 A 172.16.1.1"), test.A("b.ipaddr.skydns.test. 300 A 172.16.1.2"), }, }, // different priority, same host
var servicesStub = []*msg.Service{ // Two tests, ask a question that should return servfail because remote it no accessible // and one with edns0 option added, that should return refused. {Host: "127.0.0.1", Port: 666, Key: "b.example.org.stub.dns.skydns.test."}, // Actual test that goes out to the internet. {Host: "199.43.132.53", Key: "a.example.net.stub.dns.skydns.test."}, } var dnsTestCasesStub = []test.Case{ { Qname: "example.org.", Qtype: dns.TypeA, Rcode: dns.RcodeServerFailure, }, { Qname: "example.net.", Qtype: dns.TypeA, Answer: []dns.RR{test.A("example.net. 86400 IN A 93.184.216.34")}, Ns: []dns.RR{ test.NS("example.net. 86400 IN NS a.iana-servers.net."), test.NS("example.net. 86400 IN NS b.iana-servers.net."), }, Extra: []dns.RR{test.OPT(4096, false)}, // This will have an EDNS0 section, because *we* added our local stub forward to detect loops. }, { Qname: "example.net.", Qtype: dns.TypeA, Do: true, Answer: []dns.RR{ test.A("example.net. 86400 IN A 93.184.216.34"), test.RRSIG("example.net. 86400 IN RRSIG A 8 2 86400 20160428060557 20160406182909 40948 example.net. Vm+rH5KN"), }, Ns: []dns.RR{ test.NS("example.net. 86400 IN NS a.iana-servers.net."), test.NS("example.net. 86400 IN NS b.iana-servers.net."),