route

package
v1.10.0-beta.12 Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2024 License: GPL-2.0 Imports: 62 Imported by: 8

Documentation ¶

Index ¶

Constants ¶

This section is empty.

Variables ¶

View Source
var ErrBadPortRange = E.New("bad port range")

Functions ¶

func NewDNSRule ¶

func NewDNSRule(router adapter.Router, logger log.ContextLogger, options option.DNSRule, checkServer bool) (adapter.DNSRule, error)

func NewHeadlessRule ¶ added in v1.8.0

func NewHeadlessRule(router adapter.Router, options option.HeadlessRule) (adapter.HeadlessRule, error)

func NewRule ¶

func NewRule(router adapter.Router, logger log.ContextLogger, options option.Rule, checkOutbound bool) (adapter.Rule, error)

func NewRuleSet ¶ added in v1.8.0

func NewRuleSet(ctx context.Context, router adapter.Router, logger logger.ContextLogger, options option.RuleSet) (adapter.RuleSet, error)

Types ¶

type AdGuardDomainItem ¶ added in v1.10.0

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

func NewAdGuardDomainItem ¶ added in v1.10.0

func NewAdGuardDomainItem(ruleLines []string) *AdGuardDomainItem

func NewRawAdGuardDomainItem ¶ added in v1.10.0

func NewRawAdGuardDomainItem(matcher *domain.AdGuardMatcher) *AdGuardDomainItem

func (*AdGuardDomainItem) Match ¶ added in v1.10.0

func (r *AdGuardDomainItem) Match(metadata *adapter.InboundContext) bool

func (*AdGuardDomainItem) String ¶ added in v1.10.0

func (r *AdGuardDomainItem) String() string

type AuthUserItem ¶

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

func NewAuthUserItem ¶

func NewAuthUserItem(users []string) *AuthUserItem

func (*AuthUserItem) Match ¶

func (r *AuthUserItem) Match(metadata *adapter.InboundContext) bool

func (*AuthUserItem) String ¶

func (r *AuthUserItem) String() string

type ClashModeItem ¶ added in v1.1.0

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

func NewClashModeItem ¶ added in v1.1.0

func NewClashModeItem(router adapter.Router, mode string) *ClashModeItem

func (*ClashModeItem) Match ¶ added in v1.1.0

func (r *ClashModeItem) Match(metadata *adapter.InboundContext) bool

func (*ClashModeItem) String ¶ added in v1.1.0

func (r *ClashModeItem) String() string

type ClientItem ¶ added in v1.10.0

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

func NewClientItem ¶ added in v1.10.0

func NewClientItem(clients []string) *ClientItem

func (*ClientItem) Match ¶ added in v1.10.0

func (r *ClientItem) Match(metadata *adapter.InboundContext) bool

func (*ClientItem) String ¶ added in v1.10.0

func (r *ClientItem) String() string

type DNSReverseMapping ¶ added in v1.3.0

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

func NewDNSReverseMapping ¶ added in v1.3.0

func NewDNSReverseMapping() *DNSReverseMapping

func (*DNSReverseMapping) Query ¶ added in v1.3.0

func (m *DNSReverseMapping) Query(address netip.Addr) (string, bool)

func (*DNSReverseMapping) Save ¶ added in v1.3.0

func (m *DNSReverseMapping) Save(address netip.Addr, domain string, ttl int)

type DefaultDNSRule ¶

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

func NewDefaultDNSRule ¶

func NewDefaultDNSRule(router adapter.Router, logger log.ContextLogger, options option.DefaultDNSRule) (*DefaultDNSRule, error)

func (*DefaultDNSRule) ClientSubnet ¶ added in v1.8.12

func (r *DefaultDNSRule) ClientSubnet() *netip.Prefix

func (*DefaultDNSRule) Close ¶

func (r *DefaultDNSRule) Close() error

func (*DefaultDNSRule) DisableCache ¶

func (r *DefaultDNSRule) DisableCache() bool

func (*DefaultDNSRule) Match ¶

func (r *DefaultDNSRule) Match(metadata *adapter.InboundContext) bool

func (*DefaultDNSRule) MatchAddressLimit ¶ added in v1.8.12

func (r *DefaultDNSRule) MatchAddressLimit(metadata *adapter.InboundContext) bool

func (*DefaultDNSRule) Outbound ¶

func (r *DefaultDNSRule) Outbound() string

