diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6f74b13e..ac55c152 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,7 +1,7 @@ 'name': 'build' 'env': - 'GO_VERSION': '1.18.9' + 'GO_VERSION': '1.19.5' 'NODE_VERSION': '14' 'on': diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ce89779f..468124e9 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,7 +1,7 @@ 'name': 'lint' 'env': - 'GO_VERSION': '1.18.9' + 'GO_VERSION': '1.19.5' 'on': 'push': diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f7c039b..30e280f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,7 +26,9 @@ NOTE: Add new changes BELOW THIS COMMENT. ### Added - The ability to exclude domain names from the query log by using the new - `querylog.ignored` field ([#1717], [#4299]. + `querylog.ignored` field ([#1717], [#4299]). + +### Changed #### Configuration Changes @@ -54,10 +56,18 @@ In this release, the schema version has changed from 14 to 15. object, remove `querylog` object and `querylog.ignored` property, and change the `schema_version` back to `14`. +### Deprecated + +- Go 1.19 support. Future versions will require at least Go 1.20 to build. + ### Fixed - The icon for League Of Legends on the Blocked services page ([#5433]). +### Removed + +- Go 1.18 support, as it has reached end of life. + [#1717]: https://github.com/AdguardTeam/AdGuardHome/issues/1717 [#4299]: https://github.com/AdguardTeam/AdGuardHome/issues/4299 [#5433]: https://github.com/AdguardTeam/AdGuardHome/issues/5433 diff --git a/README.md b/README.md index 73e09556..4c011b78 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,7 @@ Run `make init` to prepare the development environment. You will need this to build AdGuard Home: - * [Go](https://golang.org/dl/) v1.18 or later; + * [Go](https://golang.org/dl/) v1.19 or later; * [Node.js](https://nodejs.org/en/download/) v10.16.2 or later; * [npm](https://www.npmjs.com/) v6.14 or later; * [yarn](https://yarnpkg.com/) v1.22.5 or later. diff --git a/bamboo-specs/release.yaml b/bamboo-specs/release.yaml index bfdfff3b..8768f4eb 100644 --- a/bamboo-specs/release.yaml +++ b/bamboo-specs/release.yaml @@ -7,7 +7,7 @@ # Make sure to sync any changes with the branch overrides below. 'variables': 'channel': 'edge' - 'dockerGo': 'adguard/golang-ubuntu:5.4' + 'dockerGo': 'adguard/golang-ubuntu:6.0' 'stages': - 'Build frontend': @@ -323,7 +323,7 @@ # need to build a few of these. 'variables': 'channel': 'beta' - 'dockerGo': 'adguard/golang-ubuntu:5.4' + 'dockerGo': 'adguard/golang-ubuntu:6.0' # release-vX.Y.Z branches are the branches from which the actual final release # is built. - '^release-v[0-9]+\.[0-9]+\.[0-9]+': @@ -338,4 +338,4 @@ # are the ones that actually get released. 'variables': 'channel': 'release' - 'dockerGo': 'adguard/golang-ubuntu:5.4' + 'dockerGo': 'adguard/golang-ubuntu:6.0' diff --git a/bamboo-specs/test.yaml b/bamboo-specs/test.yaml index 0ea2df9c..41aa789a 100644 --- a/bamboo-specs/test.yaml +++ b/bamboo-specs/test.yaml @@ -5,7 +5,7 @@ 'key': 'AHBRTSPECS' 'name': 'AdGuard Home - Build and run tests' 'variables': - 'dockerGo': 'adguard/golang-ubuntu:5.4' + 'dockerGo': 'adguard/golang-ubuntu:6.0' 'stages': - 'Tests': diff --git a/go.mod b/go.mod index 789645c3..5e2c78dd 100644 --- a/go.mod +++ b/go.mod @@ -1,9 +1,10 @@ module github.com/AdguardTeam/AdGuardHome -go 1.18 +go 1.19 require ( - github.com/AdguardTeam/dnsproxy v0.47.0 + // TODO(a.garipov): Use v0.48.0 when it's released. + github.com/AdguardTeam/dnsproxy v0.47.1-0.20230207130636-533058b17239 github.com/AdguardTeam/golibs v0.11.4 github.com/AdguardTeam/urlfilter v0.16.1 github.com/NYTimes/gziphandler v1.1.1 @@ -18,27 +19,26 @@ require ( github.com/google/uuid v1.3.0 github.com/insomniacslk/dhcp v0.0.0-20221215072855-de60144f33f8 github.com/kardianos/service v1.2.2 - github.com/lucas-clemente/quic-go v0.31.1 github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118 github.com/mdlayher/netlink v1.7.1 // TODO(a.garipov): This package is deprecated; find a new one or use // our own code for that. Perhaps, use gopacket. github.com/mdlayher/raw v0.1.0 github.com/miekg/dns v1.1.50 + github.com/quic-go/quic-go v0.32.0 github.com/stretchr/testify v1.8.1 github.com/ti-mo/netfilter v0.5.0 go.etcd.io/bbolt v1.3.7 golang.org/x/crypto v0.5.0 - golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 + golang.org/x/exp v0.0.0-20230206171751-46f607a40771 golang.org/x/net v0.5.0 - golang.org/x/sys v0.4.0 - gopkg.in/natefinch/lumberjack.v2 v2.0.0 + golang.org/x/sys v0.5.0 + gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v3 v3.0.1 howett.net/plist v1.0.0 ) require ( - github.com/BurntSushi/toml v1.1.0 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635 // indirect github.com/ameshkov/dnsstamps v1.0.3 // indirect @@ -47,17 +47,18 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect github.com/golang/mock v1.6.0 // indirect - github.com/google/pprof v0.0.0-20230131232505-5a9e8f65f08f // indirect + github.com/google/pprof v0.0.0-20230207041349-798e818bf904 // indirect github.com/josharian/native v1.1.0 // indirect - github.com/marten-seemann/qpack v0.3.0 // indirect - github.com/marten-seemann/qtls-go1-18 v0.1.4 // indirect - github.com/marten-seemann/qtls-go1-19 v0.1.2 // indirect github.com/mdlayher/packet v1.1.1 // indirect github.com/mdlayher/socket v0.4.0 // indirect github.com/onsi/ginkgo/v2 v2.8.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/quic-go/qpack v0.4.0 // indirect + github.com/quic-go/qtls-go1-18 v0.2.0 // indirect + github.com/quic-go/qtls-go1-19 v0.2.0 // indirect + github.com/quic-go/qtls-go1-20 v0.1.0 // indirect github.com/u-root/uio v0.0.0-20221213070652-c3537552635f // indirect golang.org/x/mod v0.7.0 // indirect golang.org/x/sync v0.1.0 // indirect diff --git a/go.sum b/go.sum index 76c69011..ac8425d2 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -github.com/AdguardTeam/dnsproxy v0.47.0 h1:h/ycmA8QhyuwlMYRj2Egtw86+AFxs5wQQT2qskLWyXU= -github.com/AdguardTeam/dnsproxy v0.47.0/go.mod h1:ZEkTmTJ2XInT3aVy0mHtEnSWSclpHHj/9hfNXDuAk5k= +github.com/AdguardTeam/dnsproxy v0.47.1-0.20230207130636-533058b17239 h1:n1oOiywOvdeqWLto809bK1rK1EPDkpaSfT/r1OiCVaQ= +github.com/AdguardTeam/dnsproxy v0.47.1-0.20230207130636-533058b17239/go.mod h1:+Sdi5ISrjDFbeCsKNqzcC1Ag7pJ5Hh9y+UBNb3dfqJ4= github.com/AdguardTeam/golibs v0.4.0/go.mod h1:skKsDKIBB7kkFflLJBpfGX+G8QFTx0WKUzB6TIgtUj4= github.com/AdguardTeam/golibs v0.10.4/go.mod h1:rSfQRGHIdgfxriDDNgNJ7HmE5zRoURq8R+VdR81Zuzw= github.com/AdguardTeam/golibs v0.11.4 h1:IltyvxwCTN+xxJF5sh6VadF8Zfbf8elgCm9dgijSVzM= @@ -7,8 +7,6 @@ github.com/AdguardTeam/golibs v0.11.4/go.mod h1:87bN2x4VsTritptE3XZg9l8T6gznWsIx github.com/AdguardTeam/gomitmproxy v0.2.0/go.mod h1:Qdv0Mktnzer5zpdpi5rAwixNJzW2FN91LjKJCkVbYGU= github.com/AdguardTeam/urlfilter v0.16.1 h1:ZPi0rjqo8cQf2FVdzo6cqumNoHZx2KPXj2yZa1A5BBw= github.com/AdguardTeam/urlfilter v0.16.1/go.mod h1:46YZDOV1+qtdRDuhZKVPSSp7JWWes0KayqHrKAFBdEI= -github.com/BurntSushi/toml v1.1.0 h1:ksErzDEI1khOiGPgpwuI7x2ebx/uXQNw7xJpn9Eq1+I= -github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= @@ -57,8 +55,8 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= -github.com/google/pprof v0.0.0-20230131232505-5a9e8f65f08f h1:gl1DCiSk+mrXXBGPm6CEeS2MkJuMVzAOrXg34oVj1QI= -github.com/google/pprof v0.0.0-20230131232505-5a9e8f65f08f/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= +github.com/google/pprof v0.0.0-20230207041349-798e818bf904 h1:4/hN5RUoecvl+RmJRE2YxKWtnnQls6rQjjW5oV7qg2U= +github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= github.com/google/renameio v1.0.1 h1:Lh/jXZmvZxb0BBeSY5VKEfidcbcbenKjZFzM/q0fSeU= github.com/google/renameio v1.0.1/go.mod h1:t/HQoYBZSsWSNK35C6CO/TpPLDVWvxOHboWUAweKUpk= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -85,14 +83,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lucas-clemente/quic-go v0.31.1 h1:O8Od7hfioqq0PMYHDyBkxU2aA7iZ2W9pjbrWuja2YR4= -github.com/lucas-clemente/quic-go v0.31.1/go.mod h1:0wFbizLgYzqHqtlyxyCaJKlE7bYgE6JQ+54TLd/Dq2g= -github.com/marten-seemann/qpack v0.3.0 h1:UiWstOgT8+znlkDPOg2+3rIuYXJ2CnGDkGUXN6ki6hE= -github.com/marten-seemann/qpack v0.3.0/go.mod h1:cGfKPBiP4a9EQdxCwEwI/GEeWAsjSekBvx/X8mh58+g= -github.com/marten-seemann/qtls-go1-18 v0.1.4 h1:ogomB+lWV3Vmwiu6RTwDVTMGx+9j7SEi98e8QB35Its= -github.com/marten-seemann/qtls-go1-18 v0.1.4/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= -github.com/marten-seemann/qtls-go1-19 v0.1.2 h1:ZevAEqKXH0bZmoOBPiqX2h5rhQ7cbZi+X+rlq2JUbCE= -github.com/marten-seemann/qtls-go1-19 v0.1.2/go.mod h1:5HTDWtVudo/WFsHKRNuOhWlbdjrfs5JHrYb0wIJqGpI= github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7/go.mod h1:U6ZQobyTjI/tJyq2HG+i/dfSoFUt8/aZCM+GKtmFk/Y= github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118 h1:2oDp6OOhLxQ9JBoUuysVz9UZ9uI6oLUbvAZu0x8o+vE= github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118/go.mod h1:ZFUnHIVchZ9lJoWoEGUg8Q3M4U8aNNWA3CVSUTkW4og= @@ -128,6 +118,16 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= +github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= +github.com/quic-go/qtls-go1-18 v0.2.0 h1:5ViXqBZ90wpUcZS0ge79rf029yx0dYB0McyPJwqqj7U= +github.com/quic-go/qtls-go1-18 v0.2.0/go.mod h1:moGulGHK7o6O8lSPSZNoOwcLvJKJ85vVNc7oJFD65bc= +github.com/quic-go/qtls-go1-19 v0.2.0 h1:Cvn2WdhyViFUHoOqK52i51k4nDX8EwIh5VJiVM4nttk= +github.com/quic-go/qtls-go1-19 v0.2.0/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= +github.com/quic-go/qtls-go1-20 v0.1.0 h1:d1PK3ErFy9t7zxKsG3NXBJXZjp/kMLoIb3y/kV54oAI= +github.com/quic-go/qtls-go1-20 v0.1.0/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= +github.com/quic-go/quic-go v0.32.0 h1:lY02md31s1JgPiiyfqJijpu/UX/Iun304FI3yUqX7tA= +github.com/quic-go/quic-go v0.32.0/go.mod h1:/fCsKANhQIeD5l76c2JFU+07gVE3KaA0FP+0zMWwfwo= github.com/shirou/gopsutil/v3 v3.21.8 h1:nKct+uP0TV8DjjNiHanKf8SAuub+GNsbrOtM9Nl9biA= github.com/shirou/gopsutil/v3 v3.21.8/go.mod h1:YWp/H8Qs5fVmf17v7JNZzA0mPJ+mS2e9JdiUF9LlKzQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -161,8 +161,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 h1:BEABXpNXLEz0WxtA+6CQIz2xkg80e+1zrhWyMcq8VzE= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230206171751-46f607a40771 h1:xP7rWLUr1e1n2xkK5YB4LI0hPEy3LJC6Wk+D4pGlOJg= +golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= 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.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -218,8 +218,8 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -244,12 +244,11 @@ google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscL gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/dnsforward/clientid.go b/internal/dnsforward/clientid.go index fb5eefda..e44600ba 100644 --- a/internal/dnsforward/clientid.go +++ b/internal/dnsforward/clientid.go @@ -9,7 +9,7 @@ import ( "github.com/AdguardTeam/dnsproxy/proxy" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/netutil" - "github.com/lucas-clemente/quic-go" + "github.com/quic-go/quic-go" ) // ValidateClientID returns an error if id is not a valid ClientID. @@ -151,25 +151,7 @@ func (s *Server) clientIDFromDNSContext(pctx *proxy.DNSContext) (clientID string func clientServerName(pctx *proxy.DNSContext, proto proxy.Proto) (srvName string, err error) { switch proto { case proxy.ProtoHTTPS: - // github.com/lucas-clemente/quic-go seems to not populate the TLS - // field. So, if the request comes over HTTP/3, use the Host header - // value as the server name. - // - // See https://github.com/lucas-clemente/quic-go/issues/2879. - // - // TODO(a.garipov): Remove this crutch once they fix it. - r := pctx.HTTPRequest - if r.ProtoAtLeast(3, 0) { - var host string - host, err = netutil.SplitHost(r.Host) - if err != nil { - return "", fmt.Errorf("parsing host: %w", err) - } - - srvName = host - } else if connState := r.TLS; connState != nil { - srvName = r.TLS.ServerName - } + srvName = pctx.HTTPRequest.TLS.ServerName case proxy.ProtoQUIC: qConn := pctx.QUICConnection conn, ok := qConn.(quicConnection) diff --git a/internal/dnsforward/clientid_test.go b/internal/dnsforward/clientid_test.go index b52f2ad0..d0c0c40d 100644 --- a/internal/dnsforward/clientid_test.go +++ b/internal/dnsforward/clientid_test.go @@ -9,7 +9,7 @@ import ( "github.com/AdguardTeam/dnsproxy/proxy" "github.com/AdguardTeam/golibs/testutil" - "github.com/lucas-clemente/quic-go" + "github.com/quic-go/quic-go" "github.com/stretchr/testify/assert" ) @@ -55,7 +55,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID string wantErrMsg string strictSNI bool - useHTTP3 bool }{{ name: "udp", proto: proxy.ProtoUDP, @@ -64,7 +63,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "", wantErrMsg: "", strictSNI: false, - useHTTP3: false, }, { name: "tls_no_clientid", proto: proxy.ProtoTLS, @@ -73,7 +71,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "", wantErrMsg: "", strictSNI: true, - useHTTP3: false, }, { name: "tls_no_client_server_name", proto: proxy.ProtoTLS, @@ -83,7 +80,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantErrMsg: `clientid check: client server name "" ` + `doesn't match host server name "example.com"`, strictSNI: true, - useHTTP3: false, }, { name: "tls_no_client_server_name_no_strict", proto: proxy.ProtoTLS, @@ -92,7 +88,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "", wantErrMsg: "", strictSNI: false, - useHTTP3: false, }, { name: "tls_clientid", proto: proxy.ProtoTLS, @@ -101,7 +96,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "cli", wantErrMsg: "", strictSNI: true, - useHTTP3: false, }, { name: "tls_clientid_hostname_error", proto: proxy.ProtoTLS, @@ -111,7 +105,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantErrMsg: `clientid check: client server name "cli.example.net" ` + `doesn't match host server name "example.com"`, strictSNI: true, - useHTTP3: false, }, { name: "tls_invalid_clientid", proto: proxy.ProtoTLS, @@ -121,7 +114,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantErrMsg: `clientid check: invalid clientid "!!!": ` + `bad domain name label rune '!'`, strictSNI: true, - useHTTP3: false, }, { name: "tls_clientid_too_long", proto: proxy.ProtoTLS, @@ -133,7 +125,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { `pqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789": ` + `domain name label is too long: got 72, max 63`, strictSNI: true, - useHTTP3: false, }, { name: "quic_clientid", proto: proxy.ProtoQUIC, @@ -142,7 +133,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "cli", wantErrMsg: "", strictSNI: true, - useHTTP3: false, }, { name: "tls_clientid_issue3437", proto: proxy.ProtoTLS, @@ -152,7 +142,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantErrMsg: `clientid check: client server name "cli.myexample.com" ` + `doesn't match host server name "example.com"`, strictSNI: true, - useHTTP3: false, }, { name: "tls_case", proto: proxy.ProtoTLS, @@ -161,7 +150,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "insensitive", wantErrMsg: ``, strictSNI: true, - useHTTP3: false, }, { name: "quic_case", proto: proxy.ProtoQUIC, @@ -170,7 +158,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "insensitive", wantErrMsg: ``, strictSNI: true, - useHTTP3: false, }, { name: "https_no_clientid", proto: proxy.ProtoHTTPS, @@ -179,7 +166,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "", wantErrMsg: "", strictSNI: true, - useHTTP3: false, }, { name: "https_clientid", proto: proxy.ProtoHTTPS, @@ -188,16 +174,6 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { wantClientID: "cli", wantErrMsg: "", strictSNI: true, - useHTTP3: false, - }, { - name: "https_clientid_quic", - proto: proxy.ProtoHTTPS, - hostSrvName: "example.com", - cliSrvName: "cli.example.com", - wantClientID: "cli", - wantErrMsg: "", - strictSNI: true, - useHTTP3: true, }} for _, tc := range testCases { @@ -219,7 +195,7 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { switch tc.proto { case proxy.ProtoHTTPS: - httpReq = newHTTPReq(tc.cliSrvName, tc.useHTTP3) + httpReq = newHTTPReq(tc.cliSrvName) case proxy.ProtoQUIC: qconn = testQUICConnection{ serverName: tc.cliSrvName, @@ -246,21 +222,11 @@ func TestServer_clientIDFromDNSContext(t *testing.T) { } // newHTTPReq is a helper to create HTTP requests for tests. -func newHTTPReq(cliSrvName string, useHTTP3 bool) (r *http.Request) { +func newHTTPReq(cliSrvName string) (r *http.Request) { u := &url.URL{ Path: "/dns-query", } - if useHTTP3 { - return &http.Request{ - ProtoMajor: 3, - ProtoMinor: 0, - URL: u, - Host: cliSrvName, - TLS: &tls.ConnectionState{}, - } - } - return &http.Request{ ProtoMajor: 1, ProtoMinor: 1, diff --git a/internal/home/controlinstall.go b/internal/home/controlinstall.go index 7b053f14..b58193ee 100644 --- a/internal/home/controlinstall.go +++ b/internal/home/controlinstall.go @@ -20,7 +20,7 @@ import ( "github.com/AdguardTeam/AdGuardHome/internal/version" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" - "github.com/lucas-clemente/quic-go/http3" + "github.com/quic-go/quic-go/http3" ) // getAddrsResponse is the response for /install/get_addresses endpoint. diff --git a/internal/home/rdns.go b/internal/home/rdns.go index c6ce0f59..0d7227f7 100644 --- a/internal/home/rdns.go +++ b/internal/home/rdns.go @@ -16,10 +16,6 @@ type RDNS struct { exchanger dnsforward.RDNSExchanger clients *clientsContainer - // usePrivate is used to store the state of current private RDNS resolving - // settings and to react to it's changes. - usePrivate uint32 - // ipCh used to pass client's IP to rDNS workerLoop. ipCh chan netip.Addr @@ -28,6 +24,10 @@ type RDNS struct { // address will be resolved once again. If the address couldn't be // resolved, cache prevents further attempts to resolve it for some time. ipCache cache.Cache + + // usePrivate stores the state of current private reverse-DNS resolving + // settings. + usePrivate atomic.Bool } // Default rDNS values. @@ -52,9 +52,8 @@ func NewRDNS( }), ipCh: make(chan netip.Addr, defaultRDNSIPChSize), } - if usePrivate { - rDNS.usePrivate = 1 - } + + rDNS.usePrivate.Store(usePrivate) go rDNS.workerLoop() @@ -68,12 +67,8 @@ func NewRDNS( // approach since only unresolved locally-served addresses should be removed. // Implement when improving the cache. func (r *RDNS) ensurePrivateCache() { - var usePrivate uint32 - if r.exchanger.ResolvesPrivatePTR() { - usePrivate = 1 - } - - if atomic.CompareAndSwapUint32(&r.usePrivate, 1-usePrivate, usePrivate) { + usePrivate := r.exchanger.ResolvesPrivatePTR() + if r.usePrivate.CompareAndSwap(!usePrivate, usePrivate) { r.ipCache.Clear() } } diff --git a/internal/home/web.go b/internal/home/web.go index 96c0a6a9..8f9b23f1 100644 --- a/internal/home/web.go +++ b/internal/home/web.go @@ -15,8 +15,8 @@ import ( "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/netutil" "github.com/NYTimes/gziphandler" - "github.com/lucas-clemente/quic-go" - "github.com/lucas-clemente/quic-go/http3" + "github.com/quic-go/quic-go" + "github.com/quic-go/quic-go/http3" "golang.org/x/net/http2" "golang.org/x/net/http2/h2c" ) diff --git a/internal/next/dnssvc/dnssvc.go b/internal/next/dnssvc/dnssvc.go index f25fa294..a00f0295 100644 --- a/internal/next/dnssvc/dnssvc.go +++ b/internal/next/dnssvc/dnssvc.go @@ -48,18 +48,11 @@ type Config struct { // Service is the AdGuard Home DNS service. A nil *Service is a valid // [agh.Service] that does nothing. type Service struct { - // running is an atomic boolean value. Keep it the first value in the - // struct to ensure atomic alignment. 0 means that the service is not - // running, 1 means that it is running. - // - // TODO(a.garipov): Use [atomic.Bool] in Go 1.19 or get rid of it - // completely. - running uint64 - proxy *proxy.Proxy bootstraps []string upstreams []string upsTimeout time.Duration + running atomic.Bool } // New returns a new properly initialized *Service. If c is nil, svc is a nil @@ -173,11 +166,7 @@ func (svc *Service) Start() (err error) { // TODO(a.garipov): [proxy.Proxy.Start] doesn't actually have any way to // tell when all servers are actually up, so at best this is merely an // assumption. - if err != nil { - atomic.StoreUint64(&svc.running, 0) - } else { - atomic.StoreUint64(&svc.running, 1) - } + svc.running.Store(err == nil) }() return svc.proxy.Start() @@ -201,7 +190,7 @@ func (svc *Service) Config() (c *Config) { // TODO(a.garipov): Do we need to get the TCP addresses separately? var addrs []netip.AddrPort - if atomic.LoadUint64(&svc.running) == 1 { + if svc.running.Load() { udpAddrs := svc.proxy.Addrs(proxy.ProtoUDP) addrs = make([]netip.AddrPort, len(udpAddrs)) for i, a := range udpAddrs { diff --git a/internal/next/websvc/dns_test.go b/internal/next/websvc/dns_test.go index d0efec87..23cc02cb 100644 --- a/internal/next/websvc/dns_test.go +++ b/internal/next/websvc/dns_test.go @@ -26,13 +26,12 @@ func TestService_HandlePatchSettingsDNS(t *testing.T) { UpstreamTimeout: websvc.JSONDuration(2 * time.Second), } - // TODO(a.garipov): Use [atomic.Bool] in Go 1.19. - var numStarted uint64 + var started atomic.Bool confMgr := newConfigManager() confMgr.onDNS = func() (s agh.ServiceWithConfig[*dnssvc.Config]) { return &aghtest.ServiceWithConfig[*dnssvc.Config]{ OnStart: func() (err error) { - atomic.AddUint64(&numStarted, 1) + started.Store(true) return nil }, @@ -63,7 +62,7 @@ func TestService_HandlePatchSettingsDNS(t *testing.T) { err := json.Unmarshal(respBody, resp) require.NoError(t, err) - assert.Equal(t, uint64(1), numStarted) + assert.True(t, started.Load()) assert.Equal(t, wantDNS, resp) assert.Equal(t, wantDNS, resp) } diff --git a/internal/next/websvc/waitlistener_internal_test.go b/internal/next/websvc/waitlistener_internal_test.go index e151341b..d7cc69f3 100644 --- a/internal/next/websvc/waitlistener_internal_test.go +++ b/internal/next/websvc/waitlistener_internal_test.go @@ -12,11 +12,10 @@ import ( ) func TestWaitListener_Accept(t *testing.T) { - // TODO(a.garipov): use atomic.Bool in Go 1.19. - var numAcceptCalls uint32 + var accepted atomic.Bool var l net.Listener = &aghtest.Listener{ OnAccept: func() (conn net.Conn, err error) { - atomic.AddUint32(&numAcceptCalls, 1) + accepted.Store(true) return nil, nil }, @@ -42,5 +41,5 @@ func TestWaitListener_Accept(t *testing.T) { wg.Wait() close(done) - assert.Equal(t, uint32(1), atomic.LoadUint32(&numAcceptCalls)) + assert.True(t, accepted.Load()) } diff --git a/internal/stats/stats.go b/internal/stats/stats.go index b1df74c1..70cbd71c 100644 --- a/internal/stats/stats.go +++ b/internal/stats/stats.go @@ -73,8 +73,6 @@ type Interface interface { // StatsCtx collects the statistics and flushes it to the database. Its default // flushing interval is one hour. -// -// TODO(e.burkov): Use atomic.Pointer for accessing db in go1.19. type StatsCtx struct { // limitHours is the maximum number of hours to collect statistics into the // current unit. @@ -88,10 +86,8 @@ type StatsCtx struct { // curr is the actual statistics collection result. curr *unit - // dbMu protects db. - dbMu *sync.Mutex // db is the opened statistics database, if any. - db *bbolt.DB + db atomic.Pointer[bbolt.DB] // unitIDGen is the function that generates an identifier for the current // unit. It's here for only testing purposes. @@ -115,7 +111,6 @@ func New(conf Config) (s *StatsCtx, err error) { s = &StatsCtx{ currMu: &sync.RWMutex{}, - dbMu: &sync.Mutex{}, filename: conf.Filename, configModified: conf.ConfigModified, httpRegister: conf.HTTPRegister, @@ -137,7 +132,7 @@ func New(conf Config) (s *StatsCtx, err error) { var udb *unitDB id := s.unitIDGen() - tx, err := s.db.Begin(true) + tx, err := s.db.Load().Begin(true) if err != nil { return nil, fmt.Errorf("stats: opening a transaction: %w", err) } @@ -191,7 +186,7 @@ func (s *StatsCtx) Start() { func (s *StatsCtx) Close() (err error) { defer func() { err = errors.Annotate(err, "stats: closing: %w") }() - db := s.swapDatabase(nil) + db := s.db.Swap(nil) if db == nil { return nil } @@ -284,25 +279,6 @@ func (s *StatsCtx) TopClientsIP(maxCount uint) (ips []netip.Addr) { return ips } -// database returns the database if it's opened. It's safe for concurrent use. -func (s *StatsCtx) database() (db *bbolt.DB) { - s.dbMu.Lock() - defer s.dbMu.Unlock() - - return s.db -} - -// swapDatabase swaps the database with another one and returns it. It's safe -// for concurrent use. -func (s *StatsCtx) swapDatabase(with *bbolt.DB) (old *bbolt.DB) { - s.dbMu.Lock() - defer s.dbMu.Unlock() - - old, s.db = s.db, with - - return old -} - // deleteOldUnits walks the buckets available to tx and deletes old units. It // returns the number of deletions performed. func deleteOldUnits(tx *bbolt.Tx, firstID uint32) (deleted int) { @@ -358,10 +334,7 @@ func (s *StatsCtx) openDB() (err error) { // Use defer to unlock the mutex as soon as possible. defer log.Debug("stats: database opened") - s.dbMu.Lock() - defer s.dbMu.Unlock() - - s.db = db + s.db.Store(db) return nil } @@ -382,7 +355,7 @@ func (s *StatsCtx) flush() (cont bool, sleepFor time.Duration) { return true, time.Second } - db := s.database() + db := s.db.Load() if db == nil { return true, 0 } @@ -451,7 +424,7 @@ func (s *StatsCtx) setLimit(limitDays int) { func (s *StatsCtx) clear() (err error) { defer func() { err = errors.Annotate(err, "clearing: %w") }() - db := s.swapDatabase(nil) + db := s.db.Swap(nil) if db != nil { var tx *bbolt.Tx tx, err = db.Begin(true) @@ -495,7 +468,7 @@ func (s *StatsCtx) clear() (err error) { } func (s *StatsCtx) loadUnits(limit uint32) (units []*unitDB, firstID uint32) { - db := s.database() + db := s.db.Load() if db == nil { return nil, 0 } diff --git a/internal/stats/stats_internal_test.go b/internal/stats/stats_internal_test.go index 7d5d9fef..a6ad5ee2 100644 --- a/internal/stats/stats_internal_test.go +++ b/internal/stats/stats_internal_test.go @@ -47,8 +47,6 @@ func TestStats_races(t *testing.T) { startTime := time.Now() testutil.CleanupAndRequireSuccess(t, s.Close) - type signal = struct{} - writeFunc := func(start, fin *sync.WaitGroup, waitCh <-chan unit, i int) { e := Entry{ Domain: fmt.Sprintf("example-%d.org", i), diff --git a/internal/tools/go.mod b/internal/tools/go.mod index bf45d275..f4042f9f 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -1,6 +1,6 @@ module github.com/AdguardTeam/AdGuardHome/internal/tools -go 1.18 +go 1.19 require ( github.com/fzipp/gocyclo v0.6.0 @@ -8,10 +8,10 @@ require ( github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28 github.com/kisielk/errcheck v1.6.3 github.com/kyoh86/looppointer v0.2.1 - github.com/securego/gosec/v2 v2.14.0 + github.com/securego/gosec/v2 v2.15.0 golang.org/x/tools v0.5.1-0.20230117180257-8aba49bb5ea2 - golang.org/x/vuln v0.0.0-20230130175424-dd534eeddf33 - honnef.co/go/tools v0.3.3 + golang.org/x/vuln v0.0.0-20230201222900-4c848edceff1 + honnef.co/go/tools v0.4.0 mvdan.cc/gofumpt v0.4.0 mvdan.cc/unparam v0.0.0-20230125043941-70a0ce6e7b95 ) @@ -24,10 +24,10 @@ require ( github.com/kyoh86/nolint v0.0.1 // indirect github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 // indirect - golang.org/x/exp/typeparams v0.0.0-20230131160201-f062dba9d201 // indirect + golang.org/x/exp v0.0.0-20230206171751-46f607a40771 // indirect + golang.org/x/exp/typeparams v0.0.0-20230206171751-46f607a40771 // indirect golang.org/x/mod v0.7.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.4.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect + golang.org/x/sys v0.5.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/internal/tools/go.sum b/internal/tools/go.sum index 4006de44..cda0af3e 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -7,6 +7,7 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/golangci/misspell v0.4.0 h1:KtVB/hTK4bbL/S6bs64rYyk8adjmh1BygbBiaAiX+a0= github.com/golangci/misspell v0.4.0/go.mod h1:W6O/bwV6lGDxUCChm2ykw9NQdd5bYd1Xkjo88UcWyJc= github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786 h1:rcv+Ippz6RAtvaGgKxc+8FQIpxHgsF+HBzPyYL2cyVU= @@ -29,14 +30,14 @@ github.com/kyoh86/nolint v0.0.1 h1:GjNxDEkVn2wAxKHtP7iNTrRxytRZ1wXxLV5j4XzGfRU= github.com/kyoh86/nolint v0.0.1/go.mod h1:1ZiZZ7qqrZ9dZegU96phwVcdQOMKIqRzFJL3ewq9gtI= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6FxaNu/BnU2OAaLF86eTVhP2hjTB6iMvItA= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= -github.com/onsi/ginkgo/v2 v2.3.1 h1:8SbseP7qM32WcvE6VaN6vfXxv698izmsJ1UQX9ve7T8= -github.com/onsi/gomega v1.22.1 h1:pY8O4lBfsHKZHM/6nrxkhVPUznOlIu3quZcKP/M20KI= +github.com/onsi/ginkgo/v2 v2.8.0 h1:pAM+oBNPrpXRs+E/8spkeGx9QgekbRVyr74EUvRVOUI= +github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/securego/gosec/v2 v2.14.0 h1:U1hfs0oBackChXA72plCYVA4cOlQ4gO+209dHiSNZbI= -github.com/securego/gosec/v2 v2.14.0/go.mod h1:Ff03zEi5NwSOfXj9nFpBfhbWTtROCkg9N+9goggrYn4= +github.com/securego/gosec/v2 v2.15.0 h1:v4Ym7FF58/jlykYmmhZ7mTm7FQvN/setNm++0fgIAtw= +github.com/securego/gosec/v2 v2.15.0/go.mod h1:VOjTrZOkUtSDt2QLSJmQBMWnvwiQPEjg0l+5juIqGk8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -53,10 +54,10 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 h1:BEABXpNXLEz0WxtA+6CQIz2xkg80e+1zrhWyMcq8VzE= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/exp/typeparams v0.0.0-20230131160201-f062dba9d201 h1:O1QcdQUR9htWjzzsXVFPX+RJ3n1P/u/5bsQR8dbs5BY= -golang.org/x/exp/typeparams v0.0.0-20230131160201-f062dba9d201/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp v0.0.0-20230206171751-46f607a40771 h1:xP7rWLUr1e1n2xkK5YB4LI0hPEy3LJC6Wk+D4pGlOJg= +golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp/typeparams v0.0.0-20230206171751-46f607a40771 h1:k+aVvDl4NAHQwLMtHN6wB0DL0737J8ScFNIufmap3/s= +golang.org/x/exp/typeparams v0.0.0-20230206171751-46f607a40771/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= @@ -83,14 +84,14 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY= +golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201007032633-0806396f153e/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= @@ -98,20 +99,18 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.5.1-0.20230117180257-8aba49bb5ea2 h1:v0FhRDmSCNH/0EurAT6T8KRY4aNuUhz6/WwBMxG+gvQ= golang.org/x/tools v0.5.1-0.20230117180257-8aba49bb5ea2/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= -golang.org/x/vuln v0.0.0-20230130175424-dd534eeddf33 h1:je2aB5nnlseeGvJy5clg6EyC3jjbbCNsRDroC3qQJsA= -golang.org/x/vuln v0.0.0-20230130175424-dd534eeddf33/go.mod h1:cBP4HMKv0X+x96j8IJWCKk0eqpakBmmHjKGSSC0NaYE= +golang.org/x/vuln v0.0.0-20230201222900-4c848edceff1 h1:HRexnHfiDA2hkPNMDgf3vxabRMeC+XeS8tCKP9olVbs= +golang.org/x/vuln v0.0.0-20230201222900-4c848edceff1/go.mod h1:cBP4HMKv0X+x96j8IJWCKk0eqpakBmmHjKGSSC0NaYE= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.3.3 h1:oDx7VAwstgpYpb3wv0oxiZlxY+foCpRAwY7Vk6XpAgA= -honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= +honnef.co/go/tools v0.4.0 h1:lyXVV1c8wUBJRKqI8JgIpT8TW1VDagfYYaxbKa/HoL8= +honnef.co/go/tools v0.4.0/go.mod h1:36ZgoUOrqOk1GxwHhyryEkq8FQWkUO2xGuSMhUCcdvA= mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM= mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= mvdan.cc/unparam v0.0.0-20230125043941-70a0ce6e7b95 h1:n/xhncJPSt0YzfOhnyn41XxUdrWQNgmLBG72FE27Fqw= diff --git a/scripts/make/go-lint.sh b/scripts/make/go-lint.sh index 318878eb..2fb947c6 100644 --- a/scripts/make/go-lint.sh +++ b/scripts/make/go-lint.sh @@ -52,7 +52,7 @@ trap not_found EXIT go_version="$( "${GO:-go}" version )" readonly go_version -go_min_version='go1.18' +go_min_version='go1.19' go_version_msg=" warning: your go version (${go_version}) is different from the recommended minimal one (${go_min_version}). if you have the version installed, please set the GO environment variable. diff --git a/scripts/make/go-test.sh b/scripts/make/go-test.sh index effefca8..8889316e 100644 --- a/scripts/make/go-test.sh +++ b/scripts/make/go-test.sh @@ -40,7 +40,7 @@ readonly go count_flags='--count=1' cover_flags='--coverprofile=./coverage.txt' shuffle_flags='--shuffle=on' -timeout_flags="${TIMEOUT_FLAGS:---timeout=30s}" +timeout_flags="${TIMEOUT_FLAGS:---timeout=60s}" readonly count_flags cover_flags shuffle_flags timeout_flags "$go" test "$count_flags" "$cover_flags" "$race_flags" "$shuffle_flags" "$timeout_flags"\