Merge pull request #21896 from mhei/php8-update-to-8.2.9
authorMichael Heimpold <mhei@heimpold.de>
Fri, 25 Aug 2023 06:05:59 +0000 (08:05 +0200)
committerGitHub <noreply@github.com>
Fri, 25 Aug 2023 06:05:59 +0000 (08:05 +0200)
php8: update to 8.2.9

34 files changed:
admin/bottom/Makefile [new file with mode: 0644]
kernel/mdio-netlink/Makefile
lang/python/python-click/Makefile
lang/python/python-poetry-core/Makefile
lang/python/python-py/Makefile
lang/python/python-pyfuse3/Makefile
lang/python/python-pyotp/Makefile
lang/python/python-pyparsing/Makefile
lang/python/python-pyrsistent/Makefile
lang/python/python-pytest-xdist/Makefile
lang/python/python-pytest/Makefile
lang/python/python-setuptools/Makefile
net/adguardhome/Makefile
net/adguardhome/patches/0001-go-get-github.com-quic-go-quic-go-v0.37.6.patch [new file with mode: 0644]
net/mdio-tools/Makefile
net/mosquitto/Makefile
net/natmap/Makefile
net/sqm-scripts/Makefile
net/tailscale/Makefile
net/tailscale/patches/010-fake_iptables.patch [deleted file]
net/tailscale/patches/020-tailscaled_fake_iptables.patch [deleted file]
net/tailscale/patches/030-default_to_netfilter_off.patch [deleted file]
net/unbound/Makefile
net/unbound/patches/200-remove-SSL-unexpected-eof-messages.patch [new file with mode: 0644]
net/v2ray-core/Makefile
net/v2ray-core/patches/001-DNS-over-QUIC-should-not-have-http-1.1-and-h2-ALPNs-.patch [new file with mode: 0644]
net/v2ray-core/patches/002-Migrate-to-quic-go-v0.36.0-2561.patch [new file with mode: 0644]
net/v2ray-core/patches/003-fix-panic-in-dns-over-quic-when-address-is-a-ip.patch [new file with mode: 0644]
net/v2ray-core/patches/004-feat-bulit-in-qtls-cipher-suite-implementation.patch [new file with mode: 0644]
net/v2ray-core/patches/010-chore-go-update-dependencies.patch [new file with mode: 0644]
net/vnstat2/Makefile
net/vnstat2/patches/100-noexit.patch
net/xray-core/Makefile
net/xray-core/patches/00-fix-go1.21-build.patch [new file with mode: 0644]

diff --git a/admin/bottom/Makefile b/admin/bottom/Makefile
new file mode 100644 (file)
index 0000000..bdd049a
--- /dev/null
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2023 Luca Barbato
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bottom
+PKG_VERSION:=0.9.4
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/ClementTsang/bottom/tar.gz/$(PKG_VERSION)?
+PKG_HASH:=199123ef354bcabaa8a2e3b7b477b324f5b647d503a2599d08296733846eea6e
+
+PKG_MAINTAINER:=Luca Barbato <lu_zero@luminem.org>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_DEPENDS:=rust/host
+
+include $(INCLUDE_DIR)/package.mk
+include ../../lang/rust/rust-package.mk
+
+define Package/bottom
+  SECTION:=admin
+  CATEGORY:=Administration
+  TITLE:=Interactive processes viewer
+  DEPENDS:=$(RUST_ARCH_DEPENDS)
+  URL:=https://github.com/ClementTsang/bottom
+endef
+
+define Package/bottom/description
+  A customizable cross-platform graphical process/system monitor
+  for the terminal.
+endef
+
+$(eval $(call RustBinPackage,bottom))
+$(eval $(call BuildPackage,bottom))
index f63e4c27892cc9c75141f7c708db643b6c6605d0..a01df26835e8582c6d6951047ba68fbaafbc326d 100644 (file)
@@ -6,8 +6,8 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://github.com/wkz/mdio-tools
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=1.2.0
-PKG_MIRROR_HASH:=5dd21c47d12b5d81dd0783d874480172d00027c4a8902839fa9fc16718092c79
+PKG_SOURCE_VERSION:=1.3.0
+PKG_MIRROR_HASH:=668a1dcb06da1c0a26e3aac86487ca83cff548c8c6e3763fde905a888fea5f5e
 
 PKG_LICENSE:=GPL-2.0-only
 PKG_LICENSE_FILES:=COPYING
index 1e6b6542d73b7700b46db67571f648f4250df1de..a0807fa9214965a646262c8e121f4cd79b49f93a 100644 (file)
@@ -5,11 +5,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-click
-PKG_VERSION:=8.1.6
+PKG_VERSION:=8.1.7
 PKG_RELEASE:=1
 
 PYPI_NAME:=click
-PKG_HASH:=48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd
+PKG_HASH:=ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de
 
 PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
index 0635e865abbc58fcbf4a9e15c0285603b61afdb1..3bcb1d9ca6b44ef5150ba6d459b610d7317f4e59 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-poetry-core
-PKG_VERSION:=1.6.1
+PKG_VERSION:=1.7.0
 PKG_RELEASE:=1
 
 PYPI_NAME:=poetry-core
 PYPI_SOURCE_NAME:=poetry_core
-PKG_HASH:=0f9b0de39665f36d6594657e7d57b6f463cc10f30c28e6d1c3b9ff54c26c9ac3
+PKG_HASH:=8f679b83bd9c820082637beca1204124d5d2a786e4818da47ec8acefd0353b74
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
index c909e10e83e1378bd77e0007bf19560ea3f4fe61..6f9d315a64813df6eb3b75223456e1b1d4c1a1b0 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-py
-PKG_VERSION:=1.10.0
-PKG_RELEASE:=2
+PKG_VERSION:=1.11.0
+PKG_RELEASE:=1
 
 PYPI_NAME:=py
-PKG_HASH:=21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3
+PKG_HASH:=51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
 PKG_LICENSE:=MIT
@@ -28,9 +28,9 @@ define Package/python3-py
   SUBMENU:=Python
   SECTION:=lang
   CATEGORY:=Languages
-  TITLE:=py
+  TITLE:=Python development support library
   URL:=https://github.com/pytest-dev/py
-  DEPENDS:=+python3-light +python3-xml +python3-urllib
+  DEPENDS:=+python3-light +python3-xml +python3-urllib +python3-uuid
 endef
 
 define Package/python3-py/description
index fd13ccfc00042f7fe11305c8b496309d4669a856..c058bb645e8230a019dba5bbcc6fd785b5b87650 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pyfuse3
-PKG_VERSION:=3.2.2
+PKG_VERSION:=3.3.0
 PKG_RELEASE:=1
 
 PYPI_NAME:=pyfuse3
-PKG_HASH:=aa4080913e6148bff1365d4aaacdc96767b87a1e178031fd9caeb5f0b9fc8cec
+PKG_HASH:=2b31fe412479f9620da2067dd739ed23f4cc37364224891938dedf7766e573bd
 
 PKG_LICENSE:=LGPL-2.0-or-later
 PKG_LICENSE_FILES:=LICENSE
@@ -26,10 +26,12 @@ define Package/python3-pyfuse3
   SECTION:=lang
   CATEGORY:=Languages
   SUBMENU:=Python
-  TITLE:=Python 3 bindings for libfuse 3 with async I/O support
+  TITLE:=libfuse 3 bindings with async I/O support
   URL:=https://github.com/libfuse/pyfuse3
   DEPENDS:= \
     +python3-light \
+    +python3-asyncio \
+    +python3-logging \
     +python3-trio \
     +libfuse3
 endef
index 9cda8ac67d009c31424c1af192216368946bc227..7fbda1c0fb8653839c6ee348745922cd509104a5 100644 (file)
@@ -7,12 +7,12 @@
 
 include $(TOPDIR)/rules.mk
 
-PKG_NAME:=pyotp
-PKG_VERSION:=2.3.0
-PKG_RELEASE:=2
+PKG_NAME:=python-pyotp
+PKG_VERSION:=2.9.0
+PKG_RELEASE:=1
 
-PYPI_NAME:=$(PKG_NAME)
-PKG_HASH:=fc537e8acd985c5cbf51e11b7d53c42276fee017a73aec7c07380695671ca1a1
+PYPI_NAME:=pyotp
+PKG_HASH:=346b6642e0dbdde3b4ff5a930b664ca82abfa116356ed48cc42c7d6590d36f63
 
 PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
 PKG_LICENSE:=MIT
@@ -26,15 +26,16 @@ define Package/python3-pyotp
   SUBMENU:=Python
   SECTION:=lang
   CATEGORY:=Languages
-  TITLE:=Python One-Time Password Library
+  TITLE:=One-Time Password Library
   URL:=https://github.com/pyauth/pyotp
-  DEPENDS:=+python3-light
+  DEPENDS:=+python3-light +python3-codecs +python3-urllib
 endef
 
 define Package/python3-pyotp/description
-  PyOTP is a Python library for generating and verifying one-time passwords.
-  It can be used to implement two-factor (2FA) or multi-factor (MFA) authentication methods
-  in web applications and in other systems that require users to log in.
+PyOTP is a Python library for generating and verifying one-time
+passwords. It can be used to implement two-factor (2FA) or multi-factor
+(MFA) authentication methods in web applications and in other systems
+that require users to log in.
 endef
 
 $(eval $(call Py3Package,python3-pyotp))
index 6862e087db1a40916b32f39ed3d9f46b138cbd68..68502935784f4647399584eabb8dca9711958fd2 100644 (file)
@@ -9,16 +9,18 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pyparsing
-PKG_VERSION:=2.4.7
-PKG_RELEASE:=2
+PKG_VERSION:=3.1.1
+PKG_RELEASE:=1
 
 PYPI_NAME:=pyparsing
-PKG_HASH:=c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1
+PKG_HASH:=ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
+PKG_BUILD_DEPENDS:=python-flit-core/host
+
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
 include ../python3-package.mk
@@ -27,7 +29,7 @@ define Package/python3-pyparsing
   SECTION:=lang
   CATEGORY:=Languages
   SUBMENU:=Python
-  TITLE:=Library for constructing grammar directly in python
+  TITLE:=Define and execute parsing grammars
   URL:=https://github.com/pyparsing/pyparsing/
   DEPENDS:=+python3-light
 endef
index b9ae85d7eccdd2ddbc2b46c85310702a54b1e438..64d687399c8273b169fffff65d808039f1e65548 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pyrsistent
-PKG_VERSION:=0.16.0
+PKG_VERSION:=0.19.3
 PKG_RELEASE:=1
 
 PYPI_NAME:=pyrsistent
-PKG_HASH:=28669905fe725965daa16184933676547c5bb40a5153055a8dee2a4bd7933ad3
+PKG_HASH:=1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440
 
 PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
 PKG_LICENSE:=MIT
@@ -28,12 +28,13 @@ define Package/python3-pyrsistent
   CATEGORY:=Languages
   TITLE:=Persistent/Functional/Immutable data structures
   URL:=https://github.com/tobgu/pyrsistent
-  DEPENDS:=+python3-light +python3-six
+  DEPENDS:=+python3-light
 endef
 
 define Package/python3-pyrsistent/description
