diff --git a/home/whois.go b/home/whois.go index 321b4ef2..a0d22bbb 100644 --- a/home/whois.go +++ b/home/whois.go @@ -1,6 +1,7 @@ package home import ( + "context" "encoding/binary" "fmt" "io/ioutil" @@ -120,7 +121,7 @@ func (w *Whois) query(target string, serverAddr string) (string, error) { if addr == "whois.arin.net" { target = "n + " + target } - conn, err := net.DialTimeout("tcp", serverAddr, time.Duration(w.timeoutMsec)*time.Millisecond) + conn, err := customDialContext(context.TODO(), "tcp", serverAddr) if err != nil { return "", err } diff --git a/home/whois_test.go b/home/whois_test.go index 1c77b056..75af9f14 100644 --- a/home/whois_test.go +++ b/home/whois_test.go @@ -2,11 +2,29 @@ package home import ( "testing" + "time" + "github.com/AdguardTeam/AdGuardHome/dnsforward" + "github.com/AdguardTeam/dnsproxy/proxy" "github.com/stretchr/testify/assert" ) +func prepareTestDNSServer() error { + config.DNS.Port = 1234 + Context.dnsServer = dnsforward.NewServer(nil, nil, nil) + conf := &dnsforward.ServerConfig{} + uc, err := proxy.ParseUpstreamsConfig([]string{"1.1.1.1"}, nil, time.Second*5) + if err != nil { + return err + } + conf.UpstreamConfig = &uc + return Context.dnsServer.Prepare(conf) +} + func TestWhois(t *testing.T) { + err := prepareTestDNSServer() + assert.Nil(t, err) + w := Whois{timeoutMsec: 5000} resp, err := w.queryAll("8.8.8.8") assert.True(t, err == nil)