conf

package
v3.24.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 28, 2018 License: MIT Imports: 47 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AuthMethodNoAuth   = "noauth"
	AuthMethodUserPass = "password"
)

Variables

This section is empty.

Functions

func DefaultLogConfig

func DefaultLogConfig() *log.Config

func ParseIP

func ParseIP(s string) (*router.CIDR, error)

func ParseRule

func ParseRule(msg json.RawMessage) (*router.RoutingRule, error)

Types

type Address

type Address struct {
	v2net.Address
}

func (*Address) Build

func (v *Address) Build() *v2net.IPOrDomain

func (*Address) UnmarshalJSON

func (v *Address) UnmarshalJSON(data []byte) error

type ApiConfig

type ApiConfig struct {
	Tag      string   `json:"tag"`
	Services []string `json:"services"`
}

func (*ApiConfig) Build

func (c *ApiConfig) Build() (*commander.Config, error)

type BlackholeConfig

type BlackholeConfig struct {
	Response json.RawMessage `json:"response"`
}

func (*BlackholeConfig) Build

func (v *BlackholeConfig) Build() (*serial.TypedMessage, error)

type Buildable

type Buildable interface {
	Build() (*serial.TypedMessage, error)
}

type Config

type Config struct {
	Port            uint16                    `json:"port"` // Port of this Point server.
	LogConfig       *LogConfig                `json:"log"`
	RouterConfig    *RouterConfig             `json:"routing"`
	DNSConfig       *DnsConfig                `json:"dns"`
	InboundConfig   *InboundConnectionConfig  `json:"inbound"`
	OutboundConfig  *OutboundConnectionConfig `json:"outbound"`
	InboundDetours  []InboundDetourConfig     `json:"inboundDetour"`
	OutboundDetours []OutboundDetourConfig    `json:"outboundDetour"`
	Transport       *TransportConfig          `json:"transport"`
	Policy          *PolicyConfig             `json:"policy"`
	Api             *ApiConfig                `json:"api"`
	Stats           *StatsConfig              `json:"stats"`
}

func (*Config) Build

func (c *Config) Build() (*core.Config, error)

Build implements Buildable.

type ConfigCreator

type ConfigCreator func() interface{}

type ConfigCreatorCache

type ConfigCreatorCache map[string]ConfigCreator

func (ConfigCreatorCache) CreateConfig

func (v ConfigCreatorCache) CreateConfig(id string) (interface{}, error)

func (ConfigCreatorCache) RegisterCreator

func (v ConfigCreatorCache) RegisterCreator(id string, creator ConfigCreator) error

type DTLSAuthenticator

type DTLSAuthenticator struct{}

func (DTLSAuthenticator) Build

type DnsConfig

type DnsConfig struct {
	Servers []*Address          `json:"servers"`
	Hosts   map[string]*Address `json:"hosts"`
}

DnsConfig is a JSON serializable object for dns.Config.

func (*DnsConfig) Build

func (c *DnsConfig) Build() *dns.Config

Build implements Buildable

type DokodemoConfig

type DokodemoConfig struct {
	Host         *Address     `json:"address"`
	PortValue    uint16       `json:"port"`
	NetworkList  *NetworkList `json:"network"`
	TimeoutValue uint32       `json:"timeout"`
	Redirect     bool         `json:"followRedirect"`
	UserLevel    uint32       `json:"userLevel"`
}

func (*DokodemoConfig) Build

func (v *DokodemoConfig) Build() (*serial.TypedMessage, error)

type DomainSocketConfig

type DomainSocketConfig struct {
	Path     string `json:"path"`
	Abstract bool   `json:"abstract"`
}

func (*DomainSocketConfig) Build

type FeaturesConfig

type FeaturesConfig struct {
	Detour *VMessDetourConfig `json:"detour"`
}

type FreedomConfig

type FreedomConfig struct {
	DomainStrategy string  `json:"domainStrategy"`
	Timeout        *uint32 `json:"timeout"`
	Redirect       string  `json:"redirect"`
	UserLevel      uint32  `json:"userLevel"`
}

func (*FreedomConfig) Build

