From 5c113ec4c565a8911f4531b3701a9013e066c433 Mon Sep 17 00:00:00 2001 From: Maksim Kazantsev Date: Wed, 19 Aug 2026 12:03:11 +0000 Subject: [PATCH] Pull request 2747: AGDNS-4357-upd-proxy-field-names Squashed commit of the following: commit 836c6ac7ba9ff3747d3dfacb64e73cb68eca11e8 Author: Maksim Kazantsev Date: Wed Aug 19 12:36:37 2026 +0300 all: tidy deps; commit 51b8ef970dafeff1841572457d22c113a82cfc5e Merge: 8a245ad8a 1903fad72 Author: Maksim Kazantsev Date: Wed Aug 19 12:32:13 2026 +0300 Merge branch 'master' into AGDNS-4357-upd-proxy-field-names commit 8a245ad8ac5a95bc4f9d5018e8f83f6a632053a5 Author: Maksim Kazantsev Date: Fri Aug 14 18:14:44 2026 +0300 all: get dnsproxy latest version; rm tests; imp code; commit 06a4bf057e2c473aa35abfd56dd2f18826caa320 Merge: b445ce834 090f75d79 Author: Maksim Kazantsev Date: Fri Aug 14 17:13:04 2026 +0300 Merge branch 'master' into AGDNS-4357-upd-proxy-field-names commit b445ce8345cf06ebc4a383547072737aeb835492 Author: Maksim Kazantsev Date: Thu Aug 13 17:22:59 2026 +0300 dnssvc: imp docs; commit 39c88181caa522f9b90993cde777592532ad1619 Author: Maksim Kazantsev Date: Thu Aug 13 17:03:44 2026 +0300 dnssvc: imp docs; commit 6b4070641d5055062f333bc3f8c1aaa456708bc6 Author: Maksim Kazantsev Date: Thu Aug 13 15:34:59 2026 +0300 dnssvc: imp docs; imp code; commit 4e75cf70001d73d8e6cd8464c47b980441c3bfb7 Author: Maksim Kazantsev Date: Wed Aug 12 17:38:19 2026 +0300 all: imp tests; imp code; commit d220403a537ead7cd2c5cad5ee1e4417ffde5c78 Author: Maksim Kazantsev Date: Tue Aug 11 13:53:17 2026 +0300 all: upd deps; commit afa3f5f30620566b85217ade7447caac2533663b Author: Maksim Kazantsev Date: Tue Aug 11 13:16:53 2026 +0300 dnsforward: imp tests; commit 0efa8e0e8346ddf2a9cb36fdf98c7f3225d7498b Author: Maksim Kazantsev Date: Mon Aug 10 18:38:16 2026 +0300 all: upd proxy field names; --- go.mod | 2 +- go.sum | 4 +-- .../dnsforward/dnsforward_internal_test.go | 34 ++----------------- internal/dnsforward/process.go | 4 +-- internal/next/dnssvc/dnssvc.go | 15 ++++---- 5 files changed, 15 insertions(+), 44 deletions(-) diff --git a/go.mod b/go.mod index 35e82438437..c4aac02c44c 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.26.6 require ( github.com/AdguardTeam/dnscrypt v0.0.2 - github.com/AdguardTeam/dnsproxy v0.83.2 + github.com/AdguardTeam/dnsproxy v0.84.0 github.com/AdguardTeam/golibs v0.35.15 github.com/AdguardTeam/urlfilter v0.23.4 github.com/NYTimes/gziphandler v1.1.1 diff --git a/go.sum b/go.sum index 0ef3980531c..106ffc5cc49 100644 --- a/go.sum +++ b/go.sum @@ -6,8 +6,8 @@ cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdB cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= github.com/AdguardTeam/dnscrypt v0.0.2 h1:kIFCyjYofKHug7RwPGOjVga81P0/zOQdbUN+7p+I95M= github.com/AdguardTeam/dnscrypt v0.0.2/go.mod h1:qCFs51rLfNzEDZqb6nz1tocVLnEearJ1zng6O3I6ecA= -github.com/AdguardTeam/dnsproxy v0.83.2 h1:a1QpTUkcwUP8MxL2Nu7OJX62h1SiJUwRsEbiihb5Y9A= -github.com/AdguardTeam/dnsproxy v0.83.2/go.mod h1:O1K8Roc6lNhSB5ffBXx34Pw7/03b+HUNh6qIhR/ad2A= +github.com/AdguardTeam/dnsproxy v0.84.0 h1:bcTORgQL0L5cwcTz9f+iB0JPZVbCHlCv7phso9y3lrU= +github.com/AdguardTeam/dnsproxy v0.84.0/go.mod h1:nZlktYebWcLO613q1j2N0bZ5BEnHPuqXAyW6O9vIhDU= github.com/AdguardTeam/golibs v0.35.15 h1:KjksvvzlQqxdNvrz+O3FgMbZKZAQdcoCkgBz0mR7wFQ= github.com/AdguardTeam/golibs v0.35.15/go.mod h1:lScOIavWuRFL0vls26jKfQXaITP7OKO1qw75WYp5nYk= github.com/AdguardTeam/urlfilter v0.23.4 h1:3cwt5xj7lpK2t3sWtr9WI8mmsKP+RtpkdnEy7lrn8cg= diff --git a/internal/dnsforward/dnsforward_internal_test.go b/internal/dnsforward/dnsforward_internal_test.go index 0c4bf2cd538..ce3e3f1a220 100644 --- a/internal/dnsforward/dnsforward_internal_test.go +++ b/internal/dnsforward/dnsforward_internal_test.go @@ -501,34 +501,6 @@ func TestServer_timeout(t *testing.T) { }) } -func TestServer_Prepare_fallbacks(t *testing.T) { - srvConf := &ServerConfig{ - TLSConf: &TLSConfig{}, - Config: Config{ - FallbackDNS: []string{ - "#tls://1.1.1.1", - "8.8.8.8", - }, - UpstreamMode: UpstreamModeLoadBalance, - EDNSClientSubnet: &EDNSClientSubnet{Enabled: false}, - ClientsContainer: EmptyClientsContainer{}, - }, - ServePlainDNS: true, - } - - s, err := NewServer(DNSCreateParams{ - Logger: testLogger, - TLSConfigProvider: testTLSConfigProvider, - }) - require.NoError(t, err) - - err = s.Prepare(testutil.ContextWithTimeout(t, testTimeout), srvConf) - require.NoError(t, err) - require.NotNil(t, s.dnsProxy.Fallbacks) - - assert.Len(t, s.dnsProxy.Fallbacks.Upstreams, 1) -} - func TestServerWithProtectionDisabled(t *testing.T) { s := createTestServer( t, @@ -945,9 +917,9 @@ func TestBlockCNAMEProtectionEnabled(t *testing.T) { IPv4: testIPv4, } - s.dnsProxy.UpstreamConfig = &proxy.UpstreamConfig{ - Upstreams: []upstream.Upstream{testUpstm}, - } + // TODO(m.kazantsev): Get rid of this manual assignment of upstreams across + // the whole project. + s.conf.UpstreamConfig.Upstreams = []upstream.Upstream{testUpstm} startDeferStop(t, s) addr := s.dnsProxy.Addr(proxy.ProtoUDP) diff --git a/internal/dnsforward/process.go b/internal/dnsforward/process.go index 43bcd3bfe6b..b3cc05fadd3 100644 --- a/internal/dnsforward/process.go +++ b/internal/dnsforward/process.go @@ -228,7 +228,7 @@ func (s *Server) makeDDRResponse(req *dns.Msg) (resp *dns.Msg) { s.appendDoTResolvers(req, resp, domainName) - for _, addr := range s.dnsProxy.QUICListenAddr { + for _, addr := range s.conf.TLSConf.QUICListenAddrs { values := []dns.SVCBKeyValue{ &dns.SVCBAlpn{Alpn: []string{"doq"}}, &dns.SVCBPort{Port: uint16(addr.Port)}, @@ -259,7 +259,7 @@ func (s *Server) appendDoTResolvers(req, resp *dns.Msg, domainName string) { // addresses. // // See https://github.com/AdguardTeam/AdGuardHome/issues/4927. - for _, addr := range s.dnsProxy.TLSListenAddr { + for _, addr := range s.conf.TLSConf.TLSListenAddrs { values := []dns.SVCBKeyValue{ &dns.SVCBAlpn{Alpn: []string{"dot"}}, &dns.SVCBPort{Port: uint16(addr.Port)}, diff --git a/internal/next/dnssvc/dnssvc.go b/internal/next/dnssvc/dnssvc.go index d0e86d21147..a3af46ac91f 100644 --- a/internal/next/dnssvc/dnssvc.go +++ b/internal/next/dnssvc/dnssvc.go @@ -43,6 +43,11 @@ type Service struct { // The fields below have been used to create proxy and are saved to return // them in [Service.Config]. + // initialAddrs is the list of addresses that the service was configured to + // listen on. It may have a zero port, in which case the real port will be + // set in [Service.Start]. + initialAddrs []netip.AddrPort + bootstraps []string bootstrapResolvers []*upstream.UpstreamResolver upstreams []string @@ -80,6 +85,7 @@ func New(c *Config) (svc *Service, err error) { DNSSECEnabled: c.DNSSECEnabled, UseDNS64: c.UseDNS64, }, + initialAddrs: c.Addresses, bootstraps: c.BootstrapServers, upstreams: c.UpstreamServers, upstreamTimeout: c.UpstreamTimeout, @@ -257,20 +263,13 @@ func (svc *Service) Shutdown(ctx context.Context) (err error) { func (svc *Service) Config() (c *Config) { // TODO(a.garipov): Do we need to get the TCP addresses separately? - var addrs []netip.AddrPort + addrs := svc.initialAddrs if svc.running.Load() { udpAddrs := svc.proxy.Addrs(proxy.ProtoUDP) addrs = make([]netip.AddrPort, len(udpAddrs)) for i, a := range udpAddrs { addrs[i] = a.(*net.UDPAddr).AddrPort() } - } else { - conf := svc.proxy.Config - udpAddrs := conf.UDPListenAddr - addrs = make([]netip.AddrPort, len(udpAddrs)) - for i, a := range udpAddrs { - addrs[i] = a.AddrPort() - } } // TODO(d.kolyshev): Fill ratelimit.