Help us shape the future of Go! Take the 2026 Go Developer Survey

router

package
v1.8.4 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2023 License: MPL-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Domain_Type_name = map[int32]string{
		0: "Plain",
		1: "Regex",
		2: "Domain",
		3: "Full",
	}
	Domain_Type_value = map[string]int32{
		"Plain":  0,
		"Regex":  1,
		"Domain": 2,
		"Full":   3,
	}
)

Enum value maps for Domain_Type.

View Source
var (
	Config_DomainStrategy_name = map[int32]string{
		0: "AsIs",
		1: "UseIp",
		2: "IpIfNonMatch",
		3: "IpOnDemand",
	}
	Config_DomainStrategy_value = map[string]int32{
		"AsIs":         0,
		"UseIp":        1,
		"IpIfNonMatch": 2,
		"IpOnDemand":   3,
	}
)

Enum value maps for Config_DomainStrategy.

View Source
var File_app_router_config_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type AttributeMatcher

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

func (*AttributeMatcher) Apply

func (m *AttributeMatcher) Apply(ctx routing.Context) bool

Apply implements Condition.

func (*AttributeMatcher) Match

func (m *AttributeMatcher) Match(attrs map[string]string) bool

Match implements attributes matching.

type Balancer

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

func (*Balancer) InjectContext

func (b *Balancer) InjectContext(ctx context.Context)

func (*Balancer) PickOutbound

func (b *Balancer) PickOutbound() (string, error)

type BalancingRule

type BalancingRule struct {
	Tag              string   `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"`
	OutboundSelector []string `protobuf:"bytes,2,rep,name=outbound_selector,json=outboundSelector,proto3" json:"outbound_selector,omitempty"`
	Strategy         string   `protobuf:"bytes,3,opt,name=strategy,proto3" json:"strategy,omitempty"`
	// contains filtered or unexported fields
}

func (*BalancingRule) Build

func (br *BalancingRule) Build(ohm outbound.Manager) (*Balancer, error)

func (*BalancingRule) Descriptor deprecated

func (*BalancingRule) Descriptor() ([]byte, []int)

Deprecated: Use BalancingRule.ProtoReflect.Descriptor instead.

func (*BalancingRule) GetOutboundSelector

func (x *BalancingRule) GetOutboundSelector() []string

func (*BalancingRule) GetStrategy

func (x *BalancingRule) GetStrategy() string

func (*BalancingRule) GetTag

func (x *BalancingRule) GetTag() string

func (*BalancingRule) ProtoMessage

func (*BalancingRule) ProtoMessage()

func (*BalancingRule) ProtoReflect

func (x *BalancingRule) ProtoReflect() protoreflect.Message

func (*BalancingRule) Reset

func (x *BalancingRule) Reset()

func (*BalancingRule) String

func (x *BalancingRule) String() string

type BalancingStrategy

type BalancingStrategy interface {
	PickOutbound([]string) string
}

type CIDR

