소스 검색

protobuf for network list

Darien Raymond 9 년 전
부모
커밋
88ae8248a5
5개의 변경된 파일34개의 추가작업 그리고 17개의 파일을 삭제
  1. 1 0
      common/net/address.pb.go
  2. 9 9
      common/net/network.go
  3. 19 7
      common/net/network.pb.go
  4. 4 0
      common/net/network.proto
  5. 1 1
      common/net/network_json.go

+ 1 - 0
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

+ 9 - 9
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
 		}

+ 19 - 7
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,
 }

+ 4 - 0
common/net/network.proto

@@ -10,4 +10,8 @@ enum Network {
   UDP = 3;
   KCP = 4;
   WebSocket = 5;
+}
+
+message NetworkList {
+  repeated Network network = 1;
 }

+ 1 - 1
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
 }