func (c *FreedomConfig) Build() (*serial.TypedMessage, error)

Build implements Buildable

type HTTPAuthenticator

type HTTPAuthenticator struct {
	Request  HTTPAuthenticatorRequest  `json:"request"`
	Response HTTPAuthenticatorResponse `json:"response"`
}

func (*HTTPAuthenticator) Build

func (v *HTTPAuthenticator) Build() (*serial.TypedMessage, error)

type HTTPAuthenticatorRequest

type HTTPAuthenticatorRequest struct {
	Version string                 `json:"version"`
	Method  string                 `json:"method"`
	Path    StringList             `json:"path"`
	Headers map[string]*StringList `json:"headers"`
}

func (*HTTPAuthenticatorRequest) Build

type HTTPAuthenticatorResponse

type HTTPAuthenticatorResponse struct {
	Version string                 `json:"version"`
	Status  string                 `json:"status"`
	Reason  string                 `json:"reason"`
	Headers map[string]*StringList `json:"headers"`
}

func (*HTTPAuthenticatorResponse) Build

type HTTPConfig

type HTTPConfig struct {
	Host *StringList `json:"host"`
	Path string      `json:"path"`
}

func (*HTTPConfig) Build

func (c *HTTPConfig) Build() (*serial.TypedMessage, error)

type HttpAccount

type HttpAccount struct {
	Username string `json:"user"`
	Password string `json:"pass"`
}

type HttpResponse

type HttpResponse struct{}

func (*HttpResponse) Build

func (*HttpResponse) Build() (*serial.TypedMessage, error)

type HttpServerConfig

type HttpServerConfig struct {
	Timeout     uint32         `json:"timeout"`
	Accounts    []*HttpAccount `json:"accounts"`
	Transparent bool           `json:"allowTransparent"`
	UserLevel   uint32         `json:"userLevel"`
}

func (*HttpServerConfig) Build

func (c *HttpServerConfig) Build() (*serial.TypedMessage, error)

type InboundConnectionConfig

type InboundConnectionConfig struct {
	Port           *PortRange      `json:"port"`
	Listen         *Address        `json:"listen"`
	Protocol       string          `json:"protocol"`
	StreamSetting  *StreamConfig   `json:"streamSettings"`
	Settings       json.RawMessage `json:"settings"`
	Tag            string          `json:"tag"`
	DomainOverride *StringList     `json:"domainOverride"`
}

func (*InboundConnectionConfig) Build

Build implements Buildable.

type InboundDetourAllocationConfig

type InboundDetourAllocationConfig struct {
	Strategy    string  `json:"strategy"`
	Concurrency *uint32 `json:"concurrency"`
	RefreshMin  *uint32 `json:"refresh"`
}

func (*InboundDetourAllocationConfig) Build

Build implements Buildable.

type InboundDetourConfig

type InboundDetourConfig struct {
	Protocol       string                         `json:"protocol"`
	PortRange      *PortRange                     `json:"port"`
	ListenOn       *Address                       `json:"listen"`
	Settings       json.RawMessage                `json:"settings"`
	Tag            string                         `json:"tag"`
	Allocation     *InboundDetourAllocationConfig `json:"allocate"`
	StreamSetting  *StreamConfig                  `json:"streamSettings"`
	DomainOverride *StringList                    `json:"domainOverride"`
}

func (*InboundDetourConfig) Build

Build implements Buildable.

type JSONConfigLoader

type JSONConfigLoader struct {
	// contains filtered or unexported fields
}

func NewJSONConfigLoader

func NewJSONConfigLoader(cache ConfigCreatorCache, idKey string, configKey string) *JSONConfigLoader

func (*JSONConfigLoader) Load

func (v *JSONConfigLoader) Load(raw []byte) (interface{}, string, error)

func (*JSONConfigLoader) LoadWithID

func (v *JSONConfigLoader) LoadWithID(raw []byte, id string) (interface{}, error)

type KCPConfig

