Documentation
¶
Index ¶
- func ListDir(dirPth string, suffix string) (files []string, err error)
- type Checker
- type Config
- type Forwarder
- func (f *Forwarder) AddHandler(h StatusHandler)
- func (f *Forwarder) AddInBytes(v uint64)
- func (f *Forwarder) AddOutBytes(v uint64)
- func (f *Forwarder) Addr() string
- func (f *Forwarder) ChkCount() uint32
- func (f *Forwarder) Dial(network, addr string) (c net.Conn, err error)
- func (f *Forwarder) Disable()
- func (f *Forwarder) Enable()
- func (f *Forwarder) Enabled() bool
- func (f *Forwarder) FID() uint32
- func (f *Forwarder) Failures() uint32
- func (f *Forwarder) GetCheckNow() bool
- func (f *Forwarder) InBytes() uint64
- func (f *Forwarder) IncChkCount()
- func (f *Forwarder) IncFailures()
- func (f *Forwarder) Latency() int64
- func (f *Forwarder) Latency_ms() int64
- func (f *Forwarder) MDisable()
- func (f *Forwarder) MDisabled() bool
- func (f *Forwarder) MEnable()
- func (f *Forwarder) MaxFailures() uint32
- func (f *Forwarder) OutBytes() uint64
- func (f *Forwarder) Priority() uint32
- func (f *Forwarder) SetCheckNow()
- func (f *Forwarder) SetChkCount(v uint32)
- func (f *Forwarder) SetFailures(v uint32)
- func (f *Forwarder) SetLatency(l int64)
- func (f *Forwarder) SetMaxFailures(l uint32)
- func (f *Forwarder) SetPriority(l uint32)
- func (f *Forwarder) SetTotalFails(v uint32)
- func (f *Forwarder) TotalFails() uint32
- func (f *Forwarder) URL() string
- type FwdrGroup
- func (p *FwdrGroup) Check()
- func (p *FwdrGroup) Dial(network, addr string) (net.Conn, proxy.Dialer, error)
- func (p *FwdrGroup) DialUDP(network, addr string) (pc net.PacketConn, dialer proxy.UDPDialer, err error)
- func (p *FwdrGroup) NextDialer(dstAddr string) proxy.Dialer
- func (p *FwdrGroup) Priority() uint32
- func (p *FwdrGroup) SetPriority(pri uint32)
- type Proxy
- func (p *Proxy) AddDomainIP(domain string, ip netip.Addr) error
- func (p *Proxy) Check()
- func (p *Proxy) Dial(network, addr string) (net.Conn, proxy.Dialer, error)
- func (p *Proxy) DialUDP(network, addr string) (pc net.PacketConn, dialer proxy.UDPDialer, err error)
- func (p *Proxy) GetAvailStatus(index uint32, url, enabled string, prio int) []ProxyStatus
- func (p *Proxy) GetMainStatus(index uint32, url, enabled string, prio int) []ProxyStatus
- func (p *Proxy) GetRateLimit() int64
- func (p *Proxy) MatchRoutes(target interface{}) string
- func (p *Proxy) NextDialer(dstAddr string) proxy.Dialer
- func (p *Proxy) OperateMain(id uint32, url, enabled string, prio int, op, stat string) []ProxyStatus
- func (p *Proxy) Record(dialer proxy.Dialer, success bool)
- func (p *Proxy) SetCheckNow(id uint32, url, enabled string, prio int)
- func (p *Proxy) SetRateLimit(rate int64)
- func (p *Proxy) UpdateInOut(dialer proxy.Dialer, inbytes, outbytes uint64)
- type ProxyStatus
- type StatusHandler
- type Strategy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct {
RulePath string
Forward []string
Strategy Strategy
DNSServers []string
IPSet string
Domain []string
IP []string
CIDR []string
StatusServer string
}
Config is config of rule.
func NewConfFromFile ¶
NewConfFromFile returns a new config from file.
type Forwarder ¶
type Forwarder struct {
proxy.Dialer
Inbytes uint64
Outbytes uint64
// contains filtered or unexported fields
}
Forwarder associates with a `-forward` command, usually a dialer or a chain of dialers.
func DirectForwarder ¶
DirectForwarder returns a direct forwarder.
func ForwarderFromURL ¶
func ForwarderFromURL(s, intface string, dialTimeout, relayTimeout time.Duration) (f *Forwarder, err error)
ForwarderFromURL parses `forward=` command value and returns a new forwarder.
func (*Forwarder) AddHandler ¶
func (f *Forwarder) AddHandler(h StatusHandler)
AddHandler adds a custom handler to handle the status change event.
func (*Forwarder) AddOutBytes ¶
func (*Forwarder) Addr ¶
Addr returns the forwarder's addr. NOTE: addr returns for chained dialers: dialer1Addr,dialer2Addr,...
func (*Forwarder) IncChkCount ¶
func (f *Forwarder) IncChkCount()
func (*Forwarder) IncFailures ¶
func (f *Forwarder) IncFailures()
IncFailures increase the failuer count by 1.
func (*Forwarder) Latency_ms ¶
Latency returns the latency of forwarder.
func (*Forwarder) MaxFailures ¶
MaxFailures returns the maxFailures of forwarder.
func (*Forwarder) SetCheckNow ¶
func (f *Forwarder) SetCheckNow()
func (*Forwarder) SetChkCount ¶
func (*Forwarder) SetLatency ¶
SetLatency sets the latency of forwarder.
func (*Forwarder) SetMaxFailures ¶
SetMaxFailures sets the maxFailures of forwarder.
func (*Forwarder) SetPriority ¶
SetPriority sets the priority of forwarder.
func (*Forwarder) SetTotalFails ¶
func (*Forwarder) TotalFails ¶
Failures returns the failuer count of forwarder.
type FwdrGroup ¶
type FwdrGroup struct {
Lweights []float64
// contains filtered or unexported fields
}
FwdrGroup is a forwarder group.
func NewFwdrGroup ¶
NewFwdrGroup returns a new forward group.
func (*FwdrGroup) DialUDP ¶
func (p *FwdrGroup) DialUDP(network, addr string) (pc net.PacketConn, dialer proxy.UDPDialer, err error)
DialUDP connects to the given address.
func (*FwdrGroup) NextDialer ¶
NextDialer returns the next dialer.
func (*FwdrGroup) SetPriority ¶
SetPriority sets the active priority of daler.
type Proxy ¶
type Proxy struct {
// contains filtered or unexported fields
}
Proxy implements the proxy.Proxy interface with rule support.
func (*Proxy) AddDomainIP ¶
AddDomainIP used to update ipMap rules according to domainMap rule.
func (*Proxy) DialUDP ¶
func (p *Proxy) DialUDP(network, addr string) (pc net.PacketConn, dialer proxy.UDPDialer, err error)
DialUDP connects to the given address via the proxy.
func (*Proxy) GetAvailStatus ¶
func (p *Proxy) GetAvailStatus(index uint32, url, enabled string, prio int) []ProxyStatus
func (*Proxy) GetMainStatus ¶
func (p *Proxy) GetMainStatus(index uint32, url, enabled string, prio int) []ProxyStatus
func (*Proxy) GetRateLimit ¶
Record records result while using the dialer from proxy.
func (*Proxy) MatchRoutes ¶
func (*Proxy) NextDialer ¶
NextDialer returns next dialer according to rule.
func (*Proxy) OperateMain ¶
func (*Proxy) SetRateLimit ¶
Record records result while using the dialer from proxy.
type ProxyStatus ¶
type ProxyStatus struct {
ID uint32 `json:"id"`
URL string `json:"url"`
Priority uint32 `json:"priority"`
MaxFailures uint32 `json:"max_failures"` // maxfailures to set to Disabled
Enabled bool `json:"enabled"`
ChkCount uint32 `json:"chkcount"`
MDisabled bool `json:"manualy_disabled"`
TotalFails uint32 `json:"failures"`
Latency int64 `json:"latency"`
InBytes uint64 `json:"inbytes"`
OutBytes uint64 `json:"outbytes"`
Maps string `json:"routemap"`
GroupName string `json:"groupname"`
GroupStrategy string `json:"groupstrategy"`
}
type StatusHandler ¶
type StatusHandler func(*Forwarder)
StatusHandler function will be called when the forwarder's status changed.
type Strategy ¶
type Strategy struct {
Strategy string
Check string
CheckInterval int
CheckTimeout int
PriorityStep int
CheckTolerance int
CheckLatencySamples int
CheckDisabledOnly bool
CheckLowerPriority bool
MaxFailures int
DialTimeout int
RelayTimeout int
IntFace string
}
Strategy configurations.