From 6d25d51519a65220a50042b447f02075d848faf9 Mon Sep 17 00:00:00 2001 From: young-zy Date: Sun, 20 Dec 2020 10:50:46 +0800 Subject: [PATCH] Update protobuf version (#527) Co-authored-by: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com> --- app/reverse/bridge.go | 2 +- app/reverse/portal.go | 2 +- app/router/condition_geoip_test.go | 2 +- app/router/condition_test.go | 2 +- common/serial/typed_message.go | 14 +- config.go | 2 +- functions_test.go | 2 +- infra/conf/blackhole.go | 2 +- infra/conf/buildable.go | 2 +- infra/conf/dns_proxy.go | 2 +- infra/conf/dns_test.go | 2 +- infra/conf/dokodemo.go | 2 +- infra/conf/freedom.go | 2 +- infra/conf/general_test.go | 2 +- infra/conf/http.go | 2 +- infra/conf/reverse.go | 2 +- infra/conf/router.go | 2 +- infra/conf/router_test.go | 2 +- infra/conf/shadowsocks.go | 2 +- infra/conf/socks.go | 2 +- infra/conf/transport_authenticators.go | 2 +- infra/conf/transport_internet.go | 2 +- infra/conf/transport_test.go | 2 +- infra/conf/trojan.go | 2 +- infra/conf/v2ray_test.go | 2 +- infra/conf/vless.go | 2 +- infra/conf/vmess.go | 2 +- infra/vprotogen/main.go | 8 +- proto.go | 9 +- proxy/vless/encoding/addons.go | 2 +- proxy/vless/encoding/addons.pb.go | 489 +++++++------------------ proxy/vless/encoding/encoding_test.go | 6 +- testing/scenarios/common.go | 2 +- v2ray_test.go | 2 +- 34 files changed, 175 insertions(+), 409 deletions(-) diff --git a/app/reverse/bridge.go b/app/reverse/bridge.go index 8be7cdef1..9d7d6ebfc 100644 --- a/app/reverse/bridge.go +++ b/app/reverse/bridge.go @@ -4,7 +4,7 @@ import ( "context" "time" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/mux" "v2ray.com/core/common/net" "v2ray.com/core/common/session" diff --git a/app/reverse/portal.go b/app/reverse/portal.go index 37f9a30f3..fae1635a5 100644 --- a/app/reverse/portal.go +++ b/app/reverse/portal.go @@ -5,7 +5,7 @@ import ( "sync" "time" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common" "v2ray.com/core/common/buf" "v2ray.com/core/common/mux" diff --git a/app/router/condition_geoip_test.go b/app/router/condition_geoip_test.go index 9c73393ea..fd7ae984a 100644 --- a/app/router/condition_geoip_test.go +++ b/app/router/condition_geoip_test.go @@ -5,7 +5,7 @@ import ( "path/filepath" "testing" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/app/router" "v2ray.com/core/common" "v2ray.com/core/common/net" diff --git a/app/router/condition_test.go b/app/router/condition_test.go index 05d734669..ea39dbeb6 100644 --- a/app/router/condition_test.go +++ b/app/router/condition_test.go @@ -6,7 +6,7 @@ import ( "strconv" "testing" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" . "v2ray.com/core/app/router" "v2ray.com/core/common" diff --git a/common/serial/typed_message.go b/common/serial/typed_message.go index e59d1d0da..14b31b011 100644 --- a/common/serial/typed_message.go +++ b/common/serial/typed_message.go @@ -2,9 +2,9 @@ package serial import ( "errors" - "reflect" - - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" ) // ToTypedMessage converts a proto Message into TypedMessage. @@ -21,16 +21,16 @@ func ToTypedMessage(message proto.Message) *TypedMessage { // GetMessageType returns the name of this proto Message. func GetMessageType(message proto.Message) string { - return proto.MessageName(message) + return string(message.ProtoReflect().Descriptor().FullName()) } // GetInstance creates a new instance of the message with messageType. func GetInstance(messageType string) (interface{}, error) { - mType := proto.MessageType(messageType) - if mType == nil || mType.Elem() == nil { + mType, err := protoregistry.GlobalTypes.FindMessageByName(protoreflect.FullName(messageType)) + if err != nil { return nil, errors.New("Serial: Unknown type: " + messageType) } - return reflect.New(mType.Elem()).Interface(), nil + return mType.New().Interface(), nil } // GetInstance converts current TypedMessage into a proto Message. diff --git a/config.go b/config.go index c1eea0933..a7637017c 100644 --- a/config.go +++ b/config.go @@ -5,7 +5,7 @@ import ( "path/filepath" "strings" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common" "v2ray.com/core/common/buf" "v2ray.com/core/common/cmdarg" diff --git a/functions_test.go b/functions_test.go index 4fd3112e2..daa03deeb 100644 --- a/functions_test.go +++ b/functions_test.go @@ -7,8 +7,8 @@ import ( "testing" "time" - "github.com/golang/protobuf/proto" "github.com/google/go-cmp/cmp" + "google.golang.org/protobuf/proto" "v2ray.com/core" "v2ray.com/core/app/dispatcher" diff --git a/infra/conf/blackhole.go b/infra/conf/blackhole.go index a0eeec430..c16f968a3 100644 --- a/infra/conf/blackhole.go +++ b/infra/conf/blackhole.go @@ -3,7 +3,7 @@ package conf import ( "encoding/json" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/serial" "v2ray.com/core/proxy/blackhole" diff --git a/infra/conf/buildable.go b/infra/conf/buildable.go index 1d01cd66a..967e9740d 100644 --- a/infra/conf/buildable.go +++ b/infra/conf/buildable.go @@ -1,6 +1,6 @@ package conf -import "github.com/golang/protobuf/proto" +import "google.golang.org/protobuf/proto" type Buildable interface { Build() (proto.Message, error) diff --git a/infra/conf/dns_proxy.go b/infra/conf/dns_proxy.go index 2333892f3..cde91f790 100644 --- a/infra/conf/dns_proxy.go +++ b/infra/conf/dns_proxy.go @@ -1,7 +1,7 @@ package conf import ( - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/net" "v2ray.com/core/proxy/dns" ) diff --git a/infra/conf/dns_test.go b/infra/conf/dns_test.go index 27ff08447..0fc83985e 100644 --- a/infra/conf/dns_test.go +++ b/infra/conf/dns_test.go @@ -6,7 +6,7 @@ import ( "path/filepath" "testing" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/app/dns" "v2ray.com/core/app/router" "v2ray.com/core/common" diff --git a/infra/conf/dokodemo.go b/infra/conf/dokodemo.go index c3b09b45f..6141b992c 100644 --- a/infra/conf/dokodemo.go +++ b/infra/conf/dokodemo.go @@ -1,7 +1,7 @@ package conf import ( - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/proxy/dokodemo" ) diff --git a/infra/conf/freedom.go b/infra/conf/freedom.go index f1f8b2ba1..91c4163a4 100644 --- a/infra/conf/freedom.go +++ b/infra/conf/freedom.go @@ -4,7 +4,7 @@ import ( "net" "strings" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" v2net "v2ray.com/core/common/net" "v2ray.com/core/common/protocol" "v2ray.com/core/proxy/freedom" diff --git a/infra/conf/general_test.go b/infra/conf/general_test.go index 846b80234..d51316251 100644 --- a/infra/conf/general_test.go +++ b/infra/conf/general_test.go @@ -4,7 +4,7 @@ import ( "encoding/json" "testing" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common" . "v2ray.com/core/infra/conf" ) diff --git a/infra/conf/http.go b/infra/conf/http.go index e3e2b8f8d..1649283a2 100644 --- a/infra/conf/http.go +++ b/infra/conf/http.go @@ -3,7 +3,7 @@ package conf import ( "encoding/json" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/protocol" "v2ray.com/core/common/serial" "v2ray.com/core/proxy/http" diff --git a/infra/conf/reverse.go b/infra/conf/reverse.go index d9144255b..51be34343 100644 --- a/infra/conf/reverse.go +++ b/infra/conf/reverse.go @@ -1,7 +1,7 @@ package conf import ( - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/app/reverse" ) diff --git a/infra/conf/router.go b/infra/conf/router.go index 0d52d0e4f..92a324291 100644 --- a/infra/conf/router.go +++ b/infra/conf/router.go @@ -5,7 +5,7 @@ import ( "strconv" "strings" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/app/router" "v2ray.com/core/common/net" "v2ray.com/core/common/platform/filesystem" diff --git a/infra/conf/router_test.go b/infra/conf/router_test.go index 5f2cb24b6..8c4fc26d4 100644 --- a/infra/conf/router_test.go +++ b/infra/conf/router_test.go @@ -4,7 +4,7 @@ import ( "encoding/json" "testing" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/app/router" "v2ray.com/core/common/net" diff --git a/infra/conf/shadowsocks.go b/infra/conf/shadowsocks.go index b56c8710d..d147e475e 100644 --- a/infra/conf/shadowsocks.go +++ b/infra/conf/shadowsocks.go @@ -3,7 +3,7 @@ package conf import ( "strings" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/protocol" "v2ray.com/core/common/serial" diff --git a/infra/conf/socks.go b/infra/conf/socks.go index 1d382788b..612c14f53 100644 --- a/infra/conf/socks.go +++ b/infra/conf/socks.go @@ -3,7 +3,7 @@ package conf import ( "encoding/json" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/protocol" "v2ray.com/core/common/serial" "v2ray.com/core/proxy/socks" diff --git a/infra/conf/transport_authenticators.go b/infra/conf/transport_authenticators.go index 989060fdb..1276e2b17 100644 --- a/infra/conf/transport_authenticators.go +++ b/infra/conf/transport_authenticators.go @@ -3,7 +3,7 @@ package conf import ( "sort" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/transport/internet/headers/http" "v2ray.com/core/transport/internet/headers/noop" diff --git a/infra/conf/transport_internet.go b/infra/conf/transport_internet.go index 64ce1c3c1..c4828315f 100644 --- a/infra/conf/transport_internet.go +++ b/infra/conf/transport_internet.go @@ -4,7 +4,7 @@ import ( "encoding/json" "strings" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/platform/filesystem" "v2ray.com/core/common/protocol" "v2ray.com/core/common/serial" diff --git a/infra/conf/transport_test.go b/infra/conf/transport_test.go index d547482f8..3c1795a61 100644 --- a/infra/conf/transport_test.go +++ b/infra/conf/transport_test.go @@ -4,7 +4,7 @@ import ( "encoding/json" "testing" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/protocol" "v2ray.com/core/common/serial" . "v2ray.com/core/infra/conf" diff --git a/infra/conf/trojan.go b/infra/conf/trojan.go index e9e23c61e..f31c60a65 100644 --- a/infra/conf/trojan.go +++ b/infra/conf/trojan.go @@ -6,7 +6,7 @@ import ( "strconv" "syscall" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/net" "v2ray.com/core/common/protocol" diff --git a/infra/conf/v2ray_test.go b/infra/conf/v2ray_test.go index d324d3ea6..dec5641ca 100644 --- a/infra/conf/v2ray_test.go +++ b/infra/conf/v2ray_test.go @@ -5,7 +5,7 @@ import ( "reflect" "testing" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core" "v2ray.com/core/app/dispatcher" "v2ray.com/core/app/log" diff --git a/infra/conf/vless.go b/infra/conf/vless.go index df589394f..a31996f65 100644 --- a/infra/conf/vless.go +++ b/infra/conf/vless.go @@ -6,7 +6,7 @@ import ( "strconv" "syscall" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/net" "v2ray.com/core/common/protocol" diff --git a/infra/conf/vmess.go b/infra/conf/vmess.go index 0bede83c6..bdf5e598a 100644 --- a/infra/conf/vmess.go +++ b/infra/conf/vmess.go @@ -4,7 +4,7 @@ import ( "encoding/json" "strings" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/protocol" "v2ray.com/core/common/serial" diff --git a/infra/vprotogen/main.go b/infra/vprotogen/main.go index f99c6865d..e8f7a093e 100644 --- a/infra/vprotogen/main.go +++ b/infra/vprotogen/main.go @@ -8,7 +8,6 @@ import ( "runtime" "strings" - "v2ray.com/core" "v2ray.com/core/common" ) @@ -64,12 +63,7 @@ func main() { for _, files := range protoFilesMap { for _, relProtoFile := range files { - var args []string - if core.ProtoFilesUsingProtocGenGoFast[relProtoFile] { - args = []string{"--gofast_out", pwd, "--gofast_opt", "paths=source_relative", "--plugin", "protoc-gen-gofast=" + GOBIN + "/protoc-gen-gofast" + EXE} - } else { - args = []string{"--go_out", pwd, "--go_opt", "paths=source_relative", "--go-grpc_out", pwd, "--go-grpc_opt", "paths=source_relative", "--plugin", "protoc-gen-go=" + GOBIN + "/protoc-gen-go" + EXE, "--plugin", "protoc-gen-go-grpc=" + GOBIN + "/protoc-gen-go-grpc" + EXE} - } + args := []string{"--go_out", pwd, "--go_opt", "paths=source_relative", "--go-grpc_out", pwd, "--go-grpc_opt", "paths=source_relative", "--plugin", "protoc-gen-go=" + GOBIN + "/protoc-gen-go" + EXE, "--plugin", "protoc-gen-go-grpc=" + GOBIN + "/protoc-gen-go-grpc" + EXE} args = append(args, relProtoFile) cmd := exec.Command(protoc, args...) cmd.Env = append(cmd.Env, os.Environ()...) diff --git a/proto.go b/proto.go index 0b97ffc76..5fa1abb28 100644 --- a/proto.go +++ b/proto.go @@ -1,12 +1,5 @@ package core -import "path/filepath" - //go:generate go install -v google.golang.org/protobuf/cmd/protoc-gen-go //go:generate go install -v google.golang.org/grpc/cmd/protoc-gen-go-grpc -//go:generate go install -v github.com/gogo/protobuf/protoc-gen-gofast -//go:generate go run ./infra/vprotogen/main.go - -// ProtoFilesUsingProtocGenGoFast is the map of Proto files -// that use `protoc-gen-gofast` to generate pb.go files -var ProtoFilesUsingProtocGenGoFast = map[string]bool{filepath.Join("proxy", "vless", "encoding", "addons.proto"): true} +//go:generate go run ./infra/vprotogen/ diff --git a/proxy/vless/encoding/addons.go b/proxy/vless/encoding/addons.go index 7c77eb5d0..f43c03a5f 100644 --- a/proxy/vless/encoding/addons.go +++ b/proxy/vless/encoding/addons.go @@ -3,7 +3,7 @@ package encoding import ( "io" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core/common/buf" "v2ray.com/core/common/errors" "v2ray.com/core/common/protocol" diff --git a/proxy/vless/encoding/addons.pb.go b/proxy/vless/encoding/addons.pb.go index 81b4997da..cc061f71a 100644 --- a/proxy/vless/encoding/addons.pb.go +++ b/proxy/vless/encoding/addons.pb.go @@ -1,387 +1,164 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.14.0 // source: proxy/vless/encoding/addons.proto -package encoding // import "v2ray.com/core/proxy/vless/encoding" +package encoding -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) -import io "io" +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 type Addons struct { - Flow string `protobuf:"bytes,1,opt,name=Flow,proto3" json:"Flow,omitempty"` - Seed []byte `protobuf:"bytes,2,opt,name=Seed,proto3" json:"Seed,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flow string `protobuf:"bytes,1,opt,name=Flow,proto3" json:"Flow,omitempty"` + Seed []byte `protobuf:"bytes,2,opt,name=Seed,proto3" json:"Seed,omitempty"` } -func (m *Addons) Reset() { *m = Addons{} } -func (m *Addons) String() string { return proto.CompactTextString(m) } -func (*Addons) ProtoMessage() {} -func (*Addons) Descriptor() ([]byte, []int) { - return fileDescriptor_addons_715144385dbf650f, []int{0} -} -func (m *Addons) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Addons) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Addons.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil +func (x *Addons) Reset() { + *x = Addons{} + if protoimpl.UnsafeEnabled { + mi := &file_proxy_vless_encoding_addons_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } } -func (dst *Addons) XXX_Merge(src proto.Message) { - xxx_messageInfo_Addons.Merge(dst, src) -} -func (m *Addons) XXX_Size() int { - return m.Size() -} -func (m *Addons) XXX_DiscardUnknown() { - xxx_messageInfo_Addons.DiscardUnknown(m) + +func (x *Addons) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_Addons proto.InternalMessageInfo +func (*Addons) ProtoMessage() {} -func (m *Addons) GetFlow() string { - if m != nil { - return m.Flow +func (x *Addons) ProtoReflect() protoreflect.Message { + mi := &file_proxy_vless_encoding_addons_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Addons.ProtoReflect.Descriptor instead. +func (*Addons) Descriptor() ([]byte, []int) { + return file_proxy_vless_encoding_addons_proto_rawDescGZIP(), []int{0} +} + +func (x *Addons) GetFlow() string { + if x != nil { + return x.Flow } return "" } -func (m *Addons) GetSeed() []byte { - if m != nil { - return m.Seed +func (x *Addons) GetSeed() []byte { + if x != nil { + return x.Seed } return nil } -func init() { - proto.RegisterType((*Addons)(nil), "v2ray.core.proxy.vless.encoding.Addons") -} -func (m *Addons) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} +var File_proxy_vless_encoding_addons_proto protoreflect.FileDescriptor -func (m *Addons) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Flow) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintAddons(dAtA, i, uint64(len(m.Flow))) - i += copy(dAtA[i:], m.Flow) - } - if len(m.Seed) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintAddons(dAtA, i, uint64(len(m.Seed))) - i += copy(dAtA[i:], m.Seed) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeVarintAddons(dAtA []byte, offset int, v uint64) int { - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return offset + 1 -} -func (m *Addons) Size() (n int) { - var l int - _ = l - l = len(m.Flow) - if l > 0 { - n += 1 + l + sovAddons(uint64(l)) - } - l = len(m.Seed) - if l > 0 { - n += 1 + l + sovAddons(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovAddons(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozAddons(x uint64) (n int) { - return sovAddons(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *Addons) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowAddons - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Addons: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Addons: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Flow", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowAddons - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthAddons - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Flow = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Seed", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowAddons - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthAddons - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Seed = append(m.Seed[:0], dAtA[iNdEx:postIndex]...) - if m.Seed == nil { - m.Seed = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipAddons(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthAddons - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipAddons(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowAddons - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowAddons - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowAddons - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthAddons - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowAddons - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipAddons(dAtA[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") +var file_proxy_vless_encoding_addons_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x76, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x65, 0x6e, + 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x2f, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x65, 0x6e, 0x63, 0x6f, + 0x64, 0x69, 0x6e, 0x67, 0x22, 0x30, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x46, 0x6c, + 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x53, 0x65, 0x65, 0x64, 0x42, 0x6e, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x76, 0x32, + 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, + 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x01, 0x5a, + 0x23, 0x76, 0x32, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x76, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x65, 0x6e, 0x63, 0x6f, + 0x64, 0x69, 0x6e, 0x67, 0xaa, 0x02, 0x1f, 0x56, 0x32, 0x52, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x72, + 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x56, 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x45, 0x6e, + 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - ErrInvalidLengthAddons = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowAddons = fmt.Errorf("proto: integer overflow") + file_proxy_vless_encoding_addons_proto_rawDescOnce sync.Once + file_proxy_vless_encoding_addons_proto_rawDescData = file_proxy_vless_encoding_addons_proto_rawDesc ) -func init() { - proto.RegisterFile("proxy/vless/encoding/addons.proto", fileDescriptor_addons_715144385dbf650f) +func file_proxy_vless_encoding_addons_proto_rawDescGZIP() []byte { + file_proxy_vless_encoding_addons_proto_rawDescOnce.Do(func() { + file_proxy_vless_encoding_addons_proto_rawDescData = protoimpl.X.CompressGZIP(file_proxy_vless_encoding_addons_proto_rawDescData) + }) + return file_proxy_vless_encoding_addons_proto_rawDescData } -var fileDescriptor_addons_715144385dbf650f = []byte{ - // 186 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x2c, 0x28, 0xca, 0xaf, - 0xa8, 0xd4, 0x2f, 0xcb, 0x49, 0x2d, 0x2e, 0xd6, 0x4f, 0xcd, 0x4b, 0xce, 0x4f, 0xc9, 0xcc, 0x4b, - 0xd7, 0x4f, 0x4c, 0x49, 0xc9, 0xcf, 0x2b, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x2f, - 0x33, 0x2a, 0x4a, 0xac, 0xd4, 0x4b, 0xce, 0x2f, 0x4a, 0xd5, 0x03, 0xab, 0xd6, 0x03, 0xab, 0xd6, - 0x83, 0xa9, 0x56, 0x32, 0xe0, 0x62, 0x73, 0x04, 0x6b, 0x10, 0x12, 0xe2, 0x62, 0x71, 0xcb, 0xc9, - 0x2f, 0x97, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0xb3, 0x41, 0x62, 0xc1, 0xa9, 0xa9, 0x29, - 0x12, 0x4c, 0x0a, 0x8c, 0x1a, 0x3c, 0x41, 0x60, 0xb6, 0x53, 0xdd, 0x89, 0x47, 0x72, 0x8c, 0x17, - 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe3, 0xb1, 0x1c, 0x03, 0x97, 0x72, 0x72, 0x7e, - 0xae, 0x1e, 0x01, 0x8b, 0x02, 0x18, 0xa3, 0x94, 0x61, 0x4a, 0x72, 0xf5, 0x41, 0xca, 0xf4, 0xb1, - 0xb9, 0x7e, 0x15, 0x93, 0x7c, 0x98, 0x51, 0x50, 0x62, 0xa5, 0x9e, 0x33, 0xc8, 0xa0, 0x00, 0xb0, - 0x41, 0x61, 0x60, 0x83, 0x5c, 0xa1, 0x2a, 0x92, 0xd8, 0xc0, 0x3e, 0x33, 0x06, 0x04, 0x00, 0x00, - 0xff, 0xff, 0x36, 0x32, 0x14, 0x7c, 0xfe, 0x00, 0x00, 0x00, +var file_proxy_vless_encoding_addons_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_proxy_vless_encoding_addons_proto_goTypes = []interface{}{ + (*Addons)(nil), // 0: v2ray.core.proxy.vless.encoding.Addons +} +var file_proxy_vless_encoding_addons_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_proxy_vless_encoding_addons_proto_init() } +func file_proxy_vless_encoding_addons_proto_init() { + if File_proxy_vless_encoding_addons_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proxy_vless_encoding_addons_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Addons); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proxy_vless_encoding_addons_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proxy_vless_encoding_addons_proto_goTypes, + DependencyIndexes: file_proxy_vless_encoding_addons_proto_depIdxs, + MessageInfos: file_proxy_vless_encoding_addons_proto_msgTypes, + }.Build() + File_proxy_vless_encoding_addons_proto = out.File + file_proxy_vless_encoding_addons_proto_rawDesc = nil + file_proxy_vless_encoding_addons_proto_goTypes = nil + file_proxy_vless_encoding_addons_proto_depIdxs = nil } diff --git a/proxy/vless/encoding/encoding_test.go b/proxy/vless/encoding/encoding_test.go index 496112af5..92a4ea7b6 100644 --- a/proxy/vless/encoding/encoding_test.go +++ b/proxy/vless/encoding/encoding_test.go @@ -4,6 +4,8 @@ import ( "testing" "github.com/google/go-cmp/cmp" + "google.golang.org/protobuf/testing/protocmp" + "v2ray.com/core/common" "v2ray.com/core/common/buf" "v2ray.com/core/common/net" @@ -51,7 +53,7 @@ func TestRequestSerialization(t *testing.T) { if r := cmp.Diff(actualRequest, expectedRequest, cmp.AllowUnexported(protocol.ID{})); r != "" { t.Error(r) } - if r := cmp.Diff(actualAddons, expectedAddons); r != "" { + if r := cmp.Diff(actualAddons, expectedAddons, protocmp.Transform()); r != "" { t.Error(r) } } @@ -119,7 +121,7 @@ func TestMuxRequest(t *testing.T) { if r := cmp.Diff(actualRequest, expectedRequest, cmp.AllowUnexported(protocol.ID{})); r != "" { t.Error(r) } - if r := cmp.Diff(actualAddons, expectedAddons); r != "" { + if r := cmp.Diff(actualAddons, expectedAddons, protocmp.Transform()); r != "" { t.Error(r) } } diff --git a/testing/scenarios/common.go b/testing/scenarios/common.go index 9ae6a788b..5cf95541c 100644 --- a/testing/scenarios/common.go +++ b/testing/scenarios/common.go @@ -13,7 +13,7 @@ import ( "syscall" "time" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "v2ray.com/core" "v2ray.com/core/app/dispatcher" "v2ray.com/core/app/proxyman" diff --git a/v2ray_test.go b/v2ray_test.go index 7bb1a7cc9..80802784d 100644 --- a/v2ray_test.go +++ b/v2ray_test.go @@ -3,7 +3,7 @@ package core_test import ( "testing" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" . "v2ray.com/core" "v2ray.com/core/app/dispatcher" "v2ray.com/core/app/proxyman"