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"
}
}