type KCPConfig struct {
	Mtu             *uint32         `json:"mtu"`
	Tti             *uint32         `json:"tti"`
	UpCap           *uint32         `json:"uplinkCapacity"`
	DownCap         *uint32         `json:"downlinkCapacity"`
	Congestion      *bool           `json:"congestion"`
	ReadBufferSize  *uint32         `json:"readBufferSize"`
	WriteBufferSize *uint32         `json:"writeBufferSize"`
	HeaderConfig    json.RawMessage `json:"header"`
}

func (*KCPConfig) Build

func (c *KCPConfig) Build() (*serial.TypedMessage, error)

Build implements Buildable.

type LogConfig

type LogConfig struct {
	AccessLog string `json:"access"`
	ErrorLog  string `json:"error"`
	LogLevel  string `json:"loglevel"`
}

func (*LogConfig) Build

func (v *LogConfig) Build() *log.Config

type MuxConfig

type MuxConfig struct {
	Enabled     bool   `json:"enabled"`
	Concurrency uint16 `json:"concurrency"`
}

func (*MuxConfig) GetConcurrency

func (c *MuxConfig) GetConcurrency() uint16

type Network

type Network string

func (Network) Build

func (v Network) Build() v2net.Network

type NetworkList

type NetworkList []Network

func (*NetworkList) Build

func (v *NetworkList) Build() *v2net.NetworkList

func (*NetworkList) UnmarshalJSON

func (v *NetworkList) UnmarshalJSON(data []byte) error

type NoOpAuthenticator

type NoOpAuthenticator struct{}

func (NoOpAuthenticator) Build

type NoOpConnectionAuthenticator

type NoOpConnectionAuthenticator struct{}

func (NoOpConnectionAuthenticator) Build

type NoneResponse

type NoneResponse struct{}

func (*NoneResponse) Build

func (*NoneResponse) Build() (*serial.TypedMessage, error)

type OutboundConnectionConfig

type OutboundConnectionConfig struct {
	Protocol      string          `json:"protocol"`
	SendThrough   *Address        `json:"sendThrough"`
	StreamSetting *StreamConfig   `json:"streamSettings"`
	ProxySettings *ProxyConfig    `json:"proxySettings"`
	Settings      json.RawMessage `json:"settings"`
	Tag           string          `json:"tag"`
	MuxSettings   *MuxConfig      `json:"mux"`
}

func (*OutboundConnectionConfig) Build

Build implements Buildable.

type OutboundDetourConfig

type OutboundDetourConfig struct {
	Protocol      string          `json:"protocol"`
	SendThrough   *Address        `json:"sendThrough"`
	Tag           string          `json:"tag"`
	Settings      json.RawMessage `json:"settings"`
	StreamSetting *StreamConfig   `json:"streamSettings"`
	ProxySettings *ProxyConfig    `json:"proxySettings"`
	MuxSettings   *MuxConfig      `json:"mux"`
}

func (*OutboundDetourConfig) Build

Build implements Buildable.

type Policy

type Policy struct {
	Handshake         *uint32 `json:"handshake"`
	ConnectionIdle    *uint32 `json:"connIdle"`
	UplinkOnly        *uint32 `json:"uplinkOnly"`
	DownlinkOnly      *uint32 `json:"downlinkOnly"`
	StatsUserUplink   bool    `json:"statsUserUplink"`
	StatsUserDownlink bool    `json:"statsUserDownlink"`
	BufferSize        *int32  `json:"bufferSize"`
}

func (*Policy) Build

func (t *Policy) Build() (*policy.Policy, error)

type PolicyConfig

type PolicyConfig struct {
	Levels map[uint32]*Policy `json:"levels"`
	System *SystemPolicy      `json:"system"`
}

func (*PolicyConfig) Build

func (c *PolicyConfig) Build() (*policy.Config, error)

type PortRange

type PortRange struct {
	From uint32
	To   uint32
}

func (*PortRange) Build

func (v *PortRange) Build() *v2net.PortRange

func (*PortRange) UnmarshalJSON

func (v *PortRange) UnmarshalJSON(data []byte) error

UnmarshalJSON implements encoding/json.Unmarshaler.UnmarshalJSON

type ProxyConfig

type ProxyConfig struct {
	Tag string `json:"tag"`
}

func (*ProxyConfig) Build

func (v *ProxyConfig) Build() (*internet.ProxyConfig, error)

