diff --git a/common/net/address.pb.go b/common/net/address.pb.go index 6e65825e..ed2d9f7c 100644 --- a/common/net/address.pb.go +++ b/common/net/address.pb.go @@ -14,6 +14,7 @@ It is generated from these files: It has these top-level messages: AddressPB DestinationPB + NetworkList PortRange */ package net diff --git a/common/net/network.go b/common/net/network.go index ade752eb..cee0a006 100644 --- a/common/net/network.go +++ b/common/net/network.go @@ -25,8 +25,9 @@ func ParseNetwork(nwStr string) Network { } func (this Network) AsList() *NetworkList { - list := NetworkList([]Network{this}) - return &list + return &NetworkList{ + Network: []Network{this}, + } } func (this Network) SystemString() string { @@ -55,21 +56,20 @@ func (this Network) UrlPrefix() string { } } -// NetworkList is a list of Networks. -type NetworkList []Network - // NewNetworkList construsts a NetWorklist from the given StringListeralList. -func NewNetworkList(networks collect.StringList) NetworkList { - list := NetworkList(make([]Network, networks.Len())) +func NewNetworkList(networks collect.StringList) *NetworkList { + list := &NetworkList{ + Network: make([]Network, networks.Len()), + } for idx, network := range networks { - list[idx] = ParseNetwork(network) + list.Network[idx] = ParseNetwork(network) } return list } // HashNetwork returns true if the given network is in this NetworkList. func (this *NetworkList) HasNetwork(network Network) bool { - for _, value := range *this { + for _, value := range this.Network { if string(value) == string(network) { return true } diff --git a/common/net/network.pb.go b/common/net/network.pb.go index ac275c8a..7927fd2e 100644 --- a/common/net/network.pb.go +++ b/common/net/network.pb.go @@ -46,22 +46,34 @@ func (x Network) String() string { } func (Network) EnumDescriptor() ([]byte, []int) { return fileDescriptor2, []int{0} } +type NetworkList struct { + Network []Network `protobuf:"varint,1,rep,packed,name=network,enum=com.v2ray.core.common.net.Network" json:"network,omitempty"` +} + +func (m *NetworkList) Reset() { *m = NetworkList{} } +func (m *NetworkList) String() string { return proto.CompactTextString(m) } +func (*NetworkList) ProtoMessage() {} +func (*NetworkList) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} } + func init() { + proto.RegisterType((*NetworkList)(nil), "com.v2ray.core.common.net.NetworkList") proto.RegisterEnum("com.v2ray.core.common.net.Network", Network_name, Network_value) } func init() { proto.RegisterFile("v2ray.com/core/common/net/network.proto", fileDescriptor2) } var fileDescriptor2 = []byte{ - // 159 bytes of a gzipped FileDescriptorProto + // 192 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x52, 0x2f, 0x33, 0x2a, 0x4a, 0xac, 0xd4, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0x2f, 0x4a, 0xd5, 0x4f, 0xce, 0xcf, 0xcd, 0xcd, 0xcf, 0xd3, 0xcf, 0x4b, 0x2d, 0x01, 0xe1, 0xf2, 0xfc, 0xa2, 0x6c, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0xc9, 0xe4, 0xfc, 0x5c, 0x3d, 0x98, 0xe2, 0xa2, 0x54, 0x3d, 0x88, 0x42, 0xbd, 0xbc, - 0xd4, 0x12, 0x2d, 0x1f, 0x2e, 0x76, 0x3f, 0x88, 0x5a, 0x21, 0x6e, 0x2e, 0xf6, 0xd0, 0xbc, 0xec, - 0xbc, 0xfc, 0xf2, 0x3c, 0x01, 0x06, 0x21, 0x2e, 0x2e, 0xb6, 0xa0, 0xc4, 0xf2, 0x10, 0xe7, 0x00, - 0x01, 0x46, 0x21, 0x76, 0x2e, 0x66, 0x10, 0x83, 0x09, 0xc4, 0x08, 0x75, 0x09, 0x10, 0x60, 0x06, - 0x31, 0xbc, 0x9d, 0x03, 0x04, 0x58, 0x84, 0x78, 0xb9, 0x38, 0xc3, 0x53, 0x93, 0x82, 0xf3, 0x93, - 0xb3, 0x53, 0x4b, 0x04, 0x58, 0x9d, 0x58, 0xa3, 0x98, 0xf3, 0x52, 0x4b, 0x92, 0xd8, 0xc0, 0xd6, - 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x83, 0xa9, 0x75, 0xb3, 0xa1, 0x00, 0x00, 0x00, + 0xd4, 0x12, 0x25, 0x6f, 0x2e, 0x6e, 0x3f, 0x88, 0x5a, 0x9f, 0xcc, 0xe2, 0x12, 0x21, 0x1b, 0x2e, + 0x76, 0xa8, 0x56, 0x09, 0x46, 0x05, 0x66, 0x0d, 0x3e, 0x23, 0x25, 0x3d, 0x9c, 0x7a, 0xf5, 0xa0, + 0x1a, 0x83, 0x60, 0x5a, 0xb4, 0x7c, 0xb8, 0xd8, 0xa1, 0x62, 0x42, 0xdc, 0x5c, 0xec, 0xa1, 0x79, + 0xd9, 0x79, 0xf9, 0xe5, 0x79, 0x02, 0x0c, 0x42, 0x5c, 0x5c, 0x6c, 0x41, 0x89, 0xe5, 0x21, 0xce, + 0x01, 0x02, 0x8c, 0x42, 0xec, 0x5c, 0xcc, 0x20, 0x06, 0x13, 0x88, 0x11, 0xea, 0x12, 0x20, 0xc0, + 0x0c, 0x62, 0x78, 0x3b, 0x07, 0x08, 0xb0, 0x08, 0xf1, 0x72, 0x71, 0x86, 0xa7, 0x26, 0x05, 0xe7, + 0x27, 0x67, 0xa7, 0x96, 0x08, 0xb0, 0x3a, 0xb1, 0x46, 0x31, 0xe7, 0xa5, 0x96, 0x24, 0xb1, 0x81, + 0xfd, 0x60, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x8e, 0x1a, 0x8a, 0xb3, 0xee, 0x00, 0x00, 0x00, } diff --git a/common/net/network.proto b/common/net/network.proto index c1cee180..acc1adbd 100644 --- a/common/net/network.proto +++ b/common/net/network.proto @@ -10,4 +10,8 @@ enum Network { UDP = 3; KCP = 4; WebSocket = 5; +} + +message NetworkList { + repeated Network network = 1; } \ No newline at end of file diff --git a/common/net/network_json.go b/common/net/network_json.go index c3c135bd..8eb8e0b3 100644 --- a/common/net/network_json.go +++ b/common/net/network_json.go @@ -13,6 +13,6 @@ func (this *NetworkList) UnmarshalJSON(data []byte) error { if err := json.Unmarshal(data, &strlist); err != nil { return err } - *this = NewNetworkList(strlist) + *this = *NewNetworkList(strlist) return nil }