From 0d260d0e2d074bc9a0c3ab9ca454b9576abe419f Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Mon, 7 Dec 2020 12:58:05 +0100 Subject: [PATCH] pattern_matcher: check exact matches first --- dnscrypt-proxy/pattern_matcher.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dnscrypt-proxy/pattern_matcher.go b/dnscrypt-proxy/pattern_matcher.go index 8b2ae6cc..69bd023b 100644 --- a/dnscrypt-proxy/pattern_matcher.go +++ b/dnscrypt-proxy/pattern_matcher.go @@ -120,6 +120,10 @@ func (patternMatcher *PatternMatcher) Eval(qName string) (reject bool, reason st return false, "", nil } + if xval := patternMatcher.blockedExact[qName]; xval != nil { + return true, qName, xval + } + revQname := StringReverse(qName) if match, xval, found := patternMatcher.blockedSuffixes.LongestPrefix([]byte(revQname)); found { if len(match) == len(revQname) || revQname[len(match)] == '.' { @@ -153,9 +157,5 @@ func (patternMatcher *PatternMatcher) Eval(qName string) (reject bool, reason st } } - if xval := patternMatcher.blockedExact[qName]; xval != nil { - return true, qName, xval - } - return false, "", nil }