Build implements Buildable.

type RouterConfig

type RouterConfig struct {
	Settings *RouterRulesConfig `json:"settings"`
}

func (*RouterConfig) Build

func (c *RouterConfig) Build() (*router.Config, error)

type RouterRule

type RouterRule struct {
	Type        string `json:"type"`
	OutboundTag string `json:"outboundTag"`
}

type RouterRulesConfig

type RouterRulesConfig struct {
	RuleList       []json.RawMessage `json:"rules"`
	DomainStrategy string            `json:"domainStrategy"`
}

type SRTPAuthenticator

type SRTPAuthenticator struct{}

func (SRTPAuthenticator) Build

type ShadowsocksClientConfig

type ShadowsocksClientConfig struct {
	Servers []*ShadowsocksServerTarget `json:"servers"`
}

func (*ShadowsocksClientConfig) Build

type ShadowsocksServerConfig

type ShadowsocksServerConfig struct {
	Cipher      string       `json:"method"`
	Password    string       `json:"password"`
	UDP         bool         `json:"udp"`
	Level       byte         `json:"level"`
	Email       string       `json:"email"`
	OTA         *bool        `json:"ota"`
	NetworkList *NetworkList `json:"network"`
}

func (*ShadowsocksServerConfig) Build

type ShadowsocksServerTarget

type ShadowsocksServerTarget struct {
	Address  *Address `json:"address"`
	Port     uint16   `json:"port"`
	Cipher   string   `json:"method"`
	Password string   `json:"password"`
	Email    string   `json:"email"`
	Ota      bool     `json:"ota"`
	Level    byte     `json:"level"`
}

type SocksAccount

type SocksAccount struct {
	Username string `json:"user"`
	Password string `json:"pass"`
}

func (*SocksAccount) Build

func (v *SocksAccount) Build() *socks.Account

type SocksClientConfig

type SocksClientConfig struct {
	Servers []*SocksRemoteConfig `json:"servers"`
}

func (*SocksClientConfig) Build

func (v *SocksClientConfig) Build() (*serial.TypedMessage, error)

type SocksRemoteConfig

type SocksRemoteConfig struct {
	Address *Address          `json:"address"`
	Port    uint16            `json:"port"`
	Users   []json.RawMessage `json:"users"`
}

type SocksServerConfig

type SocksServerConfig struct {
	AuthMethod string          `json:"auth"`
	Accounts   []*SocksAccount `json:"accounts"`
	UDP        bool            `json:"udp"`
	Host       *Address        `json:"ip"`
	Timeout    uint32          `json:"timeout"`
	UserLevel  uint32          `json:"userLevel"`
}

func (*SocksServerConfig) Build

func (v *SocksServerConfig) Build() (*serial.TypedMessage, error)

type StatsConfig

type StatsConfig struct{}

func (*StatsConfig) Build

func (c *StatsConfig) Build() (*stats.Config, error)

type StreamConfig

type StreamConfig struct {
	Network      *TransportProtocol  `json:"network"`
	Security     string              `json:"security"`
	TLSSettings  *TLSConfig          `json:"tlsSettings"`
	TCPSettings  *TCPConfig          `json:"tcpSettings"`
	KCPSettings  *KCPConfig          `json:"kcpSettings"`
	WSSettings   *WebSocketConfig    `json:"wsSettings"`
	HTTPSettings *HTTPConfig         `json:"httpSettings"`
	DSSettings   *DomainSocketConfig `json:"dsSettings"`
}

func (*StreamConfig) Build

func (c *StreamConfig) Build() (*internet.StreamConfig, error)

Build implements Buildable.

type StringList

type StringList []string

func NewStringList

func NewStringList(raw []string) *StringList

func (StringList) Len

func (v StringList) Len() int

func (*StringList) UnmarshalJSON

func (v *StringList) UnmarshalJSON(data []byte) error

type SystemPolicy

type SystemPolicy struct {
	StatsInboundUplink   bool `json:"statsInboundUplink"`
	StatsInboundDownlink bool `json:"statsInboundDownlink"`
}

func (*SystemPolicy) Build

