43 lines
1.2 KiB
Go

package singbox
import (
"github.com/perfect-panel/server/pkg/adapter/proxy"
)
type TUICOutboundOptions struct {
ServerOptions
UUID string `json:"uuid,omitempty"`
Password string `json:"password,omitempty"`
CongestionControl string `json:"congestion_control,omitempty"`
UDPRelayMode string `json:"udp_relay_mode,omitempty"`
UDPOverStream bool `json:"udp_over_stream,omitempty"`
ZeroRTTHandshake bool `json:"zero_rtt_handshake,omitempty"`
Heartbeat string `json:"heartbeat,omitempty"`
Network string `json:"network,omitempty"`
OutboundTLSOptionsContainer
}
func ParseTUIC(data proxy.Proxy, uuid string) (*Proxy, error) {
tuic := data.Option.(proxy.Tuic)
p := &Proxy{
Tag: data.Name,
Type: TUIC,
TUICOptions: &TUICOutboundOptions{
ServerOptions: ServerOptions{
Tag: data.Name,
Type: TUIC,
Server: data.Server,
ServerPort: data.Port,
},
UUID: uuid,
Password: uuid,
CongestionControl: tuic.CongestionController,
UDPRelayMode: tuic.UDPRelayMode,
ZeroRTTHandshake: tuic.ReduceRtt,
},
}
// Security options
p.TUICOptions.TLS = NewOutboundTLSOptions("tls", tuic.SecurityConfig)
return p, nil
}