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)

Reply via email to