V2bX/conf/xray.go
2023-08-20 15:13:52 +08:00

81 lines
2.5 KiB
Go

package conf
type XrayConfig struct {
LogConfig *XrayLogConfig `json:"Log"`
AssetPath string `json:"AssetPath"`
DnsConfigPath string `json:"DnsConfigPath"`
RouteConfigPath string `json:"RouteConfigPath"`
ConnectionConfig *XrayConnectionConfig `json:"XrayConnectionConfig"`
InboundConfigPath string `json:"InboundConfigPath"`
OutboundConfigPath string `json:"OutboundConfigPath"`
}
type XrayLogConfig struct {
Level string `json:"Level"`
AccessPath string `json:"AccessPath"`
ErrorPath string `json:"ErrorPath"`
}
type XrayConnectionConfig struct {
Handshake uint32 `json:"handshake"`
ConnIdle uint32 `json:"connIdle"`
UplinkOnly uint32 `json:"uplinkOnly"`
DownlinkOnly uint32 `json:"downlinkOnly"`
BufferSize int32 `json:"bufferSize"`
}
func NewXrayConfig() *XrayConfig {
return &XrayConfig{
LogConfig: &XrayLogConfig{
Level: "warning",
AccessPath: "",
ErrorPath: "",
},
AssetPath: "/etc/V2bX/",
DnsConfigPath: "",
InboundConfigPath: "",
OutboundConfigPath: "",
RouteConfigPath: "",
ConnectionConfig: &XrayConnectionConfig{
Handshake: 4,
ConnIdle: 30,
UplinkOnly: 2,
DownlinkOnly: 4,
BufferSize: 64,
},
}
}
type XrayOptions struct {
EnableProxyProtocol bool `json:"EnableProxyProtocol"`
EnableDNS bool `json:"EnableDNS"`
DNSType string `json:"DNSType"`
EnableUot bool `json:"EnableUot"`
EnableTFO bool `json:"EnableTFO"`
DisableIVCheck bool `json:"DisableIVCheck"`
DisableSniffing bool `json:"DisableSniffing"`
EnableFallback bool `json:"EnableFallback"`
FallBackConfigs []FallBackConfigForXray `json:"FallBackConfigs"`
}
type FallBackConfigForXray struct {
SNI string `json:"SNI"`
Alpn string `json:"Alpn"`
Path string `json:"Path"`
Dest string `json:"Dest"`
ProxyProtocolVer uint64 `json:"ProxyProtocolVer"`
}
func NewXrayOptions() *XrayOptions {
return &XrayOptions{
EnableProxyProtocol: false,
EnableDNS: false,
DNSType: "AsIs",
EnableUot: false,
EnableTFO: false,
DisableIVCheck: false,
DisableSniffing: false,
EnableFallback: false,
}
}