1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-22 07:25:23 +00:00

rename transportsettings to transportconfig

This commit is contained in:
Darien Raymond 2017-01-16 14:18:33 +01:00
parent d6f8528075
commit 6eff0acc0b
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
10 changed files with 201 additions and 66 deletions

View File

@ -0,0 +1,135 @@
package scenarios
import (
"net"
"testing"
"time"
"v2ray.com/core"
v2net "v2ray.com/core/common/net"
"v2ray.com/core/common/protocol"
"v2ray.com/core/common/serial"
"v2ray.com/core/common/uuid"
"v2ray.com/core/proxy/dokodemo"
"v2ray.com/core/proxy/freedom"
"v2ray.com/core/proxy/vmess"
"v2ray.com/core/proxy/vmess/inbound"
"v2ray.com/core/proxy/vmess/outbound"
"v2ray.com/core/testing/assert"
"v2ray.com/core/testing/servers/tcp"
"v2ray.com/core/transport/internet"
"v2ray.com/core/transport/internet/headers/http"
tcptransport "v2ray.com/core/transport/internet/tcp"
)
func TestNoOpConnectionHeader(t *testing.T) {
assert := assert.On(t)
tcpServer := tcp.Server{
MsgProcessor: xor,
}
dest, err := tcpServer.Start()
assert.Error(err).IsNil()
defer tcpServer.Close()
userID := protocol.NewID(uuid.New())
serverPort := pickPort()
serverConfig := &core.Config{
Inbound: []*core.InboundConnectionConfig{
{
PortRange: v2net.SinglePortRange(serverPort),
ListenOn: v2net.NewIPOrDomain(v2net.LocalHostIP),
Settings: serial.ToTypedMessage(&inbound.Config{
User: []*protocol.User{
{
Account: serial.ToTypedMessage(&vmess.Account{
Id: userID.String(),
}),
},
},
}),
StreamSettings: &internet.StreamConfig{
TransportSettings: []*internet.TransportConfig{
{
Protocol: internet.TransportProtocol_TCP,
Settings: serial.ToTypedMessage(&tcptransport.Config{
HeaderSettings: serial.ToTypedMessage(&http.Config{}),
}),
},
},
},
},
},
Outbound: []*core.OutboundConnectionConfig{
{
Settings: serial.ToTypedMessage(&freedom.Config{}),
},
},
}
clientPort := pickPort()
clientConfig := &core.Config{
Inbound: []*core.InboundConnectionConfig{
{
PortRange: v2net.SinglePortRange(clientPort),
ListenOn: v2net.NewIPOrDomain(v2net.LocalHostIP),
Settings: serial.ToTypedMessage(&dokodemo.Config{
Address: v2net.NewIPOrDomain(dest.Address),
Port: uint32(dest.Port),
NetworkList: &v2net.NetworkList{
Network: []v2net.Network{v2net.Network_TCP},
},
}),
},
},
Outbound: []*core.OutboundConnectionConfig{
{
Settings: serial.ToTypedMessage(&outbound.Config{
Receiver: []*protocol.ServerEndpoint{
{
Address: v2net.NewIPOrDomain(v2net.LocalHostIP),
Port: uint32(serverPort),
User: []*protocol.User{
{
Account: serial.ToTypedMessage(&vmess.Account{
Id: userID.String(),
}),
},
},
},
},
}),
StreamSettings: &internet.StreamConfig{
TransportSettings: []*internet.TransportConfig{
{
Protocol: internet.TransportProtocol_TCP,
Settings: serial.ToTypedMessage(&tcptransport.Config{
HeaderSettings: serial.ToTypedMessage(&http.Config{}),
}),
},
},
},
},
},
}
assert.Error(InitializeServerConfig(serverConfig)).IsNil()
assert.Error(InitializeServerConfig(clientConfig)).IsNil()
conn, err := net.DialTCP("tcp", nil, &net.TCPAddr{
IP: []byte{127, 0, 0, 1},
Port: int(clientPort),
})
assert.Error(err).IsNil()
payload := "dokodemo request."
nBytes, err := conn.Write([]byte(payload))
assert.Error(err).IsNil()
assert.Int(nBytes).Equals(len(payload))
response := readFrom(conn, time.Second*2, len(payload))
assert.Bytes(response).Equals(xor([]byte(payload)))
assert.Error(conn.Close()).IsNil()
CloseAllServers()
}

View File