func (*DefaultDNSRule) RewriteTTL ¶ added in v1.3.0

func (r *DefaultDNSRule) RewriteTTL() *uint32

func (*DefaultDNSRule) Start ¶

func (r *DefaultDNSRule) Start() error

func (*DefaultDNSRule) String ¶

func (r *DefaultDNSRule) String() string

func (*DefaultDNSRule) Type ¶

func (r *DefaultDNSRule) Type() string

func (*DefaultDNSRule) UpdateGeosite ¶

func (r *DefaultDNSRule) UpdateGeosite() error

func (*DefaultDNSRule) WithAddressLimit ¶ added in v1.8.12

func (r *DefaultDNSRule) WithAddressLimit() bool

type DefaultHeadlessRule ¶ added in v1.8.0

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

func NewDefaultHeadlessRule ¶ added in v1.8.0

func NewDefaultHeadlessRule(router adapter.Router, options option.DefaultHeadlessRule) (*DefaultHeadlessRule, error)

func (*DefaultHeadlessRule) Close ¶ added in v1.8.0

func (r *DefaultHeadlessRule) Close() error

func (*DefaultHeadlessRule) Match ¶ added in v1.8.0

func (r *DefaultHeadlessRule) Match(metadata *adapter.InboundContext) bool

func (*DefaultHeadlessRule) Outbound ¶ added in v1.8.0

func (r *DefaultHeadlessRule) Outbound() string

func (*DefaultHeadlessRule) Start ¶ added in v1.8.0

func (r *DefaultHeadlessRule) Start() error

func (*DefaultHeadlessRule) String ¶ added in v1.8.0

func (r *DefaultHeadlessRule) String() string

func (*DefaultHeadlessRule) Type ¶ added in v1.8.0

func (r *DefaultHeadlessRule) Type() string

func (*DefaultHeadlessRule) UpdateGeosite ¶ added in v1.8.0

func (r *DefaultHeadlessRule) UpdateGeosite() error

type DefaultRule ¶

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

func NewDefaultRule ¶

func NewDefaultRule(router adapter.Router, logger log.ContextLogger, options option.DefaultRule) (*DefaultRule, error)

func (*DefaultRule) Close ¶

func (r *DefaultRule) Close() error

func (*DefaultRule) Match ¶

func (r *DefaultRule) Match(metadata *adapter.InboundContext) bool

func (*DefaultRule) Outbound ¶

func (r *DefaultRule) Outbound() string

func (*DefaultRule) Start ¶

func (r *DefaultRule) Start() error

func (*DefaultRule) String ¶

func (r *DefaultRule) String() string

func (*DefaultRule) Type ¶

func (r *DefaultRule) Type() string

func (*DefaultRule) UpdateGeosite ¶

func (r *DefaultRule) UpdateGeosite() error

type DomainItem ¶

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

func NewDomainItem ¶

func NewDomainItem(domains []string, domainSuffixes []string) *DomainItem

func NewRawDomainItem ¶ added in v1.8.0

func NewRawDomainItem(matcher *domain.Matcher) *DomainItem

func (*DomainItem) Match ¶

func (r *DomainItem) Match(metadata *adapter.InboundContext) bool

func (*DomainItem) String ¶

func (r *DomainItem) String() string

type DomainKeywordItem ¶

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

func NewDomainKeywordItem ¶

func NewDomainKeywordItem(keywords []string) *DomainKeywordItem

func (*DomainKeywordItem) Match ¶

func (r *DomainKeywordItem) Match(metadata *adapter.InboundContext) bool

func (*DomainKeywordItem) String ¶

func (r *DomainKeywordItem) String() string

type DomainRegexItem ¶

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

func NewDomainRegexItem ¶

func NewDomainRegexItem(expressions []string) (*DomainRegexItem, error)

func (*DomainRegexItem) Match ¶

func (r *DomainRegexItem) Match(metadata *adapter.InboundContext) bool

func (*DomainRegexItem) String ¶

func (r *DomainRegexItem) String() string

type GeoIPItem ¶

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

func NewGeoIPItem ¶

func NewGeoIPItem(router adapter.Router, logger log.ContextLogger, isSource bool, codes []string) *GeoIPItem

func (*GeoIPItem) Match ¶

func (r *GeoIPItem) Match(metadata *adapter.InboundContext) bool

func (*GeoIPItem) String ¶

func (r *GeoIPItem) String() string

