From 073836905a9783f28ced010283174739ffd4b7d1 Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Mon, 10 Aug 2015 12:19:21 +0000 Subject: [PATCH] Return NXDOMAIN when we don't have entries, and drop the non-authoritative special case for recursive dns. --- nameserver/dns.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nameserver/dns.go b/nameserver/dns.go index 35e07a23..ae0a09e3 100644 --- a/nameserver/dns.go +++ b/nameserver/dns.go @@ -135,6 +135,10 @@ func (d *DNSServer) handleLocal(defaultMaxResponseSize int) func(dns.ResponseWri } addrs := d.ns.Lookup(hostname) + if len(addrs) == 0 { + d.errorResponse(req, dns.RcodeNameError, w) + return + } response := dns.Msg{} response.RecursionAvailable = true @@ -234,10 +238,6 @@ func (d *DNSServer) handleRecursive(client *dns.Client, defaultMaxResponseSize i d.ns.debugf("error trying %s: %v", server, err) continue } - if response.Rcode != dns.RcodeSuccess && !response.Authoritative { - d.ns.debugf("non-authoritative error trying %s: %v", server, response.Rcode) - continue - } d.ns.debugf("response: %+v", response) response.SetReply(req) if err := w.WriteMsg(response); err != nil {