type CIDR struct {

	// IP address, should be either 4 or 16 bytes.
	Ip []byte `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
	// Number of leading ones in the network mask.
	Prefix uint32 `protobuf:"varint,2,opt,name=prefix,proto3" json:"prefix,omitempty"`
	// contains filtered or unexported fields
}

IP for routing decision, in CIDR form.

func (*CIDR) Descriptor deprecated

func (*CIDR) Descriptor() ([]byte, []int)

Deprecated: Use CIDR.ProtoReflect.Descriptor instead.

func (*CIDR) GetIp

func (x *CIDR) GetIp() []byte

func (*CIDR) GetPrefix

func (x *CIDR) GetPrefix() uint32

func (*CIDR) ProtoMessage

func (*CIDR) ProtoMessage()

func (*CIDR) ProtoReflect

func (x *CIDR) ProtoReflect() protoreflect.Message

func (*CIDR) Reset

func (x *CIDR) Reset()

func (*CIDR) String

func (x *CIDR) String() string

type CIDRList

type CIDRList []*CIDR

CIDRList is an alias of []*CIDR to provide sort.Interface.

func (*CIDRList) Len

func (l *CIDRList) Len() int

Len implements sort.Interface.

func (*CIDRList) Less

func (l *CIDRList) Less(i int, j int) bool

Less implements sort.Interface.

func (*CIDRList) Swap

func (l *CIDRList) Swap(i int, j int)

Swap implements sort.Interface.

type Condition

type Condition interface {
	Apply(ctx routing.Context) bool
}

type ConditionChan

type ConditionChan []Condition

func NewConditionChan

func NewConditionChan() *ConditionChan

func (*ConditionChan) Add

func (v *ConditionChan) Add(cond Condition) *ConditionChan

func (*ConditionChan) Apply

func (v *ConditionChan) Apply(ctx routing.Context) bool

Apply applies all conditions registered in this chan.

func (*ConditionChan) Len

func (v *ConditionChan) Len() int

type Config

type Config struct {
	DomainStrategy Config_DomainStrategy `` /* 147-byte string literal not displayed */
	Rule           []*RoutingRule        `protobuf:"bytes,2,rep,name=rule,proto3" json:"rule,omitempty"`
	BalancingRule  []*BalancingRule      `protobuf:"bytes,3,rep,name=balancing_rule,json=balancingRule,proto3" json:"balancing_rule,omitempty"`
	// contains filtered or unexported fields
}

func (*Config) Descriptor deprecated

func (*Config) Descriptor() ([]byte, []int)

Deprecated: Use Config.ProtoReflect.Descriptor instead.

func (*Config) GetBalancingRule

func (x *Config) GetBalancingRule() []*BalancingRule

func (*Config) GetDomainStrategy

func (x *Config) GetDomainStrategy() Config_DomainStrategy

func (*Config) GetRule

func (x *Config) GetRule() []*RoutingRule

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) ProtoReflect

func (x *Config) ProtoReflect() protoreflect.Message

func (*Config) Reset

func (x *Config) Reset()

func (*Config) String

func (x *Config) String() string

type Config_DomainStrategy

type Config_DomainStrategy int32
const (
	// Use domain as is.
	Config_AsIs Config_DomainStrategy = 0
	// Always resolve IP for domains.
	Config_UseIp Config_DomainStrategy = 1
	// Resolve to IP if the domain doesn't match any rules.
	Config_IpIfNonMatch Config_DomainStrategy = 2
	// Resolve to IP if any rule requires IP matching.
	Config_IpOnDemand Config_DomainStrategy = 3
)

func (Config_DomainStrategy) Descriptor

func (Config_DomainStrategy) Enum

func (Config_DomainStrategy) EnumDescriptor deprecated

func (Config_DomainStrategy) EnumDescriptor() ([]byte, []int)

Deprecated: Use Config_DomainStrategy.Descriptor instead.

func (Config_DomainStrategy) Number

func (Config_DomainStrategy) String

func (x Config_DomainStrategy) String() string

func (Config_DomainStrategy) Type

type Domain

type Domain struct {

	// Domain matching type.
	Type Domain_Type `protobuf:"varint,1,opt,name=type,proto3,enum=xray.app.router.Domain_Type" json:"type,omitempty"`
	// Domain value.
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// Attributes of this domain. May be used for filtering.
	Attribute []*Domain_Attribute `protobuf:"bytes,3,rep,name=attribute,proto3" json:"attribute,omitempty"`
	// contains filtered or unexported fields
}

Domain for routing decision.

func (*Domain) Descriptor deprecated

func (*Domain) Descriptor() ([]byte, []int)

Deprecated: Use Domain.ProtoReflect.Descriptor instead.

func (*Domain) GetAttribute

func (x *Domain) GetAttribute() []*Domain_Attribute

func (*Domain) GetType

func (x *Domain) GetType() Domain_Type

func (*Domain) GetValue

func (x *Domain) GetValue() string

func (*Domain) ProtoMessage

func (*Domain) ProtoMessage()

func (*Domain) ProtoReflect

func (x *Domain) ProtoReflect() protoreflect.Message

func (*Domain) Reset

func (x *Domain) Reset()

func (*Domain) String

func (x *Domain) String() string

type DomainMatcher

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

func NewDomainMatcher

func NewDomainMatcher(domains []*Domain) (*DomainMatcher, error)

func NewMphMatcherGroup

func NewMphMatcherGroup(domains []*Domain) (*DomainMatcher, error)

func (*DomainMatcher) Apply

func (m *DomainMatcher) Apply(ctx routing.Context) bool

Apply implements Condition.

func (*DomainMatcher) ApplyDomain

func (m *DomainMatcher) ApplyDomain(domain string) bool

type Domain_Attribute

type Domain_Attribute struct {
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// Types that are assignable to TypedValue:
	//
	//	*Domain_Attribute_BoolValue
	//	*Domain_Attribute_IntValue
	TypedValue isDomain_Attribute_TypedValue `protobuf_oneof:"typed_value"`
	// contains filtered or unexported fields
}

func (*Domain_Attribute) Descriptor deprecated

func (*Domain_Attribute) Descriptor() ([]byte, []int)

Deprecated: Use Domain_Attribute.ProtoReflect.Descriptor instead.

func (*Domain_Attribute) GetBoolValue

func (x *Domain_Attribute) GetBoolValue() bool

func (*Domain_Attribute) GetIntValue

func (x *Domain_Attribute) GetIntValue() int64

func (*Domain_Attribute) GetKey

func (x *Domain_Attribute) GetKey() string

func (*Domain_Attribute) GetTypedValue

func (m *Domain_Attribute) GetTypedValue() isDomain_Attribute_TypedValue

func (*Domain_Attribute) ProtoMessage

func (*Domain_Attribute) ProtoMessage()

func (*Domain_Attribute) ProtoReflect

func (x *Domain_Attribute) ProtoReflect() protoreflect.Message

func (*Domain_Attribute) Reset

func (x *Domain_Attribute) Reset()

func (*Domain_Attribute) String

func (x *Domain_Attribute) String() string

type Domain_Attribute_BoolValue

type Domain_Attribute_BoolValue struct {
	BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"`
}

