From 2f9a558db974731cd4ad92dabdf2ac06b4d20b4f Mon Sep 17 00:00:00 2001 From: Fedor Setrakov Date: Wed, 8 Oct 2025 18:13:20 +0300 Subject: [PATCH] Pull request 2495: ADG-8967-upd-golibs Squashed commit of the following: commit bcdd08ecab90296572f52b801d7f80665680044c Merge: 0c62374ea 42baae311 Author: f.setrakov Date: Wed Oct 8 17:17:10 2025 +0300 Merge branch 'master' into ADG-8967-upd-golibs commit 0c62374ead62d5c0887bcddba7ae8604f840a280 Author: f.setrakov Date: Wed Oct 8 17:14:02 2025 +0300 all: upd dnsproxy & upd go commit 41e9a048532d5ca4630c4abbe86a2e509a9ba80a Author: f.setrakov Date: Wed Oct 8 14:58:20 2025 +0300 aghnet: imp logs commit 4b00781d14af359b4719bf330cef39803cb812a9 Author: f.setrakov Date: Tue Oct 7 18:13:01 2025 +0300 all: imp tests commit 703561ecfed4e84dfcde9147e8614bef67267e8c Merge: af9fe5bd9 68fac0147 Author: f.setrakov Date: Tue Oct 7 10:44:01 2025 +0300 Merge branch 'master' into ADG-8967-upd-golibs commit af9fe5bd90256912a0a9bc10ffb461221cf58aa5 Author: f.setrakov Date: Tue Oct 7 10:19:45 2025 +0300 all: upd golibs --- .github/workflows/build.yml | 2 +- .github/workflows/lint.yml | 2 +- Makefile | 2 +- bamboo-specs/release.yaml | 2 +- bamboo-specs/test.yaml | 2 +- go.mod | 24 +++---- go.sum | 44 ++++++------ internal/aghnet/hostscontainer.go | 6 +- internal/aghnet/hostscontainer_test.go | 11 +-- internal/client/storage_test.go | 22 ++++-- .../dnsforward/dnsforward_internal_test.go | 71 ++++++++++++++++--- internal/dnsforward/http_internal_test.go | 6 +- internal/filtering/hosts_test.go | 1 + internal/home/home.go | 19 ++++- 14 files changed, 148 insertions(+), 66 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7bf0f2d7..f30f7bcd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,7 +1,7 @@ 'name': 'build' 'env': - 'GO_VERSION': '1.25.1' + 'GO_VERSION': '1.25.2' 'NODE_VERSION': '20' 'on': diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b86973be..df2225ff 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,7 +1,7 @@ 'name': 'lint' 'env': - 'GO_VERSION': '1.25.1' + 'GO_VERSION': '1.25.2' 'on': 'push': diff --git a/Makefile b/Makefile index 7ceb3381..cf1be7fe 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ DIST_DIR = dist GOAMD64 = v1 GOPROXY = https://proxy.golang.org|direct GOTELEMETRY = off -GOTOOLCHAIN = go1.25.1 +GOTOOLCHAIN = go1.25.2 GPG_KEY = devteam@adguard.com GPG_KEY_PASSPHRASE = not-a-real-password NPM = npm diff --git a/bamboo-specs/release.yaml b/bamboo-specs/release.yaml index 5347802b..f54ea692 100644 --- a/bamboo-specs/release.yaml +++ b/bamboo-specs/release.yaml @@ -8,7 +8,7 @@ 'variables': 'channel': 'edge' 'dockerFrontend': 'adguard/home-js-builder:3.1' - 'dockerGo': 'adguard/go-builder:1.25.1--1' + 'dockerGo': 'adguard/go-builder:1.25.2--1' 'stages': - 'Build frontend': diff --git a/bamboo-specs/test.yaml b/bamboo-specs/test.yaml index 4473e0a7..0ad12871 100644 --- a/bamboo-specs/test.yaml +++ b/bamboo-specs/test.yaml @@ -6,7 +6,7 @@ 'name': 'AdGuard Home - Build and run tests' 'variables': 'dockerFrontend': 'adguard/home-js-builder:3.1' - 'dockerGo': 'adguard/go-builder:1.25.1--1' + 'dockerGo': 'adguard/go-builder:1.25.2--1' 'channel': 'development' 'stages': diff --git a/go.mod b/go.mod index 9a4fd30e..78620b0c 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,10 @@ module github.com/AdguardTeam/AdGuardHome -go 1.25.1 +go 1.25.2 require ( - github.com/AdguardTeam/dnsproxy v0.76.2 - github.com/AdguardTeam/golibs v0.34.1 + github.com/AdguardTeam/dnsproxy v0.77.0 + github.com/AdguardTeam/golibs v0.35.0 github.com/AdguardTeam/urlfilter v0.22.0 github.com/NYTimes/gziphandler v1.1.1 github.com/ameshkov/dnscrypt/v2 v2.4.0 @@ -35,15 +35,15 @@ require ( go.yaml.in/yaml/v4 v4.0.0-rc.2 golang.org/x/crypto v0.42.0 golang.org/x/exp v0.0.0-20250911091902-df9299821621 - golang.org/x/net v0.44.0 - golang.org/x/sys v0.36.0 + golang.org/x/net v0.45.0 + golang.org/x/sys v0.37.0 gopkg.in/natefinch/lumberjack.v2 v2.2.1 howett.net/plist v1.0.1 ) require ( cloud.google.com/go v0.123.0 // indirect - cloud.google.com/go/auth v0.16.5 // indirect + cloud.google.com/go/auth v0.17.0 // indirect cloud.google.com/go/compute/metadata v0.9.0 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/ameshkov/dnsstamps v1.0.3 // indirect @@ -87,19 +87,19 @@ require ( go.opentelemetry.io/otel/metric v1.38.0 // indirect go.opentelemetry.io/otel/trace v1.38.0 // indirect go.uber.org/mock v0.6.0 // indirect - golang.org/x/exp/typeparams v0.0.0-20250911091902-df9299821621 // indirect + golang.org/x/exp/typeparams v0.0.0-20251002181428-27f1f14c8bb9 // indirect golang.org/x/mod v0.28.0 // indirect golang.org/x/sync v0.17.0 // indirect - golang.org/x/telemetry v0.0.0-20250930190813-8e6447515a8c // indirect + golang.org/x/telemetry v0.0.0-20251001141935-4eae98a72453 // indirect golang.org/x/term v0.35.0 // indirect golang.org/x/text v0.29.0 // indirect golang.org/x/tools v0.37.0 // indirect golang.org/x/vuln v1.1.4 // indirect gonum.org/v1/gonum v0.16.0 // indirect - google.golang.org/genai v1.26.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250929231259-57b25ae835d4 // indirect - google.golang.org/grpc v1.75.1 // indirect - google.golang.org/protobuf v1.36.9 // indirect + google.golang.org/genai v1.28.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251007200510-49b9836ed3ff // indirect + google.golang.org/grpc v1.76.0 // indirect + google.golang.org/protobuf v1.36.10 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect honnef.co/go/tools v0.6.1 // indirect mvdan.cc/editorconfig v0.3.0 // indirect diff --git a/go.sum b/go.sum index ebab3c04..3c4eb233 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,13 @@ cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= -cloud.google.com/go/auth v0.16.5 h1:mFWNQ2FEVWAliEQWpAdH80omXFokmrnbDhUS9cBywsI= -cloud.google.com/go/auth v0.16.5/go.mod h1:utzRfHMP+Vv0mpOkTRQoWD2q3BatTOoWbA7gCc2dUhQ= +cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4= +cloud.google.com/go/auth v0.17.0/go.mod h1:6wv/t5/6rOPAX4fJiRjKkJCvswLwdet7G8+UGXt7nCQ= cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= -github.com/AdguardTeam/dnsproxy v0.76.2 h1:Az8r9mHaI4Tmz/Hs6xh8/GRs76gW578qxDBtBhH7oZc= -github.com/AdguardTeam/dnsproxy v0.76.2/go.mod h1:dUg1PVDa993/6Px+pN0rf45Yex8cXTwm4Bb81jax17o= -github.com/AdguardTeam/golibs v0.34.1 h1:RyBpZiXnJqlO3T+xjWldlxsEZDelmaFfKvXiJHDZZFQ= -github.com/AdguardTeam/golibs v0.34.1/go.mod h1:K4C2EbfSEM1zY5YXoti9SfbTAHN/kIX97LpDtCwORrM= +github.com/AdguardTeam/dnsproxy v0.77.0 h1:hQUqNeSDx4hK9bx90lJ4nTE1gRbhjoYYCApm6drlgPU= +github.com/AdguardTeam/dnsproxy v0.77.0/go.mod h1:tWS7JZj0uOGXaiK4NvOANc1hAL8VVPYGrNe2FuuZOHY= +github.com/AdguardTeam/golibs v0.35.0 h1:O990+tbZ5W5yB0ybtaUJy4FUb0bXxyzeUC7t8cr1pCg= +github.com/AdguardTeam/golibs v0.35.0/go.mod h1:y552twxCtvOD8KKQ7ESjo10KZBAE+HSj24yAuAvz9IA= github.com/AdguardTeam/urlfilter v0.22.0 h1:ybOz3FywbpGDGC+8gFFkM1LMUOSosY7CWSBXIYXnG1U= github.com/AdguardTeam/urlfilter v0.22.0/go.mod h1:q0lWKapXlYTA4TUWUM1YDwU6Q0PKvQEokztcvRV2OW0= github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= @@ -201,8 +201,8 @@ golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= golang.org/x/exp v0.0.0-20250911091902-df9299821621 h1:2id6c1/gto0kaHYyrixvknJ8tUK/Qs5IsmBtrc+FtgU= golang.org/x/exp v0.0.0-20250911091902-df9299821621/go.mod h1:TwQYMMnGpvZyc+JpB/UAuTNIsVJifOlSkrZkhcvpVUk= -golang.org/x/exp/typeparams v0.0.0-20250911091902-df9299821621 h1:Yl4H5w2RV7L/dvSHp2GerziT5K2CORgFINPaMFxWGWw= -golang.org/x/exp/typeparams v0.0.0-20250911091902-df9299821621/go.mod h1:4Mzdyp/6jzw9auFDJ3OMF5qksa7UvPnzKqTVGcb04ms= +golang.org/x/exp/typeparams v0.0.0-20251002181428-27f1f14c8bb9 h1:EvjuVHWMoRaAxH402KMgrQpGUjoBy/OWvZjLOqQnwNk= +golang.org/x/exp/typeparams v0.0.0-20251002181428-27f1f14c8bb9/go.mod h1:4Mzdyp/6jzw9auFDJ3OMF5qksa7UvPnzKqTVGcb04ms= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= @@ -213,8 +213,8 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= -golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= +golang.org/x/net v0.45.0 h1:RLBg5JKixCy82FtLJpeNlVM0nrSqpCRYzVU1n8kj0tM= +golang.org/x/net v0.45.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= @@ -227,10 +227,10 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/telemetry v0.0.0-20250930190813-8e6447515a8c h1:MsueSJrtclpfbcgPRFyj7XAy73cuuce6EYRcSutPUZY= -golang.org/x/telemetry v0.0.0-20250930190813-8e6447515a8c/go.mod h1:+nZKN+XVh4LCiA9DV3ywrzN4gumyCnKjau3NGb9SGoE= +golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/telemetry v0.0.0-20251001141935-4eae98a72453 h1:UMcclxirvpV79c6GDkin5Z9OeBachvXq6x4cUCGWhWY= +golang.org/x/telemetry v0.0.0-20251001141935-4eae98a72453/go.mod h1:+nZKN+XVh4LCiA9DV3ywrzN4gumyCnKjau3NGb9SGoE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= @@ -252,14 +252,14 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/genai v1.26.0 h1:r4HGL54kFv/WCRMTAbZg05Ct+vXfhAbTRlXhFyBkEQo= -google.golang.org/genai v1.26.0/go.mod h1:OClfdf+r5aaD+sCd4aUSkPzJItmg2wD/WON9lQnRPaY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250929231259-57b25ae835d4 h1:i8QOKZfYg6AbGVZzUAY3LrNWCKF8O6zFisU9Wl9RER4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250929231259-57b25ae835d4/go.mod h1:HSkG/KdJWusxU1F6CNrwNDjBMgisKxGnc5dAZfT0mjQ= -google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI= -google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= -google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= -google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +google.golang.org/genai v1.28.0 h1:6qpUWFH3PkHPhxNnu3wjaCVJ6Jri1EIR7ks07f9IpIk= +google.golang.org/genai v1.28.0/go.mod h1:7pAilaICJlQBonjKKJNhftDFv3SREhZcTe9F6nRcjbg= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251007200510-49b9836ed3ff h1:A90eA31Wq6HOMIQlLfzFwzqGKBTuaVztYu/g8sn+8Zc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251007200510-49b9836ed3ff/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A= +google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/internal/aghnet/hostscontainer.go b/internal/aghnet/hostscontainer.go index 3cd3a340..a458c140 100644 --- a/internal/aghnet/hostscontainer.go +++ b/internal/aghnet/hostscontainer.go @@ -221,10 +221,12 @@ func (hc *HostsContainer) refresh(ctx context.Context) (err error) { hc.logger.DebugContext(ctx, "refreshing") // The error is always nil here since no readers passed. - strg, _ := hostsfile.NewDefaultStorage() + strg, _ := hostsfile.NewDefaultStorage(ctx, &hostsfile.DefaultStorageConfig{ + Logger: hc.logger, + }) _, err = aghos.FileWalker(func(r io.Reader) (patterns []string, cont bool, err error) { // Don't wrap the error since it's already informative enough as is. - return nil, true, hostsfile.Parse(strg, r, nil) + return nil, true, hostsfile.Parse(ctx, strg, r, nil) }).Walk(hc.fsys, hc.patterns...) if err != nil { // Don't wrap the error since it's informative enough as is. diff --git a/internal/aghnet/hostscontainer_test.go b/internal/aghnet/hostscontainer_test.go index e541fadf..d68138ad 100644 --- a/internal/aghnet/hostscontainer_test.go +++ b/internal/aghnet/hostscontainer_test.go @@ -68,6 +68,7 @@ func TestNewHostsContainer(t *testing.T) { } ctx := testutil.ContextWithTimeout(t, testTimeout) + hc, err := aghnet.NewHostsContainer(ctx, testLogger, testFS, &aghtest.FSWatcher{ OnStart: func(ctx context.Context) (_ error) { panic(testutil.UnexpectedCall(ctx)) @@ -96,8 +97,8 @@ func TestNewHostsContainer(t *testing.T) { } t.Run("nil_fs", func(t *testing.T) { + ctx := testutil.ContextWithTimeout(t, testTimeout) require.Panics(t, func() { - ctx := testutil.ContextWithTimeout(t, testTimeout) _, _ = aghnet.NewHostsContainer(ctx, testLogger, nil, &aghtest.FSWatcher{ OnStart: func(ctx context.Context) (_ error) { panic(testutil.UnexpectedCall(ctx)) @@ -182,8 +183,10 @@ func TestHostsContainer_refresh(t *testing.T) { require.NoError(t, err) testutil.CleanupAndRequireSuccess(t, hc.Close) - strg, _ := hostsfile.NewDefaultStorage() - strg.Add(r1) + strg, _ := hostsfile.NewDefaultStorage(ctx, &hostsfile.DefaultStorageConfig{ + Logger: testLogger, + }) + strg.Add(ctx, r1) t.Run("initial_refresh", func(t *testing.T) { upd, ok := testutil.RequireReceive(t, hc.Upd(), 1*time.Second) @@ -192,7 +195,7 @@ func TestHostsContainer_refresh(t *testing.T) { assert.True(t, strg.Equal(upd)) }) - strg.Add(r2) + strg.Add(ctx, r2) t.Run("second_refresh", func(t *testing.T) { testFS["dir/file2"] = &fstest.MapFile{Data: r2Data} diff --git a/internal/client/storage_test.go b/internal/client/storage_test.go index 3e6e2dd3..b98a8264 100644 --- a/internal/client/storage_test.go +++ b/internal/client/storage_test.go @@ -153,10 +153,12 @@ func TestStorage_Add_hostsfile(t *testing.T) { t.Run("add_hosts", func(t *testing.T) { var s *hostsfile.DefaultStorage - s, err = hostsfile.NewDefaultStorage() + s, err = hostsfile.NewDefaultStorage(ctx, &hostsfile.DefaultStorageConfig{ + Logger: testLogger, + }) require.NoError(t, err) - s.Add(&hostsfile.Record{ + s.Add(ctx, &hostsfile.Record{ Addr: cliIP1, Names: []string{cliName1}, }) @@ -173,10 +175,12 @@ func TestStorage_Add_hostsfile(t *testing.T) { t.Run("update_hosts", func(t *testing.T) { var s *hostsfile.DefaultStorage - s, err = hostsfile.NewDefaultStorage() + s, err = hostsfile.NewDefaultStorage(ctx, &hostsfile.DefaultStorageConfig{ + Logger: testLogger, + }) require.NoError(t, err) - s.Add(&hostsfile.Record{ + s.Add(ctx, &hostsfile.Record{ Addr: cliIP2, Names: []string{cliName2}, }) @@ -452,10 +456,12 @@ func TestClientsDHCP(t *testing.T) { require.True(t, t.Run("find_runtime_higher_priority", func(t *testing.T) { // Add a higher-priority client. - s, strgErr := hostsfile.NewDefaultStorage() + s, strgErr := hostsfile.NewDefaultStorage(ctx, &hostsfile.DefaultStorageConfig{ + Logger: testLogger, + }) require.NoError(t, strgErr) - s.Add(&hostsfile.Record{ + s.Add(ctx, &hostsfile.Record{ Addr: cliIP1, Names: []string{cliName1}, }) @@ -476,7 +482,9 @@ func TestClientsDHCP(t *testing.T) { // // TODO(a.garipov): Consider adding ways of explicitly clearing runtime // sources by source. - s, strgErr = hostsfile.NewDefaultStorage() + s, strgErr = hostsfile.NewDefaultStorage(ctx, &hostsfile.DefaultStorageConfig{ + Logger: testLogger, + }) require.NoError(t, strgErr) testutil.RequireSend(t, etcHostsCh, s, testTimeout) diff --git a/internal/dnsforward/dnsforward_internal_test.go b/internal/dnsforward/dnsforward_internal_test.go index 04711dea..0d8fb51e 100644 --- a/internal/dnsforward/dnsforward_internal_test.go +++ b/internal/dnsforward/dnsforward_internal_test.go @@ -209,11 +209,19 @@ func createServerTLSConfig(tb testing.TB) (*tls.Config, []byte, []byte) { } template.DNSNames = append(template.DNSNames, tlsServerName) - derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, publicKey(privateKey), privateKey) + derBytes, err := x509.CreateCertificate( + rand.Reader, + &template, + &template, + publicKey(privateKey), + privateKey, + ) require.NoErrorf(tb, err, "failed to create certificate: %s", err) certPem := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: derBytes}) - keyPem := pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(privateKey)}) + keyPem := pem.EncodeToMemory( + &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(privateKey)}, + ) cert, err := tls.X509KeyPair(certPem, keyPem) require.NoErrorf(tb, err, "failed to create certificate: %s", err) @@ -1065,10 +1073,22 @@ func TestNullBlockedRequest(t *testing.T) { reply, err := dns.Exchange(&req, addr.String()) require.NoErrorf(t, err, "couldn't talk to server %s: %s", addr, err) - require.Lenf(t, reply.Answer, 1, "dns server %s returned reply with wrong number of answers - %d", addr, len(reply.Answer)) - a, ok := reply.Answer[0].(*dns.A) - require.Truef(t, ok, "dns server %s returned wrong answer type instead of A: %v", addr, reply.Answer[0]) - assert.Truef(t, a.A.IsUnspecified(), "dns server %s returned wrong answer instead of 0.0.0.0: %v", addr, a.A) + require.Lenf( + t, + reply.Answer, + 1, + "dns server %s returned reply with wrong number of answers - %d", + addr, + len(reply.Answer), + ) + a := testutil.RequireTypeAssert[*dns.A](t, reply.Answer[0]) + assert.Truef( + t, + a.A.IsUnspecified(), + "dns server %s returned wrong answer instead of 0.0.0.0: %v", + addr, + a.A, + ) } func TestBlockedCustomIP(t *testing.T) { @@ -1184,10 +1204,30 @@ func TestBlockedByHosts(t *testing.T) { reply, err := dns.Exchange(req, addr.String()) require.NoErrorf(t, err, "couldn't talk to server %s: %s", addr, err) - require.Lenf(t, reply.Answer, 1, "dns server %s returned reply with wrong number of answers - %d", addr, len(reply.Answer)) + require.Lenf( + t, + reply.Answer, + 1, + "dns server %s returned reply with wrong number of answers - %d", + addr, + len(reply.Answer), + ) a, ok := reply.Answer[0].(*dns.A) - require.Truef(t, ok, "dns server %s returned wrong answer type instead of A: %v", addr, reply.Answer[0]) - assert.Equalf(t, net.IP{127, 0, 0, 1}, a.A, "dns server %s returned wrong answer instead of 8.8.8.8: %v", addr, a.A) + require.Truef( + t, + ok, + "dns server %s returned wrong answer type instead of A: %v", + addr, + reply.Answer[0], + ) + assert.Equalf( + t, + net.IP{127, 0, 0, 1}, + a.A, + "dns server %s returned wrong answer instead of 8.8.8.8: %v", + addr, + a.A, + ) } func TestBlockedBySafeBrowsing(t *testing.T) { @@ -1235,7 +1275,14 @@ func TestBlockedBySafeBrowsing(t *testing.T) { reply, err := dns.Exchange(req, addr.String()) require.NoErrorf(t, err, "couldn't talk to server %s: %s", addr, err) - require.Lenf(t, reply.Answer, 1, "dns server %s returned reply with wrong number of answers - %d", addr, len(reply.Answer)) + require.Lenf( + t, + reply.Answer, + 1, + "dns server %s returned reply with wrong number of answers - %d", + addr, + len(reply.Answer), + ) assertResponse(t, reply, ans4) } @@ -1643,7 +1690,9 @@ func TestServer_Exchange(t *testing.T) { extUpsHdlr := dns.HandlerFunc(func(w dns.ResponseWriter, req *dns.Msg) { resp := cmp.Or( aghtest.MatchedResponse(req, dns.TypePTR, onesRevExtIPv4, dns.Fqdn(onesHost)), - doubleTTL(aghtest.MatchedResponse(req, dns.TypePTR, twosRevExtIPv4, dns.Fqdn(twosHost))), + doubleTTL( + aghtest.MatchedResponse(req, dns.TypePTR, twosRevExtIPv4, dns.Fqdn(twosHost)), + ), new(dns.Msg).SetRcode(req, dns.RcodeNameError), ) diff --git a/internal/dnsforward/http_internal_test.go b/internal/dnsforward/http_internal_test.go index 2cc99afe..d78bb65a 100644 --- a/internal/dnsforward/http_internal_test.go +++ b/internal/dnsforward/http_internal_test.go @@ -292,7 +292,11 @@ func TestDNSForwardHTTP_handleSetConfig(t *testing.T) { t.Run(tc.name, func(t *testing.T) { t.Cleanup(func() { - s.dnsFilter.SetBlockingMode(filtering.BlockingModeDefault, netip.Addr{}, netip.Addr{}) + s.dnsFilter.SetBlockingMode( + filtering.BlockingModeDefault, + netip.Addr{}, + netip.Addr{}, + ) s.conf = defaultConf s.conf.Config.EDNSClientSubnet = &EDNSClientSubnet{} s.dnsFilter.SetBlockedResponseTTL(testBlockedRespTTL) diff --git a/internal/filtering/hosts_test.go b/internal/filtering/hosts_test.go index 9d395667..8a9c87e8 100644 --- a/internal/filtering/hosts_test.go +++ b/internal/filtering/hosts_test.go @@ -48,6 +48,7 @@ func TestDNSFilter_CheckHost_hostsContainer(t *testing.T) { OnAdd: func(name string) (err error) { return nil }, OnShutdown: func(_ context.Context) (err error) { return nil }, } + ctx := testutil.ContextWithTimeout(t, testTimeout) hc, err := aghnet.NewHostsContainer(ctx, testLogger, files, watcher, "hosts") require.NoError(t, err) diff --git a/internal/home/home.go b/internal/home/home.go index 55fc3ba5..6b64a52e 100644 --- a/internal/home/home.go +++ b/internal/home/home.go @@ -748,7 +748,14 @@ func run( confPath := configFilePath() updLogger := slogLogger.With(slogutil.KeyPrefix, "updater") - upd, isCustomURL := newUpdater(ctx, updLogger, config, globalContext.workDir, confPath, execPath) + upd, isCustomURL := newUpdater( + ctx, + updLogger, + config, + globalContext.workDir, + confPath, + execPath, + ) // TODO(e.burkov): This could be made earlier, probably as the option's // effect. @@ -819,7 +826,15 @@ func run( } if !opts.noPermCheck { - checkPermissions(ctx, slogLogger, globalContext.workDir, confPath, dataDir, statsDir, querylogDir) + checkPermissions( + ctx, + slogLogger, + globalContext.workDir, + confPath, + dataDir, + statsDir, + querylogDir, + ) } web.start(ctx)