@ -20,7 +20,7 @@ func (v *TransportConfig) Build() (*transport.Config, error) {
if err != nil { if err != nil {
return nil, errors.Base(err).Message("Failed to build TCP config.") return nil, errors.Base(err).Message("Failed to build TCP config.")
} }
config.TransportSettings = append(config.TransportSettings, &internet.TransportSettings{ config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{
Protocol: internet.TransportProtocol_TCP, Protocol: internet.TransportProtocol_TCP,
Settings: ts, Settings: ts,
}) })
@ -31,7 +31,7 @@ func (v *TransportConfig) Build() (*transport.Config, error) {
if err != nil { if err != nil {
return nil, errors.Base(err).Message("Failed to build mKCP config.") return nil, errors.Base(err).Message("Failed to build mKCP config.")
} }
config.TransportSettings = append(config.TransportSettings, &internet.TransportSettings{ config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{
Protocol: internet.TransportProtocol_MKCP, Protocol: internet.TransportProtocol_MKCP,
Settings: ts, Settings: ts,
}) })
@ -42,7 +42,7 @@ func (v *TransportConfig) Build() (*transport.Config, error) {
if err != nil { if err != nil {
return nil, errors.Base(err).Message("Failed to build WebSocket config.") return nil, errors.Base(err).Message("Failed to build WebSocket config.")
} }
config.TransportSettings = append(config.TransportSettings, &internet.TransportSettings{ config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
Settings: ts, Settings: ts,
}) })

View File

@ -226,7 +226,7 @@ func (v *StreamConfig) Build() (*internet.StreamConfig, error) {
if err != nil { if err != nil {
return nil, errors.Base(err).Message("Failed to build TCP config.") return nil, errors.Base(err).Message("Failed to build TCP config.")
} }
config.TransportSettings = append(config.TransportSettings, &internet.TransportSettings{ config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{
Protocol: internet.TransportProtocol_TCP, Protocol: internet.TransportProtocol_TCP,
Settings: ts, Settings: ts,
}) })
@ -236,7 +236,7 @@ func (v *StreamConfig) Build() (*internet.StreamConfig, error) {
if err != nil { if err != nil {
return nil, errors.Base(err).Message("Failed to build mKCP config.") return nil, errors.Base(err).Message("Failed to build mKCP config.")
} }
config.TransportSettings = append(config.TransportSettings, &internet.TransportSettings{ config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{
Protocol: internet.TransportProtocol_MKCP, Protocol: internet.TransportProtocol_MKCP,
Settings: ts, Settings: ts,
}) })
@ -246,7 +246,7 @@ func (v *StreamConfig) Build() (*internet.StreamConfig, error) {
if err != nil { if err != nil {
return nil, errors.Base(err).Message("Failed to build WebSocket config.") return nil, errors.Base(err).Message("Failed to build WebSocket config.")
} }
config.TransportSettings = append(config.TransportSettings, &internet.TransportSettings{ config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
Settings: ts, Settings: ts,
}) })

View File

