34 lines
744 B
Go
34 lines
744 B
Go
package clash
|
|
|
|
import "github.com/perfect-panel/server/pkg/adapter/proxy"
|
|
|
|
func clashTransport(c *Proxy, transportType string, transportConfig proxy.TransportConfig) {
|
|
|
|
switch transportType {
|
|
case "websocket", "httpupgrade":
|
|
if transportType == "websocket" {
|
|
c.Network = "ws"
|
|
} else {
|
|
c.Network = transportType
|
|
}
|
|
c.WSOpts = WSOptions{
|
|
Path: transportConfig.Path,
|
|
Headers: map[string]string{},
|
|
}
|
|
if transportConfig.Host != "" {
|
|
c.WSOpts.Headers["host"] = transportConfig.Host
|
|
}
|
|
if transportType == "httpupgrade" {
|
|
c.WSOpts.V2rayHttpUpgrade = true
|
|
}
|
|
case "grpc":
|
|
c.Network = "grpc"
|
|
c.GrpcOpts = GrpcOptions{
|
|
GrpcServiceName: transportConfig.ServiceName,
|
|
}
|
|
case "tcp":
|
|
c.Network = "tcp"
|
|
}
|
|
|
|
}
|