coredns plugin -- fix SHOULD NOT HAPPEN spam when incoming request is for root servers

This commit is contained in:
Eugene Bujak 2018-10-05 07:31:56 +03:00
parent 5b9a5fff97
commit 3a7a80f15f
2 changed files with 11 additions and 4 deletions

View File

@ -446,8 +446,15 @@ func (p *plug) serveDNSInternal(ctx context.Context, w dns.ResponseWriter, r *dn
return rcode, dnsfilter.Result{}, err return rcode, dnsfilter.Result{}, err
} }
return rcode, result, err return rcode, result, err
case dnsfilter.FilteredInvalid:
// return NXdomain
rcode, err := p.writeNXdomain(ctx, w, r)
if err != nil {
return rcode, dnsfilter.Result{}, err
}
return rcode, result, err
default: default:
log.Printf("SHOULD NOT HAPPEN -- got unknown reason for filtering: %T %v %s", result.Reason, result.Reason, result.Reason.String()) log.Printf("SHOULD NOT HAPPEN -- got unknown reason for filtering host \"%s\": %v, %+v", host, result.Reason, result)
} }
} else { } else {
switch result.Reason { switch result.Reason {
@ -457,7 +464,7 @@ func (p *plug) serveDNSInternal(ctx context.Context, w dns.ResponseWriter, r *dn
case dnsfilter.NotFilteredNotFound: case dnsfilter.NotFilteredNotFound:
// do nothing, pass through to lower code // do nothing, pass through to lower code
default: default:
log.Printf("SHOULD NOT HAPPEN -- got unknown reason for not filtering: %T %v %s", result.Reason, result.Reason, result.Reason.String()) log.Printf("SHOULD NOT HAPPEN -- got unknown reason for not filtering host \"%s\": %v, %+v", host, result.Reason, result)
} }
} }
} }

View File

@ -148,9 +148,9 @@ func (r Reason) Matched() bool {
// CheckHost tries to match host against rules, then safebrowsing and parental if they are enabled // CheckHost tries to match host against rules, then safebrowsing and parental if they are enabled
func (d *Dnsfilter) CheckHost(host string) (Result, error) { func (d *Dnsfilter) CheckHost(host string) (Result, error) {
// sometimes DNS clients will try to resolve ".", which in turns transforms into "" when it reaches here // sometimes DNS clients will try to resolve ".", which is a request to get root servers
if host == "" { if host == "" {
return Result{Reason: FilteredInvalid}, nil return Result{Reason: NotFilteredNotFound}, nil
} }
host = strings.ToLower(host) host = strings.ToLower(host)