type GeositeItem ¶

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

func NewGeositeItem ¶

func NewGeositeItem(router adapter.Router, logger log.ContextLogger, codes []string) *GeositeItem

func (*GeositeItem) Match ¶

func (r *GeositeItem) Match(metadata *adapter.InboundContext) bool

func (*GeositeItem) String ¶

func (r *GeositeItem) String() string

func (*GeositeItem) Update ¶

func (r *GeositeItem) Update() error

type IPCIDRItem ¶

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

func NewIPCIDRItem ¶

func NewIPCIDRItem(isSource bool, prefixStrings []string) (*IPCIDRItem, error)

func NewRawIPCIDRItem ¶ added in v1.8.0

func NewRawIPCIDRItem(isSource bool, ipSet *netipx.IPSet) *IPCIDRItem

func (*IPCIDRItem) Match ¶

func (r *IPCIDRItem) Match(metadata *adapter.InboundContext) bool

func (*IPCIDRItem) String ¶

func (r *IPCIDRItem) String() string

type IPIsPrivateItem ¶ added in v1.8.0

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

func NewIPIsPrivateItem ¶ added in v1.8.0

func NewIPIsPrivateItem(isSource bool) *IPIsPrivateItem

func (*IPIsPrivateItem) Match ¶ added in v1.8.0

func (r *IPIsPrivateItem) Match(metadata *adapter.InboundContext) bool

func (*IPIsPrivateItem) String ¶ added in v1.8.0

func (r *IPIsPrivateItem) String() string

type IPVersionItem ¶

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

func NewIPVersionItem ¶

func NewIPVersionItem(isIPv6 bool) *IPVersionItem

func (*IPVersionItem) Match ¶

func (r *IPVersionItem) Match(metadata *adapter.InboundContext) bool

func (*IPVersionItem) String ¶

func (r *IPVersionItem) String() string

type InboundItem ¶

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

func NewInboundRule ¶

func NewInboundRule(inbounds []string) *InboundItem

func (*InboundItem) Match ¶

func (r *InboundItem) Match(metadata *adapter.InboundContext) bool

func (*InboundItem) String ¶

func (r *InboundItem) String() string

type LocalRuleSet ¶ added in v1.8.0

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

func NewLocalRuleSet ¶ added in v1.8.0

func NewLocalRuleSet(ctx context.Context, router adapter.Router, logger logger.Logger, options option.RuleSet) (*LocalRuleSet, error)

func (*LocalRuleSet) Cleanup ¶ added in v1.10.0

func (s *LocalRuleSet) Cleanup()

func (*LocalRuleSet) Close ¶ added in v1.8.0

func (s *LocalRuleSet) Close() error

func (*LocalRuleSet) DecRef ¶ added in v1.10.0

func (s *LocalRuleSet) DecRef()

func (*LocalRuleSet) ExtractIPSet ¶ added in v1.10.0

func (s *LocalRuleSet) ExtractIPSet() []*netipx.IPSet

func (*LocalRuleSet) IncRef ¶ added in v1.10.0

func (s *LocalRuleSet) IncRef()

func (*LocalRuleSet) Match ¶ added in v1.8.0

func (s *LocalRuleSet) Match(metadata *adapter.InboundContext) bool

func (*LocalRuleSet) Metadata ¶ added in v1.8.0

func (s *LocalRuleSet) Metadata() adapter.RuleSetMetadata

func (*LocalRuleSet) Name ¶ added in v1.10.0

func (s *LocalRuleSet) Name() string

func (*LocalRuleSet) PostStart ¶ added in v1.8.0

func (s *LocalRuleSet) PostStart() error

func (*LocalRuleSet) RegisterCallback ¶ added in v1.10.0

func (*LocalRuleSet) StartContext ¶ added in v1.8.0

func (s *LocalRuleSet) StartContext(ctx context.Context, startContext adapter.RuleSetStartContext) error

func (*LocalRuleSet) String ¶ added in v1.8.12

func (s *LocalRuleSet) String() string

func (*LocalRuleSet) UnregisterCallback ¶ added in v1.10.0

func (s *LocalRuleSet) UnregisterCallback(element *list.Element[adapter.RuleSetUpdateCallback])

type LogicalDNSRule ¶

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

func NewLogicalDNSRule ¶

func NewLogicalDNSRule(router adapter.Router, logger log.ContextLogger, options option.LogicalDNSRule) (*LogicalDNSRule, error)