func (p *SystemPolicy) Build() (*policy.SystemPolicy, error)

type TCPConfig

type TCPConfig struct {
	HeaderConfig json.RawMessage `json:"header"`
}

func (*TCPConfig) Build

func (c *TCPConfig) Build() (*serial.TypedMessage, error)

Build implements Buildable.

type TLSCertConfig

type TLSCertConfig struct {
	CertFile string   `json:"certificateFile"`
	CertStr  []string `json:"certificate"`
	KeyFile  string   `json:"keyFile"`
	KeyStr   []string `json:"key"`
	Usage    string   `json:"usage"`
}

func (*TLSCertConfig) Build

func (c *TLSCertConfig) Build() (*tls.Certificate, error)

type TLSConfig

type TLSConfig struct {
	Insecure        bool             `json:"allowInsecure"`
	InsecureCiphers bool             `json:"allowInsecureCiphers"`
	Certs           []*TLSCertConfig `json:"certificates"`
	ServerName      string           `json:"serverName"`
	ALPN            *StringList      `json:"alpn"`
}

func (*TLSConfig) Build

func (c *TLSConfig) Build() (*serial.TypedMessage, error)

Build implements Buildable.

type TransportConfig

type TransportConfig struct {
	TCPConfig  *TCPConfig          `json:"tcpSettings"`
	KCPConfig  *KCPConfig          `json:"kcpSettings"`
	WSConfig   *WebSocketConfig    `json:"wsSettings"`
	HTTPConfig *HTTPConfig         `json:"httpSettings"`
	DSConfig   *DomainSocketConfig `json:"dsSettings"`
}

func (*TransportConfig) Build

func (c *TransportConfig) Build() (*transport.Config, error)

Build implements Buildable.

type TransportProtocol

type TransportProtocol string

func (TransportProtocol) Build

Build implements Buildable.

type UTPAuthenticator

type UTPAuthenticator struct{}

func (UTPAuthenticator) Build

type User

type User struct {
	EmailString string `json:"email"`
	LevelByte   byte   `json:"level"`
}

func (*User) Build

func (v *User) Build() *protocol.User

type VMessAccount

type VMessAccount struct {
	ID       string `json:"id"`
	AlterIds uint16 `json:"alterId"`
	Security string `json:"security"`
}

func (*VMessAccount) Build

func (a *VMessAccount) Build() *vmess.Account

Build implements Buildable

type VMessDefaultConfig

type VMessDefaultConfig struct {
	AlterIDs uint16 `json:"alterId"`
	Level    byte   `json:"level"`
}

func (*VMessDefaultConfig) Build

Build implements Buildable

type VMessDetourConfig

type VMessDetourConfig struct {
	ToTag string `json:"to"`
}

func (*VMessDetourConfig) Build

Build implements Buildable

type VMessInboundConfig

type VMessInboundConfig struct {
	Users        []json.RawMessage   `json:"clients"`
	Features     *FeaturesConfig     `json:"features"`
	Defaults     *VMessDefaultConfig `json:"default"`
	DetourConfig *VMessDetourConfig  `json:"detour"`
	SecureOnly   bool                `json:"disableInsecureEncryption"`
}

func (*VMessInboundConfig) Build

Build implements Buildable

type VMessOutboundConfig

type VMessOutboundConfig struct {
	Receivers []*VMessOutboundTarget `json:"vnext"`
}

func (*VMessOutboundConfig) Build

Build implements Buildable

type VMessOutboundTarget

type VMessOutboundTarget struct {
	Address *Address          `json:"address"`
	Port    uint16            `json:"port"`
	Users   []json.RawMessage `json:"users"`
}

type WebSocketConfig

type WebSocketConfig struct {
	Path    string            `json:"path"`
	Path2   string            `json:"Path"` // The key was misspelled. For backward compatibility, we have to keep track the old key.
	Headers map[string]string `json:"headers"`
}

func (*WebSocketConfig) Build

func (c *WebSocketConfig) Build() (*serial.TypedMessage, error)

Build implements Buildable.

type WechatVideoAuthenticator

type WechatVideoAuthenticator struct{}

func (WechatVideoAuthenticator) Build

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL