Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package shadowsocks-v2ray-plugin for
openSUSE:Factory checked in at 2026-05-29 18:13:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shadowsocks-v2ray-plugin (Old)
and /work/SRC/openSUSE:Factory/.shadowsocks-v2ray-plugin.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shadowsocks-v2ray-plugin"
Fri May 29 18:13:01 2026 rev:10 rq:1355903 version:5.49.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/shadowsocks-v2ray-plugin/shadowsocks-v2ray-plugin.changes
2025-12-19 16:50:32.117638042 +0100
+++
/work/SRC/openSUSE:Factory/.shadowsocks-v2ray-plugin.new.1937/shadowsocks-v2ray-plugin.changes
2026-05-29 18:14:48.253603427 +0200
@@ -1,0 +2,13 @@
+Fri May 29 13:26:53 UTC 2026 - Hillwood Yang <[email protected]>
+
+- Update version to 5.49.0
+ * Update v2ray-core to 5.49.0
+ * Update grpc to 1.81.1 (boo#1260328 and CVE-2026-33186)
+
+-------------------------------------------------------------------
+Thu Feb 12 12:51:31 UTC 2026 - Hillwood Yang <[email protected]>
+
+- Update version to 5.44.1
+ * Update v2ray-core to v5.44.1
+
+-------------------------------------------------------------------
Old:
----
v2ray-plugin-5.41.0.tar.gz
New:
----
v2ray-plugin-5.49.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ shadowsocks-v2ray-plugin.spec ++++++
--- /var/tmp/diff_new_pack.xIImGi/_old 2026-05-29 18:14:49.733663616 +0200
+++ /var/tmp/diff_new_pack.xIImGi/_new 2026-05-29 18:14:49.737663779 +0200
@@ -1,7 +1,7 @@
#
# spec file for package shadowsocks-v2ray-plugin
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -27,7 +27,7 @@
%define import_path %{provider_prefix}
Name: shadowsocks-v2ray-plugin
-Version: 5.41.0
+Version: 5.49.0
Release: 0
Summary: SIP003 plugin for shadowsocks
License: MIT
@@ -36,6 +36,7 @@
Source0:
https://github.com/teddysun/v2ray-plugin/archive/v%{version}/%{repo}-%{version}.tar.gz
Source1: vendor.tar.gz
BuildRequires: fdupes
+# BuildRequires: golang-github-v2fly-v2ray-core >= 5.44.1
BuildRequires: golang-packaging
BuildRequires: golang(API) >= 1.25
AutoReqProv: Off
++++++ v2ray-plugin-5.41.0.tar.gz -> v2ray-plugin-5.49.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/v2ray-plugin-5.41.0/args.go
new/v2ray-plugin-5.49.0/args.go
--- old/v2ray-plugin-5.41.0/args.go 2025-10-15 15:47:33.000000000 +0200
+++ new/v2ray-plugin-5.49.0/args.go 2026-04-13 14:37:17.000000000 +0200
@@ -3,17 +3,9 @@
import (
"bytes"
"fmt"
- "net"
"os"
- "sort"
- "strings"
)
-func isIPv6(str string) bool {
- ip := net.ParseIP(str)
- return ip != nil && strings.Contains(str, ":")
-}
-
// Key–value mappings for the representation of client and server options.
// Args maps a string key to a list of values. It is similar to url.Values.
@@ -152,45 +144,3 @@
}
return opts, nil
}
-
-// Escape backslashes and all the bytes that are in set.
-func backslashEscape(s string, set []byte) string {
- var buf bytes.Buffer
- for _, b := range []byte(s) {
- if b == '\\' || bytes.IndexByte(set, b) != -1 {
- buf.WriteByte('\\')
- }
- buf.WriteByte(b)
- }
- return buf.String()
-}
-
-// Encode a name–value mapping so that it is suitable to go in the ARGS option
-// of an SMETHOD line. The output is sorted by key. The "ARGS:" prefix is not
-// added.
-//
-// "Equal signs and commas [and backslashes] must be escaped with a backslash."
-func encodeSmethodArgs(args Args) string {
- if args == nil {
- return ""
- }
-
- keys := make([]string, 0, len(args))
- for key := range args {
- keys = append(keys, key)
- }
- sort.Strings(keys)
-
- escape := func(s string) string {
- return backslashEscape(s, []byte{'=', ','})
- }
-
- var pairs []string
- for _, key := range keys {
- for _, value := range args[key] {
- pairs = append(pairs, escape(key)+"="+escape(value))
- }
- }
-
- return strings.Join(pairs, ",")
-}
Binary files old/v2ray-plugin-5.41.0/assets/v2ray.ico and
new/v2ray-plugin-5.49.0/assets/v2ray.ico differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/v2ray-plugin-5.41.0/build-release.sh
new/v2ray-plugin-5.49.0/build-release.sh
--- old/v2ray-plugin-5.41.0/build-release.sh 2025-10-15 15:47:33.000000000
+0200
+++ new/v2ray-plugin-5.49.0/build-release.sh 2026-04-13 14:37:17.000000000
+0200
@@ -16,10 +16,45 @@
fi
VERSION=$(git describe --tags)
-LDFLAGS="-X main.VERSION=${VERSION} -s -w -buildid="
+
+# Parse version for versioninfo (format: x.x.x.x or x.x.x)
+# Remove 'v' prefix and extract version components
+VERSION_CLEAN=${VERSION#v}
+# Extract base version (remove -X-gXXXXXXX suffix if exists), e.g.,
v5.44.1-1-g00092ea -> 5.44.1
+VERSION_BASE=$(echo "${VERSION_CLEAN}" | sed -E 's/-[0-9]+-g[0-9a-f]+$//')
+IFS='.-' read -r MAJOR MINOR PATCH BUILD <<< "${VERSION_BASE}"
+# Set defaults if empty
+MAJOR=${MAJOR:-0}
+MINOR=${MINOR:-0}
+PATCH=${PATCH:-0}
+BUILD=${BUILD:-0}
+# Ensure all version components are pure numbers (remove any non-digit
characters)
+MAJOR=$(echo "${MAJOR}" | tr -cd '0-9')
+MINOR=$(echo "${MINOR}" | tr -cd '0-9')
+PATCH=$(echo "${PATCH}" | tr -cd '0-9')
+BUILD=$(echo "${BUILD}" | tr -cd '0-9')
+# Re-validate defaults
+MAJOR=${MAJOR:-0}
+MINOR=${MINOR:-0}
+PATCH=${PATCH:-0}
+BUILD=${BUILD:-0}
+
+# Generate versioninfo.json with actual version
+if hash goversioninfo 2>/dev/null; then
+ sed -e "s/%MAJOR%/$MAJOR/g" \
+ -e "s/%MINOR%/$MINOR/g" \
+ -e "s/%PATCH%/$PATCH/g" \
+ -e "s/%BUILD%/$BUILD/g" \
+ -e "s/%VERSION%/$VERSION_CLEAN/g" \
+ versioninfo.json > versioninfo_generated.json
+ # Generate platform-specific .syso files for all Windows architectures
+ # This creates resource_windows_386.syso, resource_windows_amd64.syso,
resource_windows_arm.syso, resource_windows_arm64.syso
+ goversioninfo -platform-specific versioninfo_generated.json
+fi
OSES=(linux darwin windows freebsd)
ARCHS=(amd64 386)
+LDFLAGS="-X main.VERSION=v${VERSION_BASE} -s -w -buildid="
mkdir bin
@@ -34,78 +69,79 @@
if [ "${os}" == "windows" ]; then
suffix=".exe"
fi
- env CGO_ENABLED=0 GOOS=${os} GOARCH=${arch} go build -v -trimpath
-ldflags "${LDFLAGS}" -o v2ray-plugin_${os}_${arch}${suffix}
- $upx v2ray-plugin_${os}_${arch}${suffix} >/dev/null
- tar -zcf bin/v2ray-plugin-${os}-${arch}-${VERSION}.tar.gz
v2ray-plugin_${os}_${arch}${suffix}
- $sum bin/v2ray-plugin-${os}-${arch}-${VERSION}.tar.gz
+ env CGO_ENABLED=0 GOOS="${os}" GOARCH="${arch}" go build -v -trimpath
-ldflags "${LDFLAGS}" -o "v2ray-plugin_${os}_${arch}${suffix}"
+ $upx "v2ray-plugin_${os}_${arch}${suffix}" >/dev/null
+ tar -zcf "bin/v2ray-plugin-${os}-${arch}-v${VERSION_BASE}.tar.gz"
"v2ray-plugin_${os}_${arch}${suffix}"
+ $sum "bin/v2ray-plugin-${os}-${arch}-v${VERSION_BASE}.tar.gz"
done
done
# ARM
ARMS=(5 6 7)
for v in "${ARMS[@]}"; do
- env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=${v} go build -v -trimpath
-ldflags "${LDFLAGS}" -o v2ray-plugin_linux_arm${v}
+ env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM="${v}" go build -v -trimpath
-ldflags "${LDFLAGS}" -o "v2ray-plugin_linux_arm${v}"
done
$upx v2ray-plugin_linux_arm* >/dev/null
-tar -zcf bin/v2ray-plugin-linux-arm-${VERSION}.tar.gz v2ray-plugin_linux_arm*
-$sum bin/v2ray-plugin-linux-arm-${VERSION}.tar.gz
+tar -zcf "bin/v2ray-plugin-linux-arm-v${VERSION_BASE}.tar.gz"
v2ray-plugin_linux_arm*
+$sum "bin/v2ray-plugin-linux-arm-v${VERSION_BASE}.tar.gz"
# ARM64 (ARMv8 or aarch64)
env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -v -trimpath -ldflags
"${LDFLAGS}" -o v2ray-plugin_linux_arm64
$upx v2ray-plugin_linux_arm64 >/dev/null
-tar -zcf bin/v2ray-plugin-linux-arm64-${VERSION}.tar.gz
v2ray-plugin_linux_arm64
-$sum bin/v2ray-plugin-linux-arm64-${VERSION}.tar.gz
+tar -zcf "bin/v2ray-plugin-linux-arm64-v${VERSION_BASE}.tar.gz"
v2ray-plugin_linux_arm64
+$sum "bin/v2ray-plugin-linux-arm64-v${VERSION_BASE}.tar.gz"
# Darwin ARM64
env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -v -trimpath -ldflags
"${LDFLAGS}" -o v2ray-plugin_darwin_arm64
$upx v2ray-plugin_darwin_arm64 >/dev/null
-tar -zcf bin/v2ray-plugin-darwin-arm64-${VERSION}.tar.gz
v2ray-plugin_darwin_arm64
-$sum bin/v2ray-plugin-darwin-arm64-${VERSION}.tar.gz
-
-# Windows ARM
-env CGO_ENABLED=0 GOOS=windows GOARCH=arm go build -v -trimpath -ldflags
"${LDFLAGS}" -o v2ray-plugin_windows_arm.exe
-$upx v2ray-plugin_windows_arm.exe >/dev/null
-tar -zcf bin/v2ray-plugin-windows-arm-${VERSION}.tar.gz
v2ray-plugin_windows_arm.exe
-$sum bin/v2ray-plugin-windows-arm-${VERSION}.tar.gz
+tar -zcf "bin/v2ray-plugin-darwin-arm64-v${VERSION_BASE}.tar.gz"
v2ray-plugin_darwin_arm64
+$sum "bin/v2ray-plugin-darwin-arm64-v${VERSION_BASE}.tar.gz"
# Windows ARM64
env CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -v -trimpath -ldflags
"${LDFLAGS}" -o v2ray-plugin_windows_arm64.exe
$upx v2ray-plugin_windows_arm64.exe >/dev/null
-tar -zcf bin/v2ray-plugin-windows-arm64-${VERSION}.tar.gz
v2ray-plugin_windows_arm64.exe
-$sum bin/v2ray-plugin-windows-arm64-${VERSION}.tar.gz
+tar -zcf "bin/v2ray-plugin-windows-arm64-v${VERSION_BASE}.tar.gz"
v2ray-plugin_windows_arm64.exe
+$sum "bin/v2ray-plugin-windows-arm64-v${VERSION_BASE}.tar.gz"
# MIPS
MIPSS=(mips mipsle)
for v in "${MIPSS[@]}"; do
- env CGO_ENABLED=0 GOOS=linux GOARCH=${v} go build -v -trimpath -ldflags
"${LDFLAGS}" -o v2ray-plugin_linux_${v}
- env CGO_ENABLED=0 GOOS=linux GOARCH=${v} GOMIPS=softfloat go build
-ldflags "${LDFLAGS}" -o v2ray-plugin_linux_${v}_sf
+ env CGO_ENABLED=0 GOOS=linux GOARCH="${v}" go build -v -trimpath -ldflags
"${LDFLAGS}" -o "v2ray-plugin_linux_${v}"
+ env CGO_ENABLED=0 GOOS=linux GOARCH="${v}" GOMIPS=softfloat go build
-ldflags "${LDFLAGS}" -o "v2ray-plugin_linux_${v}_sf"
done
$upx v2ray-plugin_linux_mips* >/dev/null
-tar -zcf bin/v2ray-plugin-linux-mips-${VERSION}.tar.gz v2ray-plugin_linux_mips*
-$sum bin/v2ray-plugin-linux-mips-${VERSION}.tar.gz
+tar -zcf "bin/v2ray-plugin-linux-mips-v${VERSION_BASE}.tar.gz"
v2ray-plugin_linux_mips*
+$sum "bin/v2ray-plugin-linux-mips-v${VERSION_BASE}.tar.gz"
# MIPS64
MIPS64S=(mips64 mips64le)
for v in "${MIPS64S[@]}"; do
- env CGO_ENABLED=0 GOOS=linux GOARCH=${v} go build -v -trimpath -ldflags
"${LDFLAGS}" -o v2ray-plugin_linux_${v}
+ env CGO_ENABLED=0 GOOS=linux GOARCH="${v}" go build -v -trimpath -ldflags
"${LDFLAGS}" -o "v2ray-plugin_linux_${v}"
done
-tar -zcf bin/v2ray-plugin-linux-mips64-${VERSION}.tar.gz
v2ray-plugin_linux_mips64*
-$sum bin/v2ray-plugin-linux-mips64-${VERSION}.tar.gz
+tar -zcf "bin/v2ray-plugin-linux-mips64-v${VERSION_BASE}.tar.gz"
v2ray-plugin_linux_mips64*
+$sum "bin/v2ray-plugin-linux-mips64-v${VERSION_BASE}.tar.gz"
# ppc64le
env CGO_ENABLED=0 GOOS=linux GOARCH=ppc64le go build -v -trimpath -ldflags
"${LDFLAGS}" -o v2ray-plugin_linux_ppc64le
$upx v2ray-plugin_linux_ppc64le >/dev/null
-tar -zcf bin/v2ray-plugin-linux-ppc64le-${VERSION}.tar.gz
v2ray-plugin_linux_ppc64le
-$sum bin/v2ray-plugin-linux-ppc64le-${VERSION}.tar.gz
+tar -zcf "bin/v2ray-plugin-linux-ppc64le-v${VERSION_BASE}.tar.gz"
v2ray-plugin_linux_ppc64le
+$sum "bin/v2ray-plugin-linux-ppc64le-v${VERSION_BASE}.tar.gz"
# s390x
env CGO_ENABLED=0 GOOS=linux GOARCH=s390x go build -v -trimpath -ldflags
"${LDFLAGS}" -o v2ray-plugin_linux_s390x
$upx v2ray-plugin_linux_s390x >/dev/null
-tar -zcf bin/v2ray-plugin-linux-s390x-${VERSION}.tar.gz
v2ray-plugin_linux_s390x
-$sum bin/v2ray-plugin-linux-s390x-${VERSION}.tar.gz
+tar -zcf "bin/v2ray-plugin-linux-s390x-v${VERSION_BASE}.tar.gz"
v2ray-plugin_linux_s390x
+$sum "bin/v2ray-plugin-linux-s390x-v${VERSION_BASE}.tar.gz"
# riscv64
env CGO_ENABLED=0 GOOS=linux GOARCH=riscv64 go build -v -trimpath -ldflags
"${LDFLAGS}" -o v2ray-plugin_linux_riscv64
$upx v2ray-plugin_linux_riscv64 >/dev/null
-tar -zcf bin/v2ray-plugin-linux-riscv64-${VERSION}.tar.gz
v2ray-plugin_linux_riscv64
-$sum bin/v2ray-plugin-linux-riscv64-${VERSION}.tar.gz
+tar -zcf "bin/v2ray-plugin-linux-riscv64-v${VERSION_BASE}.tar.gz"
v2ray-plugin_linux_riscv64
+$sum "bin/v2ray-plugin-linux-riscv64-v${VERSION_BASE}.tar.gz"
+
+# Clean up generated files
+if [ -f "versioninfo_generated.json" ]; then
+ rm -f versioninfo_generated.json
+fi
+# Clean up generated .syso files
+rm -f resource_*.syso 2>/dev/null
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/v2ray-plugin-5.41.0/cmd/build/osversion_windows.go
new/v2ray-plugin-5.49.0/cmd/build/osversion_windows.go
--- old/v2ray-plugin-5.41.0/cmd/build/osversion_windows.go 2025-10-15
15:47:33.000000000 +0200
+++ new/v2ray-plugin-5.49.0/cmd/build/osversion_windows.go 2026-04-13
14:37:17.000000000 +0200
@@ -9,6 +9,9 @@
"golang.org/x/sys/windows"
)
+// Pre-compile regex for kernel version simplification
+var kernelVersionRegex = regexp.MustCompile(`^(\d+\.\d+\.(\d+\.\d+)) Build
(\d+\.\d+)$`)
+
// GetOSVersion returns OS version, kernel and bitness
// On Windows it performs additional output enhancements.
func GetOSVersion() (osVersion, osKernel string) {
@@ -31,7 +34,7 @@
}
// Simplify kernel output: `MAJOR.MINOR.BUILD.REVISION Build
BUILD.REVISION` -> `MAJOR.MINOR.BUILD.REVISION`
- match := regexp.MustCompile(`^(\d+\.\d+\.(\d+\.\d+)) Build
(\d+\.\d+)$`).FindStringSubmatch(osKernel)
+ match := kernelVersionRegex.FindStringSubmatch(osKernel)
if len(match) == 4 && match[2] == match[3] {
osKernel = match[1]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/v2ray-plugin-5.41.0/go.mod
new/v2ray-plugin-5.49.0/go.mod
--- old/v2ray-plugin-5.41.0/go.mod 2025-10-15 15:47:33.000000000 +0200
+++ new/v2ray-plugin-5.49.0/go.mod 2026-04-13 14:37:17.000000000 +0200
@@ -1,34 +1,34 @@
module github.com/teddysun/v2ray-plugin
-go 1.25
+go 1.25.5
require (
github.com/golang/protobuf v1.5.4
- github.com/shirou/gopsutil/v4 v4.25.9
- github.com/v2fly/v2ray-core/v5 v5.41.0
- golang.org/x/sys v0.37.0
- google.golang.org/protobuf v1.36.10
+ github.com/shirou/gopsutil/v4 v4.26.3
+ github.com/v2fly/v2ray-core/v5 v5.49.0
+ golang.org/x/sys v0.43.0
+ google.golang.org/protobuf v1.36.11
)
require (
github.com/adrg/xdg v0.5.3 // indirect
- github.com/ebitengine/purego v0.9.0 // indirect
+ github.com/ebitengine/purego v0.10.0 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/gorilla/websocket v1.5.3 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 //
indirect
- github.com/miekg/dns v1.1.68 // indirect
- github.com/pires/go-proxyproto v0.8.1 // indirect
+ github.com/miekg/dns v1.1.72 // indirect
+ github.com/pires/go-proxyproto v0.11.0 // indirect
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 //
indirect
- github.com/quic-go/quic-go v0.55.0 // indirect
- github.com/tklauser/go-sysconf v0.3.15 // indirect
- github.com/tklauser/numcpus v0.10.0 // indirect
+ github.com/quic-go/quic-go v0.59.0 // indirect
+ github.com/tklauser/go-sysconf v0.3.16 // indirect
+ github.com/tklauser/numcpus v0.11.0 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
- golang.org/x/crypto v0.43.0 // indirect
- golang.org/x/mod v0.28.0 // indirect
- golang.org/x/net v0.46.0 // indirect
- golang.org/x/sync v0.17.0 // indirect
- golang.org/x/text v0.30.0 // indirect
- golang.org/x/tools v0.37.0 // indirect
- google.golang.org/genproto/googleapis/rpc
v0.0.0-20250804133106-a7a43d27e69b // indirect
- google.golang.org/grpc v1.76.0 // indirect
+ golang.org/x/crypto v0.50.0 // indirect
+ golang.org/x/mod v0.34.0 // indirect
+ golang.org/x/net v0.53.0 // indirect
+ golang.org/x/sync v0.20.0 // indirect
+ golang.org/x/text v0.36.0 // indirect
+ golang.org/x/tools v0.43.0 // indirect
+ google.golang.org/genproto/googleapis/rpc
v0.0.0-20260120221211-b8f7ae30c516 // indirect
+ google.golang.org/grpc v1.80.0 // indirect
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/v2ray-plugin-5.41.0/go.sum
new/v2ray-plugin-5.49.0/go.sum
--- old/v2ray-plugin-5.41.0/go.sum 2025-10-15 15:47:33.000000000 +0200
+++ new/v2ray-plugin-5.49.0/go.sum 2026-04-13 14:37:17.000000000 +0200
@@ -4,14 +4,14 @@
github.com/aead/cmac v0.0.0-20160719120800-7af84192f0b1/go.mod
h1:nuudZmJhzWtx2212z+pkuy7B6nkBqa+xwNXZHL1j8cg=
github.com/andybalholm/brotli v1.0.6
h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI=
github.com/andybalholm/brotli v1.0.6/go.mod
h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
-github.com/apernet/quic-go v0.48.2-0.20241104191913-cb103fcecfe7
h1:zO38yBOvQ1dLHbSuaU5BFZ8zalnSDQslj+i/9AGOk9s=
-github.com/apernet/quic-go v0.48.2-0.20241104191913-cb103fcecfe7/go.mod
h1:LoSUY2chVqNQCDyi4IZGqPpXLy1FuCkE37PKwtJvNGg=
+github.com/apernet/quic-go v0.59.1-0.20260217092621-db4786c77a22
h1:00ziBGnLWQEcR9LThDwvxOznJJquJ9bYUdmBFnawLMU=
+github.com/apernet/quic-go v0.59.1-0.20260217092621-db4786c77a22/go.mod
h1:Npbg8qBtAZlsAB3FWmqwlVh5jtVG6a4DlYsOylUpvzA=
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.14.1
h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw=
-github.com/bufbuild/protocompile v0.14.1/go.mod
h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c=
github.com/cenkalti/backoff/v4 v4.1.1
h1:G2HAfAmvm/GcKan2oOQpBXOd2tT2G57ZnZGWa1PxPBQ=
github.com/cenkalti/backoff/v4 v4.1.1/go.mod
h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
+github.com/cespare/xxhash/v2 v2.3.0
h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/davecgh/go-spew v1.1.1
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f
h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I=
@@ -20,16 +20,14 @@
github.com/dgryski/go-metro v0.0.0-20211217172704-adc40b04c140/go.mod
h1:c9O8+fpSOX1DM8cPNSkX/qsBWdkD4yd2dpciOWQjpBw=
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=
-github.com/ebitengine/purego v0.9.0
h1:mh0zpKBIXDceC63hpvPuGLiJ8ZAa3DfrFTudmfi8A4k=
-github.com/ebitengine/purego v0.9.0/go.mod
h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
+github.com/ebitengine/purego v0.10.0
h1:QIw4xfpWT6GWTzaW5XEKy3HXoqrJGx1ijYHzTF0/ISU=
+github.com/ebitengine/purego v0.10.0/go.mod
h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod
h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod
h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-ole/go-ole v1.2.6/go.mod
h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
-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/golang-collections/go-datastructures
v0.0.0-20150211160725-59788d5eb259
h1:ZHJ7+IGpuOXtVf6Zk/a3WuHQgkC+vXwaqfUBDFwahtI=
github.com/golang-collections/go-datastructures
v0.0.0-20150211160725-59788d5eb259/go.mod
h1:9Qcha0gTWLw//0VNka1Cbnjvg3pNKGFdAm7E9sBabxE=
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
@@ -43,16 +41,16 @@
github.com/google/go-cmp v0.7.0/go.mod
h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gopacket v1.1.19
h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=
github.com/google/gopacket v1.1.19/go.mod
h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo=
-github.com/google/pprof v0.0.0-20240320155624-b11c3daa6f07
h1:57oOH2Mu5Nw16KnZAVLdlUjmPH/TSYCKTJgG0OVfX0Y=
-github.com/google/pprof v0.0.0-20240320155624-b11c3daa6f07/go.mod
h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/websocket v1.5.3
h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
github.com/gorilla/websocket v1.5.3/go.mod
h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/improbable-eng/grpc-web v0.15.0
h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ=
github.com/improbable-eng/grpc-web v0.15.0/go.mod
h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPtwNr0l57L4f878wP8=
-github.com/jhump/protoreflect v1.17.0
h1:qOEr613fac2lOuTgWN4tPAtLL7fUSbuJL5X5XumQh94=
-github.com/jhump/protoreflect v1.17.0/go.mod
h1:h9+vUUL38jiBzck8ck+6G/aeMX8Z4QUY/NiJPwPNi+8=
+github.com/jhump/protoreflect v1.18.0
h1:TOz0MSR/0JOZ5kECB/0ufGnC2jdsgZ123Rd/k4Z5/2w=
+github.com/jhump/protoreflect v1.18.0/go.mod
h1:ezWcltJIVF4zYdIFM+D/sHV4Oh5LNU08ORzCGfwvTz8=
+github.com/jhump/protoreflect/v2 v2.0.0-beta.1
h1:Dw1rslK/VotaUGYsv53XVWITr+5RCPXfvvlGrM/+B6w=
+github.com/jhump/protoreflect/v2 v2.0.0-beta.1/go.mod
h1:D9LBEowZyv8/iSu97FU2zmXG3JxVTmNw21mu63niFzU=
github.com/klauspost/compress v1.17.4
h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4=
github.com/klauspost/compress v1.17.4/go.mod
h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM=
github.com/klauspost/cpuid/v2 v2.2.5
h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
@@ -63,40 +61,50 @@
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod
h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
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=
-github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA=
-github.com/miekg/dns v1.1.68/go.mod
h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps=
+github.com/miekg/dns v1.1.72 h1:vhmr+TF2A3tuoGNkLDFK9zi36F2LS+hKTRW0Uf8kbzI=
+github.com/miekg/dns v1.1.72/go.mod
h1:+EuEPhdHOsfk6Wk5TT2CzssZdqkmFhf8r+aVyDEToIs=
github.com/mustafaturan/bus v1.0.2
h1:2x3ErwZ0uUPwwZ5ZZoknEQprdaxr68Yl3mY8jDye1Ws=
github.com/mustafaturan/bus v1.0.2/go.mod
h1:h7gfehm8TThv4Dcaa+wDQG7r7j6p74v+7ftr0Rq9i1Q=
github.com/mustafaturan/monoton v1.0.0
h1:8SCej+JiNn0lyps7V+Jzc1CRAkDR4EZPWrTupQ61YCQ=
github.com/mustafaturan/monoton v1.0.0/go.mod
h1:FOnE7NV3s3EWPXb8/7+/OSdiMBbdlkV0Lz8p1dc+vy8=
-github.com/onsi/ginkgo/v2 v2.17.0
h1:kdnunFXpBjbzN56hcJHrXZ8M+LOkenKA7NnBzTNigTI=
-github.com/onsi/ginkgo/v2 v2.17.0/go.mod
h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs=
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=
github.com/pelletier/go-toml v1.9.5
h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
github.com/pelletier/go-toml v1.9.5/go.mod
h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pion/dtls/v2 v2.2.12 h1:KP7H5/c1EiVAAKUmXyCzPiQe5+bCJrpOeKg/L05dunk=
github.com/pion/dtls/v2 v2.2.12/go.mod
h1:d9SYc9fch0CqK90mRk1dC7AkzzpwJj6u2GU3u+9pqFE=
-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/dtls/v3 v3.1.2 h1:gqEdOUXLtCGW+afsBLO0LtDD8GnuBBjEy6HRtyofZTc=
+github.com/pion/dtls/v3 v3.1.2/go.mod
h1:Hw/igcX4pdY69z1Hgv5x7wJFrUkdgHwAn/Q/uo7YHRo=
+github.com/pion/ice/v4 v4.2.2 h1:dQJzzcgTFHDYyV3BoCfjPeX+JEtr58BWPi4PGyo6Vjg=
+github.com/pion/ice/v4 v4.2.2/go.mod
h1:2quLV1S5v1tAx3VvAJaH//KGitRXvo4RKlX6D3tnN+c=
+github.com/pion/logging v0.2.4 h1:tTew+7cmQ+Mc1pTBLKH2puKsOvhm32dROumOZ655zB8=
+github.com/pion/logging v0.2.4/go.mod
h1:DffhXTKYdNZU+KtJ5pyQDjvOAh/GsNSyv1lbkFbe3so=
+github.com/pion/mdns/v2 v2.1.0 h1:3IJ9+Xio6tWYjhN6WwuY142P/1jA0D5ERaIqawg/fOY=
+github.com/pion/mdns/v2 v2.1.0/go.mod
h1:pcez23GdynwcfRU1977qKU0mDxSeucttSHbCSfFOd9A=
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.8.7 h1:JnABvFakZueGAn4KU/4PSKg+GWbF6QWbKTWZOSGJjXw=
-github.com/pion/sctp v1.8.7/go.mod
h1:g1Ul+ARqZq5JEmoFy87Q/4CePtKnTJ1QCL9dBBdN6AU=
+github.com/pion/sctp v1.9.4 h1:cMxEu0F5tbP4qH07bKf1Zjf4rUih9LIo0qQt424e258=
+github.com/pion/sctp v1.9.4/go.mod
h1:N20Dq6LY+JvJDAh9VVh1JELngb2rQ8dPgds5yBWiPgw=
+github.com/pion/stun/v3 v3.1.2 h1:86IhD8wFn6IDW4b1/0QzoQS+f5PeA8OHHRn8UZW5ErY=
+github.com/pion/stun/v3 v3.1.2/go.mod
h1:H7gDic7nNwlUL05pbs6T1dtaBehh/KjupxfWw3ZI7cA=
github.com/pion/transport/v2 v2.2.10
h1:ucLBLE8nuxiHfvkFKnkDQRYWYfp8ejf4YBOPfaQpw6Q=
github.com/pion/transport/v2 v2.2.10/go.mod
h1:sq1kSLWs+cHW9E+2fJP95QudkzbK7wscs8yYgQToO5E=
-github.com/pires/go-proxyproto v0.8.1
h1:9KEixbdJfhrbtjpz/ZwCdWDD2Xem0NZ38qMYaASJgp0=
-github.com/pires/go-proxyproto v0.8.1/go.mod
h1:ZKAAyp3cgy5Y5Mo4n9AlScrkCZwUy0g3Jf+slqQVcuU=
+github.com/pion/transport/v4 v4.0.1
h1:sdROELU6BZ63Ab7FrOLn13M6YdJLY20wldXW2Cu2k8o=
+github.com/pion/transport/v4 v4.0.1/go.mod
h1:nEuEA4AD5lPdcIegQDpVLgNoDGreqM/YqmEx3ovP4jM=
+github.com/pion/turn/v4 v4.1.4 h1:EU11yMXKIsK43FhcUnjLlrhE4nboHZq+TXBIi3QpcxQ=
+github.com/pion/turn/v4 v4.1.4/go.mod
h1:ES1DXVFKnOhuDkqn9hn5VJlSWmZPaRJLyBXoOeO/BmQ=
+github.com/pires/go-proxyproto v0.11.0
h1:gUQpS85X/VJMdUsYyEgyn59uLJvGqPhJV5YvG68wXH4=
+github.com/pires/go-proxyproto v0.11.0/go.mod
h1:ZKAAyp3cgy5Y5Mo4n9AlScrkCZwUy0g3Jf+slqQVcuU=
github.com/pmezard/go-difflib v1.0.0
h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55
h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU=
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod
h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
-github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI=
-github.com/quic-go/qpack v0.5.1/go.mod
h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg=
-github.com/quic-go/quic-go v0.55.0
h1:zccPQIqYCXDt5NmcEabyYvOnomjs8Tlwl7tISjJh9Mk=
-github.com/quic-go/quic-go v0.55.0/go.mod
h1:DR51ilwU1uE164KuWXhinFcKWGlEjzys2l8zUl5Ss1U=
-github.com/refraction-networking/utls v1.8.1
h1:yNY1kapmQU8JeM1sSw2H2asfTIwWxIkrMJI0pRUOCAo=
-github.com/refraction-networking/utls v1.8.1/go.mod
h1:jkSOEkLqn+S/jtpEHPOsVv/4V4EVnelwbMQl4vCWXAM=
+github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8=
+github.com/quic-go/qpack v0.6.0/go.mod
h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII=
+github.com/quic-go/quic-go v0.59.0
h1:OLJkp1Mlm/aS7dpKgTc6cnpynnD2Xg7C1pwL6vy/SAw=
+github.com/quic-go/quic-go v0.59.0/go.mod
h1:upnsH4Ju1YkqpLXC305eW3yDZ4NfnNbmQRCMWS58IKU=
+github.com/refraction-networking/utls v1.8.2
h1:j4Q1gJj0xngdeH+Ox/qND11aEfhpgoEvV+S9iJ2IdQo=
+github.com/refraction-networking/utls v1.8.2/go.mod
h1:jkSOEkLqn+S/jtpEHPOsVv/4V4EVnelwbMQl4vCWXAM=
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/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
@@ -105,87 +113,95 @@
github.com/secure-io/siv-go v0.0.0-20180922214919-5ff40651e2c4/go.mod
h1:aI+8yClBW+1uovkHw6HM01YXnYB8vohtB9C83wzx34E=
github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb
h1:XfLJSPIOUX+osiMraVgIrMR27uMXnRJWGm1+GL8/63U=
github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb/go.mod
h1:bR6DqgcAl1zTcOX8/pE2Qkj9XO00eCNqmKb7lXP8EAg=
-github.com/shirou/gopsutil/v4 v4.25.9
h1:JImNpf6gCVhKgZhtaAHJ0serfFGtlfIlSC08eaKdTrU=
-github.com/shirou/gopsutil/v4 v4.25.9/go.mod
h1:gxIxoC+7nQRwUl/xNhutXlD8lq+jxTgpIkEf3rADHL8=
+github.com/shirou/gopsutil/v4 v4.26.3
h1:2ESdQt90yU3oXF/CdOlRCJxrP+Am1aBYubTMTfxJ1qc=
+github.com/shirou/gopsutil/v4 v4.26.3/go.mod
h1:LZ6ewCSkBqUpvSOf+LsTGnRinC6iaNUNMGBtDkJBaLQ=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod
h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.11.1
h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod
h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
-github.com/tklauser/go-sysconf v0.3.15
h1:VE89k0criAymJ/Os65CSn1IXaol+1wrsFHEB8Ol49K4=
-github.com/tklauser/go-sysconf v0.3.15/go.mod
h1:Dmjwr6tYFIseJw7a3dRLJfsHAMXZ3nEnL/aZY+0IuI4=
-github.com/tklauser/numcpus v0.10.0
h1:18njr6LDBk1zuna922MgdjQuJFjrdppsZG60sHGfjso=
-github.com/tklauser/numcpus v0.10.0/go.mod
h1:BiTKazU708GQTYF4mB+cmlpT2Is1gLk7XVuEeem8LsQ=
+github.com/tklauser/go-sysconf v0.3.16
h1:frioLaCQSsF5Cy1jgRBrzr6t502KIIwQ0MArYICU0nA=
+github.com/tklauser/go-sysconf v0.3.16/go.mod
h1:/qNL9xxDhc7tx3HSRsLWNnuzbVfh3e7gh/BmM179nYI=
+github.com/tklauser/numcpus v0.11.0
h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9RXw=
+github.com/tklauser/numcpus v0.11.0/go.mod
h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ=
github.com/v2fly/BrowserBridge v0.0.0-20210430233438-0570fc1d7d08
h1:4Yh46CVE3k/lPq6hUbEdbB1u1anRBXLewm3k+L0iOMc=
github.com/v2fly/BrowserBridge v0.0.0-20210430233438-0570fc1d7d08/go.mod
h1:KAuQNm+LWQCOFqdBcUgihPzRpVXRKzGbTNhfEfRZ4wY=
github.com/v2fly/VSign v0.0.0-20201108000810-e2adc24bf848
h1:p1UzXK6VAutXFFQMnre66h7g1BjRKUnLv0HfmmRoz7w=
github.com/v2fly/VSign v0.0.0-20201108000810-e2adc24bf848/go.mod
h1:p80Bv154ZtrGpXMN15slDCqc9UGmfBuUzheDFBYaW/M=
-github.com/v2fly/hysteria/core/v2 v2.0.0-20250113081444-b0a0747ac7ab
h1:GstVKviVuxRZXxHzeWq0N2M4LG5A5W1HvFX1b7aQ48w=
-github.com/v2fly/hysteria/core/v2 v2.0.0-20250113081444-b0a0747ac7ab/go.mod
h1:yWDV7zOoL0pPhVlWV6Hqf46gWYenwwT9g4Y+e5yPRz8=
+github.com/v2fly/hysteria/core/v2 v2.0.0-20260220231229-39018a43855e
h1:0vxrC4Rn4t421ecsY7nlMG5L7/1LJzcWUuyB3q7nnuc=
+github.com/v2fly/hysteria/core/v2 v2.0.0-20260220231229-39018a43855e/go.mod
h1:onOGso2sRgruR/bUD1Vl39o+B4HVOdv+v7mS6E7pbn4=
github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e
h1:5QefA066A1tF8gHIiADmOVOV5LS43gt3ONnlEl3xkwI=
github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e/go.mod
h1:5t19P9LBIrNamL6AcMQOncg/r10y3Pc01AbHeMhwlpU=
github.com/v2fly/struc v0.0.0-20241227015403-8e8fa1badfd6
h1:Qea2jW7g1hvQ9TkYq3aT2h0NDWjPQHtvDfmKXoWgJ9E=
github.com/v2fly/struc v0.0.0-20241227015403-8e8fa1badfd6/go.mod
h1:a/FYYQz8bW7wh2jmI+DVsbVYwLkgmgpml+GrJwV+eIo=
-github.com/v2fly/v2ray-core/v5 v5.41.0
h1:r4Zdj+Ajc82clNe6MqBSzJq1j7/DwRt2Zyu9u5gHaoc=
-github.com/v2fly/v2ray-core/v5 v5.41.0/go.mod
h1:sCe9ktpoR6ypkiqSKuYxD3g+M1R9Rhj7WbODp5hKFAM=
+github.com/v2fly/v2ray-core/v5 v5.49.0
h1:fnHK+TtWY9gZnHTB2e/zSwUYkRfzodTqK4FsrzCamhg=
+github.com/v2fly/v2ray-core/v5 v5.49.0/go.mod
h1:dIdr2dqt39b9lGv67J05V2XEIwsbFzdJyx883CdpqXI=
github.com/vincent-petithory/dataurl v1.0.0
h1:cXw+kPto8NLuJtlMsI152irrVw9fRDX8AbShPRpg2CI=
github.com/vincent-petithory/dataurl v1.0.0/go.mod
h1:FHafX5vmDzyP+1CQATJn7WFKc9CvnvxyvZy6I1MrG/U=
+github.com/wlynxg/anet v0.0.5 h1:J3VJGi1gvo0JwZ/P1/Yc/8p63SoW98B5dHkYDmpgvvU=
+github.com/wlynxg/anet v0.0.5/go.mod
h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA=
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/xssnick/raptorq v1.3.0
h1:3GoaySKMg/i8rbjhIuqjxpTTO2l3Gs2/Gh7k3GAjvGo=
+github.com/xssnick/raptorq v1.3.0/go.mod
h1:kgEVVsZv2hP+IeV7C7985KIFsDdvYq2ARW234SBA9Q4=
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/yusufpapurcu/wmi v1.2.4
h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
github.com/yusufpapurcu/wmi v1.2.4/go.mod
h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
-go.opentelemetry.io/auto/sdk v1.1.0
h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
-go.opentelemetry.io/auto/sdk v1.1.0/go.mod
h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
-go.opentelemetry.io/otel v1.37.0
h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ=
-go.opentelemetry.io/otel v1.37.0/go.mod
h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I=
-go.opentelemetry.io/otel/metric v1.37.0
h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE=
-go.opentelemetry.io/otel/metric v1.37.0/go.mod
h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E=
-go.opentelemetry.io/otel/sdk v1.37.0
h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI=
-go.opentelemetry.io/otel/sdk v1.37.0/go.mod
h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg=
-go.opentelemetry.io/otel/sdk/metric v1.37.0
h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc=
-go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod
h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps=
-go.opentelemetry.io/otel/trace v1.37.0
h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
-go.opentelemetry.io/otel/trace v1.37.0/go.mod
h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
+go.opentelemetry.io/auto/sdk v1.2.1
h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
+go.opentelemetry.io/auto/sdk v1.2.1/go.mod
h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
+go.opentelemetry.io/otel v1.39.0
h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
+go.opentelemetry.io/otel v1.39.0/go.mod
h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
+go.opentelemetry.io/otel/metric v1.39.0
h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
+go.opentelemetry.io/otel/metric v1.39.0/go.mod
h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
+go.opentelemetry.io/otel/sdk v1.39.0
h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
+go.opentelemetry.io/otel/sdk v1.39.0/go.mod
h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
+go.opentelemetry.io/otel/sdk/metric v1.39.0
h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
+go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod
h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
+go.opentelemetry.io/otel/trace v1.39.0
h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
+go.opentelemetry.io/otel/trace v1.39.0/go.mod
h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
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/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko=
go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o=
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.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04=
-golang.org/x/crypto v0.43.0/go.mod
h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0=
+golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI=
+golang.org/x/crypto v0.50.0/go.mod
h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q=
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842
h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM=
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod
h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc=
-golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U=
-golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI=
-golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4=
-golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210=
-golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
-golang.org/x/sync v0.17.0/go.mod
h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
+golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI=
+golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY=
+golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA=
+golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs=
+golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
+golang.org/x/sync v0.20.0/go.mod
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
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.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
-golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
-golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
-golang.org/x/text v0.30.0/go.mod
h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
-golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
-golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
-golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE=
-golang.org/x/tools v0.37.0/go.mod
h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w=
+golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
+golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg=
+golang.org/x/text v0.36.0/go.mod
h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164=
+golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE=
+golang.org/x/time v0.12.0/go.mod
h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
+golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s=
+golang.org/x/tools v0.43.0/go.mod
h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
-gonum.org/v1/gonum v0.16.0/go.mod
h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250804133106-a7a43d27e69b
h1:zPKJod4w6F1+nRGDI9ubnXYhU9NSWoFAijkHkUXeTK8=
-google.golang.org/genproto/googleapis/rpc
v0.0.0-20250804133106-a7a43d27e69b/go.mod
h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
-google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A=
-google.golang.org/grpc v1.76.0/go.mod
h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c=
-google.golang.org/protobuf v1.36.10
h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
-google.golang.org/protobuf v1.36.10/go.mod
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
+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/wireguard v0.0.0-20250521234502-f333402bd9cb
h1:whnFRlWMcXI9d+ZbWg+4sHnLp52d5yiIPUxMBSt4X9A=
+golang.zx2c4.com/wireguard v0.0.0-20250521234502-f333402bd9cb/go.mod
h1:rpwXGsirqLqN2L0JDJQlwOboGHmptD5ZD6T2VmcqhTw=
+gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
+gonum.org/v1/gonum v0.17.0/go.mod
h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516
h1:sNrWoksmOyF5bvJUcnmbeAmQi8baNhqg5IWaI3llQqU=
+google.golang.org/genproto/googleapis/rpc
v0.0.0-20260120221211-b8f7ae30c516/go.mod
h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
+google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM=
+google.golang.org/grpc v1.80.0/go.mod
h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4=
+google.golang.org/protobuf v1.36.11
h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
+google.golang.org/protobuf v1.36.11/go.mod
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gvisor.dev/gvisor v0.0.0-20231020174304-b8a429915ff1
h1:qDCwdCWECGnwQSQC01Dpnp09fRHxJs9PbktotUqG+hs=
-gvisor.dev/gvisor v0.0.0-20231020174304-b8a429915ff1/go.mod
h1:8hmigyCdYtw5xJGfQDJzSH5Ju8XEIDBnpyi8+O6GRt8=
+gvisor.dev/gvisor v0.0.0-20260218152508-eed1cebf761e
h1:OaBM9m99p7sXzsj1A7lrwLAdWZKCwlA8jBn3BXFO+dE=
+gvisor.dev/gvisor v0.0.0-20260218152508-eed1cebf761e/go.mod
h1:QkHjoMIBaYtpVufgwv3keYAbln78mBoCuShZrPrer1Q=
lukechampine.com/blake3 v1.4.1 h1:I3Smz7gso8w4/TunLKec6K2fn+kyKtDxr/xcQEN84Wg=
lukechampine.com/blake3 v1.4.1/go.mod
h1:QFosUxmjB8mnrWFSNwKmvxHpfY72bmD2tQ0kBMM3kwo=
nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/v2ray-plugin-5.41.0/main.go
new/v2ray-plugin-5.49.0/main.go
--- old/v2ray-plugin-5.41.0/main.go 2025-10-15 15:47:33.000000000 +0200
+++ new/v2ray-plugin-5.49.0/main.go 2026-04-13 14:37:17.000000000 +0200
@@ -21,6 +21,7 @@
vlog "github.com/v2fly/v2ray-core/v5/app/log"
clog "github.com/v2fly/v2ray-core/v5/common/log"
+ "github.com/teddysun/v2ray-plugin/cmd/build"
"github.com/v2fly/v2ray-core/v5/app/dispatcher"
"github.com/v2fly/v2ray-core/v5/app/proxyman"
"github.com/v2fly/v2ray-core/v5/common/net"
@@ -34,7 +35,6 @@
"github.com/v2fly/v2ray-core/v5/transport/internet/quic"
"github.com/v2fly/v2ray-core/v5/transport/internet/tls"
"github.com/v2fly/v2ray-core/v5/transport/internet/websocket"
- "github.com/teddysun/v2ray-plugin/cmd/build"
)
var (
@@ -82,7 +82,7 @@
fixedCert := certHead + "\n" + *certRaw + "\n" + certTail
return []byte(fixedCert), nil
}
- panic("thou shalt not reach hear")
+ panic("thou shalt not reach here")
}
func logConfig(logLevel string) *vlog.Config {
@@ -154,12 +154,13 @@
}
// hack v2ray-core grpc protocolName
- if *mode == "grpc" {
- *mode = "gun"
+ protocolName := *mode
+ if protocolName == "grpc" {
+ protocolName = "gun"
}
streamConfig := internet.StreamConfig{
- ProtocolName: *mode,
+ ProtocolName: protocolName,
TransportSettings: []*internet.TransportConfig{{
ProtocolName: *mode,
Settings: serial.ToTypedMessage(transportSettings),
@@ -275,8 +276,10 @@
func startV2Ray() (core.Server, error) {
opts, err := parseEnv()
-
- if err == nil {
+ if err != nil {
+ logWarn("failed to parse env options:", err)
+ }
+ if opts != nil {
if c, b := opts.Get("mode"); b {
*mode = c
}
@@ -399,13 +402,13 @@
fmt.Printf("- os/kernel: %s\n", osKernel)
fmt.Printf("- os/type: %s\n", runtime.GOOS)
fmt.Printf("- os/arch: %s\n", arch)
- fmt.Printf("- go/version: %s\n", runtime.Version())
+ fmt.Printf("- go/version: %s\n", runtime.Version())
}
func main() {
flag.Parse()
- if *version {
+ if *version || (len(flag.Args()) > 0 && flag.Args()[0] == "version") {
printVersion()
return
}
@@ -434,7 +437,7 @@
{
osSignals := make(chan os.Signal, 1)
- signal.Notify(osSignals, os.Interrupt, os.Kill, syscall.SIGTERM)
+ signal.Notify(osSignals, os.Interrupt, syscall.SIGTERM)
<-osSignals
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/v2ray-plugin-5.41.0/versioninfo.json
new/v2ray-plugin-5.49.0/versioninfo.json
--- old/v2ray-plugin-5.41.0/versioninfo.json 1970-01-01 01:00:00.000000000
+0100
+++ new/v2ray-plugin-5.49.0/versioninfo.json 2026-04-13 14:37:17.000000000
+0200
@@ -0,0 +1,27 @@
+{
+ "FixedFileInfo": {
+ "FileVersion": {
+ "Major": %MAJOR%,
+ "Minor": %MINOR%,
+ "Patch": %PATCH%,
+ "Build": %BUILD%
+ },
+ "ProductVersion": {
+ "Major": %MAJOR%,
+ "Minor": %MINOR%,
+ "Patch": %PATCH%,
+ "Build": %BUILD%
+ }
+ },
+ "StringFileInfo": {
+ "CompanyName": "Teddysun",
+ "FileDescription": "A SIP003 plugin based on v2ray",
+ "FileVersion": "%VERSION%",
+ "InternalName": "v2ray-plugin",
+ "LegalCopyright": "Copyright (c) 2020 - 2026",
+ "OriginalFilename": "v2ray-plugin.exe",
+ "ProductName": "v2ray-plugin",
+ "ProductVersion": "%VERSION%"
+ },
+ "IconPath": "assets/v2ray.ico"
+}
++++++ vendor.tar.gz ++++++
++++ 151818 lines of diff (skipped)