func (*LogicalDNSRule) ClientSubnet ¶ added in v1.8.12

func (r *LogicalDNSRule) ClientSubnet() *netip.Prefix

func (*LogicalDNSRule) Close ¶

func (r *LogicalDNSRule) Close() error

func (*LogicalDNSRule) DisableCache ¶

func (r *LogicalDNSRule) DisableCache() bool

func (*LogicalDNSRule) Match ¶

func (r *LogicalDNSRule) Match(metadata *adapter.InboundContext) bool

func (*LogicalDNSRule) MatchAddressLimit ¶ added in v1.8.12

func (r *LogicalDNSRule) MatchAddressLimit(metadata *adapter.InboundContext) bool

func (*LogicalDNSRule) Outbound ¶

func (r *LogicalDNSRule) Outbound() string

func (*LogicalDNSRule) RewriteTTL ¶ added in v1.3.0

func (r *LogicalDNSRule) RewriteTTL() *uint32

func (*LogicalDNSRule) Start ¶

func (r *LogicalDNSRule) Start() error

func (*LogicalDNSRule) String ¶

func (r *LogicalDNSRule) String() string

func (*LogicalDNSRule) Type ¶

func (r *LogicalDNSRule) Type() string

func (*LogicalDNSRule) UpdateGeosite ¶

func (r *LogicalDNSRule) UpdateGeosite() error

func (*LogicalDNSRule) WithAddressLimit ¶ added in v1.8.12

func (r *LogicalDNSRule) WithAddressLimit() bool

type LogicalHeadlessRule ¶ added in v1.8.0

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

func NewLogicalHeadlessRule ¶ added in v1.8.0

func NewLogicalHeadlessRule(router adapter.Router, options option.LogicalHeadlessRule) (*LogicalHeadlessRule, error)

func (*LogicalHeadlessRule) Close ¶ added in v1.8.0

func (r *LogicalHeadlessRule) Close() error

func (*LogicalHeadlessRule) Match ¶ added in v1.8.0

func (r *LogicalHeadlessRule) Match(metadata *adapter.InboundContext) bool

func (*LogicalHeadlessRule) Outbound ¶ added in v1.8.0

func (r *LogicalHeadlessRule) Outbound() string

func (*LogicalHeadlessRule) Start ¶ added in v1.8.0

func (r *LogicalHeadlessRule) Start() error

func (*LogicalHeadlessRule) String ¶ added in v1.8.0

func (r *LogicalHeadlessRule) String() string

func (*LogicalHeadlessRule) Type ¶ added in v1.8.0

func (r *LogicalHeadlessRule) Type() string

func (*LogicalHeadlessRule) UpdateGeosite ¶ added in v1.8.0

func (r *LogicalHeadlessRule) UpdateGeosite() error

type LogicalRule ¶

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

func NewLogicalRule ¶

func NewLogicalRule(router adapter.Router, logger log.ContextLogger, options option.LogicalRule) (*LogicalRule, error)

func (*LogicalRule) Close ¶

func (r *LogicalRule) Close() error

func (*LogicalRule) Match ¶

func (r *LogicalRule) Match(metadata *adapter.InboundContext) bool

func (*LogicalRule) Outbound ¶

func (r *LogicalRule) Outbound() string

func (*LogicalRule) Start ¶

func (r *LogicalRule) Start() error

func (*LogicalRule) String ¶

func (r *LogicalRule) String() string

func (*LogicalRule) Type ¶

func (r *LogicalRule) Type() string

func (*LogicalRule) UpdateGeosite ¶

func (r *LogicalRule) UpdateGeosite() error

type NetworkItem ¶

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

func NewNetworkItem ¶

func NewNetworkItem(networks []string) *NetworkItem

func (*NetworkItem) Match ¶

func (r *NetworkItem) Match(metadata *adapter.InboundContext) bool

func (*NetworkItem) String ¶

func (r *NetworkItem) String() string

type OutboundItem ¶

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

func NewOutboundRule ¶

func NewOutboundRule(outbounds []string) *OutboundItem

func (*OutboundItem) Match ¶

func (r *OutboundItem) Match(metadata *adapter.InboundContext) bool

func (*OutboundItem) String ¶

func (r *OutboundItem) String() string

type PackageNameItem ¶

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

func NewPackageNameItem ¶

func NewPackageNameItem(packageNameList []string) *PackageNameItem

