Documentation ¶
Index ¶
- Variables
- func NewDNSRule(router adapter.Router, logger log.ContextLogger, options option.DNSRule, ...) (adapter.DNSRule, error)
- func NewHeadlessRule(router adapter.Router, options option.HeadlessRule) (adapter.HeadlessRule, error)
- func NewRule(router adapter.Router, logger log.ContextLogger, options option.Rule, ...) (adapter.Rule, error)
- func NewRuleSet(ctx context.Context, router adapter.Router, logger logger.ContextLogger, ...) (adapter.RuleSet, error)
- type AdGuardDomainItem
- type AuthUserItem
- type ClashModeItem
- type ClientItem
- type DNSReverseMapping
- type DefaultDNSRule
- func (r *DefaultDNSRule) ClientSubnet() *netip.Prefix
- func (r *DefaultDNSRule) Close() error
- func (r *DefaultDNSRule) DisableCache() bool
- func (r *DefaultDNSRule) Match(metadata *adapter.InboundContext) bool
- func (r *DefaultDNSRule) MatchAddressLimit(metadata *adapter.InboundContext) bool
- func (r *DefaultDNSRule) Outbound() string
- func (r *DefaultDNSRule) RewriteTTL() *uint32
- func (r *DefaultDNSRule) Start() error
- func (r *DefaultDNSRule) String() string
- func (r *DefaultDNSRule) Type() string
- func (r *DefaultDNSRule) UpdateGeosite() error
- func (r *DefaultDNSRule) WithAddressLimit() bool
- type DefaultHeadlessRule
- func (r *DefaultHeadlessRule) Close() error
- func (r *DefaultHeadlessRule) Match(metadata *adapter.InboundContext) bool
- func (r *DefaultHeadlessRule) Outbound() string
- func (r *DefaultHeadlessRule) Start() error
- func (r *DefaultHeadlessRule) String() string
- func (r *DefaultHeadlessRule) Type() string
- func (r *DefaultHeadlessRule) UpdateGeosite() error
- type DefaultRule
- type DomainItem
- type DomainKeywordItem
- type DomainRegexItem
- type GeoIPItem
- type GeositeItem
- type IPCIDRItem
- type IPIsPrivateItem
- type IPVersionItem
- type InboundItem
- type LocalRuleSet
- func (s *LocalRuleSet) Cleanup()
- func (s *LocalRuleSet) Close() error
- func (s *LocalRuleSet) DecRef()
- func (s *LocalRuleSet) ExtractIPSet() []*netipx.IPSet
- func (s *LocalRuleSet) IncRef()
- func (s *LocalRuleSet) Match(metadata *adapter.InboundContext) bool
- func (s *LocalRuleSet) Metadata() adapter.RuleSetMetadata
- func (s *LocalRuleSet) Name() string
- func (s *LocalRuleSet) PostStart() error
- func (s *LocalRuleSet) RegisterCallback(callback adapter.RuleSetUpdateCallback) *list.Element[adapter.RuleSetUpdateCallback]
- func (s *LocalRuleSet) StartContext(ctx context.Context, startContext adapter.RuleSetStartContext) error
- func (s *LocalRuleSet) String() string
- func (s *LocalRuleSet) UnregisterCallback(element *list.Element[adapter.RuleSetUpdateCallback])
- type LogicalDNSRule
- func (r *LogicalDNSRule) ClientSubnet() *netip.Prefix
- func (r *LogicalDNSRule) Close() error
- func (r *LogicalDNSRule) DisableCache() bool
- func (r *LogicalDNSRule) Match(metadata *adapter.InboundContext) bool
- func (r *LogicalDNSRule) MatchAddressLimit(metadata *adapter.InboundContext) bool
- func (r *LogicalDNSRule) Outbound() string
- func (r *LogicalDNSRule) RewriteTTL() *uint32
- func (r *LogicalDNSRule) Start() error
- func (r *LogicalDNSRule) String() string
- func (r *LogicalDNSRule) Type() string
- func (r *LogicalDNSRule) UpdateGeosite() error
- func (r *LogicalDNSRule) WithAddressLimit() bool
- type LogicalHeadlessRule
- func (r *LogicalHeadlessRule) Close() error
- func (r *LogicalHeadlessRule) Match(metadata *adapter.InboundContext) bool
- func (r *LogicalHeadlessRule) Outbound() string
- func (r *LogicalHeadlessRule) Start() error
- func (r *LogicalHeadlessRule) String() string
- func (r *LogicalHeadlessRule) Type() string
- func (r *LogicalHeadlessRule) UpdateGeosite() error
- type LogicalRule
- type NetworkItem
- type OutboundItem
- type PackageNameItem
- type PortItem
- type PortRangeItem
- type ProcessItem
- type ProcessPathItem
- type ProtocolItem
- type QueryTypeItem
- type RemoteRuleSet
- func (s *RemoteRuleSet) Cleanup()
- func (s *RemoteRuleSet) Close() error
- func (s *RemoteRuleSet) DecRef()
- func (s *RemoteRuleSet) ExtractIPSet() []*netipx.IPSet
- func (s *RemoteRuleSet) IncRef()
- func (s *RemoteRuleSet) Match(metadata *adapter.InboundContext) bool
- func (s *RemoteRuleSet) Metadata() adapter.RuleSetMetadata
- func (s *RemoteRuleSet) Name() string
- func (s *RemoteRuleSet) PostStart() error
- func (s *RemoteRuleSet) RegisterCallback(callback adapter.RuleSetUpdateCallback) *list.Element[adapter.RuleSetUpdateCallback]
- func (s *RemoteRuleSet) StartContext(ctx context.Context, startContext adapter.RuleSetStartContext) error
- func (s *RemoteRuleSet) String() string
- func (s *RemoteRuleSet) UnregisterCallback(element *list.Element[adapter.RuleSetUpdateCallback])
- type Router
- func (r *Router) AutoDetectInterface() bool
- func (r *Router) AutoDetectInterfaceFunc() control.Func
- func (r *Router) AutoRedirectOutputMark() uint32
- func (r *Router) ClashServer() adapter.ClashServer
- func (r *Router) Cleanup() error
- func (r *Router) ClearDNSCache()
- func (r *Router) Close() error
- func (r *Router) DefaultInterface() string
- func (r *Router) DefaultMark() uint32
- func (r *Router) DefaultOutbound(network string) (adapter.Outbound, error)
- func (r *Router) Exchange(ctx context.Context, message *mDNS.Msg) (*mDNS.Msg, error)
- func (r *Router) FakeIPStore() adapter.FakeIPStore
- func (r *Router) GeoIPReader() *geoip.Reader
- func (r *Router) Initialize(inbounds []adapter.Inbound, outbounds []adapter.Outbound, ...) error
- func (r *Router) InterfaceFinder() control.InterfaceFinder
- func (r *Router) InterfaceMonitor() tun.DefaultInterfaceMonitor
- func (r *Router) LoadGeosite(code string) (adapter.Rule, error)
- func (r *Router) Lookup(ctx context.Context, domain string, strategy dns.DomainStrategy) ([]netip.Addr, error)
- func (r *Router) LookupDefault(ctx context.Context, domain string) ([]netip.Addr, error)
- func (r *Router) NeedWIFIState() bool
- func (r *Router) NetworkMonitor() tun.NetworkUpdateMonitor
- func (r *Router) NewError(ctx context.Context, err error)
- func (r *Router) OnPackagesUpdated(packages int, sharedUsers int)
- func (r *Router) Outbound(tag string) (adapter.Outbound, bool)
- func (r *Router) Outbounds() []adapter.Outbound
- func (r *Router) PackageManager() tun.PackageManager
- func (r *Router) PostStart() error
- func (r *Router) PreStart() error
- func (r *Router) RegisterAutoRedirectOutputMark(mark uint32) error
- func (r *Router) ResetNetwork() error
- func (r *Router) RouteConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error
- func (r *Router) RoutePacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error
- func (r *Router) RuleSet(tag string) (adapter.RuleSet, bool)
- func (r *Router) Rules() []adapter.Rule
- func (r *Router) SetClashServer(server adapter.ClashServer)
- func (r *Router) SetV2RayServer(server adapter.V2RayServer)
- func (r *Router) Start() error
- func (r *Router) UpdateInterfaces() error
- func (r *Router) V2RayServer() adapter.V2RayServer
- func (r *Router) WIFIState() adapter.WIFIState
- type RuleItem
- type RuleSetItem
- type RuleSetStartContext
- type UserIdItem
- type UserItem
- type WIFIBSSIDItem
- type WIFISSIDItem
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrBadPortRange = E.New("bad port range")
Functions ¶
func NewDNSRule ¶
func NewHeadlessRule ¶
func NewHeadlessRule(router adapter.Router, options option.HeadlessRule) (adapter.HeadlessRule, error)
Types ¶
type AdGuardDomainItem ¶
type AdGuardDomainItem struct {
// contains filtered or unexported fields
}
func NewAdGuardDomainItem ¶
func NewAdGuardDomainItem(ruleLines []string) *AdGuardDomainItem
func NewRawAdGuardDomainItem ¶
func NewRawAdGuardDomainItem(matcher *domain.AdGuardMatcher) *AdGuardDomainItem
func (*AdGuardDomainItem) Match ¶
func (r *AdGuardDomainItem) Match(metadata *adapter.InboundContext) bool
func (*AdGuardDomainItem) String ¶
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 ¶
type ClashModeItem struct {
// contains filtered or unexported fields
}
func NewClashModeItem ¶
func NewClashModeItem(router adapter.Router, mode string) *ClashModeItem
func (*ClashModeItem) Match ¶
func (r *ClashModeItem) Match(metadata *adapter.InboundContext) bool
func (*ClashModeItem) String ¶
func (r *ClashModeItem) String() string
type ClientItem ¶
type ClientItem struct {
// contains filtered or unexported fields
}
func NewClientItem ¶
func NewClientItem(clients []string) *ClientItem
func (*ClientItem) Match ¶
func (r *ClientItem) Match(metadata *adapter.InboundContext) bool
func (*ClientItem) String ¶
func (r *ClientItem) String() string
type DNSReverseMapping ¶
type DNSReverseMapping struct {
// contains filtered or unexported fields
}
func NewDNSReverseMapping ¶
func NewDNSReverseMapping() *DNSReverseMapping
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 ¶
func (r *DefaultDNSRule) ClientSubnet() *netip.Prefix
func (*DefaultDNSRule) DisableCache ¶
func (r *DefaultDNSRule) DisableCache() bool
func (*DefaultDNSRule) Match ¶
func (r *DefaultDNSRule) Match(metadata *adapter.InboundContext) bool
func (*DefaultDNSRule) MatchAddressLimit ¶
func (r *DefaultDNSRule) MatchAddressLimit(metadata *adapter.InboundContext) bool
func (*DefaultDNSRule) RewriteTTL ¶
func (r *DefaultDNSRule) RewriteTTL() *uint32
func (*DefaultDNSRule) UpdateGeosite ¶
func (r *DefaultDNSRule) UpdateGeosite() error
func (*DefaultDNSRule) WithAddressLimit ¶
func (r *DefaultDNSRule) WithAddressLimit() bool
type DefaultHeadlessRule ¶
type DefaultHeadlessRule struct {
// contains filtered or unexported fields
}
func NewDefaultHeadlessRule ¶
func NewDefaultHeadlessRule(router adapter.Router, options option.DefaultHeadlessRule) (*DefaultHeadlessRule, error)
func (*DefaultHeadlessRule) Match ¶
func (r *DefaultHeadlessRule) Match(metadata *adapter.InboundContext) bool
func (*DefaultHeadlessRule) UpdateGeosite ¶
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) Match ¶
func (r *DefaultRule) Match(metadata *adapter.InboundContext) bool
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 ¶
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 ¶
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 ¶
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 ¶
type IPIsPrivateItem struct {
// contains filtered or unexported fields
}
func NewIPIsPrivateItem ¶
func NewIPIsPrivateItem(isSource bool) *IPIsPrivateItem
func (*IPIsPrivateItem) Match ¶
func (r *IPIsPrivateItem) Match(metadata *adapter.InboundContext) bool
func (*IPIsPrivateItem) String ¶
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 ¶
type LocalRuleSet struct {
// contains filtered or unexported fields
}
func NewLocalRuleSet ¶
func (*LocalRuleSet) Cleanup ¶
func (s *LocalRuleSet) Cleanup()
func (*LocalRuleSet) Close ¶
func (s *LocalRuleSet) Close() error
func (*LocalRuleSet) DecRef ¶
func (s *LocalRuleSet) DecRef()
func (*LocalRuleSet) ExtractIPSet ¶
func (s *LocalRuleSet) ExtractIPSet() []*netipx.IPSet
func (*LocalRuleSet) IncRef ¶
func (s *LocalRuleSet) IncRef()
func (*LocalRuleSet) Match ¶
func (s *LocalRuleSet) Match(metadata *adapter.InboundContext) bool
func (*LocalRuleSet) Metadata ¶
func (s *LocalRuleSet) Metadata() adapter.RuleSetMetadata
func (*LocalRuleSet) Name ¶
func (s *LocalRuleSet) Name() string
func (*LocalRuleSet) PostStart ¶
func (s *LocalRuleSet) PostStart() error
func (*LocalRuleSet) RegisterCallback ¶
func (s *LocalRuleSet) RegisterCallback(callback adapter.RuleSetUpdateCallback) *list.Element[adapter.RuleSetUpdateCallback]
func (*LocalRuleSet) StartContext ¶
func (s *LocalRuleSet) StartContext(ctx context.Context, startContext adapter.RuleSetStartContext) error
func (*LocalRuleSet) String ¶
func (s *LocalRuleSet) String() string
func (*LocalRuleSet) UnregisterCallback ¶
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 ¶
func (r *LogicalDNSRule) ClientSubnet() *netip.Prefix
func (*LogicalDNSRule) DisableCache ¶
func (r *LogicalDNSRule) DisableCache() bool
func (*LogicalDNSRule) Match ¶
func (r *LogicalDNSRule) Match(metadata *adapter.InboundContext) bool
func (*LogicalDNSRule) MatchAddressLimit ¶
func (r *LogicalDNSRule) MatchAddressLimit(metadata *adapter.InboundContext) bool
func (*LogicalDNSRule) RewriteTTL ¶
func (r *LogicalDNSRule) RewriteTTL() *uint32
func (*LogicalDNSRule) UpdateGeosite ¶
func (r *LogicalDNSRule) UpdateGeosite() error
func (*LogicalDNSRule) WithAddressLimit ¶
func (r *LogicalDNSRule) WithAddressLimit() bool
type LogicalHeadlessRule ¶
type LogicalHeadlessRule struct {
// contains filtered or unexported fields
}
func NewLogicalHeadlessRule ¶
func NewLogicalHeadlessRule(router adapter.Router, options option.LogicalHeadlessRule) (*LogicalHeadlessRule, error)
func (*LogicalHeadlessRule) Match ¶
func (r *LogicalHeadlessRule) Match(metadata *adapter.InboundContext) bool
func (*LogicalHeadlessRule) UpdateGeosite ¶
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) Match ¶
func (r *LogicalRule) Match(metadata *adapter.InboundContext) bool
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 ¶
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 ¶
type ProcessPathItem struct {
// contains filtered or unexported fields
}
func NewProcessPathItem ¶
func NewProcessPathItem(processNameList []string) *ProcessPathItem
func (*ProcessPathItem) Match ¶
func (r *ProcessPathItem) Match(metadata *adapter.InboundContext) bool
func (*ProcessPathItem) String ¶
func (r *ProcessPathItem) 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 ¶
type QueryTypeItem struct {
// contains filtered or unexported fields
}
func NewQueryTypeItem ¶
func NewQueryTypeItem(typeList []option.DNSQueryType) *QueryTypeItem
func (*QueryTypeItem) Match ¶
func (r *QueryTypeItem) Match(metadata *adapter.InboundContext) bool
func (*QueryTypeItem) String ¶
func (r *QueryTypeItem) String() string
type RemoteRuleSet ¶
type RemoteRuleSet struct {
// contains filtered or unexported fields
}
func NewRemoteRuleSet ¶
func NewRemoteRuleSet(ctx context.Context, router adapter.Router, logger logger.ContextLogger, options option.RuleSet) *RemoteRuleSet
func (*RemoteRuleSet) Cleanup ¶
func (s *RemoteRuleSet) Cleanup()
func (*RemoteRuleSet) Close ¶
func (s *RemoteRuleSet) Close() error
func (*RemoteRuleSet) DecRef ¶
func (s *RemoteRuleSet) DecRef()
func (*RemoteRuleSet) ExtractIPSet ¶
func (s *RemoteRuleSet) ExtractIPSet() []*netipx.IPSet
func (*RemoteRuleSet) IncRef ¶
func (s *RemoteRuleSet) IncRef()
func (*RemoteRuleSet) Match ¶
func (s *RemoteRuleSet) Match(metadata *adapter.InboundContext) bool
func (*RemoteRuleSet) Metadata ¶
func (s *RemoteRuleSet) Metadata() adapter.RuleSetMetadata
func (*RemoteRuleSet) Name ¶
func (s *RemoteRuleSet) Name() string
func (*RemoteRuleSet) PostStart ¶
func (s *RemoteRuleSet) PostStart() error
func (*RemoteRuleSet) RegisterCallback ¶
func (s *RemoteRuleSet) RegisterCallback(callback adapter.RuleSetUpdateCallback) *list.Element[adapter.RuleSetUpdateCallback]
func (*RemoteRuleSet) StartContext ¶
func (s *RemoteRuleSet) StartContext(ctx context.Context, startContext adapter.RuleSetStartContext) error
func (*RemoteRuleSet) String ¶
func (s *RemoteRuleSet) String() string
func (*RemoteRuleSet) UnregisterCallback ¶
func (s *RemoteRuleSet) UnregisterCallback(element *list.Element[adapter.RuleSetUpdateCallback])
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
func (*Router) AutoDetectInterface ¶
func (*Router) AutoDetectInterfaceFunc ¶
func (*Router) AutoRedirectOutputMark ¶
func (*Router) ClashServer ¶
func (r *Router) ClashServer() adapter.ClashServer
func (*Router) ClearDNSCache ¶
func (r *Router) ClearDNSCache()
func (*Router) DefaultInterface ¶
func (*Router) DefaultMark ¶
func (*Router) DefaultOutbound ¶
func (*Router) FakeIPStore ¶
func (r *Router) FakeIPStore() adapter.FakeIPStore
func (*Router) GeoIPReader ¶
func (*Router) Initialize ¶
func (*Router) InterfaceFinder ¶
func (r *Router) InterfaceFinder() control.InterfaceFinder
func (*Router) InterfaceMonitor ¶
func (r *Router) InterfaceMonitor() tun.DefaultInterfaceMonitor
func (*Router) LookupDefault ¶
func (*Router) NeedWIFIState ¶
func (*Router) NetworkMonitor ¶
func (r *Router) NetworkMonitor() tun.NetworkUpdateMonitor
func (*Router) OnPackagesUpdated ¶
func (*Router) PackageManager ¶
func (r *Router) PackageManager() tun.PackageManager
func (*Router) RegisterAutoRedirectOutputMark ¶
func (*Router) ResetNetwork ¶
func (*Router) RouteConnection ¶
func (*Router) RoutePacketConnection ¶
func (r *Router) RoutePacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error
func (*Router) SetClashServer ¶
func (r *Router) SetClashServer(server adapter.ClashServer)
func (*Router) SetV2RayServer ¶
func (r *Router) SetV2RayServer(server adapter.V2RayServer)
func (*Router) UpdateInterfaces ¶
func (*Router) V2RayServer ¶
func (r *Router) V2RayServer() adapter.V2RayServer
type RuleItem ¶
type RuleItem interface { Match(metadata *adapter.InboundContext) bool String() string }
type RuleSetItem ¶
type RuleSetItem struct {
// contains filtered or unexported fields
}
func NewRuleSetItem ¶
func (*RuleSetItem) ContainsDestinationIPCIDRRule ¶
func (r *RuleSetItem) ContainsDestinationIPCIDRRule() bool
func (*RuleSetItem) Match ¶
func (r *RuleSetItem) Match(metadata *adapter.InboundContext) bool
func (*RuleSetItem) Start ¶
func (r *RuleSetItem) Start() error
func (*RuleSetItem) String ¶
func (r *RuleSetItem) String() string
type RuleSetStartContext ¶
type RuleSetStartContext struct {
// contains filtered or unexported fields
}
func NewRuleSetStartContext ¶
func NewRuleSetStartContext() *RuleSetStartContext
func (*RuleSetStartContext) Close ¶
func (c *RuleSetStartContext) Close()
func (*RuleSetStartContext) HTTPClient ¶
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 ¶
type WIFIBSSIDItem ¶
type WIFIBSSIDItem struct {
// contains filtered or unexported fields
}
func NewWIFIBSSIDItem ¶
func NewWIFIBSSIDItem(router adapter.Router, bssidList []string) *WIFIBSSIDItem
func (*WIFIBSSIDItem) Match ¶
func (r *WIFIBSSIDItem) Match(metadata *adapter.InboundContext) bool
func (*WIFIBSSIDItem) String ¶
func (r *WIFIBSSIDItem) String() string
type WIFISSIDItem ¶
type WIFISSIDItem struct {
// contains filtered or unexported fields
}
func NewWIFISSIDItem ¶
func NewWIFISSIDItem(router adapter.Router, ssidList []string) *WIFISSIDItem
func (*WIFISSIDItem) Match ¶
func (r *WIFISSIDItem) Match(metadata *adapter.InboundContext) bool
func (*WIFISSIDItem) String ¶
func (r *WIFISSIDItem) String() string
Source Files ¶
- router.go
- router_dns.go
- router_geo_resources.go
- router_rule.go
- rule_abstract.go
- rule_default.go
- rule_dns.go
- rule_headless.go
- rule_item_adguard.go
- rule_item_auth_user.go
- rule_item_cidr.go
- rule_item_clash_mode.go
- rule_item_client.go
- rule_item_domain.go
- rule_item_domain_keyword.go
- rule_item_domain_regex.go
- rule_item_geoip.go
- rule_item_geosite.go
- rule_item_inbound.go
- rule_item_ip_is_private.go
- rule_item_ipversion.go
- rule_item_network.go
- rule_item_outbound.go
- rule_item_package_name.go
- rule_item_port.go
- rule_item_port_range.go
- rule_item_process_name.go
- rule_item_process_path.go
- rule_item_protocol.go
- rule_item_query_type.go
- rule_item_rule_set.go
- rule_item_user.go
- rule_item_user_id.go
- rule_item_wifi_bssid.go
- rule_item_wifi_ssid.go
- rule_set.go
- rule_set_local.go
- rule_set_remote.go
Click to show internal directories.
Click to hide internal directories.