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.
26 lines
383 B
Go
26 lines
383 B
Go
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)
|
|
}
|