39 lines
2.0 KiB
Go
39 lines
2.0 KiB
Go
package option
|
|
|
|
import "github.com/sagernet/sing/common/json/badoption"
|
|
|
|
type SelectorOutboundOptions struct {
|
|
GroupCommonOption
|
|
Default string `json:"default,omitempty" reference:"outbound"`
|
|
InterruptExistConnections bool `json:"interrupt_exist_connections,omitempty"`
|
|
}
|
|
|
|
type URLTestOutboundOptions struct {
|
|
GroupCommonOption
|
|
URL string `json:"url,omitempty"`
|
|
Interval badoption.Duration `json:"interval,omitempty"`
|
|
Tolerance uint16 `json:"tolerance,omitempty"`
|
|
IdleTimeout badoption.Duration `json:"idle_timeout,omitempty"`
|
|
Strategy string `json:"strategy,omitempty" enum:"latency,networkquality"`
|
|
NetworkQualityTTL badoption.Duration `json:"networkquality_ttl,omitempty"`
|
|
NetworkQualityTarget string `json:"networkquality_target,omitempty" enum:"apple,cloudflare,custom"`
|
|
NetworkQualityConfigURL string `json:"networkquality_config_url,omitempty"`
|
|
NetworkQualityDownloadURL string `json:"networkquality_download_url,omitempty"`
|
|
NetworkQualityUploadURL string `json:"networkquality_upload_url,omitempty"`
|
|
NetworkQualityProbeURL string `json:"networkquality_probe_url,omitempty"`
|
|
InterruptExistConnections bool `json:"interrupt_exist_connections,omitempty"`
|
|
}
|
|
|
|
type FallbackOutboundOptions struct {
|
|
Outbounds []string `json:"outbounds"`
|
|
BlacklistTimeout badoption.Duration `json:"blacklist_timeout,omitempty"`
|
|
}
|
|
|
|
type GroupCommonOption struct {
|
|
Outbounds []string `json:"outbounds" reference:"outbound"`
|
|
Providers badoption.Listable[string] `json:"providers,omitempty"`
|
|
Exclude *badoption.Regexp `json:"exclude,omitempty"`
|
|
Include *badoption.Regexp `json:"include,omitempty"`
|
|
UseAllProviders bool `json:"use_all_providers,omitempty"`
|
|
}
|