Documentation
¶
Index ¶
- Constants
- type Config
- func (c *Config) GetConcurrency(defaultValue uint) uint
- func (c *Config) GetDNS() *url.URL
- func (c *Config) GetDomainFrontingIP(defaultValue net.IP) string
- func (c *Config) GetDomainFrontingPort(defaultValue uint) uint
- func (c *Config) GetDomainFrontingProxyProtocol(defaultValue bool) bool
- func (c *Config) GetSecrets() map[string]mtglib.Secret
- func (c *Config) String() string
- func (c *Config) Validate() error
- type ListConfig
- type Optional
- type TypeBlocklistURI
- func (t TypeBlocklistURI) Get(defaultValue string) string
- func (t TypeBlocklistURI) IsRemote() bool
- func (t TypeBlocklistURI) MarshalText() ([]byte, error)
- func (t *TypeBlocklistURI) Set(value string) error
- func (t TypeBlocklistURI) String() string
- func (t *TypeBlocklistURI) UnmarshalText(data []byte) error
- type TypeBool
- type TypeBytes
- type TypeConcurrency
- type TypeDC
- type TypeDNSURI
- type TypeDuration
- type TypeErrorRate
- type TypeHTTPPath
- type TypeHostPort
- type TypeHttpsURL
- type TypeIP
- type TypeMetricPrefix
- type TypePort
- type TypePreferIP
- type TypeProxyURL
- type TypeStatsdTagFormat
Constants ¶
View Source
const ( // TypePreferIPPreferIPv4 states that you prefer to use IPv4 addresses // but IPv6 is also possible. TypePreferIPPreferIPv4 = "prefer-ipv4" // TypePreferIPPreferIPv6 states that you prefer to use IPv6 addresses // but IPv4 is also possible. TypePreferIPPreferIPv6 = "prefer-ipv6" // TypePreferOnlyIPv4 states that you prefer to use IPv4 addresses // only. TypePreferOnlyIPv4 = "only-ipv4" // TypePreferOnlyIPv6 states that you prefer to use IPv6 addresses // only. TypePreferOnlyIPv6 = "only-ipv6" )
View Source
const ( // TypeStatsdTagFormatInfluxdb defines a tag format compatible with // InfluxDB. TypeStatsdTagFormatInfluxdb = "influxdb" // TypeStatsdTagFormatDatadog defines a tag format compatible with // DataDog. TypeStatsdTagFormatDatadog = "datadog" // TypeStatsdTagFormatGraphite defines a tag format compatible with // Graphite. TypeStatsdTagFormatGraphite = "graphite" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Debug TypeBool `json:"debug"`
AllowFallbackOnUnknownDC TypeBool `json:"allowFallbackOnUnknownDc"`
Secret mtglib.Secret `json:"secret"`
Secrets map[string]mtglib.Secret `json:"secrets"`
BindTo TypeHostPort `json:"bindTo"`
ProxyProtocolListener TypeBool `json:"proxyProtocolListener"`
PreferIP TypePreferIP `json:"preferIp"`
AutoUpdate TypeBool `json:"autoUpdate"`
DomainFrontingPort TypePort `json:"domainFrontingPort"`
DomainFrontingIP TypeIP `json:"domainFrontingIp"`
DomainFrontingProxyProtocol TypeBool `json:"domainFrontingProxyProtocol"`
TolerateTimeSkewness TypeDuration `json:"tolerateTimeSkewness"`
Concurrency TypeConcurrency `json:"concurrency"`
PublicIPv4 TypeIP `json:"publicIpv4"`
PublicIPv6 TypeIP `json:"publicIpv6"`
DomainFronting struct {
IP TypeIP `json:"ip"`
Port TypePort `json:"port"`
ProxyProtocol TypeBool `json:"proxyProtocol"`
} `json:"domainFronting"`
Defense struct {
AntiReplay struct {
Optional
MaxSize TypeBytes `json:"maxSize"`
ErrorRate TypeErrorRate `json:"errorRate"`
} `json:"antiReplay"`
Blocklist ListConfig `json:"blocklist"`
Allowlist ListConfig `json:"allowlist"`
Doppelganger struct {
URLs []TypeHttpsURL `json:"urls"`
Repeats TypeConcurrency `json:"repeats_per_raid"`
UpdateEach TypeDuration `json:"raid_each"`
DRS TypeBool `json:"drs"`
} `json:"doppelganger"`
} `json:"defense"`
Network struct {
Timeout struct {
TCP TypeDuration `json:"tcp"`
HTTP TypeDuration `json:"http"`
Idle TypeDuration `json:"idle"`
} `json:"timeout"`
DOHIP TypeIP `json:"dohIp"`
DNS TypeDNSURI `json:"dns"`
Proxies []TypeProxyURL `json:"proxies"`
} `json:"network"`
APIBindTo TypeHostPort `json:"apiBindTo"`
Stats struct {
StatsD struct {
Optional
Address TypeHostPort `json:"address"`
MetricPrefix TypeMetricPrefix `json:"metricPrefix"`
TagFormat TypeStatsdTagFormat `json:"tagFormat"`
} `json:"statsd"`
Prometheus struct {
Optional
BindTo TypeHostPort `json:"bindTo"`
HTTPPath TypeHTTPPath `json:"httpPath"`
MetricPrefix TypeMetricPrefix `json:"metricPrefix"`
} `json:"prometheus"`
} `json:"stats"`
}
func (*Config) GetConcurrency ¶
func (*Config) GetDomainFrontingIP ¶
func (*Config) GetDomainFrontingPort ¶
func (*Config) GetDomainFrontingProxyProtocol ¶
func (*Config) GetSecrets ¶
GetSecrets returns all secrets as a map. If the new [secrets] section is used, returns that map. Otherwise, wraps the single Secret as {"default": Secret}.
type ListConfig ¶
type ListConfig struct {
Optional
DownloadConcurrency TypeConcurrency `json:"downloadConcurrency"`
URLs []TypeBlocklistURI `json:"urls"`
UpdateEach TypeDuration `json:"updateEach"`
}
type TypeBlocklistURI ¶
type TypeBlocklistURI struct {
Value string
}
func (TypeBlocklistURI) Get ¶
func (t TypeBlocklistURI) Get(defaultValue string) string
func (TypeBlocklistURI) IsRemote ¶
func (t TypeBlocklistURI) IsRemote() bool
func (TypeBlocklistURI) MarshalText ¶
func (t TypeBlocklistURI) MarshalText() ([]byte, error)
func (*TypeBlocklistURI) Set ¶
func (t *TypeBlocklistURI) Set(value string) error
func (TypeBlocklistURI) String ¶
func (t TypeBlocklistURI) String() string
func (*TypeBlocklistURI) UnmarshalText ¶
func (t *TypeBlocklistURI) UnmarshalText(data []byte) error
type TypeBool ¶
type TypeBool struct {
Value bool
}
func (TypeBool) MarshalJSON ¶
func (*TypeBool) UnmarshalJSON ¶
type TypeBytes ¶
type TypeBytes struct {
Value units.Base2Bytes
}
func (TypeBytes) MarshalText ¶
func (*TypeBytes) UnmarshalText ¶
type TypeConcurrency ¶
type TypeConcurrency struct {
Value uint
}
func (TypeConcurrency) Get ¶
func (t TypeConcurrency) Get(defaultValue uint) uint
func (TypeConcurrency) MarshalJSON ¶
func (t TypeConcurrency) MarshalJSON() ([]byte, error)
func (*TypeConcurrency) Set ¶
func (t *TypeConcurrency) Set(value string) error
func (TypeConcurrency) String ¶
func (t TypeConcurrency) String() string
func (*TypeConcurrency) UnmarshalJSON ¶
func (t *TypeConcurrency) UnmarshalJSON(data []byte) error
type TypeDC ¶
type TypeDC struct {
Value int
}
func (TypeDC) MarshalJSON ¶
func (*TypeDC) UnmarshalJSON ¶
type TypeDNSURI ¶
func (TypeDNSURI) MarshalText ¶
func (t TypeDNSURI) MarshalText() ([]byte, error)
func (*TypeDNSURI) Set ¶
func (t *TypeDNSURI) Set(value string) error
func (TypeDNSURI) String ¶
func (t TypeDNSURI) String() string
func (*TypeDNSURI) UnmarshalText ¶
func (t *TypeDNSURI) UnmarshalText(data []byte) error
type TypeDuration ¶
func (TypeDuration) MarshalText ¶
func (t TypeDuration) MarshalText() ([]byte, error)
func (*TypeDuration) Set ¶
func (t *TypeDuration) Set(value string) error
func (TypeDuration) String ¶
func (t TypeDuration) String() string
func (*TypeDuration) UnmarshalText ¶
func (t *TypeDuration) UnmarshalText(data []byte) error
type TypeErrorRate ¶
type TypeErrorRate struct {
Value float64
}
func (TypeErrorRate) Get ¶
func (t TypeErrorRate) Get(defaultValue float64) float64
func (TypeErrorRate) MarshalJSON ¶
func (t TypeErrorRate) MarshalJSON() ([]byte, error)
func (*TypeErrorRate) Set ¶
func (t *TypeErrorRate) Set(value string) error
func (TypeErrorRate) String ¶
func (t TypeErrorRate) String() string
func (*TypeErrorRate) UnmarshalJSON ¶
func (t *TypeErrorRate) UnmarshalJSON(data []byte) error
type TypeHTTPPath ¶
type TypeHTTPPath struct {
Value string
}
func (TypeHTTPPath) Get ¶
func (t TypeHTTPPath) Get(defaultValue string) string
func (TypeHTTPPath) MarshalText ¶
func (t TypeHTTPPath) MarshalText() ([]byte, error)
func (*TypeHTTPPath) Set ¶
func (t *TypeHTTPPath) Set(value string) error
func (TypeHTTPPath) String ¶
func (t TypeHTTPPath) String() string
func (*TypeHTTPPath) UnmarshalText ¶
func (t *TypeHTTPPath) UnmarshalText(data []byte) error
type TypeHostPort ¶
func (TypeHostPort) Get ¶
func (t TypeHostPort) Get(defaultValue string) string
func (TypeHostPort) MarshalText ¶
func (t TypeHostPort) MarshalText() ([]byte, error)
func (*TypeHostPort) Set ¶
func (t *TypeHostPort) Set(value string) error
func (TypeHostPort) String ¶
func (t TypeHostPort) String() string
func (*TypeHostPort) UnmarshalText ¶
func (t *TypeHostPort) UnmarshalText(data []byte) error
type TypeHttpsURL ¶
func (TypeHttpsURL) MarshalText ¶
func (t TypeHttpsURL) MarshalText() ([]byte, error)
func (*TypeHttpsURL) Set ¶
func (t *TypeHttpsURL) Set(value string) error
func (TypeHttpsURL) String ¶
func (t TypeHttpsURL) String() string
func (*TypeHttpsURL) UnmarshalText ¶
func (t *TypeHttpsURL) UnmarshalText(data []byte) error
type TypeMetricPrefix ¶
type TypeMetricPrefix struct {
Value string
}
func (TypeMetricPrefix) Get ¶
func (t TypeMetricPrefix) Get(defaultValue string) string
func (TypeMetricPrefix) MarshalText ¶
func (t TypeMetricPrefix) MarshalText() ([]byte, error)
func (*TypeMetricPrefix) Set ¶
func (t *TypeMetricPrefix) Set(value string) error
func (TypeMetricPrefix) String ¶
func (t TypeMetricPrefix) String() string
func (*TypeMetricPrefix) UnmarshalText ¶
func (t *TypeMetricPrefix) UnmarshalText(data []byte) error
type TypePort ¶
type TypePort struct {
Value uint
}
func (TypePort) MarshalJSON ¶
func (*TypePort) UnmarshalJSON ¶
type TypePreferIP ¶
type TypePreferIP struct {
Value string
}
func (*TypePreferIP) Get ¶
func (t *TypePreferIP) Get(defaultValue string) string
func (TypePreferIP) MarshalText ¶
func (t TypePreferIP) MarshalText() ([]byte, error)
func (*TypePreferIP) Set ¶
func (t *TypePreferIP) Set(value string) error
func (TypePreferIP) String ¶
func (t TypePreferIP) String() string
func (*TypePreferIP) UnmarshalText ¶
func (t *TypePreferIP) UnmarshalText(data []byte) error
type TypeProxyURL ¶
func (TypeProxyURL) MarshalText ¶
func (t TypeProxyURL) MarshalText() ([]byte, error)
func (*TypeProxyURL) Set ¶
func (t *TypeProxyURL) Set(value string) error
func (TypeProxyURL) String ¶
func (t TypeProxyURL) String() string
func (*TypeProxyURL) UnmarshalText ¶
func (t *TypeProxyURL) UnmarshalText(data []byte) error
type TypeStatsdTagFormat ¶
type TypeStatsdTagFormat struct {
Value string
}
func (TypeStatsdTagFormat) Get ¶
func (t TypeStatsdTagFormat) Get(defaultValue string) string
func (*TypeStatsdTagFormat) MarshalText ¶
func (t *TypeStatsdTagFormat) MarshalText() ([]byte, error)
func (*TypeStatsdTagFormat) Set ¶
func (t *TypeStatsdTagFormat) Set(value string) error
func (*TypeStatsdTagFormat) String ¶
func (t *TypeStatsdTagFormat) String() string
func (*TypeStatsdTagFormat) UnmarshalText ¶
func (t *TypeStatsdTagFormat) UnmarshalText(data []byte) error
Source Files
¶
Click to show internal directories.
Click to hide internal directories.