-  Pyrsistent is a number of persistent collections (by some referred to as functional data structures).
-  Persistent in the sense that they are immutable.
+Pyrsistent is a number of persistent collections (by some referred to as
+functional data structures). Persistent in the sense that they are
+immutable.
 endef
 
 $(eval $(call Py3Package,python3-pyrsistent))
index 2aaf5551a46ee6d4cc99204e2f0b93e3120215cc..68d8a3db53b74aa890da03bc3a4ad7c39062705b 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pytest-xdist
-PKG_VERSION:=2.2.1
-PKG_RELEASE:=2
+PKG_VERSION:=3.3.1
+PKG_RELEASE:=1
 
 PYPI_NAME:=pytest-xdist
-PKG_HASH:=718887296892f92683f6a51f25a3ae584993b06f7076ce1e1fd482e59a8220a2
+PKG_HASH:=d5ee0520eb1b7bcca50a60a518ab7a7707992812c578198f8b44fdfac78e8c93
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
 PKG_LICENSE:=MIT
@@ -28,18 +28,19 @@ define Package/python3-pytest-xdist
   SUBMENU:=Python
   SECTION:=lang
   CATEGORY:=Languages
-  TITLE:=Pytest plugin for parallel test running
+  TITLE:=pytest plugin for distributed testing
   URL:=https://github.com/pytest-dev/pytest-xdist
   DEPENDS:= \
        +python3-light \
-       +python3-pytest \
-       +python3-pytest-forked \
-       +python3-execnet
+       +python3-uuid \
+       +python3-execnet \
+       +python3-pytest
 endef
 
 define Package/python3-pytest-xdist/description
-  The pytest framework makes it easy to write small tests, yet scales to support
-  complex functional testing for applications and libraries.
+The pytest-xdist plugin extends pytest with new test execution modes,
+the most used being distributing tests across multiple CPUs to speed up
+test execution.
 endef
 
 $(eval $(call Py3Package,python3-pytest-xdist))
index 473192c312266f252412b96a57d50b1e7941f8c6..6643e14bcea560961dbc179cbfe435b2c12c2830 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pytest
-PKG_VERSION:=7.3.0
-PKG_RELEASE:=2
+PKG_VERSION:=7.4.0
+PKG_RELEASE:=1
 
 PYPI_NAME:=pytest
-PKG_HASH:=58ecc27ebf0ea643ebfdf7fb1249335da761a00c9f955bcd922349bcb68ee57d
+PKG_HASH:=b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
 PKG_LICENSE:=MIT
@@ -29,18 +29,17 @@ define Package/python3-pytest
   SECTION:=lang
   CATEGORY:=Languages
   TITLE:=Python testing framework
-  URL:=https://docs.pytest.org/en/latest/
+  URL:=https://pytest.org/
   DEPENDS:= \
        +python3 \
-       +python3-pluggy \
+       +python3-iniconfig \
        +python3-packaging \
-       +python3-exceptiongroup \
-       +python3-iniconfig
+       +python3-pluggy
 endef
 
 define Package/python3-pytest/description
-  The pytest framework makes it easy to write small tests, yet scales to support
-  complex functional testing for applications and libraries.
+The pytest framework makes it easy to write small tests, yet scales to
+support complex functional testing for applications and libraries.
 endef
 
 $(eval $(call Py3Package,python3-pytest))
index aafc5d762561458f5326830e799468f85fc0f70a..5cbd640398cbf81fa409f0b4d7bfc85f7e385fc4 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-setuptools
-PKG_VERSION:=68.0.0
+PKG_VERSION:=68.1.2
 PKG_RELEASE:=1
 
 PYPI_NAME:=setuptools
-PKG_HASH:=baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235
+PKG_HASH:=3d4dfa6d95f1b101d695a6160a7626e15583af71a5f52176efa5d39a054d475d
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
index a2622d17d17f39a014c62dcab7928edd35b528f5..ada453c8565a26564954801c895c00bce0c484d2 100644 (file)
@@ -6,13 +6,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adguardhome
-PKG_VERSION:=0.107.33
+PKG_VERSION:=0.107.36
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 PKG_SOURCE_URL:=https://github.com/AdguardTeam/AdGuardHome
-PKG_MIRROR_HASH:=924c549a924b66d087d82b6c1402e4928ef176a9f742f3482cb92156956ee1fd
+PKG_MIRROR_HASH:=6f32717df3654432d0c50ee730f0eef3ec806a966508f5cd82899077f1e086c8
 
 PKG_LICENSE:=GPL-3.0-only
 PKG_LICENSE_FILES:=LICENSE.txt
