aboutsummaryrefslogtreecommitdiff
path: root/middleware/file/file.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-03-30 20:52:09 +0100
committerGravatar Miek Gieben <miek@miek.nl> 2016-03-30 20:52:09 +0100
commit24394f0d4decf683e56ffd9514321fe57418dff1 (patch)
tree5300bec97fca5c87ee09e0a228c0afeb389fc4d1 /middleware/file/file.go
parent4a313d67ff6031fec3743ba01e81f4961027ffe8 (diff)
parent3591e2a6aa1197ac5f63841af7eb587a9873611f (diff)
downloadcoredns-24394f0d4decf683e56ffd9514321fe57418dff1.tar.gz
coredns-24394f0d4decf683e56ffd9514321fe57418dff1.tar.zst
coredns-24394f0d4decf683e56ffd9514321fe57418dff1.zip
Merge pull request #58 from miekg/dnssec-serving-nsec
Get positive dnssec stuff going
Diffstat (limited to 'middleware/file/file.go')
-rw-r--r--middleware/file/file.go20
1 files changed, 12 insertions, 8 deletions
diff --git a/middleware/file/file.go b/middleware/file/file.go
index 237515a57..c005b41cc 100644
--- a/middleware/file/file.go
+++ b/middleware/file/file.go
@@ -39,7 +39,7 @@ func (f File) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (i
return xfr.ServeDNS(ctx, w, r)
}
- rrs, extra, result := z.Lookup(qname, state.QType(), state.Do())
+ answer, ns, extra, result := z.Lookup(qname, state.QType(), state.Do())
m := new(dns.Msg)
m.SetReply(r)
@@ -47,18 +47,17 @@ func (f File) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (i
switch result {
case Success:
- // case?
- m.Answer = rrs
+ m.Answer = answer
+ m.Ns = ns
m.Extra = extra
- // Ns section
case NameError:
+ m.Ns = ns
m.Rcode = dns.RcodeNameError
fallthrough
case NoData:
- // case?
- m.Ns = rrs
- default:
- // TODO
+ m.Ns = ns
+ case ServerFailure:
+ return dns.RcodeServerFailure, nil
}
m, _ = state.Scrub(m)
w.WriteMsg(m)
@@ -78,6 +77,11 @@ func Parse(f io.Reader, origin, fileName string) (*Zone, error) {
z.SOA = x.RR.(*dns.SOA)
continue
}
+ if x.RR.Header().Rrtype == dns.TypeRRSIG {
+ if x, ok := x.RR.(*dns.RRSIG); ok && x.TypeCovered == dns.TypeSOA {
+ z.SIG = append(z.SIG, x)
+ }
+ }
z.Insert(x.RR)
}
return z, nil