From 1122e71cf34a14cfd3c4e98ea43f80050ca6eebb Mon Sep 17 00:00:00 2001 From: Eugene Burkov Date: Tue, 16 Feb 2021 18:46:49 +0300 Subject: [PATCH] Pull request: 2674 fix upstreams validation Merge in DNS/adguard-home from 2674-quic-upstream to master Updates #2674. Squashed commit of the following: commit ce7643580cc9e19881689e7fd4933bc953f2884e Author: Eugene Burkov Date: Tue Feb 16 18:23:39 2021 +0300 all: fix log commit b53e4368dd9ca61965e73b1f1274388422142830 Author: Eugene Burkov Date: Tue Feb 16 18:21:59 2021 +0300 all: log changes commit 1cdca48e31c272ccfbde955c2a3e560ca6ca6bcf Merge: bc441dac e32c18fa Author: Eugene Burkov Date: Tue Feb 16 18:15:47 2021 +0300 Merge branch 'master' into 2674-quic-upstream commit bc441dac3cbe8070c8c1d672925b14d309f05b9f Author: Eugene Burkov Date: Tue Feb 16 17:06:47 2021 +0300 dnsforward: fix error wrapping commit 281c1b43233c2bb51e3a933588087a207b7eef3d Author: Eugene Burkov Date: Tue Feb 16 17:00:35 2021 +0300 all: fix validation, imp shutdown commit 31a5ea7a081de4bcc3913bd04d62334fec1b59e1 Author: Eugene Burkov Date: Tue Feb 16 14:53:10 2021 +0300 dnsforward: fix upstreams validation --- CHANGELOG.md | 2 ++ internal/dnsforward/config.go | 2 +- internal/dnsforward/http.go | 6 ++++++ internal/home/home.go | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d11db20..33a36ee4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,8 +19,10 @@ and this project adheres to ### Fixed +- Incomplete DNS upstreams validation ([#2674]). - Wrong parsing of DHCP options of the `ip` type ([#2688]). +[#2674]: https://github.com/AdguardTeam/AdGuardHome/issues/2674 [#2688]: https://github.com/AdguardTeam/AdGuardHome/issues/2688 diff --git a/internal/dnsforward/config.go b/internal/dnsforward/config.go index a80e7ad5..81864899 100644 --- a/internal/dnsforward/config.go +++ b/internal/dnsforward/config.go @@ -282,7 +282,7 @@ func (s *Server) prepareUpstreamSettings() error { } if len(upstreamConfig.Upstreams) == 0 { - log.Info("Warning: no default upstream servers specified, using %v", defaultDNS) + log.Info("warning: no default upstream servers specified, using %v", defaultDNS) uc, err := proxy.ParseUpstreamsConfig(defaultDNS, s.conf.BootstrapDNS, DefaultTimeout) if err != nil { return fmt.Errorf("dns: failed to parse default upstreams: %v", err) diff --git a/internal/dnsforward/http.go b/internal/dnsforward/http.go index e7508bc8..527d3b38 100644 --- a/internal/dnsforward/http.go +++ b/internal/dnsforward/http.go @@ -8,6 +8,7 @@ import ( "strconv" "strings" + "github.com/AdguardTeam/dnsproxy/proxy" "github.com/AdguardTeam/dnsproxy/upstream" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/utils" @@ -314,6 +315,11 @@ func ValidateUpstreams(upstreams []string) error { return nil } + _, err := proxy.ParseUpstreamsConfig(upstreams, []string{}, DefaultTimeout) + if err != nil { + return err + } + var defaultUpstreamFound bool for _, u := range upstreams { d, err := validateUpstream(u) diff --git a/internal/home/home.go b/internal/home/home.go index 422312a6..bfc17750 100644 --- a/internal/home/home.go +++ b/internal/home/home.go @@ -320,6 +320,7 @@ func run(args options) { go func() { err := startDNSServer() if err != nil { + closeDNSServer() log.Fatal(err) } }()