diff --git a/net/adguardhome/patches/0001-go-get-github.com-quic-go-quic-go-v0.37.6.patch b/net/adguardhome/patches/0001-go-get-github.com-quic-go-quic-go-v0.37.6.patch
new file mode 100644 (file)
index 0000000..c158b23
--- /dev/null
@@ -0,0 +1,45 @@
+From 61c2e12116147fab716221009b3a14fa5792a72d Mon Sep 17 00:00:00 2001
+From: Dobroslaw Kijowski <dobo90@gmail.com>
+Date: Mon, 21 Aug 2023 10:22:27 +0200
+Subject: [PATCH] go get github.com/quic-go/quic-go@v0.37.6
+
+---
+ go.mod | 4 ++--
+ go.sum | 4 ++++
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+--- a/go.mod
++++ b/go.mod
+@@ -28,7 +28,7 @@ require (
+       github.com/mdlayher/raw v0.1.0
+       github.com/miekg/dns v1.1.55
+       // TODO(a.garipov): Update to â‰¥ v0.37.0 once we update to Go 1.20.
+-      github.com/quic-go/quic-go v0.36.2
++      github.com/quic-go/quic-go v0.37.6
+       github.com/stretchr/testify v1.8.4
+       github.com/ti-mo/netfilter v0.5.0
+       go.etcd.io/bbolt v1.3.7
+@@ -60,7 +60,7 @@ require (
+       github.com/pmezard/go-difflib v1.0.0 // indirect
+       github.com/quic-go/qpack v0.4.0 // indirect
+       github.com/quic-go/qtls-go1-19 v0.3.2 // indirect
+-      github.com/quic-go/qtls-go1-20 v0.2.2 // indirect
++      github.com/quic-go/qtls-go1-20 v0.3.1 // indirect
+       github.com/u-root/uio v0.0.0-20230305220412-3e8cd9d6bf63 // indirect
+       golang.org/x/mod v0.12.0 // indirect
+       golang.org/x/sync v0.3.0 // indirect
+--- a/go.sum
++++ b/go.sum
+@@ -108,8 +108,12 @@ github.com/quic-go/qtls-go1-19 v0.3.2 h1
+ github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI=
+ github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E=
+ github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM=
++github.com/quic-go/qtls-go1-20 v0.3.1 h1:O4BLOM3hwfVF3AcktIylQXyl7Yi2iBNVy5QsV+ySxbg=
++github.com/quic-go/qtls-go1-20 v0.3.1/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k=
+ github.com/quic-go/quic-go v0.36.2 h1:ZX/UNQ4gvpCv2RmwdbA6lrRjF6EBm5yZ7TMoT4NQVrA=
+ github.com/quic-go/quic-go v0.36.2/go.mod h1:zPetvwDlILVxt15n3hr3Gf/I3mDf7LpLKPhR4Ez0AZQ=
++github.com/quic-go/quic-go v0.37.6 h1:2IIUmQzT5YNxAiaPGjs++Z4hGOtIR0q79uS5qE9ccfY=
++github.com/quic-go/quic-go v0.37.6/go.mod h1:YsbH1r4mSHPJcLF4k4zruUkLBqctEMBDR6VPvcYjIsU=
+ 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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
index d941bc484dd3364a092144dd2d49ba93ac948434..cdae3af08adeba6a568c2cd03aef1b339a829e9c 100644 (file)
@@ -5,8 +5,8 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://github.com/wkz/mdio-tools
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=1.2.0
-PKG_MIRROR_HASH:=396fd48662e0f4182b9c9db6e34d71dafd9e557d5021e8dc28edfc99d6ebc387
+PKG_SOURCE_VERSION:=1.3.0
+PKG_MIRROR_HASH:=409ac6aa6a141c0c6691522b27b90cb04d8323d3a9c3b5587f7cbae3f5c24536
 
 PKG_FIXUP:=autoreconf
 
index 00ee21a8b0e984c3fa4f1b22ca285ba363e5ba34..56568f42bba837e2f2036f7cda1721b45de45781 100644 (file)
@@ -9,7 +9,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mosquitto
-PKG_VERSION:=2.0.15
+PKG_VERSION:=2.0.17
 PKG_RELEASE:=1
 PKG_LICENSE:=EPL-2.0
 PKG_LICENSE_FILES:=LICENSE.txt
@@ -17,7 +17,7 @@ PKG_CPE_ID:=cpe:/a:eclipse:mosquitto
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://mosquitto.org/files/source/
-PKG_HASH:=4735b1d32e3f91c7a8896741d88a3022e89730a1ee897946decfa0df27039ac6
+PKG_HASH:=3be7a911236567c1a9fbe25baf3e3167004ba4a0c151a448ef1f7fc077dba52f
 
 include $(INCLUDE_DIR)/package.mk
 
index 3e5c531ae63489e22a54db6606b7a6f8cece8e34..d7fdc94591c8ed723efa9c9a4c94f9a50760ed16 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=natmap
-PKG_VERSION:=20230519
+PKG_VERSION:=20230820
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/heiher/natmap/releases/download/$(PKG_VERSION)
-PKG_HASH:=61347ccd2bf9e519ecd703559054d9dd27ce42bab1530fb63a72e7d7c4727c96
+PKG_HASH:=bf8aed93818846c54c472f5cc047c88c4ca8518bee16cace2aeabafb82ff3a21
 
 PKG_MAINTAINER:=Richard Yu <yurichard3839@gmail.com>, Ray Wang <r@hev.cc>
 PKG_LICENSE:=MIT
index 51833b9d09c39430f81cabe816461871a34e5574..4de8851033343aa71cb7ec94ea3daddd63835ab0 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sqm-scripts
-PKG_SOURCE_VERSION:=7ce734ea191240c85c86b83cbf18701655b0359c
-PKG_VERSION:=1.5.2
+PKG_SOURCE_VERSION:=33a89d8e7f6c82acc0adced84cf5cd95447e6bb5
+PKG_VERSION:=1.6.0
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/tohojo/sqm-scripts
-PKG_MIRROR_HASH:=62d9a655cd6a89665a7bc8473a771fd8203933989d2276f3d34ccbf6be21661f
+PKG_MIRROR_HASH:=c79be093924e70c4e32c0da5c946c0b7a03a981ba7aa704db42a5e87ae06ee81
 
 PKG_MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
 PKG_LICENSE:=GPL-2.0-only
index d07dc502d087bed9c8f207335806cb50c75680d1..8cd236efb1945a32d1973d81f6d194a52dba196e 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tailscale
-PKG_VERSION:=1.44.0
+PKG_VERSION:=1.48.1
 PKG_RELEASE:=1
 
-PKG_SOURCE:=tailscale-$(PKG_VERSION).tar.gz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/tailscale/tailscale/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=dc230cf3ac290140e573268a6e8f17124752ef064c8d3a86765a9dbb6f1bd354
+PKG_HASH:=6b3152cdd9ed915c01ce30f3967c0d4e04e2a81053eddeb93792d93088fe2d72
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
@@ -63,29 +63,7 @@ Package/tailscaled/description:=$(Package/tailscale/description)
 
 define Package/tailscaled/conffiles
 /etc/config/tailscale
-/etc/tailscale/tailscaled.state
-endef
-
-GO_IPTABLES_VERSION:=0.6.0
-GO_IPTABLES_FILE:=$(PKG_NAME)-go-iptables-$(GO_IPTABLES_VERSION).tar.gz
-
-define Download/go-iptables
-  URL:=https://codeload.github.com/coreos/go-iptables/tar.gz/v$(GO_IPTABLES_VERSION)?
-  URL_FILE:=$(GO_IPTABLES_FILE)
-  FILE:=$(GO_IPTABLES_FILE)
-  HASH:=a784cc17fcb17879f073eae47bc4c2e899f59f6906dac5a0aa7a9cc9f95ea66d
-endef
-
-define Build/Prepare
-       $(PKG_UNPACK)
-       [ ! -d ./src/ ] || $(CP) ./src/. $(PKG_BUILD_DIR)
-       $(eval $(call Download,go-iptables))
-       ( \
-               mkdir -p $(PKG_BUILD_DIR)/patched/ ; \
-               gzip -dc $(DL_DIR)/$(GO_IPTABLES_FILE) | $(HOST_TAR) -C $(PKG_BUILD_DIR)/patched $(TAR_OPTIONS) ; \
-               mv $(PKG_BUILD_DIR)/patched/go-iptables-$(GO_IPTABLES_VERSION) $(PKG_BUILD_DIR)/patched/go-iptables ; \
-       )
-       $(Build/Patch)
+/etc/tailscale/
 endef
 
 define Package/tailscale/install
diff --git a/net/tailscale/patches/010-fake_iptables.patch b/net/tailscale/patches/010-fake_iptables.patch
deleted file mode 100644 (file)
index ca7086e..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
---- a/go.mod
-+++ b/go.mod
-@@ -2,6 +2,8 @@ module tailscale.com
- go 1.20
-+replace github.com/coreos/go-iptables => ./patched/go-iptables
-+
- require (
-       filippo.io/mkcert v1.4.4
-       github.com/Microsoft/go-winio v0.6.1
---- a/patched/go-iptables/iptables/iptables.go
-+++ b/patched/go-iptables/iptables/iptables.go
-@@ -149,12 +149,39 @@ func New(opts ...option) (*IPTables, err
-       return ipt, nil
- }
-+func NewFake(opts ...option) (*IPTables, error) {
-+
-+      ipt := &IPTables{
-+              path:              "/bin/false",
-+              proto:             ProtocolIPv4,
-+              hasCheck:          false,
-+              hasWait:           false,
-+              waitSupportSecond: false,
-+              hasRandomFully:    false,
-+              v1:                0,
-+              v2:                0,
-+              v3:                0,
-+              mode:              "legacy",
-+              timeout:           0,
-+      }
-+
-+      for _, opt := range opts {
-+              opt(ipt)
-+      }
-+
-+      return ipt, nil
-+}
-+
- // New creates a new IPTables for the given proto.
- // The proto will determine which command is used, either "iptables" or "ip6tables".
- func NewWithProtocol(proto Protocol) (*IPTables, error) {
-       return New(IPFamily(proto), Timeout(0))
- }
-+func NewFakeWithProtocol(proto Protocol) (*IPTables, error) {
-+      return NewFake(IPFamily(proto), Timeout(0))
-+}
-+
- // Proto returns the protocol used by this IPTables.
- func (ipt *IPTables) Proto() Protocol {
-       return ipt.proto
diff --git a/net/tailscale/patches/020-tailscaled_fake_iptables.patch b/net/tailscale/patches/020-tailscaled_fake_iptables.patch
deleted file mode 100644 (file)
index a4d54bd..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
---- a/wgengine/router/router_linux.go
-+++ b/wgengine/router/router_linux.go
-@@ -129,7 +129,7 @@ func newUserspaceRouter(logf logger.Logf
-       ipt4, err := iptables.NewWithProtocol(iptables.ProtocolIPv4)
-       if err != nil {
--              return nil, err
-+              ipt4, err = iptables.NewFakeWithProtocol(iptables.ProtocolIPv4)
-       }
-       v6err := checkIPv6(logf)
-@@ -148,7 +148,7 @@ func newUserspaceRouter(logf logger.Logf
-               // if unavailable. We want that to be a non-fatal error.
-               ipt6, err = iptables.NewWithProtocol(iptables.ProtocolIPv6)
-               if err != nil {
--                      return nil, err
-+                      ipt6, err = iptables.NewFakeWithProtocol(iptables.ProtocolIPv6)
-               }
-       }
-@@ -1676,11 +1676,6 @@ func checkIPv6(logf logger.Logf) error {
-               return fmt.Errorf("kernel doesn't support IPv6 policy routing: %w", err)
-       }
--      // Some distros ship ip6tables separately from iptables.
--      if _, err := exec.LookPath("ip6tables"); err != nil {
--              return err
--      }
--
-       return nil
- }
diff --git a/net/tailscale/patches/030-default_to_netfilter_off.patch b/net/tailscale/patches/030-default_to_netfilter_off.patch
deleted file mode 100644 (file)
index 1edd002..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/cmd/tailscale/cli/up.go
-+++ b/cmd/tailscale/cli/up.go
-@@ -147,7 +147,7 @@ func defaultNetfilterMode() string {
-       if distro.Get() == distro.Synology {
-               return "off"
-       }
--      return "on"
-+      return "off"
- }
- type upArgsT struct {
index 0620944cfa07da0ff660ccab19e284a9ad2f0069..9626c4e2988ed3a82d93c7c7c66e966d22bcb6f0 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unbound
 PKG_VERSION:=1.17.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://nlnetlabs.nl/downloads/unbound
diff --git a/net/unbound/patches/200-remove-SSL-unexpected-eof-messages.patch b/net/unbound/patches/200-remove-SSL-unexpected-eof-messages.patch
new file mode 100644 (file)
index 0000000..3f7d62b
--- /dev/null
@@ -0,0 +1,37 @@
+--- a/util/net_help.c
++++ b/util/net_help.c
+@@ -1005,6 +1005,16 @@ listen_sslctx_setup(void* ctxt)
+                       log_crypto_err("could not set cipher list with SSL_CTX_set_cipher_list");
+       }
+ #endif
++#if defined(SSL_OP_IGNORE_UNEXPECTED_EOF)
++      /* ignore errors when peers do not send the mandatory close_notify
++       * alert on shutdown.
++       * Relevant for openssl >= 3 */
++      if((SSL_CTX_set_options(ctx, SSL_OP_IGNORE_UNEXPECTED_EOF) &
++              SSL_OP_IGNORE_UNEXPECTED_EOF) != SSL_OP_IGNORE_UNEXPECTED_EOF) {
++              log_crypto_err("could not set SSL_OP_IGNORE_UNEXPECTED_EOF");
++              return 0;
++      }
++#endif
+       if((SSL_CTX_set_options(ctx, SSL_OP_CIPHER_SERVER_PREFERENCE) &
+               SSL_OP_CIPHER_SERVER_PREFERENCE) !=
+@@ -1233,6 +1243,17 @@ void* connect_sslctx_create(char* key, c
+               SSL_CTX_free(ctx);
+               return 0;
+       }
++#endif
++#if defined(SSL_OP_IGNORE_UNEXPECTED_EOF)
++      /* ignore errors when peers do not send the mandatory close_notify
++       * alert on shutdown.
++       * Relevant for openssl >= 3 */
++      if((SSL_CTX_set_options(ctx, SSL_OP_IGNORE_UNEXPECTED_EOF) &
++              SSL_OP_IGNORE_UNEXPECTED_EOF) != SSL_OP_IGNORE_UNEXPECTED_EOF) {
++              log_crypto_err("could not set SSL_OP_IGNORE_UNEXPECTED_EOF");
++              SSL_CTX_free(ctx);
++              return 0;
++      }
+ #endif
+       if(key && key[0]) {
+               if(!SSL_CTX_use_certificate_chain_file(ctx, pem)) {
index 6983afccc2a79f88a9b76cf5d4d44f5be612bc0d..7609253b083c2609e6664a1f2e4fa89aeabfc267 100644 (file)
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=v2ray-core
 PKG_VERSION:=5.7.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)?
diff --git a/net/v2ray-core/patches/001-DNS-over-QUIC-should-not-have-http-1.1-and-h2-ALPNs-.patch b/net/v2ray-core/patches/001-DNS-over-QUIC-should-not-have-http-1.1-and-h2-ALPNs-.patch
new file mode 100644 (file)
index 0000000..141004b
--- /dev/null
@@ -0,0 +1,38 @@
+From cd9f183fa836caba816ee73d486dda507a4e9c56 Mon Sep 17 00:00:00 2001
+From: dyhkwong <50692134+dyhkwong@users.noreply.github.com>
+Date: Wed, 28 Jun 2023 14:28:23 +0800
+Subject: [PATCH] DNS over QUIC should not have "http/1.1" and "h2" ALPNs
+ (#2570)
+
+---
+ app/dns/nameserver_quic.go | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/app/dns/nameserver_quic.go
++++ b/app/dns/nameserver_quic.go
+@@ -11,7 +11,6 @@ import (
+       "github.com/quic-go/quic-go"
+       "golang.org/x/net/dns/dnsmessage"
+-      "golang.org/x/net/http2"
+       "github.com/v2fly/v2ray-core/v5/common"
+       "github.com/v2fly/v2ray-core/v5/common/buf"
+@@ -25,7 +24,7 @@ import (
+ )
+ // NextProtoDQ - During connection establishment, DNS/QUIC support is indicated
+-// by selecting the ALPN token "dq" in the crypto handshake.
++// by selecting the ALPN token "doq" in the crypto handshake.
+ const NextProtoDQ = "doq"
+ const handshakeIdleTimeout = time.Second * 8
+@@ -383,7 +382,7 @@ func (s *QUICNameServer) openConnection(
+               HandshakeIdleTimeout: handshakeIdleTimeout,
+       }
+-      conn, err := quic.DialAddrContext(ctx, s.destination.NetAddr(), tlsConfig.GetTLSConfig(tls.WithNextProto("http/1.1", http2.NextProtoTLS, NextProtoDQ)), quicConfig)
++      conn, err := quic.DialAddrContext(ctx, s.destination.NetAddr(), tlsConfig.GetTLSConfig(tls.WithNextProto(NextProtoDQ)), quicConfig)
+       if err != nil {
+               return nil, err
+       }
diff --git a/net/v2ray-core/patches/002-Migrate-to-quic-go-v0.36.0-2561.patch b/net/v2ray-core/patches/002-Migrate-to-quic-go-v0.36.0-2561.patch
new file mode 100644 (file)
index 0000000..3603e93
--- /dev/null
@@ -0,0 +1,611 @@
+From e102d52e7c5485abf0a3d1612078ee4b2d4e9539 Mon Sep 17 00:00:00 2001
+From: Tim Xylon <zedifen@outlook.com>
+Date: Sat, 1 Jul 2023 15:31:19 +0800
+Subject: [PATCH] Migrate to quic-go v0.36.0 (#2561)
+
+---
+ app/dns/nameserver_quic.go        |   6 +-
+ go.mod                            |  72 ++++++------
+ go.sum                            | 176 ++++++++++++++++--------------
+ transport/internet/quic/dialer.go |   8 +-
+ transport/internet/quic/hub.go    |  10 +-
+ 5 files changed, 146 insertions(+), 126 deletions(-)
+
+--- a/app/dns/nameserver_quic.go
++++ b/app/dns/nameserver_quic.go
+@@ -377,12 +377,14 @@ func (s *QUICNameServer) getConnection(c
+ }
+ func (s *QUICNameServer) openConnection(ctx context.Context) (quic.Connection, error) {
+-      tlsConfig := tls.Config{}
++      tlsConfig := tls.Config{
++              ServerName: s.destination.Address.Domain(),
++      }
+       quicConfig := &quic.Config{
+               HandshakeIdleTimeout: handshakeIdleTimeout,
+       }
+-      conn, err := quic.DialAddrContext(ctx, s.destination.NetAddr(), tlsConfig.GetTLSConfig(tls.WithNextProto(NextProtoDQ)), quicConfig)
++      conn, err := quic.DialAddr(ctx, s.destination.NetAddr(), tlsConfig.GetTLSConfig(tls.WithNextProto(NextProtoDQ)), quicConfig)
+       if err != nil {
+               return nil, err
+       }
+--- a/go.mod
++++ b/go.mod
+@@ -6,34 +6,34 @@ require (
+       github.com/adrg/xdg v0.4.0
+       github.com/go-chi/chi/v5 v5.0.8
+       github.com/go-chi/render v1.0.2
+-      github.com/go-playground/validator/v10 v10.11.2
++      github.com/go-playground/validator/v10 v10.14.1
+       github.com/golang/mock v1.6.0
+-      github.com/golang/protobuf v1.5.2
++      github.com/golang/protobuf v1.5.3
+       github.com/google/go-cmp v0.5.9
+       github.com/gorilla/websocket v1.5.0
+-      github.com/jhump/protoreflect v1.15.0
+-      github.com/miekg/dns v1.1.51
++      github.com/jhump/protoreflect v1.15.1
++      github.com/miekg/dns v1.1.54
+       github.com/mustafaturan/bus v1.0.2
+       github.com/pelletier/go-toml v1.9.5
+-      github.com/pires/go-proxyproto v0.6.2
++      github.com/pires/go-proxyproto v0.7.0
+       github.com/quic-go/qtls-go1-19 v0.3.2
+       github.com/quic-go/qtls-go1-20 v0.2.2
+-      github.com/quic-go/quic-go v0.33.0
++      github.com/quic-go/quic-go v0.36.0
+       github.com/refraction-networking/utls v1.3.2
+       github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb
+-      github.com/stretchr/testify v1.8.2
++      github.com/stretchr/testify v1.8.4
+       github.com/v2fly/BrowserBridge v0.0.0-20210430233438-0570fc1d7d08
+       github.com/v2fly/VSign v0.0.0-20201108000810-e2adc24bf848
+       github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e
+       github.com/xiaokangwang/VLite v0.0.0-20220418190619-cff95160a432
+-      go.starlark.net v0.0.0-20220817180228-f738f5508c12
+-      go4.org/netipx v0.0.0-20220812043211-3cc044ffd68d
+-      golang.org/x/crypto v0.6.0
+-      golang.org/x/net v0.7.0
+-      golang.org/x/sync v0.1.0
+-      golang.org/x/sys v0.5.0
+-      google.golang.org/grpc v1.53.0
+-      google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8
++      go.starlark.net v0.0.0-20230612165344-9532f5667272
++      go4.org/netipx v0.0.0-20230303233057-f1b76eb4bb35
++      golang.org/x/crypto v0.9.0
++      golang.org/x/net v0.10.0
++      golang.org/x/sync v0.2.0
++      golang.org/x/sys v0.9.0
++      google.golang.org/grpc v1.55.0
++      google.golang.org/protobuf v1.31.0
+       gopkg.in/yaml.v3 v3.0.1
+       h12.io/socks v1.0.3
+ )
+@@ -41,38 +41,38 @@ require (
+ require (
+       github.com/aead/cmac v0.0.0-20160719120800-7af84192f0b1 // indirect
+       github.com/ajg/form v1.5.1 // indirect
+-      github.com/andybalholm/brotli v1.0.4 // indirect
++      github.com/andybalholm/brotli v1.0.5 // indirect
+       github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d // indirect
+-      github.com/bufbuild/protocompile v0.2.1-0.20230123224550-da57cd758c2f // indirect
++      github.com/bufbuild/protocompile v0.5.1 // indirect
+       github.com/davecgh/go-spew v1.1.1 // indirect
+-      github.com/dgryski/go-metro v0.0.0-20200812162917-85c65e2d0165 // indirect
++      github.com/dgryski/go-metro v0.0.0-20211217172704-adc40b04c140 // indirect
+       github.com/ebfe/bcrypt_pbkdf v0.0.0-20140212075826-3c8d2dcb253a // indirect
++      github.com/gabriel-vasile/mimetype v1.4.2 // indirect
+       github.com/gaukas/godicttls v0.0.3 // indirect
+       github.com/go-playground/locales v0.14.1 // indirect
+       github.com/go-playground/universal-translator v0.18.1 // indirect
+-      github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
+-      github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect
+-      github.com/klauspost/compress v1.15.15 // indirect
+-      github.com/klauspost/cpuid v1.2.3 // indirect
+-      github.com/klauspost/reedsolomon v1.9.3 // indirect
+-      github.com/leodido/go-urn v1.2.1 // indirect
++      github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
++      github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 // indirect
++      github.com/klauspost/compress v1.16.5 // indirect
++      github.com/klauspost/cpuid/v2 v2.2.5 // indirect
++      github.com/klauspost/reedsolomon v1.11.7 // indirect
++      github.com/leodido/go-urn v1.2.4 // indirect
+       github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect
+       github.com/mustafaturan/monoton v1.0.0 // indirect
+-      github.com/onsi/ginkgo/v2 v2.2.0 // indirect
++      github.com/onsi/ginkgo/v2 v2.10.0 // indirect
+       github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
+-      github.com/pion/dtls/v2 v2.2.4 // indirect
++      github.com/pion/dtls/v2 v2.2.7 // indirect
+       github.com/pion/logging v0.2.2 // indirect
+-      github.com/pion/sctp v1.7.6 // indirect
+-      github.com/pion/transport/v2 v2.0.0 // indirect
+-      github.com/pion/udp v0.1.4 // indirect
+-      github.com/pkg/errors v0.9.1 // indirect
++      github.com/pion/randutil v0.1.0 // indirect
++      github.com/pion/sctp v1.8.7 // indirect
++      github.com/pion/transport/v2 v2.2.1 // indirect
+       github.com/pmezard/go-difflib v1.0.0 // indirect
+       github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect
+       github.com/secure-io/siv-go v0.0.0-20180922214919-5ff40651e2c4 // indirect
+-      github.com/xtaci/smux v1.5.15 // indirect
+-      golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect
+-      golang.org/x/mod v0.7.0 // indirect
+-      golang.org/x/text v0.7.0 // indirect
+-      golang.org/x/tools v0.3.0 // indirect
+-      google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect
++      github.com/xtaci/smux v1.5.24 // indirect
++      golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect
++      golang.org/x/mod v0.10.0 // indirect
++      golang.org/x/text v0.10.0 // indirect
++      golang.org/x/tools v0.9.3 // indirect
++      google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect
+ )
+--- a/go.sum
++++ b/go.sum
+@@ -23,8 +23,8 @@ github.com/ajg/form v1.5.1 h1:t9c7v8JUKu
+ github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=
+ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+-github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY=
+-github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
++github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
++github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
+ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
+ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
+ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
+@@ -34,8 +34,8 @@ github.com/bgentry/speakeasy v0.1.0/go.m
+ github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
+ github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d h1:zsO4lp+bjv5XvPTF58Vq+qgmZEYZttJK+CWtSZhKenI=
+ github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d/go.mod h1:f1iKL6ZhUWvbk7PdWVmOaak10o86cqMUYEmn1CZNGEI=
+-github.com/bufbuild/protocompile v0.2.1-0.20230123224550-da57cd758c2f h1:IXSA5gow10s7zIOJfPOpXDtNBWCTA0715BDAhoJBXEs=
+-github.com/bufbuild/protocompile v0.2.1-0.20230123224550-da57cd758c2f/go.mod h1:tleDrpPTlLUVmgnEoN6qBliKWqJaZFJXqZdFjTd+ocU=
++github.com/bufbuild/protocompile v0.5.1 h1:mixz5lJX4Hiz4FpqFREJHIXLfaLBntfaJv1h+/jS+Qg=
++github.com/bufbuild/protocompile v0.5.1/go.mod h1:G5iLmavmF4NsYtpZFvE3B/zFch2GIY8+wjsYLR/lc40=
+ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+ github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
+@@ -53,8 +53,9 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9
+ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+ github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc/go.mod h1:c9O8+fpSOX1DM8cPNSkX/qsBWdkD4yd2dpciOWQjpBw=
+-github.com/dgryski/go-metro v0.0.0-20200812162917-85c65e2d0165 h1:BS21ZUJ/B5X2UVUbczfmdWH7GapPWAhxcMsDnjJTU1E=
+ github.com/dgryski/go-metro v0.0.0-20200812162917-85c65e2d0165/go.mod h1:c9O8+fpSOX1DM8cPNSkX/qsBWdkD4yd2dpciOWQjpBw=
++github.com/dgryski/go-metro v0.0.0-20211217172704-adc40b04c140 h1:y7y0Oa6UawqTFPCDw9JG6pdKt4F9pAhHv0B7FMGaGD0=
++github.com/dgryski/go-metro v0.0.0-20211217172704-adc40b04c140/go.mod h1:c9O8+fpSOX1DM8cPNSkX/qsBWdkD4yd2dpciOWQjpBw=
+ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
+ github.com/ebfe/bcrypt_pbkdf v0.0.0-20140212075826-3c8d2dcb253a h1:YtdtTUN1iH97s+6PUjLnaiKSQj4oG1/EZ3N9bx6g4kU=
+ github.com/ebfe/bcrypt_pbkdf v0.0.0-20140212075826-3c8d2dcb253a/go.mod h1:/CZpbhAusDOobpcb9yubw46kdYjq0zRC0Wpg9a9zFQM=
+@@ -63,6 +64,8 @@ github.com/envoyproxy/protoc-gen-validat
+ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
++github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
++github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
+ github.com/gaukas/godicttls v0.0.3 h1:YNDIf0d9adcxOijiLrEzpfZGAkNwLRzPaG6OjU7EITk=
+ github.com/gaukas/godicttls v0.0.3/go.mod h1:l6EenT4TLWgTdwslVb4sEMOCf7Bv0JAK67deKr9/NCI=
+ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+@@ -74,16 +77,17 @@ github.com/go-gl/glfw v0.0.0-20190409004
+ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
++github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
+ github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
+ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
+ github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
+ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
+ github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
+-github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU=
+-github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s=
++github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k=
++github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
+ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+-github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=
+-github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
++github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
++github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
+ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
+ github.com/golang-collections/go-datastructures v0.0.0-20150211160725-59788d5eb259/go.mod h1:9Qcha0gTWLw//0VNka1Cbnjvg3pNKGFdAm7E9sBabxE=
+@@ -104,8 +108,8 @@ github.com/golang/protobuf v1.4.0-rc.4.0
+ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
+ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+-github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
+-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
++github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
++github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+@@ -121,8 +125,8 @@ github.com/google/gopacket v1.1.17/go.mo
+ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
+ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+ github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+-github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE=
+-github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
++github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 h1:hR7/MlvK23p6+lIw9SN1TigNLn9ZnF3W4SYRKq2gAHs=
++github.com/google/pprof v0.0.0-20230602150820-91b7bce49751/go.mod h1:Jh3hGz2jkYak8qXPD19ryItVnUgpgeqzdkY/D0EaeuA=
+ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
+@@ -157,10 +161,9 @@ github.com/hashicorp/logutils v1.0.0/go.
+ github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
+ github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
+ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
+-github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+-github.com/jhump/protoreflect v1.15.0 h1:U5T5/2LF0AZQFP9T4W5GfBjBaTruomrKobiR4E+oA/Q=
+-github.com/jhump/protoreflect v1.15.0/go.mod h1:qww51KYjD2hoCl/ohxw5cK2LSssFczrbO1t8Ld2TENs=
++github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c=
++github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo=
+ github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
+ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
+ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
+@@ -168,21 +171,23 @@ github.com/jtolds/gls v4.20.0+incompatib
+ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
+ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+-github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw=
+-github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4=
+-github.com/klauspost/cpuid v1.2.3 h1:CCtW0xUnWGVINKvE/WWOYKdsPV6mawAtvQuSl8guwQs=
++github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI=
++github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+ github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
+-github.com/klauspost/reedsolomon v1.9.3 h1:N/VzgeMfHmLc+KHMD1UL/tNkfXAt8FnUqlgXGIduwAY=
++github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
++github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
+ github.com/klauspost/reedsolomon v1.9.3/go.mod h1:CwCi+NUr9pqSVktrkN+Ondf06rkhYZ/pcNv7fu+8Un4=
++github.com/klauspost/reedsolomon v1.11.7 h1:9uaHU0slncktTEEg4+7Vl7q7XUNMBUOK4R9gnKhMjAU=
++github.com/klauspost/reedsolomon v1.11.7/go.mod h1:4bXRN+cVzMdml6ti7qLouuYi32KHJ5MGv0Qd8a47h6A=
+ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
++github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
+ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+-github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
+ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
+ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+-github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
+-github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
++github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
++github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
+ github.com/lunixbochs/struc v0.0.0-20190916212049-a5c72983bc42/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg=
+ github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc=
+ github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg=
+@@ -191,8 +196,8 @@ github.com/mattn/go-colorable v0.0.9/go.
+ github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
+ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+ github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
+-github.com/miekg/dns v1.1.51 h1:0+Xg7vObnhrz/4ZCZcZh7zPXlmU0aveS2HDBd0m0qSo=
+-github.com/miekg/dns v1.1.51/go.mod h1:2Z9d3CP1LQWihRZUf29mQ19yDThaI4DAYzte2CaQW5c=
++github.com/miekg/dns v1.1.54 h1:5jon9mWcb0sFJGpnI99tOMhCPyJ+RPVz5b63MQG0VWI=
++github.com/miekg/dns v1.1.54/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
+ github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
+ github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
+ github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
+@@ -212,9 +217,9 @@ github.com/mwitkow/go-conntrack v0.0.0-2
+ github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo=
+ github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM=
+ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
+-github.com/onsi/ginkgo/v2 v2.2.0 h1:3ZNA3L1c5FYDFTTxbFeVGGD8jYvjYauHD30YgLxVsNI=
+-github.com/onsi/ginkgo/v2 v2.2.0/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk=
+-github.com/onsi/gomega v1.20.1 h1:PA/3qinGoukvymdIDV8pii6tiZgC8kbmJO6Z5+b002Q=
++github.com/onsi/ginkgo/v2 v2.10.0 h1:sfUl4qgLdvkChZrWCYndY2EAu9BRIw1YphNAzy1VNWs=
++github.com/onsi/ginkgo/v2 v2.10.0/go.mod h1:UDQOh5wbQUlMnkLfVaIUMtQ1Vus92oM+P2JX1aulgcE=
++github.com/onsi/gomega v1.27.7 h1:fVih9JD6ogIiHUN6ePK7HJidyEDpWGVB5mzM7cWNXoU=
+ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
+ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
+ github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
+@@ -224,23 +229,23 @@ github.com/pelletier/go-toml v1.9.5/go.m
+ github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 h1:JhzVVoYvbOACxoUmOs6V/G4D5nPVUW73rKvXxP4XUJc=
+ github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE=
+ github.com/pion/dtls/v2 v2.0.0-rc.7/go.mod h1:U199DvHpRBN0muE9+tVN4TMy1jvEhZIZ63lk4xkvVSk=
+-github.com/pion/dtls/v2 v2.2.4 h1:YSfYwDQgrxMYXLBc/m7PFY5BVtWlNm/DN4qoU2CbcWg=
+-github.com/pion/dtls/v2 v2.2.4/go.mod h1:WGKfxqhrddne4Kg3p11FUMJrynkOY4lb25zHNO49wuw=
++github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8=
++github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s=
+ github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY=
+ github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms=
+-github.com/pion/sctp v1.7.6 h1:8qZTdJtbKfAns/Hv5L0PAj8FyXcsKhMH1pKUCGisQg4=
++github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA=
++github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8=
+ github.com/pion/sctp v1.7.6/go.mod h1:ichkYQ5tlgCQwEwvgfdcAolqx1nHbYCxo4D7zK/K0X8=
+-github.com/pion/transport v0.8.10 h1:lTiobMEw2PG6BH/mgIVqTV2mBp/mPT+IJLaN8ZxgdHk=
++github.com/pion/sctp v1.8.7 h1:JnABvFakZueGAn4KU/4PSKg+GWbF6QWbKTWZOSGJjXw=
++github.com/pion/sctp v1.8.7/go.mod h1:g1Ul+ARqZq5JEmoFy87Q/4CePtKnTJ1QCL9dBBdN6AU=
+ github.com/pion/transport v0.8.10/go.mod h1:tBmha/UCjpum5hqTWhfAEs3CO4/tHSg0MYRhSzR+CZ8=
+-github.com/pion/transport/v2 v2.0.0 h1:bsMYyqHCbkvHwj+eNCFBuxtlKndKfyGI2vaQmM3fIE4=
+-github.com/pion/transport/v2 v2.0.0/go.mod h1:HS2MEBJTwD+1ZI2eSXSvHJx/HnzQqRy2/LXxt6eVMHc=
+-github.com/pion/udp v0.1.4 h1:OowsTmu1Od3sD6i3fQUJxJn2fEvJO6L1TidgadtbTI8=
+-github.com/pion/udp v0.1.4/go.mod h1:G8LDo56HsFwC24LIcnT4YIDU5qcB6NepqqjP0keL2us=
+-github.com/pires/go-proxyproto v0.6.2 h1:KAZ7UteSOt6urjme6ZldyFm4wDe/z0ZUP0Yv0Dos0d8=
+-github.com/pires/go-proxyproto v0.6.2/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY=
++github.com/pion/transport/v2 v2.1.0/go.mod h1:AdSw4YBZVDkZm8fpoz+fclXyQwANWmZAlDuQdctTThQ=
++github.com/pion/transport/v2 v2.2.1 h1:7qYnCBlpgSJNYMbLCKuSY9KbQdBFoETvPNETv0y4N7c=
++github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g=
++github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs=
++github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4=
+ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+-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=
+@@ -259,15 +264,14 @@ github.com/quic-go/qtls-go1-19 v0.3.2 h1
+ github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI=
+ github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E=
+ github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM=
+-github.com/quic-go/quic-go v0.33.0 h1:ItNoTDN/Fm/zBlq769lLJc8ECe9gYaW40veHCCco7y0=
+-github.com/quic-go/quic-go v0.33.0/go.mod h1:YMuhaAV9/jIu0XclDXwZPAsP/2Kgr5yMYhe9oxhhOFA=
++github.com/quic-go/quic-go v0.36.0 h1:JIrO7p7Ug6hssFcARjWDiqS2RAKJHCiwPxBAA989rbI=
++github.com/quic-go/quic-go v0.36.0/go.mod h1:zPetvwDlILVxt15n3hr3Gf/I3mDf7LpLKPhR4Ez0AZQ=
+ github.com/refraction-networking/utls v1.3.2 h1:o+AkWB57mkcoW36ET7uJ002CpBWHu0KPxi6vzxvPnv8=
+ github.com/refraction-networking/utls v1.3.2/go.mod h1:fmoaOww2bxzzEpIKOebIsnBvjQpqP7L2vcm/9KUfm/E=
+ github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg=
+ github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3/go.mod h1:HgjTstvQsPGkxUsCd2KWxErBblirPizecHcpD3ffK+s=
+ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
+ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+-github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
+ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
+ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
+@@ -304,9 +308,10 @@ github.com/stretchr/testify v1.6.1/go.mo
+ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
+-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+-github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
+ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
++github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
++github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
++github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+ github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
+ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+ github.com/txthinking/runnergroup v0.0.0-20200327135940-540a793bb997/go.mod h1:CLUSJbazqETbaR+i0YAhXBICV9TrKH93pziccMhmhpM=
+@@ -322,21 +327,22 @@ github.com/xiang90/probing v0.0.0-201901
+ github.com/xiaokangwang/VLite v0.0.0-20220418190619-cff95160a432 h1:I/ATawgO2RerCq9ACwL0wBB8xNXZdE3J+93MCEHReRs=
+ github.com/xiaokangwang/VLite v0.0.0-20220418190619-cff95160a432/go.mod h1:QN7Go2ftTVfx0aCTh9RXHV8pkpi0FtmbwQw40dy61wQ=
+ github.com/xtaci/smux v1.5.12/go.mod h1:OMlQbT5vcgl2gb49mFkYo6SMf+zP3rcjcwQz7ZU7IGY=
+-github.com/xtaci/smux v1.5.15 h1:6hMiXswcleXj5oNfcJc+DXS8Vj36XX2LaX98udog6Kc=
+ github.com/xtaci/smux v1.5.15/go.mod h1:OMlQbT5vcgl2gb49mFkYo6SMf+zP3rcjcwQz7ZU7IGY=
++github.com/xtaci/smux v1.5.24 h1:77emW9dtnOxxOQ5ltR+8BbsX1kzcOxQ5gB+aaV9hXOY=
++github.com/xtaci/smux v1.5.24/go.mod h1:OMlQbT5vcgl2gb49mFkYo6SMf+zP3rcjcwQz7ZU7IGY=
+ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
+ go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
+ go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
+ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
+-go.starlark.net v0.0.0-20220817180228-f738f5508c12 h1:xOBJXWGEDwU5xSDxH6macxO11Us0AH2fTa9rmsbbF7g=
+-go.starlark.net v0.0.0-20220817180228-f738f5508c12/go.mod h1:VZcBMdr3cT3PnBoWunTabuSEXwVAH+ZJ5zxfs3AdASk=
++go.starlark.net v0.0.0-20230612165344-9532f5667272 h1:2/wtqS591wZyD2OsClsVBKRPEvBsQt/Js+fsCiYhwu8=
++go.starlark.net v0.0.0-20230612165344-9532f5667272/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds=
+ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
+ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
+ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
+-go4.org/netipx v0.0.0-20220812043211-3cc044ffd68d h1:ggxwEf5eu0l8v+87VhX1czFh8zJul3hK16Gmruxn7hw=
+-go4.org/netipx v0.0.0-20220812043211-3cc044ffd68d/go.mod h1:tgPU4N2u9RByaTN3NC2p9xOzyFpte4jYwsIIRF7XlSc=
++go4.org/netipx v0.0.0-20230303233057-f1b76eb4bb35 h1:nJAwRlGWZZDOD+6wni9KVUNHMpHko/OnRwsrCYeAzPo=
++go4.org/netipx v0.0.0-20230303233057-f1b76eb4bb35/go.mod h1:TQvodOM+hJTioNQJilmLXu08JNb8i+ccq418+KWu1/Y=
+ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+ golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+@@ -348,16 +354,16 @@ golang.org/x/crypto v0.0.0-2020062221362
+ golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
+ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+-golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
+-golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc=
+-golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
++golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
++golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
++golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
+ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+ golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+ golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
+ golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
+ golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
+-golang.org/x/exp v0.0.0-20221205204356-47842c84f3db h1:D/cFflL63o2KSLJIwjlcIt8PR064j/xsmdEJL/YvY/o=
+-golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
++golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 h1:k/i9J1pBpvlfR+9QsetwPyERsqu1GIbi967PQMq3Ivc=
++golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
+ golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
+ golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+ golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+@@ -374,8 +380,9 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrY
+ 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.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
+-golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA=
+-golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
++golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
++golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
++golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+ golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+ golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+@@ -395,11 +402,11 @@ golang.org/x/net v0.0.0-20201021035429-f
+ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
+ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+-golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
+-golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
+-golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
+-golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
+-golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
++golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
++golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
++golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
++golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
++golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
+ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+@@ -411,8 +418,9 @@ golang.org/x/sync v0.0.0-20190423024810-
+ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/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.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
+ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
++golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
++golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+ golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+ golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+@@ -429,7 +437,6 @@ golang.org/x/sys v0.0.0-20190507160741-e
+ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+@@ -440,27 +447,29 @@ golang.org/x/sys v0.0.0-20210510120138-9
+ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
++golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-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/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
++golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
++golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
++golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+-golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+-golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
+-golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
++golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
++golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
++golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
++golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+-golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+-golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+-golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
+ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
++golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
++golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
++golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58=
++golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+ golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+@@ -485,8 +494,9 @@ golang.org/x/tools v0.0.0-20191119224855
+ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
+ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
+-golang.org/x/tools v0.3.0 h1:SrNbZl6ECOS1qFzgTdQfWXZM9XBkiA6tkFrH9YSTPHM=
+-golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
++golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
++golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
++golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
+ 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-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+@@ -510,15 +520,15 @@ google.golang.org/genproto v0.0.0-201908
+ google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
+ google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
+-google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w=
+-google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
++google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc h1:XSJ8Vk1SWuNr8S18z1NZSziL0CPIXLCCMDOEFtHBOFc=
++google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
+ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+ google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
+ google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
+ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+-google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc=
+-google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
++google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag=
++google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
+ google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+ google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+@@ -529,13 +539,13 @@ google.golang.org/protobuf v1.23.1-0.202
+ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
+ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+-google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk=
+-google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
++google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
++google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
++gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
+ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+ gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+ gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
+--- a/transport/internet/quic/dialer.go
++++ b/transport/internet/quic/dialer.go
+@@ -150,7 +150,6 @@ func (s *clientConnections) openConnecti
+       }
+       quicConfig := &quic.Config{
+-              ConnectionIDLength:   12,
+               HandshakeIdleTimeout: time.Second * 8,
+               MaxIdleTimeout:       time.Second * 30,
+               KeepAlivePeriod:      time.Second * 15,
+@@ -162,7 +161,12 @@ func (s *clientConnections) openConnecti
+               return nil, err
+       }
+-      conn, err := quic.DialContext(context.Background(), sysConn, destAddr, "", tlsConfig.GetTLSConfig(tls.WithDestination(dest)), quicConfig)
++      tr := quic.Transport{
++              Conn:               sysConn,
++              ConnectionIDLength: 12,
++      }
++
++      conn, err := tr.Dial(context.Background(), destAddr, tlsConfig.GetTLSConfig(tls.WithDestination(dest)), quicConfig)
+       if err != nil {
+               sysConn.Close()
+               return nil, err
+--- a/transport/internet/quic/hub.go
++++ b/transport/internet/quic/hub.go
+@@ -17,7 +17,7 @@ import (
+ // Listener is an internet.Listener that listens for TCP connections.
+ type Listener struct {
+       rawConn  *sysConn
+-      listener quic.Listener
++      listener *quic.Listener
+       done     *done.Instance
+       addConn  internet.ConnHandler
+ }
+@@ -102,7 +102,6 @@ func Listen(ctx context.Context, address
+       }
+       quicConfig := &quic.Config{
+-              ConnectionIDLength:    12,
+               HandshakeIdleTimeout:  time.Second * 8,
+               MaxIdleTimeout:        time.Second * 45,
+               MaxIncomingStreams:    32,
+@@ -116,7 +115,12 @@ func Listen(ctx context.Context, address
+               return nil, err
+       }
+-      qListener, err := quic.Listen(conn, tlsConfig.GetTLSConfig(), quicConfig)
++      tr := quic.Transport{
++              Conn:               conn,
++              ConnectionIDLength: 12,
++      }
++
++      qListener, err := tr.Listen(tlsConfig.GetTLSConfig(), quicConfig)
+       if err != nil {
+               conn.Close()
+               return nil, err
diff --git a/net/v2ray-core/patches/003-fix-panic-in-dns-over-quic-when-address-is-a-ip.patch b/net/v2ray-core/patches/003-fix-panic-in-dns-over-quic-when-address-is-a-ip.patch
new file mode 100644 (file)
index 0000000..23bac4b
--- /dev/null
@@ -0,0 +1,29 @@
+From 5c995d97f43e8e97ee0cb3d1aa12450d3968c8d2 Mon Sep 17 00:00:00 2001
+From: AkinoKaede <i@akinokae.de>
+Date: Sun, 2 Jul 2023 09:47:33 +0800
+Subject: [PATCH] fix: panic in dns over quic when address is a ip
+
+---
+ app/dns/nameserver_quic.go | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+--- a/app/dns/nameserver_quic.go
++++ b/app/dns/nameserver_quic.go
+@@ -378,7 +378,16 @@ func (s *QUICNameServer) getConnection(c
+ func (s *QUICNameServer) openConnection(ctx context.Context) (quic.Connection, error) {
+       tlsConfig := tls.Config{
+-              ServerName: s.destination.Address.Domain(),
++              ServerName: func() string {
++                      switch s.destination.Address.Family() {
++                      case net.AddressFamilyIPv4, net.AddressFamilyIPv6:
++                              return s.destination.Address.IP().String()
++                      case net.AddressFamilyDomain:
++                              return s.destination.Address.Domain()
++                      default:
++                              panic("unknown address family")
++                      }
++              }(),
+       }
+       quicConfig := &quic.Config{
+               HandshakeIdleTimeout: handshakeIdleTimeout,
diff --git a/net/v2ray-core/patches/004-feat-bulit-in-qtls-cipher-suite-implementation.patch b/net/v2ray-core/patches/004-feat-bulit-in-qtls-cipher-suite-implementation.patch
new file mode 100644 (file)
index 0000000..54d4476
--- /dev/null
@@ -0,0 +1,109 @@
+From 8c5bcacb996cfecccd71471b682aef9a15da2499 Mon Sep 17 00:00:00 2001
+From: AkinoKaede <i@akinokae.de>
+Date: Mon, 17 Jul 2023 12:38:25 +0800
+Subject: [PATCH] feat: bulit-in qtls cipher suite implementation
+
+---
+ common/protocol/quic/cipher_suite.go | 23 +++++++++++++++++++++++
+ common/protocol/quic/qtls_go119.go   | 18 ------------------
+ common/protocol/quic/qtls_go120.go   | 18 ------------------
+ common/protocol/quic/sniff.go        |  6 +++---
+ go.mod                               |  4 ++--
+ go.sum                               |  2 ++
+ 6 files changed, 30 insertions(+), 41 deletions(-)
+ create mode 100644 common/protocol/quic/cipher_suite.go
+ delete mode 100644 common/protocol/quic/qtls_go119.go
+ delete mode 100644 common/protocol/quic/qtls_go120.go
+
+--- /dev/null
++++ b/common/protocol/quic/cipher_suite.go
+@@ -0,0 +1,23 @@
++package quic
++
++import (
++      "crypto"
++      "crypto/cipher"
++      _ "crypto/tls"
++      _ "unsafe"
++)
++
++// copied from github.com/quic-go/quic-go/internal/qtls/cipher_suite_go121.go
++
++type cipherSuiteTLS13 struct {
++      ID     uint16
++      KeyLen int
++      AEAD   func(key, fixedNonce []byte) cipher.AEAD
++      Hash   crypto.Hash
++}
++
++// github.com/quic-go/quic-go/internal/handshake/cipher_suite.go describes these cipher suite implementations are copied from the standard library crypto/tls package.
++// So we can user go:linkname to implement the same feature.
++
++//go:linkname aeadAESGCMTLS13 crypto/tls.aeadAESGCMTLS13
++func aeadAESGCMTLS13(key, nonceMask []byte) cipher.AEAD
+--- a/common/protocol/quic/qtls_go119.go
++++ /dev/null
+@@ -1,18 +0,0 @@
+-//go:build go1.19 && !go1.20
+-
+-package quic
+-
+-import (
+-      "crypto/cipher"
+-
+-      "github.com/quic-go/qtls-go1-19"
+-)
+-
+-type (
+-      // A CipherSuiteTLS13 is a cipher suite for TLS 1.3
+-      CipherSuiteTLS13 = qtls.CipherSuiteTLS13
+-)
+-
+-func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD {
+-      return qtls.AEADAESGCMTLS13(key, fixedNonce)
+-}
+--- a/common/protocol/quic/qtls_go120.go
++++ /dev/null
+@@ -1,18 +0,0 @@
+-//go:build go1.20
+-
+-package quic
+-
+-import (
+-      "crypto/cipher"
+-
+-      "github.com/quic-go/qtls-go1-20"
+-)
+-
+-type (
+-      // A CipherSuiteTLS13 is a cipher suite for TLS 1.3
+-      CipherSuiteTLS13 = qtls.CipherSuiteTLS13
+-)
+-
+-func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD {
+-      return qtls.AEADAESGCMTLS13(key, fixedNonce)
+-}
+--- a/common/protocol/quic/sniff.go
++++ b/common/protocol/quic/sniff.go
+@@ -37,10 +37,10 @@ const (
+ var (
+       quicSaltOld  = []byte{0xaf, 0xbf, 0xec, 0x28, 0x99, 0x93, 0xd2, 0x4c, 0x9e, 0x97, 0x86, 0xf1, 0x9c, 0x61, 0x11, 0xe0, 0x43, 0x90, 0xa8, 0x99}
+       quicSalt     = []byte{0x38, 0x76, 0x2c, 0xf7, 0xf5, 0x59, 0x34, 0xb3, 0x4d, 0x17, 0x9a, 0xe6, 0xa4, 0xc8, 0x0c, 0xad, 0xcc, 0xbb, 0x7f, 0x0a}
+-      initialSuite = &CipherSuiteTLS13{
++      initialSuite = &cipherSuiteTLS13{
+               ID:     tls.TLS_AES_128_GCM_SHA256,
+               KeyLen: 16,
+-              AEAD:   AEADAESGCMTLS13,
++              AEAD:   aeadAESGCMTLS13,
+               Hash:   crypto.SHA256,
+       }
+       errNotQuic        = errors.New("not quic")
+@@ -153,7 +153,7 @@ func SniffQUIC(b []byte) (*SniffHeader,
+       key := hkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic key", 16)
+       iv := hkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic iv", 12)
+-      cipher := AEADAESGCMTLS13(key, iv)
++      cipher := aeadAESGCMTLS13(key, iv)
+       nonce := cache.Extend(int32(cipher.NonceSize()))
+       binary.BigEndian.PutUint64(nonce[len(nonce)-8:], uint64(packetNumber))
+       decrypted, err := cipher.Open(b[extHdrLen:extHdrLen], nonce, data, b[:extHdrLen])
diff --git a/net/v2ray-core/patches/010-chore-go-update-dependencies.patch b/net/v2ray-core/patches/010-chore-go-update-dependencies.patch
new file mode 100644 (file)
index 0000000..c745aeb
--- /dev/null
@@ -0,0 +1,40 @@
+--- a/go.mod
++++ b/go.mod
+@@ -16,9 +16,7 @@ require (
+       github.com/mustafaturan/bus v1.0.2
+       github.com/pelletier/go-toml v1.9.5
+       github.com/pires/go-proxyproto v0.7.0
+-      github.com/quic-go/qtls-go1-19 v0.3.2
+-      github.com/quic-go/qtls-go1-20 v0.2.2
+-      github.com/quic-go/quic-go v0.36.0
++      github.com/quic-go/quic-go v0.37.4
+       github.com/refraction-networking/utls v1.3.2
+       github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb
+       github.com/stretchr/testify v1.8.4
+@@ -67,6 +65,7 @@ require (
+       github.com/pion/sctp v1.8.7 // indirect
+       github.com/pion/transport/v2 v2.2.1 // indirect
+       github.com/pmezard/go-difflib v1.0.0 // indirect
++      github.com/quic-go/qtls-go1-20 v0.3.1 // indirect
+       github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect
+       github.com/secure-io/siv-go v0.0.0-20180922214919-5ff40651e2c4 // indirect
+       github.com/xtaci/smux v1.5.24 // indirect
+--- a/go.sum
++++ b/go.sum
+@@ -260,12 +260,10 @@ github.com/prometheus/common v0.4.0/go.m
+ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+ github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
+-github.com/quic-go/qtls-go1-19 v0.3.2 h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U=
+-github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI=
+-github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E=
+-github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM=
+-github.com/quic-go/quic-go v0.36.0 h1:JIrO7p7Ug6hssFcARjWDiqS2RAKJHCiwPxBAA989rbI=
+-github.com/quic-go/quic-go v0.36.0/go.mod h1:zPetvwDlILVxt15n3hr3Gf/I3mDf7LpLKPhR4Ez0AZQ=
++github.com/quic-go/qtls-go1-20 v0.3.1 h1:O4BLOM3hwfVF3AcktIylQXyl7Yi2iBNVy5QsV+ySxbg=
++github.com/quic-go/qtls-go1-20 v0.3.1/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k=
++github.com/quic-go/quic-go v0.37.4 h1:ke8B73yMCWGq9MfrCCAw0Uzdm7GaViC3i39dsIdDlH4=
++github.com/quic-go/quic-go v0.37.4/go.mod h1:YsbH1r4mSHPJcLF4k4zruUkLBqctEMBDR6VPvcYjIsU=
+ github.com/refraction-networking/utls v1.3.2 h1:o+AkWB57mkcoW36ET7uJ002CpBWHu0KPxi6vzxvPnv8=
+ github.com/refraction-networking/utls v1.3.2/go.mod h1:fmoaOww2bxzzEpIKOebIsnBvjQpqP7L2vcm/9KUfm/E=
+ github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg=
index 290cc3273ce90830d511c8b52f044dad6407bb22..3968a718bb8b97125e540ffae540d50d96cf2285 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vnstat2
-PKG_VERSION:=2.10
+PKG_VERSION:=2.11
 PKG_RELEASE:=1
 
 PKG_SOURCE:=vnstat-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://humdi.net/vnstat
-PKG_HASH:=a9c61744e5cd8c366e2db4d282badc74021ddb614bd65b41240937997e457d25
+PKG_HASH:=babc3f1583cc40e4e8ffb2f53296d93d308cb5a5043e85054f6eaf7b4ae57856
 
 PKG_LICENSE:=GPL-2.0-only
 PKG_LICENSE_FILES:=COPYING
index b952818fc3dd54b0df20b0b767a24fdcb7d5a5ff..9940e814f4873e9374c1b2f9b7328dde566ebb8a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/daemon.c
 +++ b/src/daemon.c
-@@ -252,6 +252,7 @@ void initdstate(DSTATE *s)
+@@ -277,6 +277,7 @@ void initdstate(DSTATE *s)
        s->sync = 0;
        s->forcesave = 0;
        s->noadd = 0;
@@ -8,7 +8,7 @@
        s->initdb = 0;
        s->iflisthash = 0;
        s->cfgfile[0] = '\0';
-@@ -285,6 +286,9 @@ void preparedatabase(DSTATE *s)
+@@ -310,6 +311,9 @@ void preparedatabase(DSTATE *s)
        }
  
        if (s->noadd) {
@@ -18,7 +18,7 @@
                printf("No interfaces found in database, exiting.\n");
                exit(EXIT_FAILURE);
        }
-@@ -303,6 +307,9 @@ void preparedatabase(DSTATE *s)
+@@ -328,6 +332,9 @@ void preparedatabase(DSTATE *s)
        }
  
        if (!addinterfaces(s) && s->dbifcount == 0) {
@@ -41,7 +41,7 @@
        uint64_t dbifcount;
 --- a/src/vnstatd.c
 +++ b/src/vnstatd.c
-@@ -249,6 +249,7 @@ void showhelp(void)
+@@ -259,6 +259,7 @@ void showhelp(void)
        printf("      --config <config file>   select used config file\n");
        printf("      --noadd                  prevent startup if database has no interfaces\n");
        printf("      --alwaysadd [mode]       automatically start monitoring all new interfaces\n");
@@ -49,7 +49,7 @@
        printf("      --initdb                 create empty database and exit\n\n");
  
        printf("See also \"man vnstatd\".\n");
-@@ -322,6 +323,8 @@ void parseargs(DSTATE *s, int argc, char
+@@ -332,6 +333,8 @@ void parseargs(DSTATE *s, int argc, char
                        } else {
                                cfg.alwaysadd = 1;
                        }
                } else if (strcmp(argv[currentarg], "--initdb") == 0) {
                        s->initdb = 1;
                        s->showhelp = 0;
+--- a/src/dbsql.c
++++ b/src/dbsql.c
+@@ -976,7 +976,7 @@ int db_insertdata(const char *table, con
+ int db_removeoldentries(void)
+ {
+-      int rc, i;
++      int rc, i, dbifcount;
+       char sql[256];
+       const char *datatables[] = {"fiveminute", "hour", "day", "month", "year"};
+       const int32_t entrylimits[] = {cfg.fiveminutehours * 12, cfg.hourlydays * 24, cfg.dailydays, cfg.monthlymonths, cfg.yearlyyears};
+@@ -987,8 +987,11 @@ int db_removeoldentries(void)
+               printf("db: removing old entries\n");
+       }
+-      if (db_getiflist(&dbifl) <= 0) {
++      dbifcount = db_getiflist(&dbifl);
++      if (dbifcount < 0) {
+               return 0;
++      } else if (dbifcount == 0) {
++              return 1;
+       } else {
+               dbifl_i = dbifl;
+       }
index a34aa0f1c5a06b94b2fba4ff67ebfe68d00d7428..6440dab78c12470d574f5c96441a9b8e58ff3489 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xray-core
 PKG_VERSION:=1.8.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)?
diff --git a/net/xray-core/patches/00-fix-go1.21-build.patch b/net/xray-core/patches/00-fix-go1.21-build.patch
new file mode 100644 (file)
index 0000000..5d0d999
--- /dev/null
@@ -0,0 +1,236 @@
+--- a/go.mod
++++ b/go.mod
+@@ -5,28 +5,27 @@ go 1.20
+ require (
+       github.com/ghodss/yaml v1.0.1-0.20220118164431-d8423dcdf344
+       github.com/golang/mock v1.6.0
+-      github.com/golang/protobuf v1.5.3
+       github.com/google/go-cmp v0.5.9
+       github.com/gorilla/websocket v1.5.0
+-      github.com/miekg/dns v1.1.54
++      github.com/miekg/dns v1.1.55
+       github.com/pelletier/go-toml v1.9.5
+       github.com/pires/go-proxyproto v0.7.0
+-      github.com/quic-go/quic-go v0.35.1
+-      github.com/refraction-networking/utls v1.3.2
+-      github.com/sagernet/sing v0.2.5
++      github.com/quic-go/quic-go v0.38.0
++      github.com/refraction-networking/utls v1.3.3
++      github.com/sagernet/sing v0.2.7
+       github.com/sagernet/sing-shadowsocks v0.2.2
+       github.com/sagernet/wireguard-go v0.0.0-20221116151939-c99467f53f2c
+       github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb
+       github.com/stretchr/testify v1.8.4
+       github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e
+       github.com/xtls/reality v0.0.0-20230613075828-e07c3b04b983
+-      golang.org/x/crypto v0.10.0
+-      golang.org/x/net v0.11.0
++      golang.org/x/crypto v0.12.0
++      golang.org/x/net v0.14.0
+       golang.org/x/sync v0.3.0
+-      golang.org/x/sys v0.9.0
+-      google.golang.org/grpc v1.56.0
+-      google.golang.org/protobuf v1.30.0
+-      gvisor.dev/gvisor v0.0.0-20220901235040-6ca97ef2ce1c
++      golang.org/x/sys v0.11.0
++      google.golang.org/grpc v1.57.0
++      google.golang.org/protobuf v1.31.0
++      gvisor.dev/gvisor v0.0.0-20230806223740-1b6e502fedca
+       h12.io/socks v1.0.3
+       lukechampine.com/blake3 v1.2.1
+ )
+@@ -38,19 +37,19 @@ require (
+       github.com/francoispqt/gojay v1.2.13 // indirect
+       github.com/gaukas/godicttls v0.0.3 // indirect
+       github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
++      github.com/golang/protobuf v1.5.3 // indirect
+       github.com/google/btree v1.1.2 // indirect
+       github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 // indirect
+       github.com/klauspost/compress v1.16.6 // indirect
+       github.com/klauspost/cpuid/v2 v2.2.5 // indirect
+       github.com/onsi/ginkgo/v2 v2.11.0 // indirect
+       github.com/pmezard/go-difflib v1.0.0 // indirect
+-      github.com/quic-go/qtls-go1-19 v0.3.2 // indirect
+-      github.com/quic-go/qtls-go1-20 v0.2.2 // indirect
++      github.com/quic-go/qtls-go1-20 v0.3.2 // indirect
+       github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect
+       go.uber.org/atomic v1.11.0 // indirect
+-      golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect
++      golang.org/x/exp v0.0.0-20230725093048-515e97ebf090 // indirect
+       golang.org/x/mod v0.11.0 // indirect
+-      golang.org/x/text v0.10.0 // indirect
++      golang.org/x/text v0.12.0 // indirect
+       golang.org/x/time v0.3.0 // indirect
+       golang.org/x/tools v0.10.0 // indirect
+       google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect
+--- a/go.sum
++++ b/go.sum
+@@ -89,8 +89,8 @@ github.com/lunixbochs/vtclean v1.0.0/go.
+ github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+ github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=
+-github.com/miekg/dns v1.1.54 h1:5jon9mWcb0sFJGpnI99tOMhCPyJ+RPVz5b63MQG0VWI=
+-github.com/miekg/dns v1.1.54/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
++github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo=
++github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
+ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+ github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo=
+@@ -112,19 +112,17 @@ github.com/prometheus/client_golang v0.8
+ github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+ github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
+ github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+-github.com/quic-go/qtls-go1-19 v0.3.2 h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U=
+-github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI=
+-github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E=
+-github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM=
+-github.com/quic-go/quic-go v0.35.1 h1:b0kzj6b/cQAf05cT0CkQubHM31wiA+xH3IBkxP62poo=
+-github.com/quic-go/quic-go v0.35.1/go.mod h1:+4CVgVppm0FNjpG3UcX8Joi/frKOH7/ciD5yGcwOO1g=
+-github.com/refraction-networking/utls v1.3.2 h1:o+AkWB57mkcoW36ET7uJ002CpBWHu0KPxi6vzxvPnv8=
+-github.com/refraction-networking/utls v1.3.2/go.mod h1:fmoaOww2bxzzEpIKOebIsnBvjQpqP7L2vcm/9KUfm/E=
++github.com/quic-go/qtls-go1-20 v0.3.2 h1:rRgN3WfnKbyik4dBV8A6girlJVxGand/d+jVKbQq5GI=
++github.com/quic-go/qtls-go1-20 v0.3.2/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k=
++github.com/quic-go/quic-go v0.38.0 h1:T45lASr5q/TrVwt+jrVccmqHhPL2XuSyoCLVCpfOSLc=
++github.com/quic-go/quic-go v0.38.0/go.mod h1:MPCuRq7KBK2hNcfKj/1iD1BGuN3eAYMeNxp3T42LRUg=
++github.com/refraction-networking/utls v1.3.3 h1:f/TBLX7KBciRyFH3bwupp+CE4fzoYKCirhdRcC490sw=
++github.com/refraction-networking/utls v1.3.3/go.mod h1:DlecWW1LMlMJu+9qpzzQqdHDT/C2LAe03EdpLUz/RL8=
+ github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg=
+ github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3/go.mod h1:HgjTstvQsPGkxUsCd2KWxErBblirPizecHcpD3ffK+s=
+ github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
+-github.com/sagernet/sing v0.2.5 h1:N8sUluR8GZvR9DqUiH3FA3vBb4m/EDdOVTYUrDzJvmY=
+-github.com/sagernet/sing v0.2.5/go.mod h1:Ta8nHnDLAwqySzKhGoKk4ZIB+vJ3GTKj7UPrWYvM+4w=
++github.com/sagernet/sing v0.2.7 h1:cOy0FfPS8q7m0aJ51wS7LRQAGc9wF+fWhHtBDj99wy8=
++github.com/sagernet/sing v0.2.7/go.mod h1:Ta8nHnDLAwqySzKhGoKk4ZIB+vJ3GTKj7UPrWYvM+4w=
+ github.com/sagernet/sing-shadowsocks v0.2.2 h1:ezSdVhrmIcwDXmCZF3bOJVMuVtTQWpda+1Op+Ie2TA4=
+ github.com/sagernet/sing-shadowsocks v0.2.2/go.mod h1:JIBWG6a7orB2HxBxYElViQFLUQxFVG7DuqIj8gD7uCQ=
+ github.com/sagernet/wireguard-go v0.0.0-20221116151939-c99467f53f2c h1:vK2wyt9aWYHHvNLWniwijBu/n4pySypiKRhN32u/JGo=
+@@ -178,11 +176,11 @@ golang.org/x/crypto v0.0.0-2018103010241
+ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+ golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+-golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM=
+-golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
++golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
++golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
+ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+-golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 h1:k/i9J1pBpvlfR+9QsetwPyERsqu1GIbi967PQMq3Ivc=
+-golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
++golang.org/x/exp v0.0.0-20230725093048-515e97ebf090 h1:Di6/M8l0O2lCLc6VVRWhgCiApHV8MnQurBnFSHsQtNY=
++golang.org/x/exp v0.0.0-20230725093048-515e97ebf090/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
+ golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+ golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
+@@ -200,8 +198,8 @@ golang.org/x/net v0.0.0-20190313220215-9
+ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
+-golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU=
+-golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
++golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
++golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
+ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+ golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+ golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+@@ -225,14 +223,14 @@ golang.org/x/sys v0.0.0-20201119102817-f
+ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
+-golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
++golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
++golang.org/x/sys v0.11.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.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+-golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58=
+-golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
++golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc=
++golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+ golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+ golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
+@@ -268,12 +266,12 @@ google.golang.org/grpc v1.14.0/go.mod h1
+ google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=
+ google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
+ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+-google.golang.org/grpc v1.56.0 h1:+y7Bs8rtMd07LeXmL3NxcTLn7mUkbKZqEpPhMNkwJEE=
+-google.golang.org/grpc v1.56.0/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
++google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw=
++google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
+ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+-google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
+-google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
++google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
++google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
+ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
+@@ -286,8 +284,8 @@ gopkg.in/yaml.v3 v3.0.0-20200605160147-a
+ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+ grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o=
+-gvisor.dev/gvisor v0.0.0-20220901235040-6ca97ef2ce1c h1:m5lcgWnL3OElQNVyp3qcncItJ2c0sQlSGjYK2+nJTA4=
+-gvisor.dev/gvisor v0.0.0-20220901235040-6ca97ef2ce1c/go.mod h1:TIvkJD0sxe8pIob3p6T8IzxXunlp6yfgktvTNp+DGNM=
++gvisor.dev/gvisor v0.0.0-20230806223740-1b6e502fedca h1:7ny3LuaRJFcPuCi2mc9/tv0ybe02o7cKA2qI/edjWuE=
++gvisor.dev/gvisor v0.0.0-20230806223740-1b6e502fedca/go.mod h1:lYEMhXbxgudVhALYsMQrBaUAjM3NMinh8mKL1CJv7rc=
+ h12.io/socks v1.0.3 h1:Ka3qaQewws4j4/eDQnOdpr4wXsC//dXtWvftlIcCQUo=
+ h12.io/socks v1.0.3/go.mod h1:AIhxy1jOId/XCz9BO+EIgNL2rQiPTBNnOfnVnQ+3Eck=
+ honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+--- a/proxy/wireguard/tun.go
++++ b/proxy/wireguard/tun.go
+@@ -14,7 +14,7 @@ import (
+       "github.com/sagernet/wireguard-go/tun"
+       "github.com/xtls/xray-core/features/dns"
+-      "gvisor.dev/gvisor/pkg/bufferv2"
++      "gvisor.dev/gvisor/pkg/buffer"
+       "gvisor.dev/gvisor/pkg/tcpip"
+       "gvisor.dev/gvisor/pkg/tcpip/adapters/gonet"
+       "gvisor.dev/gvisor/pkg/tcpip/header"
+@@ -30,7 +30,7 @@ type netTun struct {
+       ep             *channel.Endpoint
+       stack          *stack.Stack
+       events         chan tun.Event
+-      incomingPacket chan *bufferv2.View
++      incomingPacket chan *buffer.View
+       mtu            int
+       dnsClient      dns.Client
+       hasV4, hasV6   bool
+@@ -48,7 +48,7 @@ func CreateNetTUN(localAddresses []netip
+               ep:             channel.New(1024, uint32(mtu), ""),
+               stack:          stack.New(opts),
+               events:         make(chan tun.Event, 10),
+-              incomingPacket: make(chan *bufferv2.View),
++              incomingPacket: make(chan *buffer.View),
+               dnsClient:      dnsClient,
+               mtu:            mtu,
+       }
+@@ -66,7 +66,7 @@ func CreateNetTUN(localAddresses []netip
+               }
+               protoAddr := tcpip.ProtocolAddress{
+                       Protocol:          protoNumber,
+-                      AddressWithPrefix: tcpip.Address(ip.AsSlice()).WithPrefix(),
++                      AddressWithPrefix: tcpip.AddrFromSlice(ip.AsSlice()).WithPrefix(),
+               }
+               tcpipErr := dev.stack.AddProtocolAddress(1, protoAddr, stack.AddressProperties{})
+               if tcpipErr != nil {
+@@ -116,7 +116,7 @@ func (tun *netTun) Write(buf []byte, off
+               return 0, nil
+       }
+-      pkb := stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: bufferv2.MakeWithData(packet)})
++      pkb := stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: buffer.MakeWithData(packet)})
+       switch packet[0] >> 4 {
+       case 4:
+               tun.ep.InjectInbound(header.IPv4ProtocolNumber, pkb)
+@@ -172,7 +172,7 @@ func convertToFullAddr(endpoint netip.Ad
+       }
+       return tcpip.FullAddress{
+               NIC:  1,
+-              Addr: tcpip.Address(endpoint.Addr().AsSlice()),
++              Addr: tcpip.AddrFromSlice(endpoint.Addr().AsSlice()),
+               Port: endpoint.Port(),
+       }, protoNumber
+ }