43 lines
963 B
Go
43 lines
963 B
Go
package singbox
|
|
|
|
import "github.com/perfect-panel/server/pkg/adapter/proxy"
|
|
|
|
type AnyTLSOutboundOptions struct {
|
|
ServerOptions
|
|
OutboundTLSOptionsContainer
|
|
Password string `json:"password,omitempty"`
|
|
}
|
|
|
|
func ParseAnyTLS(data proxy.Proxy, password string) (*Proxy, error) {
|
|
anyTLS := data.Option.(proxy.AnyTLS)
|
|
|
|
config := &AnyTLSOutboundOptions{
|
|
ServerOptions: ServerOptions{
|
|
Tag: data.Name,
|
|
Type: AnyTLS,
|
|
Server: data.Server,
|
|
ServerPort: data.Port,
|
|
},
|
|
OutboundTLSOptionsContainer: OutboundTLSOptionsContainer{
|
|
TLS: &OutboundTLSOptions{
|
|
Enabled: true,
|
|
ALPN: []string{"h2", "http/1.1"},
|
|
Insecure: anyTLS.SecurityConfig.AllowInsecure,
|
|
},
|
|
},
|
|
Password: password,
|
|
}
|
|
|
|
if anyTLS.SecurityConfig.SNI != "" {
|
|
config.OutboundTLSOptionsContainer.TLS.ServerName = anyTLS.SecurityConfig.SNI
|
|
}
|
|
|
|
p := &Proxy{
|
|
Tag: data.Name,
|
|
Type: AnyTLS,
|
|
AnyTLSOptions: config,
|
|
}
|
|
|
|
return p, nil
|
|
}
|