Merge: - DNS: filtering didn't work
Fix #1504 * commit '7c192212410ef877aea5c0d018cc0f9ae8b41879': minor - DNS: filtering didn't work
This commit is contained in:
commit
c73dd5577f
|
@ -686,12 +686,12 @@ func processFilteringAfterResponse(ctx *dnsContext) int {
|
||||||
d.Res.Answer = answer
|
d.Res.Answer = answer
|
||||||
}
|
}
|
||||||
|
|
||||||
case dnsfilter.RewriteEtcHosts:
|
|
||||||
case dnsfilter.NotFilteredWhiteList:
|
case dnsfilter.NotFilteredWhiteList:
|
||||||
// nothing
|
// nothing
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if !ctx.protectionEnabled {
|
if !ctx.protectionEnabled || // filters are disabled: there's nothing to check for
|
||||||
|
!ctx.responseFromUpstream { // only check response if it's from an upstream server
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
origResp2 := d.Res
|
origResp2 := d.Res
|
||||||
|
@ -817,6 +817,10 @@ func (s *Server) updateStats(d *proxy.DNSContext, elapsed time.Duration, res dns
|
||||||
case dnsfilter.NotFilteredWhiteList:
|
case dnsfilter.NotFilteredWhiteList:
|
||||||
fallthrough
|
fallthrough
|
||||||
case dnsfilter.NotFilteredError:
|
case dnsfilter.NotFilteredError:
|
||||||
|
fallthrough
|
||||||
|
case dnsfilter.ReasonRewrite:
|
||||||
|
fallthrough
|
||||||
|
case dnsfilter.RewriteEtcHosts:
|
||||||
e.Result = stats.RNotFiltered
|
e.Result = stats.RNotFiltered
|
||||||
|
|
||||||
case dnsfilter.FilteredSafeBrowsing:
|
case dnsfilter.FilteredSafeBrowsing:
|
||||||
|
|
|
@ -225,11 +225,15 @@ func (a *AutoHosts) update() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Process - get the list of IP addresses for the hostname
|
// Process - get the list of IP addresses for the hostname
|
||||||
|
// Return nil if not found
|
||||||
func (a *AutoHosts) Process(host string) []net.IP {
|
func (a *AutoHosts) Process(host string) []net.IP {
|
||||||
|
var ipsCopy []net.IP
|
||||||
a.lock.Lock()
|
a.lock.Lock()
|
||||||
ips, _ := a.table[host]
|
ips, _ := a.table[host]
|
||||||
ipsCopy := make([]net.IP, len(ips))
|
if len(ips) != 0 {
|
||||||
|
ipsCopy = make([]net.IP, len(ips))
|
||||||
copy(ipsCopy, ips)
|
copy(ipsCopy, ips)
|
||||||
|
}
|
||||||
a.lock.Unlock()
|
a.lock.Unlock()
|
||||||
return ipsCopy
|
return ipsCopy
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ func TestAutoHosts(t *testing.T) {
|
||||||
ips := ah.Process("localhost")
|
ips := ah.Process("localhost")
|
||||||
assert.True(t, ips[0].Equal(net.ParseIP("127.0.0.1")))
|
assert.True(t, ips[0].Equal(net.ParseIP("127.0.0.1")))
|
||||||
ips = ah.Process("newhost")
|
ips = ah.Process("newhost")
|
||||||
assert.True(t, len(ips) == 0)
|
assert.True(t, ips == nil)
|
||||||
|
|
||||||
table := ah.List()
|
table := ah.List()
|
||||||
ips, _ = table["host"]
|
ips, _ = table["host"]
|
||||||
|
|
Loading…
Reference in New Issue