diff --git a/infra/conf/transport_internet.go b/infra/conf/transport_internet.go index e89cef0db452..19a0f7a58f09 100644 --- a/infra/conf/transport_internet.go +++ b/infra/conf/transport_internet.go @@ -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",