func (*PackageNameItem) Match ¶

func (r *PackageNameItem) Match(metadata *adapter.InboundContext) bool

func (*PackageNameItem) String ¶

func (r *PackageNameItem) String() string

type PortItem ¶

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

func NewPortItem ¶

func NewPortItem(isSource bool, ports []uint16) *PortItem

func (*PortItem) Match ¶

func (r *PortItem) Match(metadata *adapter.InboundContext) bool

func (*PortItem) String ¶

func (r *PortItem) String() string

type PortRangeItem ¶

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

func NewPortRangeItem ¶

func NewPortRangeItem(isSource bool, rangeList []string) (*PortRangeItem, error)

func (*PortRangeItem) Match ¶

func (r *PortRangeItem) Match(metadata *adapter.InboundContext) bool

func (*PortRangeItem) String ¶

func (r *PortRangeItem) String() string

type ProcessItem ¶

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

func NewProcessItem ¶

func NewProcessItem(processNameList []string) *ProcessItem

func (*ProcessItem) Match ¶

func (r *ProcessItem) Match(metadata *adapter.InboundContext) bool

func (*ProcessItem) String ¶

func (r *ProcessItem) String() string

type ProcessPathItem ¶ added in v1.0.1

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

func NewProcessPathItem ¶ added in v1.0.1

func NewProcessPathItem(processNameList []string) *ProcessPathItem

func (*ProcessPathItem) Match ¶ added in v1.0.1

func (r *ProcessPathItem) Match(metadata *adapter.InboundContext) bool

func (*ProcessPathItem) String ¶ added in v1.0.1

func (r *ProcessPathItem) String() string

type ProcessPathRegexItem ¶ added in v1.10.0

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

func NewProcessPathRegexItem ¶ added in v1.10.0

func NewProcessPathRegexItem(expressions []string) (*ProcessPathRegexItem, error)

func (*ProcessPathRegexItem) Match ¶ added in v1.10.0

func (r *ProcessPathRegexItem) Match(metadata *adapter.InboundContext) bool

func (*ProcessPathRegexItem) String ¶ added in v1.10.0

func (r *ProcessPathRegexItem) String() string

type ProtocolItem ¶

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

func NewProtocolItem ¶

func NewProtocolItem(protocols []string) *ProtocolItem

func (*ProtocolItem) Match ¶

func (r *ProtocolItem) Match(metadata *adapter.InboundContext) bool

func (*ProtocolItem) String ¶

func (r *ProtocolItem) String() string

type QueryTypeItem ¶ added in v1.2.0

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

func NewQueryTypeItem ¶ added in v1.2.0

func NewQueryTypeItem(typeList []option.DNSQueryType) *QueryTypeItem

func (*QueryTypeItem) Match ¶ added in v1.2.0

func (r *QueryTypeItem) Match(metadata *adapter.InboundContext) bool

func (*QueryTypeItem) String ¶ added in v1.2.0

func (r *QueryTypeItem) String() string

type RemoteRuleSet ¶ added in v1.8.0

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

func NewRemoteRuleSet ¶ added in v1.8.0

func NewRemoteRuleSet(ctx context.Context, router adapter.Router, logger logger.ContextLogger, options option.RuleSet) *RemoteRuleSet

func (*RemoteRuleSet) Cleanup ¶ added in v1.10.0

func (s *RemoteRuleSet) Cleanup()

func (*RemoteRuleSet) Close ¶ added in v1.8.0

func (s *RemoteRuleSet) Close() error

func (*RemoteRuleSet) DecRef ¶ added in v1.10.0

func (s *RemoteRuleSet) DecRef()

func (*RemoteRuleSet) ExtractIPSet ¶ added in v1.10.0

func (s *RemoteRuleSet) ExtractIPSet() []*netipx.IPSet

func (*RemoteRuleSet) IncRef ¶ added in v1.10.0

func (s *RemoteRuleSet) IncRef()

func (*RemoteRuleSet) Match ¶ added in v1.8.0

func (s *RemoteRuleSet) Match(metadata *adapter.InboundContext) bool

func (*RemoteRuleSet) Metadata ¶ added in v1.8.0

func (s *RemoteRuleSet) Metadata() adapter.RuleSetMetadata

func (*RemoteRuleSet) Name ¶ added in v1.10.0

func (s *RemoteRuleSet) Name() string