@ -18,7 +18,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// Global transport settings. This affects all type of connections that go through V2Ray. // Global transport settings. This affects all type of connections that go through V2Ray.
type Config struct { type Config struct {
TransportSettings []*v2ray_core_transport_internet.TransportSettings `protobuf:"bytes,1,rep,name=transport_settings,json=transportSettings" json:"transport_settings,omitempty"` TransportSettings []*v2ray_core_transport_internet.TransportConfig `protobuf:"bytes,1,rep,name=transport_settings,json=transportSettings" json:"transport_settings,omitempty"`
} }
func (m *Config) Reset() { *m = Config{} } func (m *Config) Reset() { *m = Config{} }
@ -26,7 +26,7 @@ func (m *Config) String() string { return proto.CompactTextString(m)
func (*Config) ProtoMessage() {} func (*Config) ProtoMessage() {}
func (*Config) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (*Config) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *Config) GetTransportSettings() []*v2ray_core_transport_internet.TransportSettings { func (m *Config) GetTransportSettings() []*v2ray_core_transport_internet.TransportConfig {
if m != nil { if m != nil {
return m.TransportSettings return m.TransportSettings
} }
@ -40,16 +40,16 @@ func init() {
func init() { proto.RegisterFile("v2ray.com/core/transport/config.proto", fileDescriptor0) } func init() { proto.RegisterFile("v2ray.com/core/transport/config.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 174 bytes of a gzipped FileDescriptorProto // 175 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x52, 0x2d, 0x33, 0x2a, 0x4a, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x52, 0x2d, 0x33, 0x2a, 0x4a,
0xac, 0xd4, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0x2f, 0x4a, 0xd5, 0x2f, 0x29, 0x4a, 0xcc, 0x2b, 0xac, 0xd4, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0x2f, 0x4a, 0xd5, 0x2f, 0x29, 0x4a, 0xcc, 0x2b,
0x2e, 0xc8, 0x2f, 0x2a, 0xd1, 0x4f, 0xce, 0xcf, 0x4b, 0xcb, 0x4c, 0xd7, 0x2b, 0x28, 0xca, 0x2f, 0x2e, 0xc8, 0x2f, 0x2a, 0xd1, 0x4f, 0xce, 0xcf, 0x4b, 0xcb, 0x4c, 0xd7, 0x2b, 0x28, 0xca, 0x2f,
0xc9, 0x17, 0x12, 0x81, 0x29, 0x2b, 0x4a, 0xd5, 0x83, 0x2b, 0x91, 0xd2, 0xc3, 0xa9, 0x39, 0x33, 0xc9, 0x17, 0x12, 0x81, 0x29, 0x2b, 0x4a, 0xd5, 0x83, 0x2b, 0x91, 0xd2, 0xc3, 0xa9, 0x39, 0x33,
0xaf, 0x24, 0xb5, 0x28, 0x2f, 0x15, 0xd5, 0x14, 0xa5, 0x4c, 0x2e, 0x36, 0x67, 0x30, 0x5f, 0x28, 0xaf, 0x24, 0xb5, 0x28, 0x2f, 0x15, 0xd5, 0x14, 0xa5, 0x74, 0x2e, 0x36, 0x67, 0x30, 0x5f, 0x28,
0x9e, 0x4b, 0x08, 0xae, 0x38, 0xbe, 0x38, 0xb5, 0xa4, 0x24, 0x33, 0x2f, 0xbd, 0x58, 0x82, 0x51, 0x96, 0x4b, 0x08, 0xae, 0x38, 0xbe, 0x38, 0xb5, 0xa4, 0x24, 0x33, 0x2f, 0xbd, 0x58, 0x82, 0x51,
0x81, 0x59, 0x83, 0xdb, 0xc8, 0x40, 0x0f, 0x9b, 0x65, 0x7a, 0x30, 0x23, 0xf5, 0x42, 0x60, 0x42, 0x81, 0x59, 0x83, 0xdb, 0x48, 0x4f, 0x0f, 0x9b, 0x65, 0x7a, 0x30, 0x23, 0xf5, 0x42, 0x60, 0x42,
0xc1, 0x50, 0x7d, 0x41, 0x82, 0x25, 0xe8, 0x42, 0x4e, 0x9e, 0x5c, 0x12, 0xc9, 0xf9, 0xb9, 0x58, 0x10, 0xb3, 0x82, 0x04, 0xe1, 0x6a, 0x82, 0xa1, 0x06, 0x39, 0x79, 0x72, 0x49, 0x24, 0xe7, 0xe7,
0x4d, 0x72, 0xe2, 0x86, 0x38, 0x22, 0x00, 0xe4, 0xa6, 0x28, 0x4e, 0xb8, 0xf8, 0x2a, 0x26, 0x91, 0x62, 0x35, 0xc7, 0x89, 0x1b, 0xa2, 0x2d, 0x00, 0xe4, 0xa2, 0x28, 0x4e, 0xb8, 0xf8, 0x2a, 0x26,
0x30, 0xa3, 0xa0, 0xc4, 0x4a, 0x3d, 0x67, 0x90, 0x72, 0xb8, 0x2d, 0x49, 0x6c, 0x60, 0xc7, 0x1b, 0x91, 0x30, 0xa3, 0xa0, 0xc4, 0x4a, 0x3d, 0x67, 0x90, 0x72, 0xb8, 0x1d, 0x49, 0x6c, 0x60, 0xa7,
0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x4b, 0xd3, 0xcc, 0x90, 0x2b, 0x01, 0x00, 0x00, 0x1b, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x89, 0x64, 0xdc, 0xb9, 0x29, 0x01, 0x00, 0x00,
} }

View File

@ -10,5 +10,5 @@ import "v2ray.com/core/transport/internet/config.proto";
// Global transport settings. This affects all type of connections that go through V2Ray. // Global transport settings. This affects all type of connections that go through V2Ray.
message Config { message Config {
repeated v2ray.core.transport.internet.TransportSettings transport_settings = 1; repeated v2ray.core.transport.internet.TransportConfig transport_settings = 1;
} }

View File

@ -9,7 +9,7 @@ type ConfigCreator func() interface{}
var ( var (
globalTransportConfigCreatorCache = make(map[TransportProtocol]ConfigCreator) globalTransportConfigCreatorCache = make(map[TransportProtocol]ConfigCreator)
globalTransportSettings []*TransportSettings globalTransportSettings []*TransportConfig
) )
func RegisterProtocolConfigCreator(protocol TransportProtocol, creator ConfigCreator) error { func RegisterProtocolConfigCreator(protocol TransportProtocol, creator ConfigCreator) error {
@ -26,7 +26,7 @@ func CreateTransportConfig(protocol TransportProtocol) (interface{}, error) {
return creator(), nil return creator(), nil
} }
func (v *TransportSettings) GetTypedSettings() (interface{}, error) { func (v *TransportConfig) GetTypedSettings() (interface{}, error) {
return v.Settings.GetInstance() return v.Settings.GetInstance()
} }
@ -69,7 +69,7 @@ func (v *StreamConfig) HasSecuritySettings() bool {
return len(v.SecurityType) > 0 return len(v.SecurityType) > 0
} }
func ApplyGlobalTransportSettings(settings []*TransportSettings) error { func ApplyGlobalTransportSettings(settings []*TransportConfig) error {
globalTransportSettings = settings globalTransportSettings = settings
return nil return nil
} }

View File

@ -43,26 +43,26 @@ func (x TransportProtocol) String() string {
} }
func (TransportProtocol) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (TransportProtocol) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
type TransportSettings struct { type TransportConfig struct {
// Type of network that this settings supports. // Type of network that this settings supports.
Protocol TransportProtocol `protobuf:"varint,1,opt,name=protocol,enum=v2ray.core.transport.internet.TransportProtocol" json:"protocol,omitempty"` Protocol TransportProtocol `protobuf:"varint,1,opt,name=protocol,enum=v2ray.core.transport.internet.TransportProtocol" json:"protocol,omitempty"`
// Specific settings. // Specific settings.
Settings *v2ray_core_common_serial.TypedMessage `protobuf:"bytes,2,opt,name=settings" json:"settings,omitempty"` Settings *v2ray_core_common_serial.TypedMessage `protobuf:"bytes,2,opt,name=settings" json:"settings,omitempty"`
} }
func (m *TransportSettings) Reset() { *m = TransportSettings{} } func (m *TransportConfig) Reset() { *m = TransportConfig{} }
func (m *TransportSettings) String() string { return proto.CompactTextString(m) } func (m *TransportConfig) String() string { return proto.CompactTextString(m) }
func (*TransportSettings) ProtoMessage() {} func (*TransportConfig) ProtoMessage() {}
func (*TransportSettings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (*TransportConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *TransportSettings) GetProtocol() TransportProtocol { func (m *TransportConfig) GetProtocol() TransportProtocol {
if m != nil { if m != nil {
return m.Protocol return m.Protocol
} }
return TransportProtocol_TCP return TransportProtocol_TCP
} }
func (m *TransportSettings) GetSettings() *v2ray_core_common_serial.TypedMessage { func (m *TransportConfig) GetSettings() *v2ray_core_common_serial.TypedMessage {
if m != nil { if m != nil {
return m.Settings return m.Settings
} }
@ -71,8 +71,8 @@ func (m *TransportSettings) GetSettings() *v2ray_core_common_serial.TypedMessage
type StreamConfig struct { type StreamConfig struct {
// Effective network. // Effective network.
Protocol TransportProtocol `protobuf:"varint,1,opt,name=protocol,enum=v2ray.core.transport.internet.TransportProtocol" json:"protocol,omitempty"` Protocol TransportProtocol `protobuf:"varint,1,opt,name=protocol,enum=v2ray.core.transport.internet.TransportProtocol" json:"protocol,omitempty"`
TransportSettings []*TransportSettings `protobuf:"bytes,2,rep,name=transport_settings,json=transportSettings" json:"transport_settings,omitempty"` TransportSettings []*TransportConfig `protobuf:"bytes,2,rep,name=transport_settings,json=transportSettings" json:"transport_settings,omitempty"`
// Type of security. Must be a message name of the settings proto. // Type of security. Must be a message name of the settings proto.
SecurityType string `protobuf:"bytes,3,opt,name=security_type,json=securityType" json:"security_type,omitempty"` SecurityType string `protobuf:"bytes,3,opt,name=security_type,json=securityType" json:"security_type,omitempty"`
SecuritySettings []*v2ray_core_common_serial.TypedMessage `protobuf:"bytes,4,rep,name=security_settings,json=securitySettings" json:"security_settings,omitempty"` SecuritySettings []*v2ray_core_common_serial.TypedMessage `protobuf:"bytes,4,rep,name=security_settings,json=securitySettings" json:"security_settings,omitempty"`
@ -90,7 +90,7 @@ func (m *StreamConfig) GetProtocol() TransportProtocol {
return TransportProtocol_TCP return TransportProtocol_TCP
} }
func (m *StreamConfig) GetTransportSettings() []*TransportSettings { func (m *StreamConfig) GetTransportSettings() []*TransportConfig {
if m != nil { if m != nil {
return m.TransportSettings return m.TransportSettings
} }
@ -128,7 +128,7 @@ func (m *ProxyConfig) GetTag() string {
} }
func init() { func init() {
proto.RegisterType((*TransportSettings)(nil), "v2ray.core.transport.internet.TransportSettings") proto.RegisterType((*TransportConfig)(nil), "v2ray.core.transport.internet.TransportConfig")
proto.RegisterType((*StreamConfig)(nil), "v2ray.core.transport.internet.StreamConfig") proto.RegisterType((*StreamConfig)(nil), "v2ray.core.transport.internet.StreamConfig")
proto.RegisterType((*ProxyConfig)(nil), "v2ray.core.transport.internet.ProxyConfig") proto.RegisterType((*ProxyConfig)(nil), "v2ray.core.transport.internet.ProxyConfig")
proto.RegisterEnum("v2ray.core.transport.internet.TransportProtocol", TransportProtocol_name, TransportProtocol_value) proto.RegisterEnum("v2ray.core.transport.internet.TransportProtocol", TransportProtocol_name, TransportProtocol_value)
@ -137,29 +137,29 @@ func init() {
func init() { proto.RegisterFile("v2ray.com/core/transport/internet/config.proto", fileDescriptor0) } func init() { proto.RegisterFile("v2ray.com/core/transport/internet/config.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 372 bytes of a gzipped FileDescriptorProto // 371 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x92, 0x4f, 0x4b, 0xf3, 0x40, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x91, 0x4f, 0x4b, 0xfb, 0x30,
0x10, 0xc6, 0xdf, 0x24, 0xe5, 0x35, 0x9d, 0xb6, 0x92, 0xee, 0xa9, 0x08, 0xc5, 0x5a, 0x41, 0x82, 0x18, 0xc7, 0x7f, 0x6d, 0xc7, 0xcf, 0xee, 0xd9, 0xa6, 0x5d, 0x4e, 0x43, 0x18, 0xce, 0x09, 0x52,
0x87, 0x4d, 0x89, 0x77, 0x0f, 0x8d, 0x17, 0xd1, 0x42, 0x48, 0xaa, 0x82, 0x97, 0x90, 0xae, 0x6b, 0x3c, 0xa4, 0xa3, 0xde, 0x3d, 0xac, 0x5e, 0x44, 0x07, 0xa5, 0x9d, 0x0a, 0x82, 0x8c, 0x2e, 0xc6,
0x08, 0x36, 0xd9, 0xb2, 0x59, 0xc5, 0x7c, 0x20, 0x2f, 0x7e, 0x01, 0xbf, 0x9e, 0xe4, 0xcf, 0x2e, 0x52, 0x5c, 0x9b, 0x91, 0x46, 0xb1, 0xaf, 0xc7, 0x9b, 0x77, 0xdf, 0x9f, 0xf4, 0x4f, 0xc2, 0x50,
0x45, 0xa1, 0xf4, 0xe0, 0x6d, 0xc8, 0x3c, 0xf3, 0x9b, 0x27, 0xcf, 0x2c, 0xe0, 0x37, 0x97, 0xc7, 0x18, 0xbb, 0x78, 0x0b, 0xcd, 0xf7, 0xf9, 0x3c, 0x9f, 0x7e, 0x03, 0xf8, 0xcd, 0xe5, 0x51, 0x81,
0x25, 0x26, 0x2c, 0x73, 0x08, 0xe3, 0xd4, 0x11, 0x3c, 0xce, 0x8b, 0x0d, 0xe3, 0xc2, 0x49, 0x73, 0x09, 0x4b, 0x1d, 0xc2, 0x38, 0x75, 0x04, 0x8f, 0xb2, 0x7c, 0xcd, 0xb8, 0x70, 0x92, 0x4c, 0x50,
0x41, 0x79, 0x4e, 0x85, 0x43, 0x58, 0xfe, 0x9c, 0x26, 0x78, 0xc3, 0x99, 0x60, 0x68, 0x2c, 0xf5, 0x9e, 0x51, 0xe1, 0x10, 0x96, 0x3d, 0x27, 0x31, 0x5e, 0x73, 0x26, 0x18, 0x1a, 0xca, 0x3c, 0xa7,
0x9c, 0x62, 0xa5, 0xc5, 0x52, 0x7b, 0x34, 0xfb, 0x81, 0x23, 0x2c, 0xcb, 0x58, 0xee, 0x14, 0x94, 0x58, 0x65, 0xb1, 0xcc, 0x1e, 0x4e, 0x7e, 0xe0, 0x08, 0x4b, 0x53, 0x96, 0x39, 0x39, 0xe5, 0x49,
0xa7, 0xf1, 0xda, 0x11, 0xe5, 0x86, 0x3e, 0x45, 0x19, 0x2d, 0x8a, 0x38, 0xa1, 0x0d, 0x70, 0xfa, 0xb4, 0x72, 0x44, 0xb1, 0xa6, 0x4f, 0x8b, 0x94, 0xe6, 0x79, 0x14, 0xd3, 0x1a, 0x38, 0xfe, 0xd0,
0xa1, 0xc1, 0x70, 0x29, 0x41, 0x21, 0x15, 0x22, 0xcd, 0x93, 0x02, 0xdd, 0x82, 0x59, 0xb7, 0x09, 0xe0, 0x60, 0x2e, 0x41, 0x5e, 0xb5, 0x0a, 0xdd, 0x80, 0x59, 0x5d, 0x12, 0xb6, 0x1a, 0x68, 0x23,
0x5b, 0x8f, 0xb4, 0x89, 0x66, 0x1f, 0xba, 0x33, 0xbc, 0x73, 0x33, 0x56, 0x0c, 0xbf, 0x9d, 0x0b, 0xcd, 0xde, 0x77, 0x27, 0x78, 0xeb, 0x5e, 0xac, 0x08, 0x7e, 0x33, 0x17, 0x28, 0x02, 0x9a, 0x82,
0x14, 0x01, 0xcd, 0xc1, 0x2c, 0x5a, 0xf2, 0x48, 0x9f, 0x68, 0x76, 0xcf, 0x3d, 0xdb, 0xa6, 0x35, 0x99, 0x53, 0x21, 0x92, 0x2c, 0xce, 0x07, 0xfa, 0x48, 0xb3, 0x3b, 0xee, 0xe9, 0x26, 0xad, 0x56,
0x26, 0x71, 0x63, 0x12, 0x2f, 0x2b, 0x93, 0x8b, 0xc6, 0x63, 0xa0, 0xe6, 0xa6, 0x5f, 0x3a, 0xf4, 0xc4, 0xb5, 0x22, 0x9e, 0x97, 0x8a, 0xb3, 0xda, 0x30, 0x50, 0x73, 0xe3, 0x2f, 0x1d, 0xba, 0xa1,
0x43, 0xc1, 0x69, 0x9c, 0x79, 0x75, 0x1e, 0x7f, 0x6c, 0x31, 0x02, 0xa4, 0x26, 0xa2, 0x2d, 0xb3, 0xe0, 0x34, 0x4a, 0xff, 0x44, 0xf1, 0x11, 0x90, 0x9a, 0x58, 0x6c, 0xc8, 0x1a, 0x76, 0xc7, 0xc5,
0x86, 0xdd, 0xdb, 0x9f, 0x2b, 0xe3, 0x0b, 0x86, 0xe2, 0x57, 0xa2, 0xa7, 0x30, 0x28, 0x28, 0x79, 0xbb, 0x72, 0x6b, 0xb3, 0xa0, 0xaf, 0x32, 0x61, 0x03, 0x42, 0x27, 0xd0, 0xcb, 0x29, 0x79, 0xe5,
0xe5, 0xa9, 0x28, 0xa3, 0xea, 0x0e, 0x23, 0x63, 0xa2, 0xd9, 0xdd, 0xa0, 0x2f, 0x3f, 0x56, 0xbf, 0x89, 0x28, 0x16, 0xe5, 0x1b, 0x0c, 0x8c, 0x91, 0x66, 0xb7, 0x83, 0xae, 0xfc, 0x58, 0xfe, 0x34,
0x8d, 0x42, 0x18, 0x2a, 0x91, 0x32, 0xd1, 0xa9, 0x4d, 0xec, 0x9b, 0x98, 0x25, 0x01, 0x72, 0xf3, 0x0a, 0xa1, 0xaf, 0x42, 0x4a, 0xa1, 0x55, 0x29, 0xec, 0xda, 0x97, 0x25, 0x01, 0x72, 0xf3, 0xf8,
0xf4, 0x18, 0x7a, 0x3e, 0x67, 0xef, 0x65, 0x9b, 0x9b, 0x05, 0x86, 0x88, 0x93, 0x3a, 0xb2, 0x6e, 0x08, 0x3a, 0x3e, 0x67, 0xef, 0x45, 0xd3, 0x9a, 0x05, 0x86, 0x88, 0xe2, 0xaa, 0xb0, 0x76, 0x50,
0x50, 0x95, 0xe7, 0x97, 0x5b, 0x2f, 0x40, 0x46, 0x83, 0x0e, 0xc0, 0x58, 0x7a, 0xbe, 0xf5, 0xaf, 0x1e, 0xcf, 0x2e, 0xa0, 0xff, 0xab, 0x18, 0xb4, 0x07, 0xc6, 0xdc, 0xf3, 0xad, 0x7f, 0xe5, 0xe1,
0x2a, 0xee, 0xae, 0x7c, 0x4b, 0x43, 0x26, 0x74, 0x16, 0x37, 0x9e, 0x6f, 0xe9, 0x68, 0x00, 0xdd, 0xf6, 0xd2, 0xb7, 0x34, 0x64, 0x42, 0x6b, 0x76, 0xed, 0xf9, 0x96, 0x8e, 0x7a, 0xd0, 0xbe, 0xa7,
0x07, 0xba, 0x0a, 0x19, 0x79, 0xa1, 0xc2, 0x32, 0xe6, 0x0b, 0x38, 0x21, 0x2c, 0xdb, 0x1d, 0xd2, 0xcb, 0x90, 0x91, 0x17, 0x2a, 0x2c, 0x63, 0x3a, 0x83, 0x63, 0xc2, 0xd2, 0xed, 0x15, 0x3d, 0x98,
0xa3, 0x29, 0xab, 0x4f, 0x7d, 0x7c, 0xef, 0x06, 0x71, 0x89, 0xbd, 0x4a, 0xa9, 0x16, 0xe3, 0xeb, 0xf2, 0xf4, 0xa9, 0x0f, 0xef, 0xdc, 0x20, 0x2a, 0xb0, 0x57, 0x26, 0xd5, 0x62, 0x7c, 0xd5, 0xdc,
0xb6, 0xbf, 0xfa, 0x5f, 0x1f, 0xe5, 0xe2, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xca, 0x28, 0x5d, 0x77, 0x2f, 0xff, 0x57, 0x4f, 0x72, 0xfe, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x4b, 0xc3, 0x2c, 0x5e, 0x17,
0x1b, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00,
} }

View File

@ -14,7 +14,7 @@ enum TransportProtocol {
WebSocket = 3; WebSocket = 3;
} }
message TransportSettings { message TransportConfig {
// Type of network that this settings supports. // Type of network that this settings supports.
TransportProtocol protocol = 1; TransportProtocol protocol = 1;
@ -26,7 +26,7 @@ message StreamConfig {
// Effective network. // Effective network.
TransportProtocol protocol = 1; TransportProtocol protocol = 1;
repeated TransportSettings transport_settings = 2; repeated TransportConfig transport_settings = 2;
// Type of security. Must be a message name of the settings proto. // Type of security. Must be a message name of the settings proto.
string security_type = 3; string security_type = 3;

View File

@ -21,7 +21,7 @@ func TestDialAndListen(t *testing.T) {
listerner, err := NewListener(v2net.LocalHostIP, v2net.Port(0), internet.ListenOptions{ listerner, err := NewListener(v2net.LocalHostIP, v2net.Port(0), internet.ListenOptions{
Stream: &internet.StreamConfig{ Stream: &internet.StreamConfig{
Protocol: internet.TransportProtocol_MKCP, Protocol: internet.TransportProtocol_MKCP,
TransportSettings: []*internet.TransportSettings{ TransportSettings: []*internet.TransportConfig{
{ {
Protocol: internet.TransportProtocol_MKCP, Protocol: internet.TransportProtocol_MKCP,
Settings: serial.ToTypedMessage(&Config{}), Settings: serial.ToTypedMessage(&Config{}),
@ -60,7 +60,7 @@ func TestDialAndListen(t *testing.T) {
clientConn, err := DialKCP(v2net.LocalHostIP, v2net.UDPDestination(v2net.LocalHostIP, port), internet.DialerOptions{ clientConn, err := DialKCP(v2net.LocalHostIP, v2net.UDPDestination(v2net.LocalHostIP, port), internet.DialerOptions{
Stream: &internet.StreamConfig{ Stream: &internet.StreamConfig{
Protocol: internet.TransportProtocol_MKCP, Protocol: internet.TransportProtocol_MKCP,
TransportSettings: []*internet.TransportSettings{ TransportSettings: []*internet.TransportConfig{
{ {
Protocol: internet.TransportProtocol_MKCP, Protocol: internet.TransportProtocol_MKCP,
Settings: serial.ToTypedMessage(&Config{}), Settings: serial.ToTypedMessage(&Config{}),

View File

@ -20,7 +20,7 @@ func Test_listenWSAndDial(t *testing.T) {
listen, err := ListenWS(v2net.DomainAddress("localhost"), 13146, internet.ListenOptions{ listen, err := ListenWS(v2net.DomainAddress("localhost"), 13146, internet.ListenOptions{
Stream: &internet.StreamConfig{ Stream: &internet.StreamConfig{
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
TransportSettings: []*internet.TransportSettings{ TransportSettings: []*internet.TransportConfig{
{ {
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
Settings: serial.ToTypedMessage(&Config{ Settings: serial.ToTypedMessage(&Config{
@ -57,7 +57,7 @@ func Test_listenWSAndDial(t *testing.T) {
conn, err := Dial(v2net.AnyIP, v2net.TCPDestination(v2net.DomainAddress("localhost"), 13146), internet.DialerOptions{ conn, err := Dial(v2net.AnyIP, v2net.TCPDestination(v2net.DomainAddress("localhost"), 13146), internet.DialerOptions{
Stream: &internet.StreamConfig{ Stream: &internet.StreamConfig{
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
TransportSettings: []*internet.TransportSettings{ TransportSettings: []*internet.TransportConfig{
{ {
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
Settings: serial.ToTypedMessage(&Config{ Settings: serial.ToTypedMessage(&Config{
@ -81,7 +81,7 @@ func Test_listenWSAndDial(t *testing.T) {
conn, err = Dial(v2net.AnyIP, v2net.TCPDestination(v2net.DomainAddress("localhost"), 13146), internet.DialerOptions{ conn, err = Dial(v2net.AnyIP, v2net.TCPDestination(v2net.DomainAddress("localhost"), 13146), internet.DialerOptions{
Stream: &internet.StreamConfig{ Stream: &internet.StreamConfig{
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
TransportSettings: []*internet.TransportSettings{ TransportSettings: []*internet.TransportConfig{
{ {
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
Settings: serial.ToTypedMessage(&Config{ Settings: serial.ToTypedMessage(&Config{
@ -102,7 +102,7 @@ func Test_listenWSAndDial(t *testing.T) {
conn, err = Dial(v2net.AnyIP, v2net.TCPDestination(v2net.DomainAddress("localhost"), 13146), internet.DialerOptions{ conn, err = Dial(v2net.AnyIP, v2net.TCPDestination(v2net.DomainAddress("localhost"), 13146), internet.DialerOptions{
Stream: &internet.StreamConfig{ Stream: &internet.StreamConfig{
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
TransportSettings: []*internet.TransportSettings{ TransportSettings: []*internet.TransportConfig{
{ {
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
Settings: serial.ToTypedMessage(&Config{ Settings: serial.ToTypedMessage(&Config{
@ -137,7 +137,7 @@ func Test_listenWSAndDial_TLS(t *testing.T) {
Certificate: []*v2tls.Certificate{tlsgen.GenerateCertificateForTest()}, Certificate: []*v2tls.Certificate{tlsgen.GenerateCertificateForTest()},
})}, })},
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
TransportSettings: []*internet.TransportSettings{ TransportSettings: []*internet.TransportConfig{
{ {
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
Settings: serial.ToTypedMessage(&Config{ Settings: serial.ToTypedMessage(&Config{
@ -164,7 +164,7 @@ func Test_listenWSAndDial_TLS(t *testing.T) {
AllowInsecure: true, AllowInsecure: true,
})}, })},
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
TransportSettings: []*internet.TransportSettings{ TransportSettings: []*internet.TransportConfig{
{ {
Protocol: internet.TransportProtocol_WebSocket, Protocol: internet.TransportProtocol_WebSocket,
Settings: serial.ToTypedMessage(&Config{ Settings: serial.ToTypedMessage(&Config{