type Domain_Attribute_IntValue

type Domain_Attribute_IntValue struct {
	IntValue int64 `protobuf:"varint,3,opt,name=int_value,json=intValue,proto3,oneof"`
}

type Domain_Type

type Domain_Type int32

Type of domain value.

const (
	// The value is used as is.
	Domain_Plain Domain_Type = 0
	// The value is used as a regular expression.
	Domain_Regex Domain_Type = 1
	// The value is a root domain.
	Domain_Domain Domain_Type = 2
	// The value is a domain.
	Domain_Full Domain_Type = 3
)

func (Domain_Type) Descriptor

func (Domain_Type) Enum

func (x Domain_Type) Enum() *Domain_Type

func (Domain_Type) EnumDescriptor deprecated

func (Domain_Type) EnumDescriptor() ([]byte, []int)

Deprecated: Use Domain_Type.Descriptor instead.

func (Domain_Type) Number

func (x Domain_Type) Number() protoreflect.EnumNumber

func (Domain_Type) String

func (x Domain_Type) String() string

func (Domain_Type) Type

type GeoIP

type GeoIP struct {
	CountryCode  string  `protobuf:"bytes,1,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"`
	Cidr         []*CIDR `protobuf:"bytes,2,rep,name=cidr,proto3" json:"cidr,omitempty"`
	ReverseMatch bool    `protobuf:"varint,3,opt,name=reverse_match,json=reverseMatch,proto3" json:"reverse_match,omitempty"`
	// contains filtered or unexported fields
}

func (*GeoIP) Descriptor deprecated

func (*GeoIP) Descriptor() ([]byte, []int)

Deprecated: Use GeoIP.ProtoReflect.Descriptor instead.

func (*GeoIP) GetCidr

func (x *GeoIP) GetCidr() []*CIDR

func (*GeoIP) GetCountryCode

func (x *GeoIP) GetCountryCode() string

func (*GeoIP) GetReverseMatch

func (x *GeoIP) GetReverseMatch() bool

func (*GeoIP) ProtoMessage

func (*GeoIP) ProtoMessage()

func (*GeoIP) ProtoReflect

func (x *GeoIP) ProtoReflect() protoreflect.Message

func (*GeoIP) Reset

func (x *GeoIP) Reset()

func (*GeoIP) String

func (x *GeoIP) String() string

type GeoIPList

type GeoIPList struct {
	Entry []*GeoIP `protobuf:"bytes,1,rep,name=entry,proto3" json:"entry,omitempty"`
	// contains filtered or unexported fields
}

func (*GeoIPList) Descriptor deprecated

func (*GeoIPList) Descriptor() ([]byte, []int)

Deprecated: Use GeoIPList.ProtoReflect.Descriptor instead.

func (*GeoIPList) GetEntry

func (x *GeoIPList) GetEntry() []*GeoIP

func (*GeoIPList) ProtoMessage

func (*GeoIPList) ProtoMessage()

func (*GeoIPList) ProtoReflect

func (x *GeoIPList) ProtoReflect() protoreflect.Message

