diff options
author | 2016-03-28 18:26:14 +0100 | |
---|---|---|
committer | 2016-03-28 18:26:14 +0100 | |
commit | 1a455f7bc4c24f472e6fd441b2b145047d1325b2 (patch) | |
tree | 77a644f6fe28f3de8eaf6f7c766cea73b438b487 /middleware/file/file.go | |
parent | 6324bb1fa7c0516ef3bebfb822a0cdc767764ad2 (diff) | |
parent | e56d206542c901a48b28c4501fe5805e9e9e1a10 (diff) | |
download | coredns-1a455f7bc4c24f472e6fd441b2b145047d1325b2.tar.gz coredns-1a455f7bc4c24f472e6fd441b2b145047d1325b2.tar.zst coredns-1a455f7bc4c24f472e6fd441b2b145047d1325b2.zip |
Merge pull request #55 from miekg/transfer-out
Transfer out
Diffstat (limited to 'middleware/file/file.go')
-rw-r--r-- | middleware/file/file.go | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/middleware/file/file.go b/middleware/file/file.go index 5e4e0b357..237515a57 100644 --- a/middleware/file/file.go +++ b/middleware/file/file.go @@ -1,10 +1,5 @@ package file -// TODO(miek): the zone's implementation is basically non-existent -// we return a list and when searching for an answer we iterate -// over the list. This must be moved to a tree-like structure and -// have some fluff for DNSSEC (and be memory efficient). - import ( "io" "log" @@ -19,7 +14,6 @@ type ( File struct { Next middleware.Handler Zones Zones - // Maybe a list of all zones as well, as a []string? } Zones struct { @@ -40,6 +34,11 @@ func (f File) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (i return f.Next.ServeDNS(ctx, w, r) } + if state.Proto() != "udp" && state.QType() == dns.TypeAXFR { + xfr := Xfr{z} + return xfr.ServeDNS(ctx, w, r) + } + rrs, extra, result := z.Lookup(qname, state.QType(), state.Do()) m := new(dns.Msg) |