Documentation ¶
Index ¶
- func SetGlobal(c *Config)
- type APIConfig
- type AdmissionConfig
- type AuthConfig
- type AutherConfig
- type BypassConfig
- type ChainConfig
- type Config
- type ConnectorConfig
- type DialerConfig
- type ForwarderConfig
- type HandlerConfig
- type HopConfig
- type HostMappingConfig
- type HostsConfig
- type ListenerConfig
- type LogConfig
- type MetricsConfig
- type NameserverConfig
- type NodeConfig
- type ProfilingConfig
- type ResolverConfig
- type SelectorConfig
- type ServiceConfig
- type TLSConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type APIConfig ¶
type APIConfig struct { Addr string `json:"addr"` PathPrefix string `yaml:"pathPrefix,omitempty" json:"pathPrefix,omitempty"` AccessLog bool `yaml:"accesslog,omitempty" json:"accesslog,omitempty"` Auth *AuthConfig `yaml:",omitempty" json:"auth,omitempty"` Auther string `yaml:",omitempty" json:"auther,omitempty"` }
type AdmissionConfig ¶
type AuthConfig ¶
type AutherConfig ¶
type AutherConfig struct { Name string `json:"name"` // inline, file, redis, etc. Type string `yaml:",omitempty" json:"type,omitempty"` Auths []*AuthConfig `yaml:",omitempty" json:"auths"` }
type BypassConfig ¶
type ChainConfig ¶
type ChainConfig struct { Name string `json:"name"` Selector *SelectorConfig `yaml:",omitempty" json:"selector,omitempty"` Hops []*HopConfig `json:"hops"` }
type Config ¶
type Config struct { Services []*ServiceConfig `json:"services"` Chains []*ChainConfig `yaml:",omitempty" json:"chains,omitempty"` Authers []*AutherConfig `yaml:",omitempty" json:"authers,omitempty"` Admissions []*AdmissionConfig `yaml:",omitempty" json:"admissions,omitempty"` Bypasses []*BypassConfig `yaml:",omitempty" json:"bypasses,omitempty"` Resolvers []*ResolverConfig `yaml:",omitempty" json:"resolvers,omitempty"` Hosts []*HostsConfig `yaml:",omitempty" json:"hosts,omitempty"` TLS *TLSConfig `yaml:",omitempty" json:"tls,omitempty"` Log *LogConfig `yaml:",omitempty" json:"log,omitempty"` Profiling *ProfilingConfig `yaml:",omitempty" json:"profiling,omitempty"` API *APIConfig `yaml:",omitempty" json:"api,omitempty"` Metrics *MetricsConfig `yaml:",omitempty" json:"metrics,omitempty"` }
type ConnectorConfig ¶
type ConnectorConfig struct { Type string `json:"type"` Auth *AuthConfig `yaml:",omitempty" json:"auth,omitempty"` TLS *TLSConfig `yaml:",omitempty" json:"tls,omitempty"` Metadata map[string]any `yaml:",omitempty" json:"metadata,omitempty"` }
type DialerConfig ¶
type DialerConfig struct { Type string `json:"type"` Auth *AuthConfig `yaml:",omitempty" json:"auth,omitempty"` TLS *TLSConfig `yaml:",omitempty" json:"tls,omitempty"` Metadata map[string]any `yaml:",omitempty" json:"metadata,omitempty"` }
type ForwarderConfig ¶
type ForwarderConfig struct { Targets []string `json:"targets"` Selector *SelectorConfig `yaml:",omitempty" json:"selector,omitempty"` }
type HandlerConfig ¶
type HandlerConfig struct { Type string `json:"type"` Retries int `yaml:",omitempty" json:"retries,omitempty"` Chain string `yaml:",omitempty" json:"chain,omitempty"` Auther string `yaml:",omitempty" json:"auther,omitempty"` Auth *AuthConfig `yaml:",omitempty" json:"auth,omitempty"` TLS *TLSConfig `yaml:",omitempty" json:"tls,omitempty"` Metadata map[string]any `yaml:",omitempty" json:"metadata,omitempty"` }
type HopConfig ¶
type HopConfig struct { Name string `json:"name"` Interface string `yaml:",omitempty" json:"interface,omitempty"` Selector *SelectorConfig `yaml:",omitempty" json:"selector,omitempty"` Bypass string `yaml:",omitempty" json:"bypass,omitempty"` Resolver string `yaml:",omitempty" json:"resolver,omitempty"` Hosts string `yaml:",omitempty" json:"hosts,omitempty"` Nodes []*NodeConfig `json:"nodes"` }
type HostMappingConfig ¶
type HostsConfig ¶
type HostsConfig struct { Name string `json:"name"` // inline, file, etc. Type string `yaml:",omitempty" json:"type,omitempty"` Mappings []*HostMappingConfig `json:"mappings"` }
type ListenerConfig ¶
type ListenerConfig struct { Type string `json:"type"` Chain string `yaml:",omitempty" json:"chain,omitempty"` Auther string `yaml:",omitempty" json:"auther,omitempty"` Auth *AuthConfig `yaml:",omitempty" json:"auth,omitempty"` TLS *TLSConfig `yaml:",omitempty" json:"tls,omitempty"` Metadata map[string]any `yaml:",omitempty" json:"metadata,omitempty"` }
type MetricsConfig ¶
type NameserverConfig ¶
type NameserverConfig struct { Addr string `json:"addr"` Chain string `yaml:",omitempty" json:"chain,omitempty"` Prefer string `yaml:",omitempty" json:"prefer,omitempty"` ClientIP string `yaml:"clientIP,omitempty" json:"clientIP,omitempty"` Hostname string `yaml:",omitempty" json:"hostname,omitempty"` TTL time.Duration `yaml:",omitempty" json:"ttl,omitempty"` Timeout time.Duration `yaml:",omitempty" json:"timeout,omitempty"` }
type NodeConfig ¶
type NodeConfig struct { Name string `json:"name"` Addr string `yaml:",omitempty" json:"addr,omitempty"` Interface string `yaml:",omitempty" json:"interface,omitempty"` Bypass string `yaml:",omitempty" json:"bypass,omitempty"` Resolver string `yaml:",omitempty" json:"resolver,omitempty"` Hosts string `yaml:",omitempty" json:"hosts,omitempty"` Connector *ConnectorConfig `yaml:",omitempty" json:"connector,omitempty"` Dialer *DialerConfig `yaml:",omitempty" json:"dialer,omitempty"` }
type ProfilingConfig ¶
type ProfilingConfig struct {
Addr string `json:"addr"`
}
type ResolverConfig ¶
type ResolverConfig struct { Name string `json:"name"` // inline, file, etc. Type string `yaml:",omitempty" json:"type,omitempty"` Nameservers []*NameserverConfig `json:"nameservers"` }
type SelectorConfig ¶
type ServiceConfig ¶
type ServiceConfig struct { Name string `json:"name"` Addr string `yaml:",omitempty" json:"addr,omitempty"` Interface string `yaml:",omitempty" json:"interface,omitempty"` Admission string `yaml:",omitempty" json:"admission,omitempty"` Bypass string `yaml:",omitempty" json:"bypass,omitempty"` Resolver string `yaml:",omitempty" json:"resolver,omitempty"` Hosts string `yaml:",omitempty" json:"hosts,omitempty"` Handler *HandlerConfig `yaml:",omitempty" json:"handler,omitempty"` Listener *ListenerConfig `yaml:",omitempty" json:"listener,omitempty"` Forwarder *ForwarderConfig `yaml:",omitempty" json:"forwarder,omitempty"` }
type TLSConfig ¶
type TLSConfig struct { CertFile string `yaml:"certFile,omitempty" json:"certFile,omitempty"` KeyFile string `yaml:"keyFile,omitempty" json:"keyFile,omitempty"` CAFile string `yaml:"caFile,omitempty" json:"caFile,omitempty"` Secure bool `yaml:",omitempty" json:"secure,omitempty"` ServerName string `yaml:"serverName,omitempty" json:"serverName,omitempty"` }
Click to show internal directories.
Click to hide internal directories.