func (*GeoIPList) Reset

func (x *GeoIPList) Reset()

func (*GeoIPList) String

func (x *GeoIPList) String() string

type GeoIPMatcher

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

func (*GeoIPMatcher) Init

func (m *GeoIPMatcher) Init(cidrs []*CIDR) error

func (*GeoIPMatcher) Match

func (m *GeoIPMatcher) Match(ip net.IP) bool

Match returns true if the given ip is included by the GeoIP.

func (*GeoIPMatcher) SetReverseMatch

func (m *GeoIPMatcher) SetReverseMatch(isReverseMatch bool)

type GeoIPMatcherContainer

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

GeoIPMatcherContainer is a container for GeoIPMatchers. It keeps unique copies of GeoIPMatcher by country code.

func (*GeoIPMatcherContainer) Add

func (c *GeoIPMatcherContainer) Add(geoip *GeoIP) (*GeoIPMatcher, error)

Add adds a new GeoIP set into the container. If the country code of GeoIP is not empty, GeoIPMatcherContainer will try to find an existing one, instead of adding a new one.

type GeoSite

type GeoSite struct {
	CountryCode string    `protobuf:"bytes,1,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"`
	Domain      []*Domain `protobuf:"bytes,2,rep,name=domain,proto3" json:"domain,omitempty"`
	// contains filtered or unexported fields
}

func (*GeoSite) Descriptor deprecated

func (*GeoSite) Descriptor() ([]byte, []int)

Deprecated: Use GeoSite.ProtoReflect.Descriptor instead.

func (*GeoSite) GetCountryCode

func (x *GeoSite) GetCountryCode() string

func (*GeoSite) GetDomain

func (x *GeoSite) GetDomain() []*Domain

func (*GeoSite) ProtoMessage

func (*GeoSite) ProtoMessage()

func (*GeoSite) ProtoReflect

func (x *GeoSite) ProtoReflect() protoreflect.Message

func (*GeoSite) Reset

func (x *GeoSite) Reset()

func (*GeoSite) String

func (x *GeoSite) String() string

type GeoSiteList

type GeoSiteList struct {
	Entry []*GeoSite `protobuf:"bytes,1,rep,name=entry,proto3" json:"entry,omitempty"`
	// contains filtered or unexported fields
}

func (*GeoSiteList) Descriptor deprecated

func (*GeoSiteList) Descriptor() ([]byte, []int)

Deprecated: Use GeoSiteList.ProtoReflect.Descriptor instead.

func (*GeoSiteList) GetEntry

func (x *GeoSiteList) GetEntry() []*GeoSite

func (*GeoSiteList) ProtoMessage

func (*GeoSiteList) ProtoMessage()

func (*GeoSiteList) ProtoReflect

func (x *GeoSiteList) ProtoReflect() protoreflect.Message

func (*GeoSiteList) Reset

func (x *GeoSiteList) Reset()

func (*GeoSiteList) String

func (x *GeoSiteList) String() string

type InboundTagMatcher

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

func NewInboundTagMatcher

func NewInboundTagMatcher(tags []string) *InboundTagMatcher

func (*InboundTagMatcher) Apply

func (v *InboundTagMatcher) Apply(ctx routing.Context) bool

Apply implements Condition.

type LeastPingStrategy

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

func (*LeastPingStrategy) InjectContext

func (l *LeastPingStrategy) InjectContext(ctx context.Context)

func (*LeastPingStrategy) PickOutbound

func (l *LeastPingStrategy) PickOutbound(strings []string) string

type MultiGeoIPMatcher

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

func NewMultiGeoIPMatcher

func NewMultiGeoIPMatcher(geoips []*GeoIP, onSource bool) (*MultiGeoIPMatcher, error)

func (*MultiGeoIPMatcher) Apply

func (m *MultiGeoIPMatcher) Apply(ctx routing.Context) bool

Apply implements Condition.

type NetworkMatcher

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

func NewNetworkMatcher

func NewNetworkMatcher(network []net.Network) NetworkMatcher

func (NetworkMatcher) Apply

func (v NetworkMatcher) Apply(ctx routing.Context) bool

Apply implements Condition.

type PortMatcher

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

func NewPortMatcher

func NewPortMatcher(list *net.PortList, onSource bool) *PortMatcher

NewPortMatcher create a new port matcher that can match source or destination port

func (*PortMatcher) Apply

func (v *PortMatcher) Apply(ctx routing.Context) bool

