From ed423fec459250e682d9898c8013f7f95552488c Mon Sep 17 00:00:00 2001 From: Hiddify <114227601+hiddify-com@users.noreply.github.com> Date: Wed, 29 May 2024 17:38:13 +0200 Subject: [PATCH] update to singbox 1.9.0 and update to warp-plus --- cmd.bat | 2 +- cmd/cmd_warp.go | 18 ++----- config/config.go | 4 +- config/option.go | 1 + config/outbound.go | 23 +++++--- config/parser.go | 16 +++--- config/server.go | 1 + config/warp.go | 72 +++++++++++++------------ config/warp_account.go | 19 ++----- go.mod | 57 ++++++++++---------- go.sum | 116 +++++++++++++++++++++-------------------- v2/custom.go | 3 +- v2/standalone.go | 2 +- v2/warp.go | 6 +-- 14 files changed, 168 insertions(+), 172 deletions(-) diff --git a/cmd.bat b/cmd.bat index c1e7b38..0f7f0c1 100644 --- a/cmd.bat +++ b/cmd.bat @@ -1,4 +1,4 @@ @echo off set TAGS=with_gvisor,with_quic,with_wireguard,with_ech,with_utls,with_clash_api,with_grpc @REM set TAGS=with_dhcp,with_low_memory,with_conntrack -go run --tags %TAGS% ./cmd %* \ No newline at end of file +go run --tags %TAGS% ./cli %* \ No newline at end of file diff --git a/cmd/cmd_warp.go b/cmd/cmd_warp.go index 1f16116..718449d 100644 --- a/cmd/cmd_warp.go +++ b/cmd/cmd_warp.go @@ -8,7 +8,7 @@ import ( "os" "strings" - "github.com/bepass-org/wireguard-go/warp" + "github.com/hiddify/hiddify-core/config" T "github.com/sagernet/sing-box/option" "github.com/spf13/cobra" ) @@ -146,22 +146,10 @@ func parsePeerConfig(peerConfig *PeerConfig, line string) { } } func generateWarp() (*T.Outbound, error) { - license := "" + _, _, wg, err := config.GenerateWarpInfo("", "", "") - if !warp.CheckProfileExists(license) { - err := warp.LoadOrCreateIdentity(license) - if err != nil { - return nil, err - } - } - - wgConfig, err := readWireGuardConfig("wgcf-profile.ini") - if err != nil { - fmt.Println("Error reading WireGuard configuration:", err) - return nil, err - } // fmt.Printf("%v", wgConfig) - singboxConfig, err := wireGuardToSingbox(wgConfig, "162.159.192.91", 939) + singboxConfig, err := config.GenerateWarpSingbox(*wg, "", 0, "", "", "") singboxJSON, err := json.MarshalIndent(singboxConfig, "", " ") if err != nil { fmt.Println("Error marshaling Singbox configuration:", err) diff --git a/config/config.go b/config/config.go index f251003..c9d4438 100644 --- a/config/config.go +++ b/config/config.go @@ -404,7 +404,7 @@ func BuildConfig(opt ConfigOptions, input option.Options) (*option.Options, erro fmt.Printf("opt.Warp=%+v\n", opt.Warp) if opt.Warp.EnableWarp && (opt.Warp.Mode == "warp_over_proxy" || opt.Warp.Mode == "proxy_over_warp") { - out, err := generateWarpSingbox(opt.Warp.WireguardConfig.ToWireguardConfig(), opt.Warp.CleanIP, opt.Warp.CleanPort, opt.Warp.FakePackets, opt.Warp.FakePacketSize, opt.Warp.FakePacketDelay) + out, err := GenerateWarpSingbox(opt.Warp.WireguardConfig, opt.Warp.CleanIP, opt.Warp.CleanPort, opt.Warp.FakePackets, opt.Warp.FakePacketSize, opt.Warp.FakePacketDelay) if err != nil { return nil, fmt.Errorf("failed to generate warp config: %v", err) } @@ -415,7 +415,7 @@ func BuildConfig(opt ConfigOptions, input option.Options) (*option.Options, erro } else { out.WireGuardOptions.Detour = OutboundDirectTag } - patchWarp(out) + patchWarp(out, &opt) outbounds = append(outbounds, *out) // tags = append(tags, out.Tag) } diff --git a/config/option.go b/config/option.go index 0a634ec..d810b72 100644 --- a/config/option.go +++ b/config/option.go @@ -15,6 +15,7 @@ type ConfigOptions struct { GeoSitePath string `json:"geosite-path"` Rules []Rule `json:"rules"` Warp WarpOptions `json:"warp"` + Warp2 WarpOptions `json:"warp"` Mux MuxOptions `json:"mux"` TLSTricks TLSTricks `json:"tls-tricks"` DNSOptions diff --git a/config/outbound.go b/config/outbound.go index e896da7..8e9b28b 100644 --- a/config/outbound.go +++ b/config/outbound.go @@ -5,8 +5,10 @@ import ( "fmt" "net" + "github.com/bepass-org/warp-plus/warp" C "github.com/sagernet/sing-box/constant" "github.com/sagernet/sing-box/option" + T "github.com/sagernet/sing-box/option" ) type outboundMap map[string]interface{} @@ -122,7 +124,7 @@ func patchOutbound(base option.Outbound, configOpt ConfigOptions) (*option.Outbo formatErr := func(err error) error { return fmt.Errorf("error patching outbound[%s][%s]: %w", base.Tag, base.Type, err) } - err := patchWarp(&base) + err := patchWarp(&base, &configOpt) if err != nil { return nil, "", formatErr(err) } @@ -165,14 +167,17 @@ func patchOutbound(base option.Outbound, configOpt ConfigOptions) (*option.Outbo return &outbound, serverDomain, nil } -func patchWarp(base *option.Outbound) error { +func patchWarp(base *option.Outbound, configOpt *ConfigOptions) error { if base.Type == C.TypeWireGuard { host := base.WireGuardOptions.Server + if host == "default" || host == "random" || host == "auto" || isBlockedDomain(host) { - base.WireGuardOptions.Server = getRandomIP() + randomIpPort, _ := warp.RandomWarpEndpoint(true, false) + base.WireGuardOptions.Server = randomIpPort.Addr().String() } if base.WireGuardOptions.ServerPort == 0 { - base.WireGuardOptions.ServerPort = generateRandomPort() + port := warp.RandomWarpPort() + base.WireGuardOptions.ServerPort = port } // if base.WireGuardOptions.Detour == "" { // base.WireGuardOptions.GSO = runtime.GOOS != "windows" @@ -187,7 +192,13 @@ func patchWarp(base *option.Outbound) error { fakePackets, _ := warp["fake_packets"].(string) fakePacketsSize, _ := warp["fake_packets_size"].(string) fakePacketsDelay, _ := warp["fake_packets_delay"].(string) - warpConfig, err := generateWarp(key, host, uint16(port), fakePackets, fakePacketsSize, fakePacketsDelay) + var warpConfig *T.Outbound + var err error + if configOpt != nil && (key == "p1" || key == "p2") { + warpConfig = base + } else { + warpConfig, err = generateWarp(key, host, uint16(port), fakePackets, fakePacketsSize, fakePacketsDelay) + } if err != nil { fmt.Printf("Error generating warp config: %v", err) return err @@ -197,7 +208,7 @@ func patchWarp(base *option.Outbound) error { warpConfig.WireGuardOptions.Detour = detour if detour != "" { if warpConfig.WireGuardOptions.MTU > 1000 { - warpConfig.WireGuardOptions.MTU -= 160 + warpConfig.WireGuardOptions.MTU -= 50 } warpConfig.WireGuardOptions.FakePackets = "" } diff --git a/config/parser.go b/config/parser.go index fd8ec3f..c367c3b 100644 --- a/config/parser.go +++ b/config/parser.go @@ -29,9 +29,9 @@ func ParseConfig(path string, debug bool) ([]byte, error) { if err != nil { return nil, err } - return ParseConfigContent(string(content), debug, false) + return ParseConfigContent(string(content), debug, nil, false) } -func ParseConfigContent(contentstr string, debug bool, enableFullConfig bool) ([]byte, error) { +func ParseConfigContent(contentstr string, debug bool, configOpt *ConfigOptions, fullConfig bool) ([]byte, error) { content := []byte(contentstr) var jsonObj map[string]interface{} = make(map[string]interface{}) @@ -43,7 +43,7 @@ func ParseConfigContent(contentstr string, debug bool, enableFullConfig bool) ([ if tmpJsonObj["outbounds"] == nil { jsonObj["outbounds"] = []interface{}{jsonObj} } else { - if enableFullConfig { + if configOpt.EnableFullConfig || fullConfig { jsonObj = tmpJsonObj } else { jsonObj["outbounds"] = tmpJsonObj["outbounds"] @@ -57,12 +57,12 @@ func ParseConfigContent(contentstr string, debug bool, enableFullConfig bool) ([ } newContent, _ := json.MarshalIndent(jsonObj, "", " ") - return patchConfig(newContent, "SingboxParser") + return patchConfig(newContent, "SingboxParser", configOpt) } v2rayStr, err := ray2sing.Ray2Singbox(string(content)) if err == nil { - return patchConfig([]byte(v2rayStr), "V2rayParser") + return patchConfig([]byte(v2rayStr), "V2rayParser", configOpt) } fmt.Printf("Convert using clash\n") clashObj := clash.Clash{} @@ -79,13 +79,13 @@ func ParseConfigContent(contentstr string, debug bool, enableFullConfig bool) ([ if err != nil { return nil, fmt.Errorf("[ClashParser] patching clash config error: %w", err) } - return patchConfig(output, "ClashParser") + return patchConfig(output, "ClashParser", configOpt) } return nil, fmt.Errorf("unable to determine config format") } -func patchConfig(content []byte, name string) ([]byte, error) { +func patchConfig(content []byte, name string, configOpt *ConfigOptions) ([]byte, error) { options := option.Options{} err := json.Unmarshal(content, &options) if err != nil { @@ -95,7 +95,7 @@ func patchConfig(content []byte, name string) ([]byte, error) { for _, base := range options.Outbounds { out := base b.Go(base.Tag, func() (*option.Outbound, error) { - err := patchWarp(&out) + err := patchWarp(&out, configOpt) if err != nil { return nil, fmt.Errorf("[Warp] patch warp error: %w", err) } diff --git a/config/server.go b/config/server.go index cd731a5..809128d 100644 --- a/config/server.go +++ b/config/server.go @@ -22,6 +22,7 @@ func String(s string) *string { func (s *server) ParseConfig(ctx context.Context, in *ParseConfigRequest) (*ParseConfigResponse, error) { config, err := ParseConfig(in.TempPath, in.Debug) + if err != nil { return &ParseConfigResponse{Error: String(err.Error())}, nil } diff --git a/config/warp.go b/config/warp.go index f5b6016..2a4b7c6 100644 --- a/config/warp.go +++ b/config/warp.go @@ -1,11 +1,16 @@ package config import ( + "encoding/base64" "fmt" - "math/rand" "net/netip" + "os" + + "github.com/bepass-org/warp-plus/warp" + + // "github.com/bepass-org/wireguard-go/warp" + "log/slog" - "github.com/bepass-org/wireguard-go/warp" T "github.com/sagernet/sing-box/option" ) @@ -21,13 +26,15 @@ type SingboxConfig struct { MTU int `json:"mtu"` } -func wireGuardToSingbox(wgConfig warp.WireguardConfig, server string, port uint16) (*T.Outbound, error) { +func wireGuardToSingbox(wgConfig WarpWireguardConfig, server string, port uint16) (*T.Outbound, error) { // splt := strings.Split(wgConfig.Peer.Endpoint, ":") // port, err := strconv.Atoi(splt[1]) // if err != nil { // fmt.Printf("%v", err) // return nil // } + clientID, _ := base64.StdEncoding.DecodeString(wgConfig.ClientID) + out := T.Outbound{ Type: "wireguard", Tag: "WARP", @@ -39,8 +46,8 @@ func wireGuardToSingbox(wgConfig warp.WireguardConfig, server string, port uint1 PrivateKey: wgConfig.PrivateKey, PeerPublicKey: wgConfig.PeerPublicKey, - Reserved: []uint8{0, 0, 0}, - MTU: 1280, + Reserved: []uint8{clientID[0], clientID[1], clientID[2]}, + MTU: 1330, }, } @@ -58,38 +65,18 @@ func wireGuardToSingbox(wgConfig warp.WireguardConfig, server string, port uint1 return &out, nil } -var warpIPList = []string{ - "162.159.192.0/24", - "162.159.193.0/24", - "162.159.195.0/24", - "162.159.204.0/24", - "188.114.96.0/24", - "188.114.97.0/24", - "188.114.98.0/24", - "188.114.99.0/24", -} -var warpPorts = []uint16{500, 854, 859, 864, 878, 880, 890, 891, 894, 903, 908, 928, 934, 939, 942, - 943, 945, 946, 955, 968, 987, 988, 1002, 1010, 1014, 1018, 1070, 1074, 1180, 1387, 1701, - 1843, 2371, 2408, 2506, 3138, 3476, 3581, 3854, 4177, 4198, 4233, 4500, 5279, - 5956, 7103, 7152, 7156, 7281, 7559, 8319, 8742, 8854, 8886} - func getRandomIP() string { - randomRange := warpIPList[rand.Intn(len(warpIPList))] - ip, err := warp.RandomIPFromRange(randomRange) + ipPort, err := warp.RandomWarpEndpoint(true, true) if err == nil { - return ip.String() + return ipPort.Addr().String() } return "engage.cloudflareclient.com" } -func generateRandomPort() uint16 { - return warpPorts[rand.Intn(len(warpPorts))] -} - func generateWarp(license string, host string, port uint16, fakePackets string, fakePacketsSize string, fakePacketsDelay string) (*T.Outbound, error) { - _, _, wgConfig, err := warp.LoadOrCreateIdentityHiddify(license, nil) + _, _, wgConfig, err := GenerateWarpInfo(license, "", "") if err != nil { return nil, err } @@ -98,10 +85,10 @@ func generateWarp(license string, host string, port uint16, fakePackets string, } fmt.Printf("%v", wgConfig) - return generateWarpSingbox(*wgConfig, host, port, fakePackets, fakePacketsSize, fakePacketsDelay) + return GenerateWarpSingbox(*wgConfig, host, port, fakePackets, fakePacketsSize, fakePacketsDelay) } -func generateWarpSingbox(wgConfig warp.WireguardConfig, host string, port uint16, fakePackets string, fakePacketsSize string, fakePacketsDelay string) (*T.Outbound, error) { +func GenerateWarpSingbox(wgConfig WarpWireguardConfig, host string, port uint16, fakePackets string, fakePacketsSize string, fakePacketsDelay string) (*T.Outbound, error) { if host == "" { host = "auto" } @@ -128,20 +115,31 @@ func generateWarpSingbox(wgConfig warp.WireguardConfig, host string, port uint16 return singboxConfig, nil } -func GenerateWarpInfo(license string, oldAccountId string, oldAccessToken string) (*warp.AccountData, string, *warp.WireguardConfig, error) { +func GenerateWarpInfo(license string, oldAccountId string, oldAccessToken string) (*warp.Identity, string, *WarpWireguardConfig, error) { if oldAccountId != "" && oldAccessToken != "" { - accountData := warp.AccountData{ - AccountID: oldAccountId, - AccessToken: oldAccessToken, - } - err := warp.RemoveDevice(accountData) + err := warp.DeleteDevice(oldAccessToken, oldAccountId) if err != nil { fmt.Printf("Error in removing old device: %v\n", err) } else { fmt.Printf("Old Device Removed") } } + l := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo})) + identity, err := warp.CreateIdentityOnly(l, license) + res := "Error!" + var warpcfg WarpWireguardConfig + if err == nil { + res = "Success" + res = fmt.Sprintf("Warp+ enabled: %t\n", identity.Account.WarpPlus) + res += fmt.Sprintf("\nAccount type: %s\n", identity.Account.AccountType) + warpcfg = WarpWireguardConfig{ + PrivateKey: identity.PrivateKey, + LocalAddressIPv4: identity.Config.Interface.Addresses.V4, + LocalAddressIPv6: identity.Config.Interface.Addresses.V6, + ClientID: identity.Config.ClientID, + } + } - return warp.LoadOrCreateIdentityHiddify(license, nil) + return &identity, res, &warpcfg, err } diff --git a/config/warp_account.go b/config/warp_account.go index 9b0c7ee..8944126 100644 --- a/config/warp_account.go +++ b/config/warp_account.go @@ -2,8 +2,7 @@ package config import ( "encoding/json" - - "github.com/bepass-org/wireguard-go/warp" + ) type WarpAccount struct { @@ -16,15 +15,7 @@ type WarpWireguardConfig struct { LocalAddressIPv4 string `json:"local-address-ipv4"` LocalAddressIPv6 string `json:"local-address-ipv6"` PeerPublicKey string `json:"peer-public-key"` -} - -func (wg WarpWireguardConfig) ToWireguardConfig() warp.WireguardConfig { - return warp.WireguardConfig{ - PrivateKey: wg.PrivateKey, - LocalAddressIPv4: wg.LocalAddressIPv4, - LocalAddressIPv6: wg.LocalAddressIPv6, - PeerPublicKey: wg.PeerPublicKey, - } + ClientID string `json:"ClientID"` } type WarpGenerationResponse struct { @@ -34,14 +25,14 @@ type WarpGenerationResponse struct { } func GenerateWarpAccount(licenseKey string, accountId string, accessToken string) (string, error) { - account, log, wg, err := GenerateWarpInfo(licenseKey, accountId, accessToken) + identity, log, wg, err := GenerateWarpInfo(licenseKey, accountId, accessToken) if err != nil { return "", err } warpAccount := WarpAccount{ - AccountID: account.AccountID, - AccessToken: account.AccessToken, + AccountID: identity.ID, + AccessToken: identity.Token, } warpConfig := WarpWireguardConfig{ PrivateKey: wg.PrivateKey, diff --git a/go.mod b/go.mod index e675387..ddb7053 100644 --- a/go.mod +++ b/go.mod @@ -1,20 +1,24 @@ module github.com/hiddify/hiddify-core -go 1.21.5 +go 1.22.0 + +toolchain go1.22.3 require ( - github.com/bepass-org/wireguard-go v0.0.16-alpha - github.com/golang/protobuf v1.5.3 + github.com/bepass-org/warp-plus v0.0.0-00010101000000-000000000000 + github.com/golang/protobuf v1.5.4 + github.com/google/gopacket v1.1.19 github.com/hiddify/ray2sing v0.0.0-20240319101544-08daaf978197 github.com/kardianos/service v1.2.2 + github.com/macronut/godivert v0.0.0-20220121081532-78e5dd672daf github.com/sagernet/gomobile v0.1.3 - github.com/sagernet/sing v0.3.6 + github.com/sagernet/sing v0.4.0-beta.20 github.com/sagernet/sing-box v1.8.9 - github.com/sagernet/sing-dns v0.1.12 + github.com/sagernet/sing-dns v0.2.0-beta.18 github.com/spf13/cobra v1.8.0 github.com/xmdhs/clash2singbox v0.0.2 - golang.org/x/sys v0.18.0 - google.golang.org/grpc v1.62.1 + golang.org/x/sys v0.20.0 + google.golang.org/grpc v1.63.2 google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -35,7 +39,7 @@ require ( github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect github.com/gobwas/httphead v0.1.0 // indirect github.com/gobwas/pool v0.2.1 // indirect - github.com/gofrs/uuid/v5 v5.0.0 // indirect + github.com/gofrs/uuid/v5 v5.2.0 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/pprof v0.0.0-20231101202521-4ca4178f5c7a // indirect github.com/hashicorp/yamux v0.1.1 // indirect @@ -46,12 +50,11 @@ require ( github.com/klauspost/compress v1.17.4 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/libdns/alidns v1.0.3 // indirect - github.com/libdns/cloudflare v0.1.0 // indirect - github.com/libdns/libdns v0.2.1 // indirect + github.com/libdns/cloudflare v0.1.1 // indirect + github.com/libdns/libdns v0.2.2 // indirect github.com/logrusorgru/aurora v2.0.3+incompatible // indirect - github.com/macronut/godivert v0.0.0-20220121081532-78e5dd672daf // indirect github.com/mholt/acmez v1.2.0 // indirect - github.com/miekg/dns v1.1.58 // indirect + github.com/miekg/dns v1.1.59 // indirect github.com/onsi/ginkgo/v2 v2.9.7 // indirect github.com/ooni/go-libtor v1.1.8 // indirect github.com/oschwald/maxminddb-golang v1.12.0 // indirect @@ -66,27 +69,26 @@ require ( github.com/pires/go-proxyproto v0.7.0 // indirect github.com/quic-go/qpack v0.4.0 // indirect github.com/quic-go/qtls-go1-20 v0.4.1 // indirect - github.com/quic-go/quic-go v0.40.1 // indirect + github.com/quic-go/quic-go v0.43.1 // indirect github.com/refraction-networking/utls v1.6.1 // indirect github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a // indirect github.com/sagernet/cloudflare-tls v0.0.0-20231208171750-a4483c1b7cd1 // indirect - github.com/sagernet/gvisor v0.0.0-20231209105102-8d27a30e436e // indirect - github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97 // indirect - github.com/sagernet/quic-go v0.40.1 // indirect + github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f // indirect + github.com/sagernet/netlink v0.0.0-20240523065131-45e60152f9ba // indirect + github.com/sagernet/quic-go v0.43.1-beta.1 // indirect github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691 // indirect github.com/sagernet/sing-mux v0.2.0 // indirect - github.com/sagernet/sing-quic v0.1.8 // indirect + github.com/sagernet/sing-quic v0.2.0-beta.5 // indirect github.com/sagernet/sing-shadowsocks v0.2.6 // indirect github.com/sagernet/sing-shadowsocks2 v0.2.0 // indirect github.com/sagernet/sing-shadowtls v0.1.4 // indirect - github.com/sagernet/sing-tun v0.2.4 // indirect + github.com/sagernet/sing-tun v0.3.0-beta.6 // indirect github.com/sagernet/sing-vmess v0.1.8 // indirect github.com/sagernet/smux v0.0.0-20231208180855-7041f6ea79e7 // indirect github.com/sagernet/tfo-go v0.0.0-20231209031829-7b5343ac1dc6 // indirect github.com/sagernet/utls v1.5.4 // indirect github.com/sagernet/wireguard-go v0.0.0-20231215174105-89dec3b2f3e8 // indirect github.com/sagernet/ws v0.0.0-20231204124109-acfe8907c854 // indirect - github.com/scjalliance/comshim v0.0.0-20230315213746-5e51f40bd3b9 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/u-root/uio v0.0.0-20230220225925-ffce2a382923 // indirect github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74 // indirect @@ -95,19 +97,20 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect - golang.org/x/crypto v0.21.0 // indirect - golang.org/x/exp v0.0.0-20240119083558-1b970713d09a // indirect - golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.22.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/crypto v0.23.0 // indirect + golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/net v0.25.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/text v0.15.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.17.0 // indirect + golang.org/x/tools v0.21.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641 // indirect lukechampine.com/blake3 v1.2.1 // indirect ) -replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.8.9-0.20240317200213-86ca8ebe3f03 +replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.8.9-0.20240529100042-aa8d1d4a3fb1 replace github.com/sagernet/wireguard-go => github.com/hiddify/wireguard-go v0.0.0-20240302132803-629b7c39b487 -replace github.com/bepass-org/wireguard-go => github.com/hiddify-com/wireguard-go v0.0.2-alpha.0.20240220074702-29dc5459810f +replace github.com/bepass-org/warp-plus => github.com/hiddify/warp-plus v0.0.0-20240529120935-6c534fdb70b1 diff --git a/go.sum b/go.sum index 56a2289..1bc8309 100644 --- a/go.sum +++ b/go.sum @@ -35,26 +35,26 @@ github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gofrs/uuid/v5 v5.0.0 h1:p544++a97kEL+svbcFbCQVM9KFu0Yo25UoISXGNNH9M= -github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/gofrs/uuid/v5 v5.2.0 h1:qw1GMx6/y8vhVsx626ImfKMuS5CvJmhIKKtuyvfajMM= +github.com/gofrs/uuid/v5 v5.2.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= +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.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= +github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= github.com/google/pprof v0.0.0-20231101202521-4ca4178f5c7a h1:fEBsGL/sjAuJrgah5XqmmYsTLzJp/TO9Lhy39gkverk= github.com/google/pprof v0.0.0-20231101202521-4ca4178f5c7a/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/hiddify-com/wireguard-go v0.0.2-alpha.0.20240220074702-29dc5459810f h1:h9Vsu3eALcx5il3kYVTTZ/la6znEXLrBMJtkRWuUZ+M= -github.com/hiddify-com/wireguard-go v0.0.2-alpha.0.20240220074702-29dc5459810f/go.mod h1:E1qZQpw2IrbRtFpTloTHGfJ2bJc4ZpZRNS497Eq5jCo= -github.com/hiddify/hiddify-sing-box v1.8.9-0.20240317200213-86ca8ebe3f03 h1:LHMR3XCDrlaE1L0kLs+Z+FbR3NXTQh/wEQf82YCj39g= -github.com/hiddify/hiddify-sing-box v1.8.9-0.20240317200213-86ca8ebe3f03/go.mod h1:2vu3eP0ACqN3CllaSIhWKXJToutw2s//ark656PpgEU= +github.com/hiddify/hiddify-sing-box v1.8.9-0.20240529100042-aa8d1d4a3fb1 h1:Z03mhdoyz66BNICoIOpdKiJ3r87/l34lOx2amcsvmYk= +github.com/hiddify/hiddify-sing-box v1.8.9-0.20240529100042-aa8d1d4a3fb1/go.mod h1:udjEmPgtJynwSqJ1aQFLqP1dRzS5oegGecxX6GGsElk= github.com/hiddify/ray2sing v0.0.0-20240319101544-08daaf978197 h1:DeSFnFifp/bd83rvX4RYUwOOlCZkUGk+REuMTXBaBHk= github.com/hiddify/ray2sing v0.0.0-20240319101544-08daaf978197/go.mod h1:UYYahiWAtp1PfWAnhZQv+GyYSLms5/foB63q3ACYryE= +github.com/hiddify/warp-plus v0.0.0-20240529120935-6c534fdb70b1 h1:QUaQZYHtWfrfoJxdT3MpQkNGbRM11pb4QsGTzJycVQ4= +github.com/hiddify/warp-plus v0.0.0-20240529120935-6c534fdb70b1/go.mod h1:uSRUbr1CcvFrEV69FTvuJFwpzEmwO8N4knb6+Zq3Ys4= github.com/hiddify/wireguard-go v0.0.0-20240302132803-629b7c39b487 h1:OtYe5IXuTqnpz7uS5RFzvQHACzMyqOoiv+mDbsBrhO0= github.com/hiddify/wireguard-go v0.0.0-20240302132803-629b7c39b487/go.mod h1:K4J7/npM+VAMUeUmTa2JaA02JmyheP0GpRBOUvn3ecc= github.com/imkira/go-observer/v2 v2.0.0-20230629064422-8e0b61f11f1b h1:1+115FqGoS8p6Iry9AYmrcWDvSveH0F7P2nX1LU00qg= @@ -77,19 +77,19 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/libdns/alidns v1.0.3 h1:LFHuGnbseq5+HCeGa1aW8awyX/4M2psB9962fdD2+yQ= github.com/libdns/alidns v1.0.3/go.mod h1:e18uAG6GanfRhcJj6/tps2rCMzQJaYVcGKT+ELjdjGE= -github.com/libdns/cloudflare v0.1.0 h1:93WkJaGaiXCe353LHEP36kAWCUw0YjFqwhkBkU2/iic= -github.com/libdns/cloudflare v0.1.0/go.mod h1:a44IP6J1YH6nvcNl1PverfJviADgXUnsozR3a7vBKN8= +github.com/libdns/cloudflare v0.1.1 h1:FVPfWwP8zZCqj268LZjmkDleXlHPlFU9KC4OJ3yn054= +github.com/libdns/cloudflare v0.1.1/go.mod h1:9VK91idpOjg6v7/WbjkEW49bSCxj00ALesIFDhJ8PBU= github.com/libdns/libdns v0.2.0/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40= -github.com/libdns/libdns v0.2.1 h1:Wu59T7wSHRgtA0cfxC+n1c/e+O3upJGWytknkmFEDis= -github.com/libdns/libdns v0.2.1/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40= +github.com/libdns/libdns v0.2.2 h1:O6ws7bAfRPaBsgAYt8MDe2HcNBGC29hkZ9MX2eUSX3s= +github.com/libdns/libdns v0.2.2/go.mod h1:4Bj9+5CQiNMVGf87wjX4CY3HQJypUHRuLvlsfsZqLWQ= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/macronut/godivert v0.0.0-20220121081532-78e5dd672daf h1:dBleIe0eYiqh4QxsuEwXheUKljUDD8xio4ndLImrHv4= github.com/macronut/godivert v0.0.0-20220121081532-78e5dd672daf/go.mod h1:WBXFEDDmnnVWR14TQAvMxdaHrW7Ewbt7pNerMHiyNzY= github.com/mholt/acmez v1.2.0 h1:1hhLxSgY5FvH5HCnGUuwbKY2VQVo8IU7rxXKSnZ7F30= github.com/mholt/acmez v1.2.0/go.mod h1:VT9YwH1xgNX1kmYY89gY8xPJC84BFAisjo8Egigt4kE= -github.com/miekg/dns v1.1.58 h1:ca2Hdkz+cDg/7eNF6V56jjzuZ4aCAE+DbVkILdQWG/4= -github.com/miekg/dns v1.1.58/go.mod h1:Ypv+3b/KadlvW9vJfXOTf300O4UqaHFzFCuHz+rPkBY= +github.com/miekg/dns v1.1.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs= +github.com/miekg/dns v1.1.59/go.mod h1:nZpewl5p6IvctfgrckopVx2OlSEHPRO/U4SYkRklrEk= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/onsi/ginkgo/v2 v2.9.7 h1:06xGQy5www2oN160RtEZoTvnP2sPhEfePYmCDc2szss= @@ -125,8 +125,8 @@ github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= github.com/quic-go/qtls-go1-20 v0.4.1 h1:D33340mCNDAIKBqXuAvexTNMUByrYmFYVfKfDN5nfFs= github.com/quic-go/qtls-go1-20 v0.4.1/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k= -github.com/quic-go/quic-go v0.40.1 h1:X3AGzUNFs0jVuO3esAGnTfvdgvL4fq655WaOi1snv1Q= -github.com/quic-go/quic-go v0.40.1/go.mod h1:PeN7kuVJ4xZbxSv/4OX6S1USOX8MJvydwpTx31vx60c= +github.com/quic-go/quic-go v0.43.1 h1:fLiMNfQVe9q2JvSsiXo4fXOEguXHGGl9+6gLp4RPeZQ= +github.com/quic-go/quic-go v0.43.1/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M= github.com/refraction-networking/utls v1.6.1 h1:n1JG5karzdGWsI6iZmGrOv3SNzR4c+4M8J6KWGsk3lA= github.com/refraction-networking/utls v1.6.1/go.mod h1:+EbcQOvQvXoFV9AEKbuGlljt1doLRKAVY1jJHe9EtDo= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -136,31 +136,31 @@ github.com/sagernet/cloudflare-tls v0.0.0-20231208171750-a4483c1b7cd1 h1:YbmpqPQ github.com/sagernet/cloudflare-tls v0.0.0-20231208171750-a4483c1b7cd1/go.mod h1:J2yAxTFPDjrDPhuAi9aWFz2L3ox9it4qAluBBbN0H5k= github.com/sagernet/gomobile v0.1.3 h1:ohjIb1Ou2+1558PnZour3od69suSuvkdSVOlO1tC4B8= github.com/sagernet/gomobile v0.1.3/go.mod h1:Pqq2+ZVvs10U7xK+UwJgwYWUykewi8H6vlslAO73n9E= -github.com/sagernet/gvisor v0.0.0-20231209105102-8d27a30e436e h1:DOkjByVeAR56dkszjnMZke4wr7yM/1xHaJF3G9olkEE= -github.com/sagernet/gvisor v0.0.0-20231209105102-8d27a30e436e/go.mod h1:fLxq/gtp0qzkaEwywlRRiGmjOK5ES/xUzyIKIFP2Asw= -github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97 h1:iL5gZI3uFp0X6EslacyapiRz7LLSJyr4RajF/BhMVyE= -github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM= -github.com/sagernet/quic-go v0.40.1 h1:qLeTIJR0d0JWRmDWo346nLsVN6EWihd1kalJYPEd0TM= -github.com/sagernet/quic-go v0.40.1/go.mod h1:CcKTpzTAISxrM4PA5M20/wYuz9Tj6Tx4DwGbNl9UQrU= +github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f h1:NkhuupzH5ch7b/Y/6ZHJWrnNLoiNnSJaow6DPb8VW2I= +github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f/go.mod h1:KXmw+ouSJNOsuRpg4wgwwCQuunrGz4yoAqQjsLjc6N0= +github.com/sagernet/netlink v0.0.0-20240523065131-45e60152f9ba h1:EY5AS7CCtfmARNv2zXUOrsEMPFDGYxaw65JzA2p51Vk= +github.com/sagernet/netlink v0.0.0-20240523065131-45e60152f9ba/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM= +github.com/sagernet/quic-go v0.43.1-beta.1 h1:alizUjpvWYcz08dBCQsULOd+1xu0o7UtlyYf6SLbRNg= +github.com/sagernet/quic-go v0.43.1-beta.1/go.mod h1:BkrQYeop7Jx3hN3TW8/76CXcdhYiNPyYEBL/BVJ1ifc= github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691 h1:5Th31OC6yj8byLGkEnIYp6grlXfo1QYUfiYFGjewIdc= github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691/go.mod h1:B8lp4WkQ1PwNnrVMM6KyuFR20pU8jYBD+A4EhJovEXU= github.com/sagernet/sing v0.2.18/go.mod h1:OL6k2F0vHmEzXz2KW19qQzu172FDgSbUSODylighuVo= -github.com/sagernet/sing v0.3.6 h1:dsEdYLKBQlrxUfw1a92x0VdPvR1/BOxQ+HIMyaoEJsQ= -github.com/sagernet/sing v0.3.6/go.mod h1:+60H3Cm91RnL9dpVGWDPHt0zTQImO9Vfqt9a4rSambI= -github.com/sagernet/sing-dns v0.1.12 h1:1HqZ+ln+Rezx/aJMStaS0d7oPeX2EobSV1NT537kyj4= -github.com/sagernet/sing-dns v0.1.12/go.mod h1:rx/DTOisneQpCgNQ4jbFU/JNEtnz0lYcHXenlVzpjEU= +github.com/sagernet/sing v0.4.0-beta.20 h1:8rEepj4LMcR0Wd389fJIziv/jr3MBtX5qXBHsfxJ+dY= +github.com/sagernet/sing v0.4.0-beta.20/go.mod h1:PFQKbElc2Pke7faBLv8oEba5ehtKO21Ho+TkYemTI3Y= +github.com/sagernet/sing-dns v0.2.0-beta.18 h1:6vzXZThRdA7YUzBOpSbUT48XRumtl/KIpIHFSOP0za8= +github.com/sagernet/sing-dns v0.2.0-beta.18/go.mod h1:k/dmFcQpg6+m08gC1yQBy+13+QkuLqpKr4bIreq4U24= github.com/sagernet/sing-mux v0.2.0 h1:4C+vd8HztJCWNYfufvgL49xaOoOHXty2+EAjnzN3IYo= github.com/sagernet/sing-mux v0.2.0/go.mod h1:khzr9AOPocLa+g53dBplwNDz4gdsyx/YM3swtAhlkHQ= -github.com/sagernet/sing-quic v0.1.8 h1:G4iBXAKIII+uTzd55oZ/9cAQswGjlvHh/0yKMQioDS0= -github.com/sagernet/sing-quic v0.1.8/go.mod h1:2w7DZXtf4MPjIGpovA3+vpI6bvOf1n1f9cQ1E2qQJSg= +github.com/sagernet/sing-quic v0.2.0-beta.5 h1:ceKFLd1iS5AtM+pScKmcDp5k7R6WgYIe8vl6nB0aVsE= +github.com/sagernet/sing-quic v0.2.0-beta.5/go.mod h1:lfad61lScAZhAxZ0DHZWvEIcAaT38O6zPTR4vLsHeP0= github.com/sagernet/sing-shadowsocks v0.2.6 h1:xr7ylAS/q1cQYS8oxKKajhuQcchd5VJJ4K4UZrrpp0s= github.com/sagernet/sing-shadowsocks v0.2.6/go.mod h1:j2YZBIpWIuElPFL/5sJAj470bcn/3QQ5lxZUNKLDNAM= github.com/sagernet/sing-shadowsocks2 v0.2.0 h1:wpZNs6wKnR7mh1wV9OHwOyUr21VkS3wKFHi+8XwgADg= github.com/sagernet/sing-shadowsocks2 v0.2.0/go.mod h1:RnXS0lExcDAovvDeniJ4IKa2IuChrdipolPYWBv9hWQ= github.com/sagernet/sing-shadowtls v0.1.4 h1:aTgBSJEgnumzFenPvc+kbD9/W0PywzWevnVpEx6Tw3k= github.com/sagernet/sing-shadowtls v0.1.4/go.mod h1:F8NBgsY5YN2beQavdgdm1DPlhaKQlaL6lpDdcBglGK4= -github.com/sagernet/sing-tun v0.2.4 h1:+ko31GRYoSrucgssbdaTKBBI37s+eeqE2gsV5cGgDgk= -github.com/sagernet/sing-tun v0.2.4/go.mod h1:GtKY1Sr2CCWLHPjVj9GZpBFZ/KoXOzVBSxXvmCCPxT4= +github.com/sagernet/sing-tun v0.3.0-beta.6 h1:L11kMrM7UfUW0pzQiU66Fffh4o86KZc1SFGbkYi8Ma8= +github.com/sagernet/sing-tun v0.3.0-beta.6/go.mod h1:DxLIyhjWU/HwGYoX0vNGg2c5QgTQIakphU1MuERR5tQ= github.com/sagernet/sing-vmess v0.1.8 h1:XVWad1RpTy9b5tPxdm5MCU8cGfrTGdR8qCq6HV2aCNc= github.com/sagernet/sing-vmess v0.1.8/go.mod h1:vhx32UNzTDUkNwOyIjcZQohre1CaytquC5mPplId8uA= github.com/sagernet/smux v0.0.0-20231208180855-7041f6ea79e7 h1:DImB4lELfQhplLTxeq2z31Fpv8CQqqrUwTbrIRumZqQ= @@ -171,8 +171,6 @@ github.com/sagernet/utls v1.5.4 h1:KmsEGbB2dKUtCNC+44NwAdNAqnqQ6GA4pTO0Yik56co= github.com/sagernet/utls v1.5.4/go.mod h1:CTGxPWExIloRipK3XFpYv0OVyhO8kk3XCGW/ieyTh1s= github.com/sagernet/ws v0.0.0-20231204124109-acfe8907c854 h1:6uUiZcDRnZSAegryaUGwPC/Fj13JSHwiTftrXhMmYOc= github.com/sagernet/ws v0.0.0-20231204124109-acfe8907c854/go.mod h1:LtfoSK3+NG57tvnVEHgcuBW9ujgE8enPSgzgwStwCAA= -github.com/scjalliance/comshim v0.0.0-20230315213746-5e51f40bd3b9 h1:rc/CcqLH3lh8n+csdOuDfP+NuykE0U6AeYSJJHKDgSg= -github.com/scjalliance/comshim v0.0.0-20230315213746-5e51f40bd3b9/go.mod h1:a/83NAfUXvEuLpmxDssAXxgUgrEy12MId3Wd7OTs76s= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -214,18 +212,22 @@ go4.org/netipx v0.0.0-20231129151722-fdeea329fbba h1:0b9z3AuHCjxk0x/opv64kcgZLBs go4.org/netipx v0.0.0-20231129151722-fdeea329fbba/go.mod h1:PLyyIXexvUFg3Owu6p/WfdlivPbZJsZdgWZlrGope/Y= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= -golang.org/x/exp v0.0.0-20240119083558-1b970713d09a/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +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/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -234,15 +236,16 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -258,16 +261,16 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -275,24 +278,23 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= 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.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= -golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641 h1:DKU1r6Tj5s1vlU/moGhuGz7E3xRfwjdAfDzbsaQJtEY= google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs= -google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= -google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/v2/custom.go b/v2/custom.go index 3612ddf..0b7c8ee 100644 --- a/v2/custom.go +++ b/v2/custom.go @@ -162,6 +162,7 @@ func Parse(in *pb.ParseRequest) (*pb.ParseResponse, error) { Log(pb.LogLevel_FATAL, pb.LogType_CONFIG, err.Error()) StopAndAlert(pb.MessageType_UNEXPECTED_ERROR, err.Error()) }) + content := in.Content if in.TempPath != "" { contentBytes, err := os.ReadFile(in.TempPath) @@ -173,7 +174,7 @@ func Parse(in *pb.ParseRequest) (*pb.ParseResponse, error) { } - config, err := config.ParseConfigContent(content, true, false) + config, err := config.ParseConfigContent(content, true, nil, false) if err != nil { return &pb.ParseResponse{ ResponseCode: pb.ResponseCode_FAILED, diff --git a/v2/standalone.go b/v2/standalone.go index 5dfa2c9..bc83651 100644 --- a/v2/standalone.go +++ b/v2/standalone.go @@ -143,7 +143,7 @@ func extractRefreshInterval(header http.Header, bodyStr string) (int, error) { return 0, nil } func buildConfig(configContent string, options config.ConfigOptions) (string, error) { - parsedContent, err := config.ParseConfigContent(configContent, true, options.EnableFullConfig) + parsedContent, err := config.ParseConfigContent(configContent, true, &options, false) if err != nil { return "", fmt.Errorf("failed to parse config content: %w", err) } diff --git a/v2/warp.go b/v2/warp.go index 331d47e..1996e7d 100644 --- a/v2/warp.go +++ b/v2/warp.go @@ -11,14 +11,14 @@ func (s *CoreService) GenerateWarpConfig(ctx context.Context, in *pb.GenerateWar return GenerateWarpConfig(in) } func GenerateWarpConfig(in *pb.GenerateWarpConfigRequest) (*pb.WarpGenerationResponse, error) { - account, log, wg, err := config.GenerateWarpInfo(in.LicenseKey, in.AccountId, in.AccessToken) + identity, log, wg, err := config.GenerateWarpInfo(in.LicenseKey, in.AccountId, in.AccessToken) if err != nil { return nil, err } return &pb.WarpGenerationResponse{ Account: &pb.WarpAccount{ - AccountId: account.AccountID, - AccessToken: account.AccessToken, + AccountId: identity.ID, + AccessToken: identity.Token, }, Config: &pb.WarpWireguardConfig{ PrivateKey: wg.PrivateKey,