Skip to content

Commit 99cc3ff

Browse files
committed
Pull request 401: AGDNS-2862-math-rand-v2
Merge in GO/dnsproxy from AGDNS-2862-math-rand-v2 to master Squashed commit of the following: commit e965cea Merge: 38e6527 1fdda9a Author: Stanislav Chzhen <s.chzhen@adguard.com> Date: Tue May 6 16:54:58 2025 +0300 Merge branch 'master' into AGDNS-2862-math-rand-v2 commit 38e6527 Author: Stanislav Chzhen <s.chzhen@adguard.com> Date: Tue May 6 16:54:45 2025 +0300 all: upd docs commit 6357999 Author: Stanislav Chzhen <s.chzhen@adguard.com> Date: Mon May 5 22:47:53 2025 +0300 all: downgrate quic-go commit 711aba7 Author: Stanislav Chzhen <s.chzhen@adguard.com> Date: Mon May 5 21:23:45 2025 +0300 all: upd all
1 parent 1fdda9a commit 99cc3ff

File tree

4 files changed

+55
-60
lines changed

4 files changed

+55
-60
lines changed

go.mod

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@ module github.com/AdguardTeam/dnsproxy
33
go 1.24.2
44

55
require (
6-
github.com/AdguardTeam/golibs v0.32.7
7-
github.com/ameshkov/dnscrypt/v2 v2.3.0
6+
github.com/AdguardTeam/golibs v0.32.9
7+
github.com/ameshkov/dnscrypt/v2 v2.4.0
88
github.com/ameshkov/dnsstamps v1.0.3
99
github.com/beefsack/go-rate v0.0.0-20220214233405-116f4ca011a0
1010
github.com/bluele/gcache v0.0.2
11-
github.com/miekg/dns v1.1.62
11+
github.com/miekg/dns v1.1.65
1212
github.com/patrickmn/go-cache v2.1.0+incompatible
13+
// TODO(s.chzhen): Update after investigation of the 0-RTT bug/behavior
14+
// when TestUpstreamDoH_serverRestart/http3/second_try keeps failing.
1315
github.com/quic-go/quic-go v0.48.2
1416
github.com/stretchr/testify v1.10.0
15-
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394
17+
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect
1618
golang.org/x/net v0.39.0
17-
golang.org/x/sys v0.32.0
18-
// TODO(e.burkov): Either find a better maintained dependency or implement
19-
// the weighted random algorithm yourself.
20-
gonum.org/v1/gonum v0.15.1
19+
golang.org/x/sys v0.33.0
20+
gonum.org/v1/gonum v0.16.0
2121
gopkg.in/yaml.v3 v3.0.1
2222
)
2323