Apply implements Condition.

type ProtocolMatcher

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

func NewProtocolMatcher

func NewProtocolMatcher(protocols []string) *ProtocolMatcher

func (*ProtocolMatcher) Apply

func (m *ProtocolMatcher) Apply(ctx routing.Context) bool

Apply implements Condition.

type RandomStrategy

type RandomStrategy struct{}

func (*RandomStrategy) PickOutbound

func (s *RandomStrategy) PickOutbound(tags []string) string

type Route

type Route struct {
	routing.Context
	// contains filtered or unexported fields
}

Route is an implementation of routing.Route.

func (*Route) GetOutboundGroupTags

func (r *Route) GetOutboundGroupTags() []string

GetOutboundGroupTags implements routing.Route.

func (*Route) GetOutboundTag

func (r *Route) GetOutboundTag() string

GetOutboundTag implements routing.Route.

type Router

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

Router is an implementation of routing.Router.

func (*Router) Close

func (*Router) Close() error

Close implements common.Closable.

func (*Router) Init

func (r *Router) Init(ctx context.Context, config *Config, d dns.Client, ohm outbound.Manager) error

Init initializes the Router.

func (*Router) PickRoute

func (r *Router) PickRoute(ctx routing.Context) (routing.Route, error)

PickRoute implements routing.Router.

func (*Router) Start

func (*Router) Start() error

Start implements common.Runnable.

func (*Router) Type

func (*Router) Type() interface{}

Type implements common.HasType.

type RoutingRule

type RoutingRule struct {

	// Types that are assignable to TargetTag:
	//
	//	*RoutingRule_Tag
	//	*RoutingRule_BalancingTag
	TargetTag isRoutingRule_TargetTag `protobuf_oneof:"target_tag"`
	// List of domains for target domain matching.
	Domain []*Domain `protobuf:"bytes,2,rep,name=domain,proto3" json:"domain,omitempty"`
	// List of CIDRs for target IP address matching.
	// Deprecated. Use geoip below.
	//
	// Deprecated: Marked as deprecated in app/router/config.proto.
	Cidr []*CIDR `protobuf:"bytes,3,rep,name=cidr,proto3" json:"cidr,omitempty"`
	// List of GeoIPs for target IP address matching. If this entry exists, the
	// cidr above will have no effect. GeoIP fields with the same country code are
	// supposed to contain exactly same content. They will be merged during
	// runtime. For customized GeoIPs, please leave country code empty.
	Geoip []*GeoIP `protobuf:"bytes,10,rep,name=geoip,proto3" json:"geoip,omitempty"`
	// A range of port [from, to]. If the destination port is in this range, this
	// rule takes effect. Deprecated. Use port_list.
	//
	// Deprecated: Marked as deprecated in app/router/config.proto.
	PortRange *net.PortRange `protobuf:"bytes,4,opt,name=port_range,json=portRange,proto3" json:"port_range,omitempty"`
	// List of ports.
	PortList *net.PortList `protobuf:"bytes,14,opt,name=port_list,json=portList,proto3" json:"port_list,omitempty"`
	// List of networks. Deprecated. Use networks.
	//
	// Deprecated: Marked as deprecated in app/router/config.proto.
	NetworkList *net.NetworkList `protobuf:"bytes,5,opt,name=network_list,json=networkList,proto3" json:"network_list,omitempty"`
	// List of networks for matching.
	Networks []net.Network `protobuf:"varint,13,rep,packed,name=networks,proto3,enum=xray.common.net.Network" json:"networks,omitempty"`
	// List of CIDRs for source IP address matching.
	//
	// Deprecated: Marked as deprecated in app/router/config.proto.
	SourceCidr []*CIDR `protobuf:"bytes,6,rep,name=source_cidr,json=sourceCidr,proto3" json:"source_cidr,omitempty"`
	// List of GeoIPs for source IP address matching. If this entry exists, the
	// source_cidr above will have no effect.
	SourceGeoip []*GeoIP `protobuf:"bytes,11,rep,name=source_geoip,json=sourceGeoip,proto3" json:"source_geoip,omitempty"`
	// List of ports for source port matching.
	SourcePortList *net.PortList     `protobuf:"bytes,16,opt,name=source_port_list,json=sourcePortList,proto3" json:"source_port_list,omitempty"`
	UserEmail      []string          `protobuf:"bytes,7,rep,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"`
	InboundTag     []string          `protobuf:"bytes,8,rep,name=inbound_tag,json=inboundTag,proto3" json:"inbound_tag,omitempty"`
	Protocol       []string          `protobuf:"bytes,9,rep,name=protocol,proto3" json:"protocol,omitempty"`
	Attributes     map[string]string `` /* 162-byte string literal not displayed */
	DomainMatcher  string            `protobuf:"bytes,17,opt,name=domain_matcher,json=domainMatcher,proto3" json:"domain_matcher,omitempty"`
	// contains filtered or unexported fields
}

