|
|
|
@ -644,7 +644,7 @@ type TransportProtocol string
|
|
|
|
|
// Build implements Buildable.
|
|
|
|
|
func (p TransportProtocol) Build() (string, error) {
|
|
|
|
|
switch strings.ToLower(string(p)) {
|
|
|
|
|
case "tcp":
|
|
|
|
|
case "raw", "tcp":
|
|
|
|
|
return "tcp", nil
|
|
|
|
|
case "kcp", "mkcp":
|
|
|
|
|
return "mkcp", nil
|
|
|
|
@ -783,6 +783,7 @@ type StreamConfig struct {
|
|
|
|
|
Security string `json:"security"`
|
|
|
|
|
TLSSettings *TLSConfig `json:"tlsSettings"`
|
|
|
|
|
REALITYSettings *REALITYConfig `json:"realitySettings"`
|
|
|
|
|
RAWSettings *TCPConfig `json:"rawSettings"`
|
|
|
|
|
TCPSettings *TCPConfig `json:"tcpSettings"`
|
|
|
|
|
KCPSettings *KCPConfig `json:"kcpSettings"`
|
|
|
|
|
WSSettings *WebSocketConfig `json:"wsSettings"`
|
|
|
|
@ -839,10 +840,13 @@ func (c *StreamConfig) Build() (*internet.StreamConfig, error) {
|
|
|
|
|
default:
|
|
|
|
|
return nil, errors.New(`Unknown security "` + c.Security + `".`)
|
|
|
|
|
}
|
|
|
|
|
if c.TCPSettings == nil {
|
|
|
|
|
c.TCPSettings = c.RAWSettings
|
|
|
|
|
}
|
|
|
|
|
if c.TCPSettings != nil {
|
|
|
|
|
ts, err := c.TCPSettings.Build()
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, errors.New("Failed to build TCP config.").Base(err)
|
|
|
|
|
return nil, errors.New("Failed to build RAW config.").Base(err)
|
|
|
|
|
}
|
|
|
|
|
config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{
|
|
|
|
|
ProtocolName: "tcp",
|
|
|
|
|