Pull request: 2574 external tests vol.1

Merge in DNS/adguard-home from 2574-external-tests to master

Updates #2574.

Squashed commit of the following:

commit cb7017aa7fc1c81c014c1fa7e0972b06748aff29
Merge: 2a073431 eeeb0383
Author: Eugene Burkov <e.burkov@adguard.com>
Date:   Fri Jan 29 15:43:41 2021 +0300

    Merge branch 'master' into 2574-external-tests

commit 2a0734311c5a6ddd2d9c3f56a4494a20b4197955
Author: Eugene Burkov <e.burkov@adguard.com>
Date:   Fri Jan 29 15:16:40 2021 +0300

    dnsfilter: imp docs

commit 49aff871282e2739d27fcbceefdf1bd005c21174
Author: Eugene Burkov <e.burkov@adguard.com>
Date:   Fri Jan 29 14:10:56 2021 +0300

    dnsfilter: imp docs

commit 11be89a5378c0e451f1b88dc48a2e8827ba38358
Author: Eugene Burkov <e.burkov@adguard.com>
Date:   Thu Jan 28 21:20:55 2021 +0300

    dnsfilter: fix go version trouble

commit 1ba4afd95bd739c18818ab0bea0ae70d59b880dc
Author: Eugene Burkov <e.burkov@adguard.com>
Date:   Thu Jan 28 17:42:29 2021 +0300

    dnsfilter: imp tests
This commit is contained in:
Eugene Burkov
2021-01-29 16:09:31 +03:00
parent eeeb03839a
commit 0d0a419bd3
6 changed files with 568 additions and 320 deletions

View File

@@ -2,6 +2,7 @@
package dnsfilter
import (
"context"
"fmt"
"io/ioutil"
"net"
@@ -91,6 +92,12 @@ type filtersInitializerParams struct {
blockFilters []Filter
}
// Resolver is the interface for net.Resolver to simplify testing.
type Resolver interface {
// TODO(e.burkov): Replace with LookupIP after upgrading go to v1.15.
LookupIPAddr(ctx context.Context, host string) (ips []net.IPAddr, err error)
}
// DNSFilter matches hostnames and DNS requests against filtering rules.
type DNSFilter struct {
rulesStorage *filterlist.RuleStorage
@@ -110,6 +117,11 @@ type DNSFilter struct {
// Channel for passing data to filters-initializer goroutine
filtersInitializerChan chan filtersInitializerParams
filtersInitializerLock sync.Mutex
// resolver only looks up the IP address of the host while safe search.
//
// TODO(e.burkov): Use upstream that configured in dnsforward instead.
resolver Resolver
}
// Filter represents a filter list
@@ -805,7 +817,9 @@ func New(c *Config, blockFilters []Filter) *DNSFilter {
}
}
d := new(DNSFilter)
d := &DNSFilter{
resolver: net.DefaultResolver,
}
err := d.initSecurityServices()
if err != nil {