func (*RoutingRule) BuildCondition

func (rr *RoutingRule) BuildCondition() (Condition, error)

func (*RoutingRule) Descriptor deprecated

func (*RoutingRule) Descriptor() ([]byte, []int)

Deprecated: Use RoutingRule.ProtoReflect.Descriptor instead.

func (*RoutingRule) GetAttributes

func (x *RoutingRule) GetAttributes() map[string]string

func (*RoutingRule) GetBalancingTag

func (x *RoutingRule) GetBalancingTag() string

func (*RoutingRule) GetCidr deprecated

func (x *RoutingRule) GetCidr() []*CIDR

Deprecated: Marked as deprecated in app/router/config.proto.

func (*RoutingRule) GetDomain

func (x *RoutingRule) GetDomain() []*Domain

func (*RoutingRule) GetDomainMatcher

func (x *RoutingRule) GetDomainMatcher() string

func (*RoutingRule) GetGeoip

func (x *RoutingRule) GetGeoip() []*GeoIP

func (*RoutingRule) GetInboundTag

func (x *RoutingRule) GetInboundTag() []string

func (*RoutingRule) GetNetworkList deprecated

func (x *RoutingRule) GetNetworkList() *net.NetworkList

Deprecated: Marked as deprecated in app/router/config.proto.

func (*RoutingRule) GetNetworks

func (x *RoutingRule) GetNetworks() []net.Network

func (*RoutingRule) GetPortList

func (x *RoutingRule) GetPortList() *net.PortList

func (*RoutingRule) GetPortRange deprecated

func (x *RoutingRule) GetPortRange() *net.PortRange

Deprecated: Marked as deprecated in app/router/config.proto.

func (*RoutingRule) GetProtocol

func (x *RoutingRule) GetProtocol() []string

func (*RoutingRule) GetSourceCidr deprecated

func (x *RoutingRule) GetSourceCidr() []*CIDR

Deprecated: Marked as deprecated in app/router/config.proto.

func (*RoutingRule) GetSourceGeoip

func (x *RoutingRule) GetSourceGeoip() []*GeoIP

func (*RoutingRule) GetSourcePortList

func (x *RoutingRule) GetSourcePortList() *net.PortList

func (*RoutingRule) GetTag

func (x *RoutingRule) GetTag() string

func (*RoutingRule) GetTargetTag

func (m *RoutingRule) GetTargetTag() isRoutingRule_TargetTag

func (*RoutingRule) GetUserEmail

func (x *RoutingRule) GetUserEmail() []string

func (*RoutingRule) ProtoMessage

func (*RoutingRule) ProtoMessage()

func (*RoutingRule) ProtoReflect

func (x *RoutingRule) ProtoReflect() protoreflect.Message

func (*RoutingRule) Reset

func (x *RoutingRule) Reset()

func (*RoutingRule) String

func (x *RoutingRule) String() string

type RoutingRule_BalancingTag

type RoutingRule_BalancingTag struct {
	// Tag of routing balancer.
	BalancingTag string `protobuf:"bytes,12,opt,name=balancing_tag,json=balancingTag,proto3,oneof"`
}

type RoutingRule_Tag

type RoutingRule_Tag struct {
	// Tag of outbound that this rule is pointing to.
	Tag string `protobuf:"bytes,1,opt,name=tag,proto3,oneof"`
}

type Rule

type Rule struct {
	Tag       string
	Balancer  *Balancer
	Condition Condition
}

func (*Rule) Apply

func (r *Rule) Apply(ctx routing.Context) bool

Apply checks rule matching of current routing context.

func (*Rule) GetTag

func (r *Rule) GetTag() (string, error)

type UserMatcher

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

func NewUserMatcher

func NewUserMatcher(users []string) *UserMatcher

func (*UserMatcher) Apply

func (v *UserMatcher) Apply(ctx routing.Context) bool

Apply implements Condition.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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