diff --git a/TODO.markdown b/TODO.markdown index a0271d2b..a1b4352d 100644 --- a/TODO.markdown +++ b/TODO.markdown @@ -2,8 +2,6 @@ * outgoing [AI]xfr * fix 'q' standardize ipv6 input with [::1]#53 ? -* use function callback with {}interface... for async querying...? -* Fix tsig and Exchange*() * Splitoff fksd ## Nice to have diff --git a/ex/fksd/serve.go b/ex/fksd/serve.go index c47b0111..031cd1e3 100644 --- a/ex/fksd/serve.go +++ b/ex/fksd/serve.go @@ -96,6 +96,9 @@ func serve(w dns.ResponseWriter, req *dns.Msg, z *dns.Zone) { return } else { // NoData reply or CNAME m.SetReply(req) + if cname, ok := node.RR[dns.TypeCNAME]; ok { + m.Answer = cname // tODO + } m.Ns = apex.RR[dns.TypeSOA] ednsFromRequest(req, m) w.Write(m) diff --git a/ex/fksd/zone.go b/ex/fksd/zone.go index dc2fb89e..c9fa8a9f 100644 --- a/ex/fksd/zone.go +++ b/ex/fksd/zone.go @@ -14,7 +14,9 @@ func (c *Config) ReadZoneFile(origin, file string) error { z := dns.NewZone(origin) for rr := range dns.ParseZone(f, origin, file) { if rr.Error == nil { - z.Insert(rr.RR) + if e := z.Insert(rr.RR); e != nil { + logPrintf("failed to insert record: %s\n", e.Error()) + } } else { logPrintf("failed to parse: %s\n", rr.Error.Error()) } diff --git a/zone.go b/zone.go index 6d90830c..cecc84f5 100644 --- a/zone.go +++ b/zone.go @@ -52,7 +52,7 @@ func NewZone(origin string) *Zone { // Insert inserts an RR into the zone. Duplicate data overwrites the old data. func (z *Zone) Insert(r RR) error { - if !IsSubDomain(r.Header().Name, z.Origin) { + if !IsSubDomain(z.Origin, r.Header().Name) { return &Error{Err: "out of zone data", Name: r.Header().Name} }