func (*RemoteRuleSet) PostStart ¶ added in v1.8.0

func (s *RemoteRuleSet) PostStart() error

func (*RemoteRuleSet) RegisterCallback ¶ added in v1.10.0

func (*RemoteRuleSet) StartContext ¶ added in v1.8.0

func (s *RemoteRuleSet) StartContext(ctx context.Context, startContext adapter.RuleSetStartContext) error

func (*RemoteRuleSet) String ¶ added in v1.8.12

func (s *RemoteRuleSet) String() string

func (*RemoteRuleSet) UnregisterCallback ¶ added in v1.10.0

func (s *RemoteRuleSet) UnregisterCallback(element *list.Element[adapter.RuleSetUpdateCallback])

type Router ¶

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

func NewRouter ¶

func NewRouter(
	ctx context.Context,
	logFactory log.Factory,
	options option.RouteOptions,
	dnsOptions option.DNSOptions,
	ntpOptions option.NTPOptions,
	inbounds []option.Inbound,
	platformInterface platform.Interface,
) (*Router, error)

func (*Router) AutoDetectInterface ¶

func (r *Router) AutoDetectInterface() bool

func (*Router) AutoDetectInterfaceFunc ¶ added in v1.2.0

func (r *Router) AutoDetectInterfaceFunc() control.Func

func (*Router) AutoRedirectOutputMark ¶ added in v1.10.0

func (r *Router) AutoRedirectOutputMark() uint32

func (*Router) ClashServer ¶ added in v1.1.0

func (r *Router) ClashServer() adapter.ClashServer

func (*Router) Cleanup ¶ added in v1.10.0

func (r *Router) Cleanup() error

func (*Router) ClearDNSCache ¶ added in v1.4.0

func (r *Router) ClearDNSCache()

func (*Router) Close ¶

func (r *Router) Close() error

func (*Router) DefaultInterface ¶

func (r *Router) DefaultInterface() string

func (*Router) DefaultMark ¶

func (r *Router) DefaultMark() uint32

func (*Router) DefaultOutbound ¶

func (r *Router) DefaultOutbound(network string) (adapter.Outbound, error)

func (*Router) Exchange ¶

func (r *Router) Exchange(ctx context.Context, message *mDNS.Msg) (*mDNS.Msg, error)

func (*Router) FakeIPStore ¶ added in v1.3.0

func (r *Router) FakeIPStore() adapter.FakeIPStore

func (*Router) GeoIPReader ¶

func (r *Router) GeoIPReader() *geoip.Reader

func (*Router) Initialize ¶

func (r *Router) Initialize(inbounds []adapter.Inbound, outbounds []adapter.Outbound, defaultOutbound func() adapter.Outbound) error

func (*Router) InterfaceFinder ¶ added in v1.1.0

func (r *Router) InterfaceFinder() control.InterfaceFinder

func (*Router) InterfaceMonitor ¶

func (r *Router) InterfaceMonitor() tun.DefaultInterfaceMonitor

func (*Router) LoadGeosite ¶

func (r *Router) LoadGeosite(code string) (adapter.Rule, error)

func (*Router) Lookup ¶

func (r *Router) Lookup(ctx context.Context, domain string, strategy dns.DomainStrategy) ([]netip.Addr, error)

func (*Router) LookupDefault ¶

func (r *Router) LookupDefault(ctx context.Context, domain string) ([]netip.Addr, error)

func (*Router) NeedWIFIState ¶ added in v1.8.6

func (r *Router) NeedWIFIState() bool

func (*Router) NetworkMonitor ¶

func (r *Router) NetworkMonitor() tun.NetworkUpdateMonitor

func (*Router) NewError ¶

func (r *Router) NewError(ctx context.Context, err error)

func (*Router) OnPackagesUpdated ¶ added in v1.0.1

func (r *Router) OnPackagesUpdated(packages int, sharedUsers int)

func (*Router) Outbound ¶

func (r *Router) Outbound(tag string) (adapter.Outbound, bool)

func (*Router) Outbounds ¶

func (r *Router) Outbounds() []adapter.Outbound

func (*Router) PackageManager ¶ added in v1.0.1

func (r *Router) PackageManager() tun.PackageManager

func (*Router) PostStart ¶ added in v1.7.2

func (r *Router) PostStart() error

func (*Router) PreStart ¶ added in v1.8.0

func (r *Router) PreStart() error

