| 
					
				 | 
			
			
				@@ -1,106 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-package conf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	"github.com/xtls/xray-core/common/errors" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	"github.com/xtls/xray-core/common/serial" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	"github.com/xtls/xray-core/transport/global" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	"github.com/xtls/xray-core/transport/internet" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type TransportConfig struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	TCPConfig         *TCPConfig          `json:"tcpSettings"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	KCPConfig         *KCPConfig          `json:"kcpSettings"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	WSConfig          *WebSocketConfig    `json:"wsSettings"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	HTTPConfig        *HTTPConfig         `json:"httpSettings"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	GRPCConfig        *GRPCConfig         `json:"grpcSettings"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	GUNConfig         *GRPCConfig         `json:"gunSettings"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	HTTPUPGRADEConfig *HttpUpgradeConfig  `json:"httpupgradeSettings"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	SplitHTTPConfig   *SplitHTTPConfig    `json:"splithttpSettings"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// Build implements Buildable. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func (c *TransportConfig) Build() (*global.Config, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	config := new(global.Config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if c.TCPConfig != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		ts, err := c.TCPConfig.Build() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return nil, errors.New("failed to build TCP config").Base(err).AtError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ProtocolName: "tcp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Settings:     serial.ToTypedMessage(ts), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if c.KCPConfig != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		ts, err := c.KCPConfig.Build() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return nil, errors.New("failed to build mKCP config").Base(err).AtError() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ProtocolName: "mkcp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Settings:     serial.ToTypedMessage(ts), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if c.WSConfig != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		ts, err := c.WSConfig.Build() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return nil, errors.New("failed to build WebSocket config").Base(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ProtocolName: "websocket", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Settings:     serial.ToTypedMessage(ts), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if c.HTTPConfig != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		ts, err := c.HTTPConfig.Build() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return nil, errors.New("Failed to build HTTP config.").Base(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ProtocolName: "http", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Settings:     serial.ToTypedMessage(ts), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if c.GRPCConfig == nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.GRPCConfig = c.GUNConfig 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if c.GRPCConfig != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		gs, err := c.GRPCConfig.Build() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return nil, errors.New("Failed to build gRPC config.").Base(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ProtocolName: "grpc", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Settings:     serial.ToTypedMessage(gs), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if c.HTTPUPGRADEConfig != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		hs, err := c.HTTPUPGRADEConfig.Build() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return nil, errors.New("failed to build HttpUpgrade config").Base(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ProtocolName: "httpupgrade", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Settings:     serial.ToTypedMessage(hs), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if c.SplitHTTPConfig != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		shs, err := c.SplitHTTPConfig.Build() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return nil, errors.New("failed to build SplitHTTP config").Base(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		config.TransportSettings = append(config.TransportSettings, &internet.TransportConfig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ProtocolName: "splithttp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Settings:     serial.ToTypedMessage(shs), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	return config, nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 |