Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -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=
Expand Down
34 changes: 3 additions & 31 deletions internal/dnsforward/dnsforward_internal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions internal/dnsforward/process.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)},
Expand Down Expand Up @@ -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)},
Expand Down
15 changes: 7 additions & 8 deletions internal/next/dnssvc/dnssvc.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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.
Expand Down
Loading