func (*Router) RegisterAutoRedirectOutputMark ¶ added in v1.10.0

func (r *Router) RegisterAutoRedirectOutputMark(mark uint32) error

func (*Router) ResetNetwork ¶ added in v1.3.0

func (r *Router) ResetNetwork() error

func (*Router) RouteConnection ¶

func (r *Router) RouteConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*Router) RoutePacketConnection ¶

func (r *Router) RoutePacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*Router) RuleSet ¶ added in v1.8.0

func (r *Router) RuleSet(tag string) (adapter.RuleSet, bool)

func (*Router) Rules ¶

func (r *Router) Rules() []adapter.Rule

func (*Router) SetClashServer ¶ added in v1.1.0

func (r *Router) SetClashServer(server adapter.ClashServer)

func (*Router) SetV2RayServer ¶ added in v1.1.0

func (r *Router) SetV2RayServer(server adapter.V2RayServer)

func (*Router) Start ¶

func (r *Router) Start() error

func (*Router) UpdateInterfaces ¶ added in v1.2.5

func (r *Router) UpdateInterfaces() error

func (*Router) V2RayServer ¶ added in v1.1.0

func (r *Router) V2RayServer() adapter.V2RayServer

func (*Router) WIFIState ¶ added in v1.7.0

func (r *Router) WIFIState() adapter.WIFIState

type RuleItem ¶

type RuleItem interface {
	Match(metadata *adapter.InboundContext) bool
	String() string
}

type RuleSetItem ¶ added in v1.8.0

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

func NewRuleSetItem ¶ added in v1.8.0

func NewRuleSetItem(router adapter.Router, tagList []string, ipCIDRMatchSource bool, ipCidrAcceptEmpty bool) *RuleSetItem

func (*RuleSetItem) ContainsDestinationIPCIDRRule ¶ added in v1.8.12

func (r *RuleSetItem) ContainsDestinationIPCIDRRule() bool

func (*RuleSetItem) Match ¶ added in v1.8.0

func (r *RuleSetItem) Match(metadata *adapter.InboundContext) bool

func (*RuleSetItem) Start ¶ added in v1.8.0

func (r *RuleSetItem) Start() error

func (*RuleSetItem) String ¶ added in v1.8.0

func (r *RuleSetItem) String() string

type RuleSetStartContext ¶ added in v1.8.0

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

func NewRuleSetStartContext ¶ added in v1.8.0

func NewRuleSetStartContext() *RuleSetStartContext

func (*RuleSetStartContext) Close ¶ added in v1.8.0

func (c *RuleSetStartContext) Close()

func (*RuleSetStartContext) HTTPClient ¶ added in v1.8.0

func (c *RuleSetStartContext) HTTPClient(detour string, dialer N.Dialer) *http.Client

type UserIdItem ¶

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

func NewUserIDItem ¶

func NewUserIDItem(userIdList []int32) *UserIdItem

func (*UserIdItem) Match ¶

func (r *UserIdItem) Match(metadata *adapter.InboundContext) bool

func (*UserIdItem) String ¶

func (r *UserIdItem) String() string

type UserItem ¶

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

func NewUserItem ¶

func NewUserItem(users []string) *UserItem

func (*UserItem) Match ¶

func (r *UserItem) Match(metadata *adapter.InboundContext) bool

func (*UserItem) String ¶

func (r *UserItem) String() string

type WIFIBSSIDItem ¶ added in v1.7.0

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

func NewWIFIBSSIDItem ¶ added in v1.7.0

func NewWIFIBSSIDItem(router adapter.Router, bssidList []string) *WIFIBSSIDItem

func (*WIFIBSSIDItem) Match ¶ added in v1.7.0

func (r *WIFIBSSIDItem) Match(metadata *adapter.InboundContext) bool

func (*WIFIBSSIDItem) String ¶ added in v1.7.0

func (r *WIFIBSSIDItem) String() string

type WIFISSIDItem ¶ added in v1.7.0

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

func NewWIFISSIDItem ¶ added in v1.7.0

func NewWIFISSIDItem(router adapter.Router, ssidList []string) *WIFISSIDItem

func (*WIFISSIDItem) Match ¶ added in v1.7.0

func (r *WIFISSIDItem) Match(metadata *adapter.InboundContext) bool

func (*WIFISSIDItem) String ¶ added in v1.7.0

func (r *WIFISSIDItem) String() string

Jump to

Keyboard shortcuts

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