mirror of
				https://github.com/MHSanaei/3x-ui.git
				synced 2025-10-30 03:42:51 +00:00 
			
		
		
		
	Merge branch 'MHSanaei:main' into main
This commit is contained in:
		
						commit
						2919ce2f29
					
				
					 16 changed files with 95 additions and 71 deletions
				
			
		|  | @ -253,6 +253,7 @@ location /sub { | ||||||
| - Oracle Linux 8+ | - Oracle Linux 8+ | ||||||
| - OpenSUSE Tubleweed | - OpenSUSE Tubleweed | ||||||
| - Amazon Linux 2023 | - Amazon Linux 2023 | ||||||
|  | - Windows x64 | ||||||
| 
 | 
 | ||||||
| ## Arquitecturas y Dispositivos Compatibles | ## Arquitecturas y Dispositivos Compatibles | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -246,6 +246,7 @@ location /sub { | ||||||
| - Oracle Linux 8+ | - Oracle Linux 8+ | ||||||
| - OpenSUSE Tubleweed | - OpenSUSE Tubleweed | ||||||
| - Amazon Linux 2023 | - Amazon Linux 2023 | ||||||
|  | - Windows x64 | ||||||
| 
 | 
 | ||||||
| ## Supported Architectures and Devices | ## Supported Architectures and Devices | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -245,6 +245,7 @@ location /sub { | ||||||
| - Oracle Linux 8+ | - Oracle Linux 8+ | ||||||
| - OpenSUSE Tubleweed | - OpenSUSE Tubleweed | ||||||
| - Amazon Linux 2023 | - Amazon Linux 2023 | ||||||
|  | - Windows x64 | ||||||
| 
 | 
 | ||||||
| ## Поддерживаемые архитектуры и устройства | ## Поддерживаемые архитектуры и устройства | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -242,6 +242,7 @@ location /sub { | ||||||
| - Oracle Linux 8+ | - Oracle Linux 8+ | ||||||
| - OpenSUSE Tubleweed | - OpenSUSE Tubleweed | ||||||
| - Amazon Linux 2023 | - Amazon Linux 2023 | ||||||
|  | - Windows x64 | ||||||
| 
 | 
 | ||||||
| ## 支持的架构和设备 | ## 支持的架构和设备 | ||||||
| <details> | <details> | ||||||
|  |  | ||||||
							
								
								
									
										40
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								go.mod
									
									
									
									
									
								
							|  | @ -1,13 +1,13 @@ | ||||||
| module x-ui | module x-ui | ||||||
| 
 | 
 | ||||||
| go 1.23.2 | go 1.23.3 | ||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
| 	github.com/gin-contrib/gzip v1.0.1 | 	github.com/gin-contrib/gzip v1.0.1 | ||||||
| 	github.com/gin-contrib/sessions v1.0.1 | 	github.com/gin-contrib/sessions v1.0.1 | ||||||
| 	github.com/gin-gonic/gin v1.10.0 | 	github.com/gin-gonic/gin v1.10.0 | ||||||
| 	github.com/goccy/go-json v0.10.3 | 	github.com/goccy/go-json v0.10.3 | ||||||
| 	github.com/mymmrac/telego v0.31.3 | 	github.com/mymmrac/telego v0.31.4 | ||||||
| 	github.com/nicksnyder/go-i18n/v2 v2.4.1 | 	github.com/nicksnyder/go-i18n/v2 v2.4.1 | ||||||
| 	github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 | 	github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 | ||||||
| 	github.com/pelletier/go-toml/v2 v2.2.3 | 	github.com/pelletier/go-toml/v2 v2.2.3 | ||||||
|  | @ -16,15 +16,15 @@ require ( | ||||||
| 	github.com/valyala/fasthttp v1.57.0 | 	github.com/valyala/fasthttp v1.57.0 | ||||||
| 	github.com/xtls/xray-core v1.8.25-0.20241031075831-4ec5c78c3453 | 	github.com/xtls/xray-core v1.8.25-0.20241031075831-4ec5c78c3453 | ||||||
| 	go.uber.org/atomic v1.11.0 | 	go.uber.org/atomic v1.11.0 | ||||||
| 	golang.org/x/text v0.19.0 | 	golang.org/x/text v0.20.0 | ||||||
| 	google.golang.org/grpc v1.67.1 | 	google.golang.org/grpc v1.68.0 | ||||||
| 	gorm.io/driver/sqlite v1.5.6 | 	gorm.io/driver/sqlite v1.5.6 | ||||||
| 	gorm.io/gorm v1.25.12 | 	gorm.io/gorm v1.25.12 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
| 	github.com/andybalholm/brotli v1.1.1 // indirect | 	github.com/andybalholm/brotli v1.1.1 // indirect | ||||||
| 	github.com/bytedance/sonic v1.12.3 // indirect | 	github.com/bytedance/sonic v1.12.4 // indirect | ||||||
| 	github.com/bytedance/sonic/loader v0.2.1 // indirect | 	github.com/bytedance/sonic/loader v0.2.1 // indirect | ||||||
| 	github.com/cloudflare/circl v1.5.0 // indirect | 	github.com/cloudflare/circl v1.5.0 // indirect | ||||||
| 	github.com/cloudwego/base64x v0.1.4 // indirect | 	github.com/cloudwego/base64x v0.1.4 // indirect | ||||||
|  | @ -40,7 +40,7 @@ require ( | ||||||
| 	github.com/go-playground/validator/v10 v10.22.1 // indirect | 	github.com/go-playground/validator/v10 v10.22.1 // indirect | ||||||
| 	github.com/go-task/slim-sprig/v3 v3.0.0 // indirect | 	github.com/go-task/slim-sprig/v3 v3.0.0 // indirect | ||||||
| 	github.com/google/btree v1.1.3 // indirect | 	github.com/google/btree v1.1.3 // indirect | ||||||
| 	github.com/google/pprof v0.0.0-20241023014458-598669927662 // indirect | 	github.com/google/pprof v0.0.0-20241101162523-b92577c0c142 // indirect | ||||||
| 	github.com/gorilla/context v1.1.2 // indirect | 	github.com/gorilla/context v1.1.2 // indirect | ||||||
| 	github.com/gorilla/securecookie v1.1.2 // indirect | 	github.com/gorilla/securecookie v1.1.2 // indirect | ||||||
| 	github.com/gorilla/sessions v1.4.0 // indirect | 	github.com/gorilla/sessions v1.4.0 // indirect | ||||||
|  | @ -50,7 +50,7 @@ require ( | ||||||
| 	github.com/jinzhu/now v1.1.5 // indirect | 	github.com/jinzhu/now v1.1.5 // indirect | ||||||
| 	github.com/json-iterator/go v1.1.12 // indirect | 	github.com/json-iterator/go v1.1.12 // indirect | ||||||
| 	github.com/klauspost/compress v1.17.11 // indirect | 	github.com/klauspost/compress v1.17.11 // indirect | ||||||
| 	github.com/klauspost/cpuid/v2 v2.2.8 // indirect | 	github.com/klauspost/cpuid/v2 v2.2.9 // indirect | ||||||
| 	github.com/kr/text v0.2.0 // indirect | 	github.com/kr/text v0.2.0 // indirect | ||||||
| 	github.com/leodido/go-urn v1.4.0 // indirect | 	github.com/leodido/go-urn v1.4.0 // indirect | ||||||
| 	github.com/lufia/plan9stats v0.0.0-20240909124753-873cd0166683 // indirect | 	github.com/lufia/plan9stats v0.0.0-20240909124753-873cd0166683 // indirect | ||||||
|  | @ -58,7 +58,7 @@ require ( | ||||||
| 	github.com/mattn/go-sqlite3 v1.14.24 // indirect | 	github.com/mattn/go-sqlite3 v1.14.24 // indirect | ||||||
| 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect | 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect | ||||||
| 	github.com/modern-go/reflect2 v1.0.2 // indirect | 	github.com/modern-go/reflect2 v1.0.2 // indirect | ||||||
| 	github.com/onsi/ginkgo/v2 v2.20.2 // indirect | 	github.com/onsi/ginkgo/v2 v2.21.0 // indirect | ||||||
| 	github.com/pires/go-proxyproto v0.8.0 // indirect | 	github.com/pires/go-proxyproto v0.8.0 // indirect | ||||||
| 	github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect | 	github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect | ||||||
| 	github.com/quic-go/qpack v0.5.1 // indirect | 	github.com/quic-go/qpack v0.5.1 // indirect | ||||||
|  | @ -66,7 +66,7 @@ require ( | ||||||
| 	github.com/refraction-networking/utls v1.6.7 // indirect | 	github.com/refraction-networking/utls v1.6.7 // indirect | ||||||
| 	github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect | 	github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect | ||||||
| 	github.com/rogpeppe/go-internal v1.13.1 // indirect | 	github.com/rogpeppe/go-internal v1.13.1 // indirect | ||||||
| 	github.com/sagernet/sing v0.4.3 // indirect | 	github.com/sagernet/sing v0.5.0 // indirect | ||||||
| 	github.com/sagernet/sing-shadowsocks v0.2.7 // indirect | 	github.com/sagernet/sing-shadowsocks v0.2.7 // indirect | ||||||
| 	github.com/savsgio/gotils v0.0.0-20240704082632-aef3928b8a38 // indirect | 	github.com/savsgio/gotils v0.0.0-20240704082632-aef3928b8a38 // indirect | ||||||
| 	github.com/seiflotfy/cuckoofilter v0.0.0-20240715131351-a2f2c23f1771 // indirect | 	github.com/seiflotfy/cuckoofilter v0.0.0-20240715131351-a2f2c23f1771 // indirect | ||||||
|  | @ -78,23 +78,23 @@ require ( | ||||||
| 	github.com/valyala/bytebufferpool v1.0.0 // indirect | 	github.com/valyala/bytebufferpool v1.0.0 // indirect | ||||||
| 	github.com/valyala/fastjson v1.6.4 // indirect | 	github.com/valyala/fastjson v1.6.4 // indirect | ||||||
| 	github.com/vishvananda/netlink v1.3.0 // indirect | 	github.com/vishvananda/netlink v1.3.0 // indirect | ||||||
| 	github.com/vishvananda/netns v0.0.4 // indirect | 	github.com/vishvananda/netns v0.0.5 // indirect | ||||||
| 	github.com/xtls/reality v0.0.0-20240909153216-e26ae2305463 // indirect | 	github.com/xtls/reality v0.0.0-20240909153216-e26ae2305463 // indirect | ||||||
| 	github.com/yusufpapurcu/wmi v1.2.4 // indirect | 	github.com/yusufpapurcu/wmi v1.2.4 // indirect | ||||||
| 	go.uber.org/mock v0.5.0 // indirect | 	go.uber.org/mock v0.5.0 // indirect | ||||||
| 	go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect | 	go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect | ||||||
| 	golang.org/x/arch v0.11.0 // indirect | 	golang.org/x/arch v0.12.0 // indirect | ||||||
| 	golang.org/x/crypto v0.28.0 // indirect | 	golang.org/x/crypto v0.29.0 // indirect | ||||||
| 	golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c // indirect | 	golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect | ||||||
| 	golang.org/x/mod v0.21.0 // indirect | 	golang.org/x/mod v0.22.0 // indirect | ||||||
| 	golang.org/x/net v0.30.0 // indirect | 	golang.org/x/net v0.31.0 // indirect | ||||||
| 	golang.org/x/sync v0.8.0 // indirect | 	golang.org/x/sync v0.9.0 // indirect | ||||||
| 	golang.org/x/sys v0.26.0 // indirect | 	golang.org/x/sys v0.27.0 // indirect | ||||||
| 	golang.org/x/time v0.7.0 // indirect | 	golang.org/x/time v0.8.0 // indirect | ||||||
| 	golang.org/x/tools v0.26.0 // indirect | 	golang.org/x/tools v0.27.0 // indirect | ||||||
| 	golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect | 	golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect | ||||||
| 	golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 // indirect | 	golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 // indirect | ||||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect | 	google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect | ||||||
| 	google.golang.org/protobuf v1.35.1 // indirect | 	google.golang.org/protobuf v1.35.1 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
| 	gvisor.dev/gvisor v0.0.0-20231202080848-1f7806d17489 // indirect | 	gvisor.dev/gvisor v0.0.0-20231202080848-1f7806d17489 // indirect | ||||||
|  |  | ||||||
							
								
								
									
										82
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								go.sum
									
									
									
									
									
								
							|  | @ -4,8 +4,8 @@ github.com/OmarTariq612/goech v0.0.0-20240405204721-8e2e1dafd3a0 h1:Wo41lDOevRJS | ||||||
| github.com/OmarTariq612/goech v0.0.0-20240405204721-8e2e1dafd3a0/go.mod h1:FVGavL/QEBQDcBpr3fAojoK17xX5k9bicBphrOpP7uM= | github.com/OmarTariq612/goech v0.0.0-20240405204721-8e2e1dafd3a0/go.mod h1:FVGavL/QEBQDcBpr3fAojoK17xX5k9bicBphrOpP7uM= | ||||||
| github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= | github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= | ||||||
| github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= | github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= | ||||||
| github.com/bytedance/sonic v1.12.3 h1:W2MGa7RCU1QTeYRTPE3+88mVC0yXmsRQRChiyVocVjU= | github.com/bytedance/sonic v1.12.4 h1:9Csb3c9ZJhfUWeMtpCDCq6BUoH5ogfDFLUgQ/jG+R0k= | ||||||
| github.com/bytedance/sonic v1.12.3/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= | github.com/bytedance/sonic v1.12.4/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= | ||||||
| github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= | github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= | ||||||
| github.com/bytedance/sonic/loader v0.2.1 h1:1GgorWTqf12TA8mma4DDSbaQigE2wOgQo7iCjjJv3+E= | github.com/bytedance/sonic/loader v0.2.1 h1:1GgorWTqf12TA8mma4DDSbaQigE2wOgQo7iCjjJv3+E= | ||||||
| github.com/bytedance/sonic/loader v0.2.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= | github.com/bytedance/sonic/loader v0.2.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= | ||||||
|  | @ -57,6 +57,8 @@ github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= | ||||||
| github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= | github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= | ||||||
| github.com/golang/mock v1.7.0-rc.1 h1:YojYx61/OLFsiv6Rw1Z96LpldJIy31o+UHmwAUMJ6/U= | github.com/golang/mock v1.7.0-rc.1 h1:YojYx61/OLFsiv6Rw1Z96LpldJIy31o+UHmwAUMJ6/U= | ||||||
| github.com/golang/mock v1.7.0-rc.1/go.mod h1:s42URUywIqd+OcERslBJvOjepvNymP31m3q8d/GkuRs= | github.com/golang/mock v1.7.0-rc.1/go.mod h1:s42URUywIqd+OcERslBJvOjepvNymP31m3q8d/GkuRs= | ||||||
|  | github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= | ||||||
|  | github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= | ||||||
| github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= | github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= | ||||||
| github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= | github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= | ||||||
| github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | ||||||
|  | @ -64,8 +66,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN | ||||||
| github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||||||
| github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= | github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= | ||||||
| github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||||||
| github.com/google/pprof v0.0.0-20241023014458-598669927662 h1:SKMkD83p7FwUqKmBsPdLHF5dNyxq3jOWwu9w9UyH5vA= | github.com/google/pprof v0.0.0-20241101162523-b92577c0c142 h1:sAGdeJj0bnMgUNVeUpp6AYlVdCt3/GdI3pGRqsNSQLs= | ||||||
| github.com/google/pprof v0.0.0-20241023014458-598669927662/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= | github.com/google/pprof v0.0.0-20241101162523-b92577c0c142/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= | ||||||
| github.com/gorilla/context v1.1.2 h1:WRkNAv2uoa03QNIc1A6u4O7DAGMUVoopZhkiXWA2V1o= | github.com/gorilla/context v1.1.2 h1:WRkNAv2uoa03QNIc1A6u4O7DAGMUVoopZhkiXWA2V1o= | ||||||
| github.com/gorilla/context v1.1.2/go.mod h1:KDPwT9i/MeWHiLl90fuTgrt4/wPcv75vFAZLaOOcbxM= | github.com/gorilla/context v1.1.2/go.mod h1:KDPwT9i/MeWHiLl90fuTgrt4/wPcv75vFAZLaOOcbxM= | ||||||
| github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= | github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= | ||||||
|  | @ -85,8 +87,8 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm | ||||||
| github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= | github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= | ||||||
| github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= | github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= | ||||||
| github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= | github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= | ||||||
| github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= | github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= | ||||||
| github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= | github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= | ||||||
| github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= | github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= | ||||||
| github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= | github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= | ||||||
| github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= | github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= | ||||||
|  | @ -107,14 +109,14 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w | ||||||
| github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | ||||||
| github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= | github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= | ||||||
| github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= | github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= | ||||||
| github.com/mymmrac/telego v0.31.3 h1:yZlD+dm+1W6p3OmCG8K+MbS02Y6paUgwPnqfZN3RWQQ= | github.com/mymmrac/telego v0.31.4 h1:NpiNl0P/8eydknka/k6XaaaWVj5BKMlM3Ibba63QTBU= | ||||||
| github.com/mymmrac/telego v0.31.3/go.mod h1:coOoqXVmjFnwBlzusjfEezbQ7RH9wQnDowJdMm+bnEo= | github.com/mymmrac/telego v0.31.4/go.mod h1:T12js1PgbYDYznvoN05MSMuPMfWTYo7D9LKl5cPFWiI= | ||||||
| github.com/nicksnyder/go-i18n/v2 v2.4.1 h1:zwzjtX4uYyiaU02K5Ia3zSkpJZrByARkRB4V3YPrr0g= | github.com/nicksnyder/go-i18n/v2 v2.4.1 h1:zwzjtX4uYyiaU02K5Ia3zSkpJZrByARkRB4V3YPrr0g= | ||||||
| github.com/nicksnyder/go-i18n/v2 v2.4.1/go.mod h1:++Pl70FR6Cki7hdzZRnEEqdc2dJt+SAGotyFg/SvZMk= | github.com/nicksnyder/go-i18n/v2 v2.4.1/go.mod h1:++Pl70FR6Cki7hdzZRnEEqdc2dJt+SAGotyFg/SvZMk= | ||||||
| github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4= | github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= | ||||||
| github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= | github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= | ||||||
| github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= | github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= | ||||||
| github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= | github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= | ||||||
| github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88= | github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88= | ||||||
| github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= | github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= | ||||||
| github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= | github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= | ||||||
|  | @ -139,8 +141,8 @@ github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= | ||||||
| github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= | github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= | ||||||
| github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= | github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= | ||||||
| github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= | github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= | ||||||
| github.com/sagernet/sing v0.4.3 h1:Ty/NAiNnVd6844k7ujlL5lkzydhcTH5Psc432jXA4Y8= | github.com/sagernet/sing v0.5.0 h1:soo2wVwLcieKWWKIksFNK6CCAojUgAppqQVwyRYGkEM= | ||||||
| github.com/sagernet/sing v0.4.3/go.mod h1:ieZHA/+Y9YZfXs2I3WtuwgyCZ6GPsIR7HdKb1SdEnls= | github.com/sagernet/sing v0.5.0/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak= | ||||||
| github.com/sagernet/sing-shadowsocks v0.2.7 h1:zaopR1tbHEw5Nk6FAkM05wCslV6ahVegEZaKMv9ipx8= | github.com/sagernet/sing-shadowsocks v0.2.7 h1:zaopR1tbHEw5Nk6FAkM05wCslV6ahVegEZaKMv9ipx8= | ||||||
| github.com/sagernet/sing-shadowsocks v0.2.7/go.mod h1:0rIKJZBR65Qi0zwdKezt4s57y/Tl1ofkaq6NlkzVuyE= | github.com/sagernet/sing-shadowsocks v0.2.7/go.mod h1:0rIKJZBR65Qi0zwdKezt4s57y/Tl1ofkaq6NlkzVuyE= | ||||||
| github.com/savsgio/gotils v0.0.0-20240704082632-aef3928b8a38 h1:D0vL7YNisV2yqE55+q0lFuGse6U8lxlg7fYTctlT5Gc= | github.com/savsgio/gotils v0.0.0-20240704082632-aef3928b8a38 h1:D0vL7YNisV2yqE55+q0lFuGse6U8lxlg7fYTctlT5Gc= | ||||||
|  | @ -178,8 +180,9 @@ github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXV | ||||||
| github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= | github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= | ||||||
| github.com/vishvananda/netlink v1.3.0 h1:X7l42GfcV4S6E4vHTsw48qbrV+9PVojNfIhZcwQdrZk= | github.com/vishvananda/netlink v1.3.0 h1:X7l42GfcV4S6E4vHTsw48qbrV+9PVojNfIhZcwQdrZk= | ||||||
| github.com/vishvananda/netlink v1.3.0/go.mod h1:i6NetklAujEcC6fK0JPjT8qSwWyO0HLn4UKG+hGqeJs= | github.com/vishvananda/netlink v1.3.0/go.mod h1:i6NetklAujEcC6fK0JPjT8qSwWyO0HLn4UKG+hGqeJs= | ||||||
| github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8= |  | ||||||
| github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= | github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= | ||||||
|  | github.com/vishvananda/netns v0.0.5 h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zdEY= | ||||||
|  | github.com/vishvananda/netns v0.0.5/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= | ||||||
| github.com/xtls/reality v0.0.0-20240909153216-e26ae2305463 h1:g1Cj7d+my6k/HHxLAyxPwyX8i7FGRr6ulBDMkBzg2BM= | github.com/xtls/reality v0.0.0-20240909153216-e26ae2305463 h1:g1Cj7d+my6k/HHxLAyxPwyX8i7FGRr6ulBDMkBzg2BM= | ||||||
| github.com/xtls/reality v0.0.0-20240909153216-e26ae2305463/go.mod h1:BjIOLmkEEtAgloAiVUcYj0Mt+YU00JARZw8AEU0IwAg= | github.com/xtls/reality v0.0.0-20240909153216-e26ae2305463/go.mod h1:BjIOLmkEEtAgloAiVUcYj0Mt+YU00JARZw8AEU0IwAg= | ||||||
| github.com/xtls/xray-core v1.8.25-0.20241031075831-4ec5c78c3453 h1:2piT7IYX0SKhYjD+XiJMDZAbY01MkP1HYO54njmisaQ= | github.com/xtls/xray-core v1.8.25-0.20241031075831-4ec5c78c3453 h1:2piT7IYX0SKhYjD+XiJMDZAbY01MkP1HYO54njmisaQ= | ||||||
|  | @ -194,41 +197,40 @@ go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= | ||||||
| go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= | go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= | ||||||
| go4.org/netipx v0.0.0-20231129151722-fdeea329fbba h1:0b9z3AuHCjxk0x/opv64kcgZLBseWJUpBw5I82+2U4M= | go4.org/netipx v0.0.0-20231129151722-fdeea329fbba h1:0b9z3AuHCjxk0x/opv64kcgZLBseWJUpBw5I82+2U4M= | ||||||
| go4.org/netipx v0.0.0-20231129151722-fdeea329fbba/go.mod h1:PLyyIXexvUFg3Owu6p/WfdlivPbZJsZdgWZlrGope/Y= | go4.org/netipx v0.0.0-20231129151722-fdeea329fbba/go.mod h1:PLyyIXexvUFg3Owu6p/WfdlivPbZJsZdgWZlrGope/Y= | ||||||
| golang.org/x/arch v0.11.0 h1:KXV8WWKCXm6tRpLirl2szsO5j/oOODwZf4hATmGVNs4= | golang.org/x/arch v0.12.0 h1:UsYJhbzPYGsT0HbEdmYcqtCv8UNGvnaL561NnIUvaKg= | ||||||
| golang.org/x/arch v0.11.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= | golang.org/x/arch v0.12.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= | ||||||
| golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= | golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= | ||||||
| golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= | golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= | ||||||
| golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= | golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= | ||||||
| golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= | golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= | ||||||
| golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= | golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= | ||||||
| golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= | golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= | ||||||
| golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= | golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= | ||||||
| golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= | golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= | ||||||
| golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= | golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= | ||||||
| golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | ||||||
| golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.1.0/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.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| 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.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= | golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= | ||||||
| golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= | golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= | ||||||
| golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= | golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= | ||||||
| golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= | golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= | ||||||
| golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= | golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= | ||||||
| golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= | golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= | ||||||
| golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= | golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= | ||||||
| golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 h1:B82qJJgjvYKsXS9jeunTOisW56dUokqW/FOteYJJ/yg= | golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 h1:B82qJJgjvYKsXS9jeunTOisW56dUokqW/FOteYJJ/yg= | ||||||
| golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2/go.mod h1:deeaetjYA+DHMHg+sMSMI58GrEteJUUzzw7en6TJQcI= | golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2/go.mod h1:deeaetjYA+DHMHg+sMSMI58GrEteJUUzzw7en6TJQcI= | ||||||
| golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 h1:/jFs0duh4rdb8uIfPMv78iAJGcPKDeqAFnaLBropIC4= | golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 h1:/jFs0duh4rdb8uIfPMv78iAJGcPKDeqAFnaLBropIC4= | ||||||
| golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173/go.mod h1:tkCQ4FQXmpAgYVh++1cq16/dH4QJtmvpRv19DWGAHSA= | golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173/go.mod h1:tkCQ4FQXmpAgYVh++1cq16/dH4QJtmvpRv19DWGAHSA= | ||||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI= | google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= | ||||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= | google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= | ||||||
| google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= | google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= | ||||||
| google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= | google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= | ||||||
| google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= | google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= | ||||||
| google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= | google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
|  |  | ||||||
|  | @ -63,7 +63,7 @@ | ||||||
|     return scriptHint(editor, javascriptKeywords, |     return scriptHint(editor, javascriptKeywords, | ||||||
|                       function (e, cur) {return e.getTokenAt(cur);}, |                       function (e, cur) {return e.getTokenAt(cur);}, | ||||||
|                       options); |                       options); | ||||||
|   }; |   } | ||||||
|   CodeMirror.registerHelper("hint", "javascript", javascriptHint); |   CodeMirror.registerHelper("hint", "javascript", javascriptHint); | ||||||
| 
 | 
 | ||||||
|   function getCoffeeScriptToken(editor, cur) { |   function getCoffeeScriptToken(editor, cur) { | ||||||
|  |  | ||||||
|  | @ -362,7 +362,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||||
|       if (type == wanted) return cont(); |       if (type == wanted) return cont(); | ||||||
|       else if (wanted == ";" || type == "}" || type == ")" || type == "]") return pass(); |       else if (wanted == ";" || type == "}" || type == ")" || type == "]") return pass(); | ||||||
|       else return cont(exp); |       else return cont(exp); | ||||||
|     }; |     } | ||||||
|     return exp; |     return exp; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| .CodeMirror-lint-tooltip { | .CodeMirror-lint-tooltip { | ||||||
|   background-color: #ffd; |   background-color: #ffd; | ||||||
|   border: 1px solid black; |   border: 1px solid black; | ||||||
|   border-radius: 4px 4px 4px 4px; |   border-radius: 4px; | ||||||
|   color: black; |   color: black; | ||||||
|   font-family: monospace; |   font-family: monospace; | ||||||
|   font-size: 10pt; |   font-size: 10pt; | ||||||
|  |  | ||||||
|  | @ -2198,13 +2198,15 @@ Inbound.ShadowsocksSettings = class extends Inbound.Settings { | ||||||
|         method = SSMethods.BLAKE3_AES_256_GCM, |         method = SSMethods.BLAKE3_AES_256_GCM, | ||||||
|         password = RandomUtil.randomShadowsocksPassword(), |         password = RandomUtil.randomShadowsocksPassword(), | ||||||
|         network = 'tcp,udp', |         network = 'tcp,udp', | ||||||
|         shadowsockses = [new Inbound.ShadowsocksSettings.Shadowsocks()] |         shadowsockses = [new Inbound.ShadowsocksSettings.Shadowsocks()], | ||||||
|  |         ivCheck = false, | ||||||
|     ) { |     ) { | ||||||
|         super(protocol); |         super(protocol); | ||||||
|         this.method = method; |         this.method = method; | ||||||
|         this.password = password; |         this.password = password; | ||||||
|         this.network = network; |         this.network = network; | ||||||
|         this.shadowsockses = shadowsockses; |         this.shadowsockses = shadowsockses; | ||||||
|  |         this.ivCheck = ivCheck; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     static fromJson(json = {}) { |     static fromJson(json = {}) { | ||||||
|  | @ -2214,6 +2216,7 @@ Inbound.ShadowsocksSettings = class extends Inbound.Settings { | ||||||
|             json.password, |             json.password, | ||||||
|             json.network, |             json.network, | ||||||
|             json.clients.map(client => Inbound.ShadowsocksSettings.Shadowsocks.fromJson(client)), |             json.clients.map(client => Inbound.ShadowsocksSettings.Shadowsocks.fromJson(client)), | ||||||
|  |             json.ivCheck, | ||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -2222,7 +2225,8 @@ Inbound.ShadowsocksSettings = class extends Inbound.Settings { | ||||||
|             method: this.method, |             method: this.method, | ||||||
|             password: this.password, |             password: this.password, | ||||||
|             network: this.network, |             network: this.network, | ||||||
|             clients: Inbound.ShadowsocksSettings.toJsonArray(this.shadowsockses) |             clients: Inbound.ShadowsocksSettings.toJsonArray(this.shadowsockses), | ||||||
|  |             ivCheck: this.ivCheck, | ||||||
|         }; |         }; | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -43,5 +43,8 @@ | ||||||
|             <a-select-option value="udp">UDP</a-select-option> |             <a-select-option value="udp">UDP</a-select-option> | ||||||
|         </a-select> |         </a-select> | ||||||
|     </a-form-item> |     </a-form-item> | ||||||
|  |     <a-form-item label='ivCheck'> | ||||||
|  |         <a-switch v-model="inbound.settings.ivCheck"></a-switch> | ||||||
|  |     </a-form-item> | ||||||
| </a-form> | </a-form> | ||||||
| {{end}} | {{end}} | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ | ||||||
|     overflow-y: hidden; |     overflow-y: hidden; | ||||||
|   } |   } | ||||||
|   .ant-table .ant-table-content .ant-table-tbody tr:last-child .ant-table-wrapper { |   .ant-table .ant-table-content .ant-table-tbody tr:last-child .ant-table-wrapper { | ||||||
| 	  margin:-10px 22px -10px !important; | 	  margin:-10px 22px !important; | ||||||
|   } |   } | ||||||
|   .ant-table .ant-table-content .ant-table-tbody tr:last-child .ant-table-wrapper .ant-table { |   .ant-table .ant-table-content .ant-table-tbody tr:last-child .ant-table-wrapper .ant-table { | ||||||
|     border-bottom-left-radius: 1rem; |     border-bottom-left-radius: 1rem; | ||||||
|  | @ -40,7 +40,7 @@ | ||||||
|       padding: .5rem; |       padding: .5rem; | ||||||
|     } |     } | ||||||
|     .ant-table .ant-table-content .ant-table-tbody tr:last-child .ant-table-wrapper { |     .ant-table .ant-table-content .ant-table-tbody tr:last-child .ant-table-wrapper { | ||||||
| 	    margin:-10px 2px -10px !important; | 	    margin:-10px 2px !important; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   .ant-col-sm-24 { |   .ant-col-sm-24 { | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ | ||||||
|     padding: .5rem 1rem; |     padding: .5rem 1rem; | ||||||
|     text-align: center; |     text-align: center; | ||||||
|     background: rgb(255 145 0 / 15%); |     background: rgb(255 145 0 / 15%); | ||||||
|     margin: 1.5rem 2.5rem 0rem 2.5rem; |     margin: 1.5rem 2.5rem 0rem; | ||||||
|     border-radius: .5rem; |     border-radius: .5rem; | ||||||
|     transition: all 0.5s; |     transition: all 0.5s; | ||||||
|     animation: signal 3s cubic-bezier(0.18, 0.89, 0.32, 1.28) infinite; |     animation: signal 3s cubic-bezier(0.18, 0.89, 0.32, 1.28) infinite; | ||||||
|  |  | ||||||
|  | @ -52,7 +52,7 @@ | ||||||
|     font-size: 24px; |     font-size: 24px; | ||||||
|   } |   } | ||||||
|   .ant-collapse-content-box>li { |   .ant-collapse-content-box>li { | ||||||
|     padding: 12px 0 0 0 !important; |     padding: 12px 0 0 !important; | ||||||
|   } |   } | ||||||
|   .ant-list-item>li { |   .ant-list-item>li { | ||||||
|     padding: 10px 20px !important; |     padding: 10px 20px !important; | ||||||
|  |  | ||||||
|  | @ -286,7 +286,7 @@ func (s *ServerService) GetXrayVersions() ([]string, error) { | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (major == 1 && minor == 8 && patch == 24) || | 		if (major == 1 && minor == 8 && patch == 24) || | ||||||
| 			(major == 24 && ((minor > 10) || (minor == 10 && patch >= 16))) || | 			(major == 24 && ((minor > 11) || (minor == 11 && patch >= 11))) || | ||||||
| 			(major > 24) { | 			(major > 24) { | ||||||
| 			versions = append(versions, release.TagName) | 			versions = append(versions, release.TagName) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
							
								
								
									
										11
									
								
								x-ui.sh
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								x-ui.sh
									
									
									
									
									
								
							|  | @ -309,9 +309,20 @@ check_config() { | ||||||
| 
 | 
 | ||||||
|     local existing_webBasePath=$(echo "$info" | grep -Eo 'webBasePath: .+' | awk '{print $2}') |     local existing_webBasePath=$(echo "$info" | grep -Eo 'webBasePath: .+' | awk '{print $2}') | ||||||
|     local existing_port=$(echo "$info" | grep -Eo 'port: .+' | awk '{print $2}') |     local existing_port=$(echo "$info" | grep -Eo 'port: .+' | awk '{print $2}') | ||||||
|  |     local existing_cert=$(/usr/local/x-ui/x-ui setting -getCert true | grep -Eo 'cert: .+' | awk '{print $2}') | ||||||
|     local server_ip=$(curl -s https://api.ipify.org) |     local server_ip=$(curl -s https://api.ipify.org) | ||||||
| 
 | 
 | ||||||
|  |     if [[ -n "$existing_cert" ]]; then | ||||||
|  |         local domain=$(basename "$(dirname "$existing_cert")") | ||||||
|  | 
 | ||||||
|  |         if [[ "$domain" =~ ^[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]]; then | ||||||
|  |             echo -e "${green}Access URL: https://${domain}:${existing_port}${existing_webBasePath}${plain}" | ||||||
|  |         else | ||||||
|  |             echo -e "${green}Access URL: https://${server_ip}:${existing_port}${existing_webBasePath}${plain}" | ||||||
|  |         fi | ||||||
|  |     else | ||||||
|         echo -e "${green}Access URL: http://${server_ip}:${existing_port}${existing_webBasePath}${plain}" |         echo -e "${green}Access URL: http://${server_ip}:${existing_port}${existing_webBasePath}${plain}" | ||||||
|  |     fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| set_port() { | set_port() { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 serogaq
						serogaq