@@ -29,8 +29,6 @@ require (
2929
cloud.google.com/go/compute/metadata v0.6.0 // indirect
3030
cloud.google.com/go/longrunning v0.6.6 // indirect
3131
github.com/BurntSushi/toml v1.5.0 // indirect
32-
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
33-
github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635 // indirect
3432
github.com/ccojocar/zxcvbn-go v1.0.4 // indirect
3533
github.com/davecgh/go-spew v1.1.1 // indirect
3634
github.com/felixge/httpsnoop v1.0.4 // indirect
@@ -41,7 +39,7 @@ require (
4139
github.com/golangci/misspell v0.6.0 // indirect
4240
github.com/google/generative-ai-go v0.19.0 // indirect
4341
github.com/google/go-cmp v0.7.0 // indirect
44-
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
42+
github.com/google/pprof v0.0.0-20250501235452-c0086092b71a // indirect
4543
github.com/google/renameio/v2 v2.0.0 // indirect
4644
github.com/google/s2a-go v0.1.9 // indirect
4745
github.com/google/uuid v1.6.0 // indirect
@@ -51,7 +49,7 @@ require (
5149
github.com/gordonklaus/ineffassign v0.1.0 // indirect
5250
github.com/jstemmer/go-junit-report/v2 v2.1.0 // indirect
5351
github.com/kisielk/errcheck v1.9.0 // indirect
54-
github.com/onsi/ginkgo/v2 v2.23.3 // indirect
52+
github.com/onsi/ginkgo/v2 v2.23.4 // indirect
5553
github.com/pmezard/go-difflib v1.0.0 // indirect
5654
github.com/quic-go/qpack v0.5.1 // indirect
5755
github.com/robfig/cron/v3 v3.0.1 // indirect
@@ -65,12 +63,13 @@ require (
6563
go.opentelemetry.io/otel v1.35.0 // indirect
6664
go.opentelemetry.io/otel/metric v1.35.0 // indirect
6765
go.opentelemetry.io/otel/trace v1.35.0 // indirect
68-
go.uber.org/mock v0.5.0 // indirect
66+
go.uber.org/automaxprocs v1.6.0 // indirect
67+
go.uber.org/mock v0.5.2 // indirect
6968
golang.org/x/crypto v0.37.0 // indirect
7069
golang.org/x/exp/typeparams v0.0.0-20250408133849-7e4ce0ab07d0 // indirect
7170
golang.org/x/mod v0.24.0 // indirect
7271
golang.org/x/oauth2 v0.29.0 // indirect
73-
golang.org/x/sync v0.13.0 // indirect
72+
golang.org/x/sync v0.14.0 // indirect
7473
golang.org/x/telemetry v0.0.0-20250406004356-f593adaf3fc1 // indirect
7574
golang.org/x/term v0.31.0 // indirect
7675
golang.org/x/text v0.24.0 // indirect
@@ -84,7 +83,7 @@ require (
8483
google.golang.org/protobuf v1.36.6 // indirect
8584
honnef.co/go/tools v0.6.1 // indirect
8685
mvdan.cc/editorconfig v0.3.0 // indirect
87-
mvdan.cc/gofumpt v0.7.0 // indirect
86+
mvdan.cc/gofumpt v0.8.0 // indirect
8887
mvdan.cc/sh/v3 v3.11.0 // indirect
8988
mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4 // indirect
9089
)

go.sum

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,12 @@ cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4
1010
cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg=
1111
cloud.google.com/go/longrunning v0.6.6 h1:XJNDo5MUfMM05xK3ewpbSdmt7R2Zw+aQEMbdQR65Rbw=
1212
cloud.google.com/go/longrunning v0.6.6/go.mod h1:hyeGJUrPHcx0u2Uu1UFSoYZLn4lkMrccJig0t4FI7yw=
13-
github.com/AdguardTeam/golibs v0.32.7 h1:3dmGlAVgmvquCCwHsvEl58KKcRAK3z1UnjMnwSIeDH4=
14-
github.com/AdguardTeam/golibs v0.32.7/go.mod h1:bE8KV1zqTzgZjmjFyBJ9f9O5DEKO717r7e57j1HclJA=
13+
github.com/AdguardTeam/golibs v0.32.9 h1:/6luT0aMOn05/s9eh1yA4lbcHgl0d1iEEvEBbIMMUk0=
14+
github.com/AdguardTeam/golibs v0.32.9/go.mod h1:McV1QFFlKLElKa306V4OL/T2kr7564PhsayfvTWYBVs=
1515
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
1616
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
17-
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY=
18-
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA=
19-
github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635 h1:52m0LGchQBBVqJRyYYufQuIbVqRawmubW3OFGqK1ekw=
20-
github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635/go.mod h1:lmLxL+FV291OopO93Bwf9fQLQeLyt33VJRUg5VJ30us=
21-
github.com/ameshkov/dnscrypt/v2 v2.3.0 h1:pDXDF7eFa6Lw+04C0hoMh8kCAQM8NwUdFEllSP2zNLs=
22-
github.com/ameshkov/dnscrypt/v2 v2.3.0/go.mod h1:N5hDwgx2cNb4Ay7AhvOSKst+eUiOZ/vbKRO9qMpQttE=
17+
github.com/ameshkov/dnscrypt/v2 v2.4.0 h1:if6ZG2cuQmcP2TwSY+D0+8+xbPfoatufGlOQTMNkI9o=
18+
github.com/ameshkov/dnscrypt/v2 v2.4.0/go.mod h1:WpEFV2uhebXb8Jhes/5/fSdpmhGV8TL22RDaeWwV6hI=
2319
github.com/ameshkov/dnsstamps v1.0.3 h1:Srzik+J9mivH1alRACTbys2xOxs0lRH9qnTA7Y1OYVo=
2420
github.com/ameshkov/dnsstamps v1.0.3/go.mod h1:Ii3eUu73dx4Vw5O4wjzmT5+lkCwovjzaEZZ4gKyIH5A=
2521
github.com/beefsack/go-rate v0.0.0-20220214233405-116f4ca011a0 h1:0b2vaepXIfMsG++IsjHiI2p4bxALD1Y2nQKGMR5zDQM=
@@ -54,8 +50,8 @@ github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786/go.mod h1:apVn
5450
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
5551
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
5652
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
57-
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg=
58-
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
53+
github.com/google/pprof v0.0.0-20250501235452-c0086092b71a h1:rDA3FfmxwXR+BVKKdz55WwMJ1pD2hJQNW31d+l3mPk4=
54+
github.com/google/pprof v0.0.0-20250501235452-c0086092b71a/go.mod h1:5hDyRhoBCxViHszMt12TnOpEI4VVi+U8Gm9iphldiMA=
5955
github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA=
6056
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
6157
github.com/google/renameio/v2 v2.0.0 h1:UifI23ZTGY8Tt29JbYFiuyIU3eX+RNFtUwefq9qAhxg=
@@ -80,16 +76,18 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
8076
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
8177
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
8278
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
83-
github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ=
84-
github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ=
85-
github.com/onsi/ginkgo/v2 v2.23.3 h1:edHxnszytJ4lD9D5Jjc4tiDkPBZ3siDeJJkUZJJVkp0=
86-
github.com/onsi/ginkgo/v2 v2.23.3/go.mod h1:zXTP6xIp3U8aVuXN8ENK9IXRaTjFnpVB9mGmaSRvxnM=
79+
github.com/miekg/dns v1.1.65 h1:0+tIPHzUW0GCge7IiK3guGP57VAw7hoPDfApjkMD1Fc=
80+
github.com/miekg/dns v1.1.65/go.mod h1:Dzw9769uoKVaLuODMDZz9M6ynFU6Em65csPuoi8G0ck=
81+
github.com/onsi/ginkgo/v2 v2.23.4 h1:ktYTpKJAVZnDT4VjxSbiBenUjmlL/5QkBEocaWXiQus=
82+
github.com/onsi/ginkgo/v2 v2.23.4/go.mod h1:Bt66ApGPBFzHyR+JO10Zbt0Gsp4uWxu5mIOTusL46e8=
8783
github.com/onsi/gomega v1.36.3 h1:hID7cr8t3Wp26+cYnfcjR6HpJ00fdogN6dqZ1t6IylU=
8884
github.com/onsi/gomega v1.36.3/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0=
8985
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
9086
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
9187
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
9288
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
89+
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
90+
github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
9391
github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI=
9492
github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg=
9593
github.com/quic-go/quic-go v0.48.2 h1:wsKXZPeGWpMpCGSWqOcqpW2wZYic/8T3aqiOID0/KWE=
@@ -125,14 +123,16 @@ go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5J
125123
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
126124
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
127125
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
128-
go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
129-
go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
126+
go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
127+
go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
128+
go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko=
129+
go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o=
130130
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
131131
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
132132
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
133133
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
134-
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw=
135-
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
134+
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM=
135+
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8=
136136
golang.org/x/exp/typeparams v0.0.0-20250408133849-7e4ce0ab07d0 h1:oMe07YcizemJ09rs2kRkFYAp0pt4e1lYLwPWiEGMpXE=
137137
golang.org/x/exp/typeparams v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:LKZHyeOpPuZcMgxeHjJp4p5yvxrCX1xDvH10zYHhjjQ=
138138
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -147,15 +147,15 @@ golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98=
147147
golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
148148
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
149149
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
150-
golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
151-
golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
150+
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
151+
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
152152
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
153153
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
154154
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
155155
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
156156
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
157-
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
158-
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
157+
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
158+
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
159159
golang.org/x/telemetry v0.0.0-20250406004356-f593adaf3fc1 h1:LxyDqgHX2VuimV2UQSNFpQxz+NRUUsh8ulNcP3WvNG0=
160160
golang.org/x/telemetry v0.0.0-20250406004356-f593adaf3fc1/go.mod h1:RoaXAWDwS90j6FxVKwJdBV+0HCU+llrKUGgJaxiKl6M=
161161
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -177,8 +177,8 @@ golang.org/x/vuln v1.1.4/go.mod h1:F+45wmU18ym/ca5PLTPLsSzr2KppzswxPP603ldA67s=
177177
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
178178
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
179179
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
180-
gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0=
181-
gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o=
180+
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
181+
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
182182
google.golang.org/api v0.228.0 h1:X2DJ/uoWGnY5obVjewbp8icSL5U4FzuCfy9OjbLSnLs=
183183
google.golang.org/api v0.228.0/go.mod h1:wNvRS1Pbe8r4+IfBIniV8fwCpGwTrYa+kMUDiC5z5a4=
184184
google.golang.org/genproto/googleapis/api v0.0.0-20250409194420-de1ac958c67a h1:OQ7sHVzkx6L57dQpzUS4ckfWJ51KDH74XHTDe23xWAs=
@@ -198,8 +198,8 @@ honnef.co/go/tools v0.6.1 h1:R094WgE8K4JirYjBaOpz/AvTyUu/3wbmAoskKN/pxTI=
198198
honnef.co/go/tools v0.6.1/go.mod h1:3puzxxljPCe8RGJX7BIy1plGbxEOZni5mR2aXe3/uk4=
199199
mvdan.cc/editorconfig v0.3.0 h1:D1D2wLYEYGpawWT5SpM5pRivgEgXjtEXwC9MWhEY0gQ=
200200
mvdan.cc/editorconfig v0.3.0/go.mod h1:NcJHuDtNOTEJ6251indKiWuzK6+VcrMuLzGMLKBFupQ=
201-
mvdan.cc/gofumpt v0.7.0 h1:bg91ttqXmi9y2xawvkuMXyvAA/1ZGJqYAEGjXuP0JXU=
202-
mvdan.cc/gofumpt v0.7.0/go.mod h1:txVFJy/Sc/mvaycET54pV8SW8gWxTlUuGHVEcncmNUo=
201+
mvdan.cc/gofumpt v0.8.0 h1:nZUCeC2ViFaerTcYKstMmfysj6uhQrA2vJe+2vwGU6k=
202+
mvdan.cc/gofumpt v0.8.0/go.mod h1:vEYnSzyGPmjvFkqJWtXkh79UwPWP9/HMxQdGEXZHjpg=
203203
mvdan.cc/sh/v3 v3.11.0 h1:q5h+XMDRfUGUedCqFFsjoFjrhwf2Mvtt1rkMvVz0blw=
204204
mvdan.cc/sh/v3 v3.11.0/go.mod h1:LRM+1NjoYCzuq/WZ6y44x14YNAI0NK7FLPeQSaFagGg=
205205
mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4 h1:WjUu4yQoT5BHT1w8Zu56SP8367OuBV5jvo+4Ulppyf8=

proxy/exchange_internal_test.go

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package proxy
22

33
import (
4+
"math/rand/v2"
45
"net"
56
"net/netip"
67
"sync"
@@ -15,9 +16,6 @@ import (
1516
"github.com/AdguardTeam/golibs/timeutil"
1617
"github.com/miekg/dns"
1718
"github.com/stretchr/testify/assert"
18-
19-
//lint:ignore SA1019 See TODO for the gonum.org/v1/gonum import in go.mod.
20-
"golang.org/x/exp/rand"
2119
)
2220

2321
// newUpstreamWithErrorRate returns an [upstream.Upstream] that responds with an
@@ -62,7 +60,7 @@ func (u measuredUpstream) Exchange(req *dns.Msg) (resp *dns.Msg, err error) {
6260

6361
func TestProxy_Exchange_loadBalance(t *testing.T) {
6462
// Make the test deterministic.
65-
randSrc := rand.NewSource(42)
63+
randSrc := rand.New(rand.NewPCG(42, 42))
6664

6765
const (
6866
testRTT = 1 * time.Second
@@ -152,18 +150,18 @@ func TestProxy_Exchange_loadBalance(t *testing.T) {
152150
servers []upstream.Upstream
153151
}{{
154152
wantStat: map[string]int64{
155-
fastUps.Address(): 8917,
156-
slowerUps.Address(): 911,
157-
slowestUps.Address(): 172,
153+
fastUps.Address(): 8910,
154+
slowerUps.Address(): 902,
155+
slowestUps.Address(): 188,
158156
},
159157
clock: zeroingClock,
160158
name: "all_good",
161159
servers: []upstream.Upstream{slowestUps, slowerUps, fastUps},
162160
}, {
163161
wantStat: map[string]int64{
164-
fastUps.Address(): 9081,
165-
slowerUps.Address(): 919,
166-
err1Ups.Address(): 7,
162+
fastUps.Address(): 9110,
163+
slowerUps.Address(): 890,
164+
err1Ups.Address(): 6,
167165
},
168166
clock: zeroingClock,
169167
name: "one_bad",
@@ -178,18 +176,18 @@ func TestProxy_Exchange_loadBalance(t *testing.T) {
178176
servers: []upstream.Upstream{err2Ups, err1Ups},
179177
}, {
180178
wantStat: map[string]int64{
181-
fastUps.Address(): 7803,
182-
slowerUps.Address(): 833,
183-
fastestUps.Address(): 1365,
179+
fastUps.Address(): 7222,
180+
slowerUps.Address(): 748,
181+
fastestUps.Address(): 2031,
184182
},
185183
clock: zeroingClock,
186184
name: "error_once",
187185
servers: []upstream.Upstream{fastUps, slowerUps, fastestUps},
188186
}, {
189187
wantStat: map[string]int64{
190-
each200.Address(): 5316,
191-
each100.Address(): 3090,
192-
each50.Address(): 1683,
188+
each200.Address(): 5258,
189+
each100.Address(): 3142,
190+
each50.Address(): 1690,
193191
},
194192
clock: constClock,
195193
name: "error_each_nth",

proxy/proxy.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"fmt"
99
"io"
1010
"log/slog"
11+
"math/rand/v2"
1112
"net"
1213
"net/http"
1314
"net/netip"
@@ -31,9 +32,6 @@ import (
3132
gocache "github.com/patrickmn/go-cache"
3233
"github.com/quic-go/quic-go"
3334
"github.com/quic-go/quic-go/http3"
34-
35-
//lint:ignore SA1019 See TODO for the gonum.org/v1/gonum import in go.mod.
36-
"golang.org/x/exp/rand"
3735
)
3836

3937
const (

0 commit comments

Comments
 (0)