Implement a DNS zone

Full implementation, DNS (and in the future DNSSEC). Returns answer in a
hopefully standards compliant way.
Testing with my miek.nl zone are included as well.
This should correctly handle nodata, nxdomain and cnames.
This commit is contained in:
Miek Gieben
2016-03-27 07:37:23 +01:00
parent 9eeb2b0259
commit 5387c162c9
10 changed files with 983 additions and 86 deletions

26
middleware/file/zone.go Normal file
View File

@@ -0,0 +1,26 @@
package file
import (
"github.com/miekg/coredns/middleware/file/tree"
"github.com/miekg/dns"
)
type Zone struct {
SOA *dns.SOA
SIG []*dns.RRSIG
name string
*tree.Tree
}
func NewZone(name string) *Zone {
return &Zone{name: dns.Fqdn(name), Tree: &tree.Tree{}}
}
func (z *Zone) Insert(r dns.RR) {
z.Tree.Insert(r)
}
func (z *Zone) Delete(r dns.RR) {
z.Tree.Delete(r)
}